[PATCH] D82425: [SemaCXX] Fix false positive of -Wuninitialized-const-reference in empty function body.

Zequan Wu via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Sun Jul 5 12:47:58 PDT 2020


zequanwu marked an inline comment as done.
zequanwu added inline comments.


================
Comment at: clang/lib/Analysis/UninitializedValues.cpp:435
       if ((*I)->getType().isConstQualified())
-        classify((*I), ConstRefUse);
+        if (!hasTrivialBody(CE))
+          classify((*I), ConstRefUse);
----------------
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.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D82425





More information about the cfe-commits mailing list