52 lines
822 B
C++
52 lines
822 B
C++
// RUN: %clang_cc1 -std=c++23 -fsyntax-only -verify %s
|
|
|
|
struct A {
|
|
union {
|
|
int n = 0;
|
|
int m;
|
|
};
|
|
};
|
|
const A a;
|
|
|
|
struct B {
|
|
union {
|
|
struct {
|
|
int n = 5;
|
|
int m;
|
|
};
|
|
};
|
|
};
|
|
const B b; // expected-error {{default initialization of an object of const type 'const B' without a user-provided default constructor}}
|
|
|
|
struct S {
|
|
int i;
|
|
int j;
|
|
};
|
|
|
|
struct T {
|
|
T() = default;
|
|
};
|
|
|
|
struct C {
|
|
union {
|
|
S s;
|
|
};
|
|
};
|
|
|
|
struct D {
|
|
union {
|
|
T s;
|
|
};
|
|
};
|
|
|
|
const C c; // expected-error {{default initialization of an object of const type 'const C' without a user-provided default constructor}}
|
|
const D d; // expected-error {{default initialization of an object of const type 'const D' without a user-provided default constructor}}
|
|
|
|
struct E {
|
|
union {
|
|
int n;
|
|
int m=0;
|
|
};
|
|
};
|
|
const E e;
|