Set constant bit on static block vars as well. Patch by Anders Johnson!q

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64502 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Daniel Dunbar 2009-02-13 22:58:39 +00:00
Родитель 7ab41f790c
Коммит e4c9238795
2 изменённых файлов: 11 добавлений и 2 удалений

Просмотреть файл

@ -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());

Просмотреть файл

@ -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;
}