summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-02-13 22:58:39 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-02-13 22:58:39 +0000
commitf9f039865fbc0430750210141c9210d7eaf456b2 (patch)
tree7f6e88cea5b662b2aceef197c89493bddc64d344
parent165b527507b27b939737a61114238a9abe295017 (diff)
downloadbcm5719-llvm-f9f039865fbc0430750210141c9210d7eaf456b2.tar.gz
bcm5719-llvm-f9f039865fbc0430750210141c9210d7eaf456b2.zip
Set constant bit on static block vars as well. Patch by Anders Johnson!q
llvm-svn: 64502
-rw-r--r--clang/lib/CodeGen/CGDecl.cpp2
-rw-r--r--clang/test/CodeGen/init.c11
2 files changed, 11 insertions, 2 deletions
diff --git a/clang/lib/CodeGen/CGDecl.cpp b/clang/lib/CodeGen/CGDecl.cpp
index ddc68d68c5e..bb2705ff60a 100644
--- a/clang/lib/CodeGen/CGDecl.cpp
+++ b/clang/lib/CodeGen/CGDecl.cpp
@@ -109,7 +109,7 @@ CodeGenFunction::GenerateStaticBlockVarDecl(const VarDecl &D,
assert(0 && "Unknown context for block var decl");
llvm::GlobalValue *GV =
- new llvm::GlobalVariable(Init->getType(), false,
+ new llvm::GlobalVariable(Init->getType(), Ty.isConstant(getContext()),
Linkage,
Init, ContextName + Separator +D.getNameAsString(),
&CGM.getModule(), 0, Ty.getAddressSpace());
diff --git a/clang/test/CodeGen/init.c b/clang/test/CodeGen/init.c
index fa39ba6f5a0..b53b81edb8b 100644
--- a/clang/test/CodeGen/init.c
+++ b/clang/test/CodeGen/init.c
@@ -1,4 +1,5 @@
-// RUN: clang -emit-llvm %s -o -
+// RUN: clang -triple i386-unknown-unknown -emit-llvm %s -o %t &&
+
void f1() {
// Scalars in braces.
int a = { 1 };
@@ -20,3 +21,11 @@ void f3() {
struct S a[1] = { { foo } };
}
+// Constants
+// RUN: grep '@g3 = constant i32 10' %t &&
+// RUN: grep '@f4.g4 = internal constant i32 12' %t
+const int g3 = 10;
+int f4() {
+ static const int g4 = 12;
+ return g4;
+}
OpenPOWER on IntegriCloud