aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnders Carlsson <andersca@mac.com>2009-07-27 05:54:15 +0000
committerAnders Carlsson <andersca@mac.com>2009-07-27 05:54:15 +0000
commit8dca3b3d09ff48b3ec528cd603f835f120c4d9ee (patch)
tree3b6b3ed3b83177a439b71cdf232561e514d8267d
parent22bfc7bce3de6da854b6374c6f14e12121315919 (diff)
Enable the new constant struct builder by default. The old code is still in place but will be removed shortly. The new struct builder works on big endian systems.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77185 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/CodeGen/CGExprConstant.cpp7
-rw-r--r--test/CodeGen/PR3613-static-decl.c2
-rw-r--r--test/CodeGen/const-init.c4
-rw-r--r--test/CodeGen/designated-initializers.c5
4 files changed, 10 insertions, 8 deletions
diff --git a/lib/CodeGen/CGExprConstant.cpp b/lib/CodeGen/CGExprConstant.cpp
index b335e90faf..a64fb09eca 100644
--- a/lib/CodeGen/CGExprConstant.cpp
+++ b/lib/CodeGen/CGExprConstant.cpp
@@ -506,9 +506,10 @@ public:
}
llvm::Constant *EmitStructInitialization(InitListExpr *ILE) {
- // FIXME: Use the returned struct when the builder works well enough.
- ConstStructBuilder::BuildStruct(CGM, CGF, ILE);
-
+ return ConstStructBuilder::BuildStruct(CGM, CGF, ILE);
+
+ // FIXME: Remove the old struct builder once we're sure that the new one
+ // works well enough!
const llvm::StructType *SType =
cast<llvm::StructType>(ConvertType(ILE->getType()));
RecordDecl *RD = ILE->getType()->getAsRecordType()->getDecl();
diff --git a/test/CodeGen/PR3613-static-decl.c b/test/CodeGen/PR3613-static-decl.c
index 365b9b2be0..44de0dc0d7 100644
--- a/test/CodeGen/PR3613-static-decl.c
+++ b/test/CodeGen/PR3613-static-decl.c
@@ -1,5 +1,5 @@
// RUN: clang-cc -triple i386-unknown-unknown -emit-llvm -o %t %s &&
-// RUN: grep '@g0 = internal global .struct.s0 <{ i32 3 }>' %t | count 1
+// RUN: grep '@g0 = internal global %. { i32 3 }' %t | count 1
struct s0 {
int a;
diff --git a/test/CodeGen/const-init.c b/test/CodeGen/const-init.c
index 0364cc153f..2ee6f0d719 100644
--- a/test/CodeGen/const-init.c
+++ b/test/CodeGen/const-init.c
@@ -59,7 +59,7 @@ long g11() {
static char g12_tmp;
long g12 = (long) &g12_tmp;
-// RUN: grep '@g13 = global \[1 x .struct.g13_s0\] \[.struct.g13_s0 <{ i32 ptrtoint (i8\* @g12_tmp to i32) }>\]' %t &&
+// RUN: grep '@g13 = global %. <{ %. { i32 ptrtoint (i8\* @g12_tmp to i32) } }>' %t &&
struct g13_s0 {
long a;
};
@@ -85,7 +85,7 @@ void g18(void) {
static int *p[] = { &g19 };
}
-// RUN: grep '@g20.l0 = internal global .struct.g20_s1 <{ .struct.g20_s0\* null, .struct.g20_s0\*\* getelementptr (.struct.g20_s1\* @g20.l0, i32 0, i32 0) }>' %t &&
+// RUN: grep '@g20.l0 = internal global %. { .struct.g20_s0\* null, .struct.g20_s0\*\* getelementptr (.struct.g20_s1\* bitcast (%.\* @g20.l0 to .struct.g20_s1\*), i32 0, i32 0) }' %t &&
struct g20_s0;
struct g20_s1 {
diff --git a/test/CodeGen/designated-initializers.c b/test/CodeGen/designated-initializers.c
index 4669339286..f20bc782b6 100644
--- a/test/CodeGen/designated-initializers.c
+++ b/test/CodeGen/designated-initializers.c
@@ -1,5 +1,6 @@
-// RUN: clang-cc -triple i386-unknown-unknown %s -emit-llvm -o - | grep "<{ i8\* null, i32 1024 }>" &&
-// RUN: clang-cc -triple i386-unknown-unknown %s -emit-llvm -o - | grep "i32 0, i32 22"
+// RUN: clang-cc -triple i386-unknown-unknown %s -emit-llvm -o %t &&
+// RUN: grep "{ i8\* null, i32 1024 }" %t &&
+// RUN: grep "i32 0, i32 22" %t
struct foo {
void *a;