[PATCH] D28467: [Sema] Add warning for unused lambda captures

Malcolm Parsons via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Jan 13 06:15:13 PST 2017

malcolm.parsons added inline comments.

Comment at: test/SemaCXX/warn-unused-lambda-capture.cpp:86
+  auto explicit_by_value_unused_sizeof = [i] { return sizeof(i); }; // expected-warning{{lambda capture 'i' is not required to be captured for use in an unevaluated context}}
+  auto explicit_by_value_unused_decltype = [i] { decltype(i) j = 0; }; // expected-warning{{lambda capture 'i' is not used}}
aaron.ballman wrote:
> malcolm.parsons wrote:
> > I don't know why the unevaluated context warning didn't work here.
> Hmm, it should have, come to think of it. I don't think that's an odr-use (when I get near a standard, I'll double-check), and it is unevaluated. Worth poking at.
The unevaluated context warning worked on line 38 where it's not in a template and on line 85 where it's `sizeof` instead of `decltype`.

Somehow the template instantiation is avoiding some work when the capture doesn't have a dependent type.


More information about the cfe-commits mailing list