NoQ added inline comments.

================
Comment at: clang/include/clang/Analysis/Analyses/ExprMutationAnalyzer.h:43-44
+                            ASTContext &Context);
+  static bool isUnevaluated(const Expr *Exp, const Stmt &Stm,
+                            ASTContext &Context);
 
----------------
I suspect this may lead to subtle bugs when a `Stmt *` that actually points to 
an `Expr` at runtime would cause the first overload to be chosen.

Maybe teach `canResolveToExpr()` to accept an `Stmt` instead (with early 
return)?


================
Comment at: clang/lib/Analysis/ExprMutationAnalyzer.cpp:197
 
-bool ExprMutationAnalyzer::isUnevaluated(const Expr *Exp) {
-  return selectFirst<Expr>(
+auto isUnevaluatedMatcher(const Stmt *Exp) {
+  return anyOf(
----------------
We're trying to avoid `auto` when it makes the code less readable i.e. when the 
type isn't obvious from the context 
(https://llvm.org/docs/CodingStandards.html#use-auto-type-deduction-to-make-code-more-readable).


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D126034

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

Reply via email to