hamzasood added inline comments.
================ Comment at: test/FixIt/fixit-cxx0x.cpp:57 (void)[&, &i, &i]{}; // expected-error 2{{'&' cannot precede a capture when the capture default is '&'}} - (void)[=, this]{ this->g(5); }; // expected-error{{'this' cannot be explicitly captured}} (void)[i, i]{ }; // expected-error{{'i' can appear only once in a capture list}} ---------------- rjmccall wrote: > rjmccall wrote: > > hamzasood wrote: > > > rjmccall wrote: > > > > hamzasood wrote: > > > > > rjmccall wrote: > > > > > > hamzasood wrote: > > > > > > > rjmccall wrote: > > > > > > > > Shouldn't you only be accepting this in C++2a mode? > > > > > > > I'm not sure what the system is with allowing future language > > > > > > > features as extensions, but I noticed that [*this] capture is > > > > > > > allowed as an extension pre-C++17 so I figured it would make > > > > > > > sense for [=, this] to also be allowed as an extension (since the > > > > > > > proposal mentions how it's meant to increase code clarify in the > > > > > > > presence of [*this]). > > > > > > Surely there should at least be an on-by-default extension warning? > > > > > > The behavior we're using sounds a lot more like we're treating > > > > > > this as a bug-fix in the standard than a new feature. Richard, can > > > > > > you weigh in here? > > > > > The extension warning for this (ext_equals_this_lambda_capture_cxx2a) > > > > > is on by default. > > > > Why did the diagnostic disappear from this file, then? > > > That file is for FixIt hints, which I don't think make much sense for an > > > extension warning (and I couldn't find any other extension warnings that > > > offer FixIt hints) > > Sure, it's reasonable for this specific test to not test the warning. > > However, since I don't see anything in this test that actually turns off > > the warning, and since you have not in fact added any tests that verify > > that the warning is ever turned on, I suspect that it is actually not being > > emitted. > I'm sorry, I see that you've added an explicit test for the warning, but I > still don't understand why the warning is not emitted in this file. -verify > normally verifies all diagnostics, and this file is tested with -std=c++11. > Is there some special behavior of -fixit that disables warnings, or ignores > them in -verify mode? Ah okay, now I know what you mean. The line you’re talking about has actually been removed completely from the fixit test. https://reviews.llvm.org/D36572 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits