Quuxplusone added inline comments.

================
Comment at: clang/test/SemaCXX/diagnostic-initialization.cpp:7
+template <class _E>
+class initializer_list {
+  const _E *__begin_;
----------------
Looking at other places like 
`clang/test/CXX/dcl.decl/dcl.init/dcl.init.list/p3.cpp`, I think you don't need 
quite so much code here. However, also, I'm amazed that people are 
cutting-and-pasting `class initializer_list` between test cases; shouldn't it 
just be in a support header somewhere? (My second sentence is likely out of 
scope for this PR, I know.)
Anyway, my next comment shows that you don't need `initializer_list` at all, so 
both parts of this comment are moot.


================
Comment at: clang/test/SemaCXX/diagnostic-initialization.cpp:43
+// expected-error@-1 {{call to deleted constructor of 'A'}}
+// expected-error@-2 {{chosen constructor is explicit in copy-initialization}}
----------------
https://godbolt.org/z/aMa4e6 (showing the old behavior, and also showing that 
you don't need `class initializer_list` to trigger it)

IIUC, the changed behavior here is that old-Clang complained only that the 
chosen ctor was deleted; new-Clang complains that the chosen ctor is deleted 
//and// that the chosen ctor is explicit?
IMHO this is not actually an improvement, at least not in this particular case. 
However, it's not //significantly worse//, and also it brings Clang (back) into 
line with GCC and ICC in terms of outputting multiple complaints about the same 
problem, so I wouldn't say that this patch is //wrong//...
Still, could you find an example where this patch clearly //improves// Clang's 
behavior?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D93955

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

Reply via email to