brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.6 KiB · a711e71 Raw
43 lines · cpp
1// RUN: %clang_cc1 -triple i386-unknown-unknown -emit-llvm -o - %s | FileCheck %s2// RUN: %clang_cc1 -triple i386-unknown-unknown -emit-llvm-only -verify -DFAIL1 %s3// RUN: %clang_cc1 -triple i386-unknown-unknown -emit-llvm-only -verify -DFAIL2 %s4// RUN: %clang_cc1 -triple i386-unknown-unknown -emit-llvm-only -verify -DFAIL3 %s5// RUN: %clang_cc1 -triple i386-unknown-unknown -emit-llvm-only -verify -DFAIL4 %s6 7struct A { int x; int y[]; };8A a = { 1, 7, 11 };9// CHECK: @a ={{.*}} global { i32, [2 x i32] } { i32 1, [2 x i32] [i32 7, i32 11] }10 11A b = { 1, { 13, 15 } };12// CHECK: @b ={{.*}} global { i32, [2 x i32] } { i32 1, [2 x i32] [i32 13, i32 15] }13 14char f();15#ifdef FAIL116A c = { f(), { f(), f() } }; // expected-error {{cannot compile this flexible array initializer yet}}17#endif18#ifdef FAIL219void g() {20  static A d = { f(), { f(), f() } }; // expected-error {{cannot compile this flexible array initializer yet}}21}22#endif23#ifdef FAIL324struct B { int x; char y; char z[]; };25B e = {f(), f(), f(), f()}; // expected-error {{cannot compile this flexible array initializer yet}}26#endif27#ifdef FAIL428union { char a[]; } z = {};29union { char a[]; } z0 = {z.a[0]}; // expected-error {{cannot compile this flexible array initializer yet}}30char keep() {	return z0.a[0]; }31#endif32 33namespace zero_initializer {34A a0{0, 0}, a1{0, {0, 0}};35// CHECK: @_ZN16zero_initializer2a0E = global { i32, [1 x i32] } zeroinitializer,36// CHECK: @_ZN16zero_initializer2a1E = global { i32, [2 x i32] } zeroinitializer,37 38struct S { int x[]; };39 40S s{0};41// CHECK: @_ZN16zero_initializer1sE = global { [1 x i32] } zeroinitializer,42}43