vsk added inline comments.
================
Comment at: clang/lib/Sema/SemaDecl.cpp:10689
- S.DiagRuntimeBehavior(DRE->getBeginLoc(), DRE,
+ S.DiagRuntimeBehavior(DRE->getBeginOrDeclLoc(), DRE,
S.PDiag(diag)
----------------
rsmith wrote:
> I'm a bit surprised you updated this call to `DeclRefExpr::getBeginLoc()`
> (and no others). I think this should be unreachable for a `DeclRefExpr` that
> refers to an implicit lambda capture, because such a lambda-capture cannot
> refer to itself from its own (implicit) initializer.
IIUC, that's exactly what this visitor (SelfReferenceChecker) diagnoses. The
only test I found which exercises this code path is SemaCXX/uninitialized.cpp.
The relevant portion is updated in this diff, but to summarize, there's a
DeclRefExpr in the CXXConstructExpr initializer generated for `a1` which
self-refers to `a1`.
https://reviews.llvm.org/D50927
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits