Quuxplusone requested changes to this revision.
Quuxplusone added a comment.
This revision now requires changes to proceed.

Peanut gallery says: I'd recommend //not// taking this particular patch; it 
seems much less "obvious" than the whitelist/inclusionlist type of patch. 
Whereas "whitelist" is just a made-up buzzword that can easily be replaced with 
a different made-up buzzword, "sanity check" is not at all the same as 
"validation test." In many cases, I think "sanity-check" could be reasonably 
replaced with "smoke-test," but (1) this PR doesn't do that, and (2) the phrase 
"smoke-test" is probably //harder// to understand, and (3) this PR currently 
touches many instances of "sanity/insanity/sane/insane" in code comments which 
have nothing to do with testing or checking at all.

"We could do X, but that would be insane" does //not// mean "We could do X, but 
that would not pass validations." It means it would be //stupid//, 
//irrational//, //foolish for obvious reasons//, something along those lines.

I agree that "X is dumb/stupid/insane" is a bad code comment and should be 
improved. It is bad //not just// because it is un-PC but because it is vague 
and therefore not (directly) helpful to the reader. However, you cannot fix 
this kind of comment by just substituting some made-up reason like "it would 
fail validation," because a //lying// comment is //worse// than a vague comment.

Not all of the individual diffs in this PR are bad. But some of them are.



================
Comment at: clang/lib/Sema/SemaDeclCXX.cpp:9176
       // Don't check the implicit member of the anonymous union type.
-      // This is technically non-conformant, but sanity demands it.
+      // This is technically non-conformant, but validation tests demand it.
       return false;
----------------
This comment seems incorrectly translated.


================
Comment at: clang/lib/Sema/SemaDeclCXX.cpp:12260
   // even if hidden by ordinary names, *except* in a dependent context
-  // where it's important for the sanity of two-phase lookup.
+  // where it's important for the validation of two-phase lookup.
   if (!IsInstantiation)
----------------
This comment seems incorrectly translated.


================
Comment at: clang/lib/StaticAnalyzer/Core/Store.cpp:252-255
+  // Verify that we avoid doing the wrong thing in the face of
   // reinterpret_cast.
   if (!regionMatchesCXXRecordType(Derived, Cast->getSubExpr()->getType()))
     return UnknownVal();
----------------
This comment seems incorrectly translated. I interpret the writer's intent as, 
"We really don't ever expect to get here from a reinterpret_cast; but if we 
ever do, let's just return something plausible [so that we avoid doing anything 
insane in the following codepath]."

According to my interpretation, this would be better expressed as a simple 
`assert`, and you should file a bug if the assert ever gets hit.

Alternatively, this `if` is necessary for correctness, and the comment should 
simply say something like "We can get here from a reinterpret_cast; in that 
case, return UnknownVal so that [whatever the reason is]."


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D114025/new/

https://reviews.llvm.org/D114025

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to