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