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
This commit is contained in:
Chris Lattner 2009-07-31 16:17:13 +00:00
parent 624f3b930d
commit 82987bfe9b
2 changed files with 21 additions and 1 deletions

View File

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

View File

@ -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"