diff options
author | Daniel Dunbar <daniel@zuster.org> | 2009-02-13 22:58:39 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2009-02-13 22:58:39 +0000 |
commit | f9f039865fbc0430750210141c9210d7eaf456b2 (patch) | |
tree | 7f6e88cea5b662b2aceef197c89493bddc64d344 | |
parent | 165b527507b27b939737a61114238a9abe295017 (diff) | |
download | bcm5719-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.cpp | 2 | ||||
-rw-r--r-- | clang/test/CodeGen/init.c | 11 |
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; +} |