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
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits