From: Rafael Espindola Date: Thu, 24 Feb 2011 20:31:44 +0000 (+0000) Subject: Use private linkage to avoid symbol conflicts in corner cases like the one X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=bab380c2c8b3527e0448eb6252bc75f0de37fbca;p=clang Use private linkage to avoid symbol conflicts in corner cases like the one in PR9301. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126422 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/CGDecl.cpp b/lib/CodeGen/CGDecl.cpp index 844b1e37b0..f4db01d257 100644 --- a/lib/CodeGen/CGDecl.cpp +++ b/lib/CodeGen/CGDecl.cpp @@ -642,7 +642,7 @@ CodeGenFunction::EmitAutoVarAlloca(const VarDecl &D) { // candidate nor a __block variable, emit it as a global instead. if (CGM.getCodeGenOpts().MergeAllConstants && Ty.isConstQualified() && !NRVO && !isByRef) { - EmitStaticVarDecl(D, llvm::GlobalValue::InternalLinkage); + EmitStaticVarDecl(D, llvm::GlobalValue::PrivateLinkage); emission.Address = 0; // signal this condition to later callbacks assert(emission.wasEmittedAsGlobal()); diff --git a/test/CodeGen/decl.c b/test/CodeGen/decl.c index 7a9971ee18..5be4216236 100644 --- a/test/CodeGen/decl.c +++ b/test/CodeGen/decl.c @@ -1,6 +1,6 @@ // RUN: %clang_cc1 -w -emit-llvm < %s | FileCheck %s -// CHECK: @test1.x = internal constant [12 x i32] [i32 1 +// CHECK: @test1.x = private constant [12 x i32] [i32 1 // CHECK: @test2.x = internal constant [13 x i32] [i32 1, // CHECK: @test5w = global %0 { i32 2, [4 x i8] undef } // CHECK: @test5y = global %union.test5u { double 7.300000e+0{{[0]*}}1 }