diff options
author | Chris Lattner <sabre@nondot.org> | 2009-07-31 16:17:13 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-07-31 16:17:13 +0000 |
commit | 82987bfe9b6ae85a8836c9f2d2e9f0ef9866edb1 (patch) | |
tree | c26f74a97b7df6339a8a04dcd7391cf68739b602 | |
parent | 624f3b930d3fc06b86c7fa1855f127f07ad0641f (diff) |
fix PR4650: we only track sizes for certain objects, so only put something
into the mergable section if it is one of our special cases. This could
obviously be improved, but this is the minimal fix and restores us to the
previous behavior.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77679 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Target/TargetLoweringObjectFile.cpp | 5 | ||||
-rw-r--r-- | test/CodeGen/X86/global-sections.ll | 17 |
2 files changed, 21 insertions, 1 deletions
diff --git a/lib/Target/TargetLoweringObjectFile.cpp b/lib/Target/TargetLoweringObjectFile.cpp index 166f120178..a42911d92b 100644 --- a/lib/Target/TargetLoweringObjectFile.cpp +++ b/lib/Target/TargetLoweringObjectFile.cpp @@ -340,7 +340,10 @@ getSectionFlagsAsString(SectionKind Kind, SmallVectorImpl<char> &Str) const { Str.push_back('x'); if (Kind.isWriteable()) Str.push_back('w'); - if (Kind.isMergeableConst() || Kind.isMergeableCString()) + if (Kind.isMergeableCString() || + Kind.isMergeableConst4() || + Kind.isMergeableConst8() || + Kind.isMergeableConst16()) Str.push_back('M'); if (Kind.isMergeableCString()) Str.push_back('S'); diff --git a/test/CodeGen/X86/global-sections.ll b/test/CodeGen/X86/global-sections.ll index 18a585a983..a674a3ee97 100644 --- a/test/CodeGen/X86/global-sections.ll +++ b/test/CodeGen/X86/global-sections.ll @@ -68,3 +68,20 @@ ; DARWIN: .globl "_foo bar" ; DARWIN: .weak_definition "_foo bar" ; DARWIN: "_foo bar": + +; PR4650 +@G6 = weak_odr constant [1 x i8] c"\01" + +; LINUX: .type G6,@object +; LINUX: .section .gnu.linkonce.r.G6,"a",@progbits +; LINUX: .weak G6 +; LINUX: G6: # G6 +; LINUX: .size G6, 1 +; LINUX: .ascii "\001" + +; DARWIN: .section __TEXT,__const_coal,coalesced +; DARWIN: .globl _G6 +; DARWIN: .weak_definition _G6 +; DARWIN:_G6: +; DARWIN: .ascii "\001" + |