erichkeane added inline comments.

================
Comment at: clang/test/SemaCXX/constant-expression-cxx11.cpp:994
+static_assert(sobj.f(), ""); // expected-error {{constant expression}} 
expected-note {{in call to 'sobj.f()'}}
+static_assert(sptr->f(), ""); // expected-error {{constant expression}} 
expected-note {{in call to 'sobj.f()'}}
+static_assert(slref.f(), ""); // expected-error {{constant expression}} 
expected-note {{in call to 'sobj.f()'}}
----------------
hazohelet wrote:
> erichkeane wrote:
> > So I think this is just trading 1 'wrong' for another.  We should be 
> > looking to see if we can figure out whether this is called with an arrow or 
> > not.  I don't have a good way of doing that unfortunately, but perhaps 
> > Aaron has an idea?
> I believe there might be a slight misunderstanding.
> The note generated for the `sptr->f()` will be `sobj.f()`, and not 
> `sptr.f()`, so I think this patch does not introduce something wrong here.
> Note: BEFORE this patch, invalid code `&sobj->f()` is generated for this line.
> link: https://godbolt.org/z/vPWjdeqcK
> 
> That said, I think it would be ideal to distinguish `sptr` and `sobj` here, 
> but I am unsure whether we can achieve it without incurring additional memory 
> footprint.
Ah, I see, less bad then I think.  I'm on the fence here, this seems like it is 
still not great messaging.  GCC manages to maintain the `sptr` here, which I 
wish we could do (though they have an odder way of printing it all the same: 
https://godbolt.org/z/Kn3Mn75rh).

I think I want to see what Aaron says when he gets back next week.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D151720

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

Reply via email to