mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-17 06:46:36 +00:00

This checks if the layout of `std::initializer_list` is something Clang can handle much earlier and deduplicates the checks in CodeGen/CGExprAgg.cpp and AST/ExprConstant.cpp Also now diagnose `union initializer_list` (Fixes #95495), bit-field for the size (Fixes a crash that would happen during codegen if it were unnamed), base classes (that wouldn't be initialized) and polymorphic classes (whose vtable pointer wouldn't be initialized).
10 lines
331 B
C++
10 lines
331 B
C++
// RUN: %clang_cc1 -std=c++11 -fsyntax-only -fno-recovery-ast -verify %s
|
|
|
|
namespace std {
|
|
template <typename E>
|
|
class initializer_list { const E *a, *b; };
|
|
int a;
|
|
auto c = a, &d = {a}; // expected-error {{'auto' deduced as 'int'}} \
|
|
expected-error {{non-const lvalue reference to type}}
|
|
} // namespace std
|