aaron.ballman accepted this revision.
aaron.ballman added a comment.
This revision is now accepted and ready to land.

LGTM despite my enduring sadness that Boost elected to use this totally bizarre 
approach to silencing unused variable diagnostics when far better-supported 
options have existed for so long.



================
Comment at: clang/lib/Analysis/UninitializedValues.cpp:435
       if ((*I)->getType().isConstQualified())
-        classify((*I), ConstRefUse);
+        if (!hasTrivialBody(CE))
+          classify((*I), ConstRefUse);
----------------
zequanwu wrote:
> nick wrote:
> > zequanwu wrote:
> > > aaron.ballman wrote:
> > > > This can be hoisted out of the loop so that we don't have to check the 
> > > > same thing on every argument.
> > > The `DeclRefExpr` needs to be set to `Ignore` like `VisitCastExpr` does. 
> > > Otherwise, it maybe classified to `Init` by `isTrackedVar` in 
> > > `ClassifyRefs::get`.
> > Could not the empty body check be done in `reportConstRefUse`, after 
> > `isUninitialized`?
> No, `reportConstRefUse` doesn't know if the called function has trivial body 
> or not.
You made the change I was looking for -- I just needed the `hasTrivialBody()` 
call hoisted since that was invariant within the loop body.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D82425



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

Reply via email to