summaryrefslogtreecommitdiffstats
path: root/clang/test
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test')
-rw-r--r--clang/test/CodeGen/const-init.c2
-rw-r--r--clang/test/CodeGen/designated-initializers.c2
-rw-r--r--clang/test/CodeGen/union-init2.c2
-rw-r--r--clang/test/CodeGenCXX/cxx11-initializer-aggregate.cpp27
-rw-r--r--clang/test/CodeGenCXX/cxx1z-initializer-aggregate.cpp4
-rw-r--r--clang/test/CodeGenCXX/reference-init.cpp6
-rw-r--r--clang/test/SemaCXX/large-array-init.cpp10
7 files changed, 21 insertions, 32 deletions
diff --git a/clang/test/CodeGen/const-init.c b/clang/test/CodeGen/const-init.c
index 2d699954031..3fd231b630e 100644
--- a/clang/test/CodeGen/const-init.c
+++ b/clang/test/CodeGen/const-init.c
@@ -167,7 +167,7 @@ void g30() {
int : 1;
int x;
} a = {};
- // CHECK: @g30.a = internal global %struct.anon.1 zeroinitializer, align 1
+ // CHECK: @g30.a = internal global %struct.anon.1 <{ i8 undef, i32 0 }>, align 1
#pragma pack()
}
diff --git a/clang/test/CodeGen/designated-initializers.c b/clang/test/CodeGen/designated-initializers.c
index 21077b4c147..74532c8fa5b 100644
--- a/clang/test/CodeGen/designated-initializers.c
+++ b/clang/test/CodeGen/designated-initializers.c
@@ -8,7 +8,7 @@ struct foo {
// CHECK: @u = global %union.anon zeroinitializer
union { int i; float f; } u = { };
-// CHECK: @u2 = global %union.anon.0 zeroinitializer
+// CHECK: @u2 = global { i32, [4 x i8] } { i32 0, [4 x i8] undef }
union { int i; double f; } u2 = { };
// CHECK: @u3 = global %union.anon.1 zeroinitializer
diff --git a/clang/test/CodeGen/union-init2.c b/clang/test/CodeGen/union-init2.c
index 0b68c211122..bf20696a22c 100644
--- a/clang/test/CodeGen/union-init2.c
+++ b/clang/test/CodeGen/union-init2.c
@@ -5,7 +5,7 @@
union x {long long b;union x* a;} r = {.a = &r};
-// CHECK: global %union.z zeroinitializer
+// CHECK: global { [3 x i8], [5 x i8] } { [3 x i8] zeroinitializer, [5 x i8] undef }
union z {
char a[3];
long long b;
diff --git a/clang/test/CodeGenCXX/cxx11-initializer-aggregate.cpp b/clang/test/CodeGenCXX/cxx11-initializer-aggregate.cpp
index 0fb247a31c7..8bf35966f5b 100644
--- a/clang/test/CodeGenCXX/cxx11-initializer-aggregate.cpp
+++ b/clang/test/CodeGenCXX/cxx11-initializer-aggregate.cpp
@@ -51,30 +51,3 @@ namespace NonTrivialInit {
// meaningful.
B b[30] = {};
}
-
-namespace ZeroInit {
- enum { Zero, One };
- constexpr int zero() { return 0; }
- constexpr int *null() { return nullptr; }
- struct Filler {
- int x;
- Filler();
- };
- struct S1 {
- int x;
- };
-
- // These declarations, if implemented elementwise, require huge
- // amout of memory and compiler time.
- unsigned char data_1[1024 * 1024 * 1024 * 2u] = { 0 };
- unsigned char data_2[1024 * 1024 * 1024 * 2u] = { Zero };
- unsigned char data_3[1024][1024][1024] = {{{0}}};
- unsigned char data_4[1024 * 1024 * 1024 * 2u] = { zero() };
- int *data_5[1024 * 1024 * 512] = { nullptr };
- int *data_6[1024 * 1024 * 512] = { null() };
- struct S1 data_7[1024 * 1024 * 512] = {{0}};
-
- // This variable must be initialized elementwise.
- Filler data_e1[1024] = {};
- // CHECK: getelementptr inbounds {{.*}} @_ZN8ZeroInit7data_e1E
-}
diff --git a/clang/test/CodeGenCXX/cxx1z-initializer-aggregate.cpp b/clang/test/CodeGenCXX/cxx1z-initializer-aggregate.cpp
index ab1c6383bd3..f59ec51136f 100644
--- a/clang/test/CodeGenCXX/cxx1z-initializer-aggregate.cpp
+++ b/clang/test/CodeGenCXX/cxx1z-initializer-aggregate.cpp
@@ -17,14 +17,14 @@ namespace Constant {
C c1 = {};
C c2 = {1};
- // CHECK: @_ZN8Constant2c1E = global %"struct.Constant::C" zeroinitializer, align 1
+ // CHECK: @_ZN8Constant2c1E = global { i8 } zeroinitializer, align 1
// CHECK: @_ZN8Constant2c2E = global { i8 } { i8 1 }, align 1
// Test packing bases into tail padding.
D d1 = {};
D d2 = {1, 2, 3};
D d3 = {1};
- // CHECK: @_ZN8Constant2d1E = global %"struct.Constant::D" zeroinitializer, align 4
+ // CHECK: @_ZN8Constant2d1E = global { i32, i8, i8 } zeroinitializer, align 4
// CHECK: @_ZN8Constant2d2E = global { i32, i8, i8 } { i32 1, i8 2, i8 3 }, align 4
// CHECK: @_ZN8Constant2d3E = global { i32, i8, i8 } { i32 1, i8 0, i8 0 }, align 4
diff --git a/clang/test/CodeGenCXX/reference-init.cpp b/clang/test/CodeGenCXX/reference-init.cpp
index c62e0344316..5a91d3bd6d1 100644
--- a/clang/test/CodeGenCXX/reference-init.cpp
+++ b/clang/test/CodeGenCXX/reference-init.cpp
@@ -3,6 +3,12 @@
// RUN: %clang_cc1 -triple %itanium_abi_triple -emit-llvm %s -o - -std=c++11 | FileCheck %s --check-prefix=CHECK-CXX11
// expected-no-diagnostics
+#if __cplusplus >= 201103L
+// CHECK-CXX11: @_ZZ15InitRefWithListvE1r = internal constant i32* @_ZGRZ15InitRefWithListvE1r_
+// CHECK-CXX11: @_ZGRZ15InitRefWithListvE1r_ = internal constant i32 123
+int InitRefWithList() { static const int &r = {123}; return r; }
+#endif
+
struct XPTParamDescriptor {};
struct nsXPTParamInfo {
nsXPTParamInfo(const XPTParamDescriptor& desc);
diff --git a/clang/test/SemaCXX/large-array-init.cpp b/clang/test/SemaCXX/large-array-init.cpp
new file mode 100644
index 00000000000..ba734280597
--- /dev/null
+++ b/clang/test/SemaCXX/large-array-init.cpp
@@ -0,0 +1,10 @@
+// RUN: %clang_cc1 -S -o %t.ll -mllvm -debug-only=exprconstant %s 2>&1 | \
+// RUN: FileCheck %s
+// REQUIRES: asserts
+
+struct S { int i; };
+
+static struct S arr[100000000] = {{ 0 }};
+// CHECK: The number of elements to initialize: 1.
+
+struct S *foo() { return arr; }
OpenPOWER on IntegriCloud