[llvm-commits] [llvm] r126963 - in /llvm/trunk: lib/MC/ test/CodeGen/ARM/ test/CodeGen/Blackfin/ test/CodeGen/CellSPU/ test/CodeGen/Mips/ test/CodeGen/PowerPC/ test/CodeGen/X86/ test/CodeGen/XCore/ test/MC/ELF/
Richard Osborne
richard at xmos.com
Fri Mar 4 06:20:29 PST 2011
This breaks on the XCore - the toolchain doesn't use gas and the XMOS
assembler doesn't accept strings as section names. Would it be possible
to make the quoting conditional on whether the section name actually
requires quoting?
On 03/03/11 22:31, Joerg Sonnenberger wrote:
> Author: joerg
> Date: Thu Mar 3 16:31:08 2011
> New Revision: 126963
>
> URL: http://llvm.org/viewvc/llvm-project?rev=126963&view=rev
> Log:
> Bug#9033: For the ELF assembler output, always quote the section name.
>
> Added:
> llvm/trunk/test/MC/ELF/section-quoting.s
> Modified:
> llvm/trunk/lib/MC/MCSectionELF.cpp
> llvm/trunk/test/CodeGen/ARM/ctors_dtors.ll
> llvm/trunk/test/CodeGen/ARM/section.ll
> llvm/trunk/test/CodeGen/Blackfin/jumptable.ll
> llvm/trunk/test/CodeGen/CellSPU/bss.ll
> llvm/trunk/test/CodeGen/Mips/2008-07-15-InternalConstant.ll
> llvm/trunk/test/CodeGen/Mips/2008-07-22-Cstpool.ll
> llvm/trunk/test/CodeGen/PowerPC/sections.ll
> llvm/trunk/test/CodeGen/X86/attribute-sections.ll
> llvm/trunk/test/CodeGen/X86/bss_pagealigned.ll
> llvm/trunk/test/CodeGen/X86/global-sections-tls.ll
> llvm/trunk/test/CodeGen/X86/global-sections.ll
> llvm/trunk/test/CodeGen/X86/pic_jumptable.ll
> llvm/trunk/test/CodeGen/XCore/constants.ll
> llvm/trunk/test/CodeGen/XCore/globals.ll
> llvm/trunk/test/CodeGen/XCore/tls.ll
>
> Modified: llvm/trunk/lib/MC/MCSectionELF.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCSectionELF.cpp?rev=126963&r1=126962&r2=126963&view=diff
> ==============================================================================
> --- llvm/trunk/lib/MC/MCSectionELF.cpp (original)
> +++ llvm/trunk/lib/MC/MCSectionELF.cpp Thu Mar 3 16:31:08 2011
> @@ -39,8 +39,22 @@
> return;
> }
>
> - OS<< "\t.section\t"<< getSectionName();
> -
> + StringRef name = getSectionName();
> + OS<< "\t.section\t\"";
> + for (const char *b = name.begin(), *e = name.end(); b< e; ++b) {
> + if (*b == '"') // Unquoted "
> + OS<< "\\\"";
> + else if (*b != '\\') // Neither " or backslash
> + OS<< *b;
> + else if (b + 1 == e) // Trailing backslash
> + OS<< "\\\\";
> + else {
> + OS<< b[0]<< b[1]; // Quoted character
> + ++b;
> + }
> + }
> + OS<< '"';
> +
> // Handle the weird solaris syntax if desired.
> if (MAI.usesSunStyleELFSectionSwitchSyntax()&&
> !(Flags& ELF::SHF_MERGE)) {
>
> Modified: llvm/trunk/test/CodeGen/ARM/ctors_dtors.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/ARM/ctors_dtors.ll?rev=126963&r1=126962&r2=126963&view=diff
> ==============================================================================
> --- llvm/trunk/test/CodeGen/ARM/ctors_dtors.ll (original)
> +++ llvm/trunk/test/CodeGen/ARM/ctors_dtors.ll Thu Mar 3 16:31:08 2011
> @@ -5,11 +5,11 @@
> ; DARWIN: .section __DATA,__mod_init_func,mod_init_funcs
> ; DARWIN: .section __DATA,__mod_term_func,mod_term_funcs
>
> -; ELF: .section .ctors,"aw",%progbits
> -; ELF: .section .dtors,"aw",%progbits
> +; ELF: .section ".ctors","aw",%progbits
> +; ELF: .section ".dtors","aw",%progbits
>
> -; GNUEABI: .section .init_array,"aw",%init_array
> -; GNUEABI: .section .fini_array,"aw",%fini_array
> +; GNUEABI: .section ".init_array","aw",%init_array
> +; GNUEABI: .section ".fini_array","aw",%fini_array
>
> @llvm.global_ctors = appending global [1 x { i32, void ()* }] [ { i32, void ()* } { i32 65535, void ()* @__mf_init } ] ;<[1 x { i32, void ()* }]*> [#uses=0]
> @llvm.global_dtors = appending global [1 x { i32, void ()* }] [ { i32, void ()* } { i32 65535, void ()* @__mf_fini } ] ;<[1 x { i32, void ()* }]*> [#uses=0]
>
> Modified: llvm/trunk/test/CodeGen/ARM/section.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/ARM/section.ll?rev=126963&r1=126962&r2=126963&view=diff
> ==============================================================================
> --- llvm/trunk/test/CodeGen/ARM/section.ll (original)
> +++ llvm/trunk/test/CodeGen/ARM/section.ll Thu Mar 3 16:31:08 2011
> @@ -1,7 +1,7 @@
> ; RUN: llc< %s -mtriple=arm-linux | \
> ; RUN: grep {__DTOR_END__:}
> ; RUN: llc< %s -mtriple=arm-linux | \
> -; RUN: grep {\\.section.\\.dtors,"aw",.progbits}
> +; RUN: grep {\\.section."\\.dtors","aw",.progbits}
>
> @__DTOR_END__ = internal global [1 x i32] zeroinitializer, section ".dtors" ;<[1 x i32]*> [#uses=0]
>
>
> Modified: llvm/trunk/test/CodeGen/Blackfin/jumptable.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/Blackfin/jumptable.ll?rev=126963&r1=126962&r2=126963&view=diff
> ==============================================================================
> --- llvm/trunk/test/CodeGen/Blackfin/jumptable.ll (original)
> +++ llvm/trunk/test/CodeGen/Blackfin/jumptable.ll Thu Mar 3 16:31:08 2011
> @@ -1,6 +1,6 @@
> ; RUN: llc< %s -march=bfin -verify-machineinstrs | FileCheck %s
>
> -; CHECK: .section .rodata
> +; CHECK: .section ".rodata"
> ; CHECK: JTI0_0:
> ; CHECK: .long .BB0_1
>
>
> Modified: llvm/trunk/test/CodeGen/CellSPU/bss.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/CellSPU/bss.ll?rev=126963&r1=126962&r2=126963&view=diff
> ==============================================================================
> --- llvm/trunk/test/CodeGen/CellSPU/bss.ll (original)
> +++ llvm/trunk/test/CodeGen/CellSPU/bss.ll Thu Mar 3 16:31:08 2011
> @@ -1,7 +1,7 @@
> ; RUN: llc< %s -march=cellspu | FileCheck %s
>
> @bssVar = global i32 zeroinitializer
> -; CHECK: .section .bss
> +; CHECK: .section ".bss"
> ; CHECK-NEXT: .globl
>
> @localVar= internal global i32 zeroinitializer
>
> Modified: llvm/trunk/test/CodeGen/Mips/2008-07-15-InternalConstant.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/Mips/2008-07-15-InternalConstant.ll?rev=126963&r1=126962&r2=126963&view=diff
> ==============================================================================
> --- llvm/trunk/test/CodeGen/Mips/2008-07-15-InternalConstant.ll (original)
> +++ llvm/trunk/test/CodeGen/Mips/2008-07-15-InternalConstant.ll Thu Mar 3 16:31:08 2011
> @@ -1,6 +1,6 @@
> ; RUN: llc< %s -march=mips -o %t
> -; RUN: grep {rodata.str1.4,"aMS", at progbits} %t | count 1
> -; RUN: grep {r.data,} %t | count 1
> +; RUN: grep {rodata.str1.4","aMS", at progbits} %t | count 1
> +; RUN: grep {r.data",} %t | count 1
> ; RUN: grep {\%hi} %t | count 2
> ; RUN: grep {\%lo} %t | count 2
> ; RUN: not grep {gp_rel} %t
>
> Modified: llvm/trunk/test/CodeGen/Mips/2008-07-22-Cstpool.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/Mips/2008-07-22-Cstpool.ll?rev=126963&r1=126962&r2=126963&view=diff
> ==============================================================================
> --- llvm/trunk/test/CodeGen/Mips/2008-07-22-Cstpool.ll (original)
> +++ llvm/trunk/test/CodeGen/Mips/2008-07-22-Cstpool.ll Thu Mar 3 16:31:08 2011
> @@ -1,6 +1,6 @@
> ; RUN: llc< %s -march=mips -o %t
> ; RUN: grep {CPI\[01\]_\[01\]:} %t | count 2
> -; RUN: grep {rodata.cst4,"aM", at progbits} %t | count 1
> +; RUN: grep {".rodata.cst4","aM", at progbits} %t | count 1
> target datalayout = "e-p:32:32:32-i1:8:8-i8:8:32-i16:16:32-i32:32:32-i64:32:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64"
> target triple = "mipsallegrexel-unknown-psp-elf"
>
>
> Modified: llvm/trunk/test/CodeGen/PowerPC/sections.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/PowerPC/sections.ll?rev=126963&r1=126962&r2=126963&view=diff
> ==============================================================================
> --- llvm/trunk/test/CodeGen/PowerPC/sections.ll (original)
> +++ llvm/trunk/test/CodeGen/PowerPC/sections.ll Thu Mar 3 16:31:08 2011
> @@ -3,6 +3,6 @@
>
> @A = global i32 0
>
> -; CHECK: .section .bss,"aw", at nobits
> +; CHECK: .section ".bss","aw", at nobits
> ; CHECK: .globl A
>
>
> Modified: llvm/trunk/test/CodeGen/X86/attribute-sections.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/attribute-sections.ll?rev=126963&r1=126962&r2=126963&view=diff
> ==============================================================================
> --- llvm/trunk/test/CodeGen/X86/attribute-sections.ll (original)
> +++ llvm/trunk/test/CodeGen/X86/attribute-sections.ll Thu Mar 3 16:31:08 2011
> @@ -3,16 +3,16 @@
> declare i32 @foo()
> @G0 = global i32 ()* @foo, section ".init_array"
>
> -; LINUX: .section .init_array,"aw"
> +; LINUX: .section ".init_array","aw"
> ; LINUX: .globl G0
>
> @G1 = global i32 ()* @foo, section ".fini_array"
>
> -; LINUX: .section .fini_array,"aw"
> +; LINUX: .section ".fini_array","aw"
> ; LINUX: .globl G1
>
> @G2 = global i32 ()* @foo, section ".preinit_array"
>
> -; LINUX: .section .preinit_array,"aw"
> +; LINUX: .section ".preinit_array","aw"
> ; LINUX: .globl G2
>
>
> Modified: llvm/trunk/test/CodeGen/X86/bss_pagealigned.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/bss_pagealigned.ll?rev=126963&r1=126962&r2=126963&view=diff
> ==============================================================================
> --- llvm/trunk/test/CodeGen/X86/bss_pagealigned.ll (original)
> +++ llvm/trunk/test/CodeGen/X86/bss_pagealigned.ll Thu Mar 3 16:31:08 2011
> @@ -14,7 +14,7 @@
> ret void
> }
> @bm_pte = internal global [512 x %struct.kmem_cache_order_objects] zeroinitializer, section ".bss.page_aligned", align 4096
> -; CHECK: .section .bss.page_aligned,"aw", at nobits
> +; CHECK: .section ".bss.page_aligned","aw", at nobits
> ; CHECK-NEXT: .align 4096
> ; CHECK-NEXT: bm_pte:
> ; CHECK-NEXT: .zero 4096
>
> Modified: llvm/trunk/test/CodeGen/X86/global-sections-tls.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/global-sections-tls.ll?rev=126963&r1=126962&r2=126963&view=diff
> ==============================================================================
> --- llvm/trunk/test/CodeGen/X86/global-sections-tls.ll (original)
> +++ llvm/trunk/test/CodeGen/X86/global-sections-tls.ll Thu Mar 3 16:31:08 2011
> @@ -2,7 +2,7 @@
>
> ; PR4639
> @G1 = internal thread_local global i32 0 ;<i32*> [#uses=1]
> -; LINUX: .section .tbss,"awT", at nobits
> +; LINUX: .section ".tbss","awT", at nobits
> ; LINUX: G1:
>
>
>
> Modified: llvm/trunk/test/CodeGen/X86/global-sections.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/global-sections.ll?rev=126963&r1=126962&r2=126963&view=diff
> ==============================================================================
> --- llvm/trunk/test/CodeGen/X86/global-sections.ll (original)
> +++ llvm/trunk/test/CodeGen/X86/global-sections.ll Thu Mar 3 16:31:08 2011
> @@ -33,10 +33,10 @@
> ; DARWIN: _G3:
> ; DARWIN: .long _G1
>
> -; LINUX: .section .rodata,"a", at progbits
> +; LINUX: .section ".rodata","a", at progbits
> ; LINUX: .globl G3
>
> -; LINUX-SECTIONS: .section .rodata.G3,"a", at progbits
> +; LINUX-SECTIONS: .section ".rodata.G3","a", at progbits
> ; LINUX-SECTIONS: .globl G3
>
>
> @@ -66,7 +66,7 @@
> @"foo bar" = linkonce global i32 42
>
> ; LINUX: .type foo_20_bar, at object
> -; LINUX: .section .data.foo_20_bar,"aGw", at progbits,foo_20_bar,comdat
> +; LINUX: .section ".data.foo_20_bar","aGw", at progbits,foo_20_bar,comdat
> ; LINUX: .weak foo_20_bar
> ; LINUX: foo_20_bar:
>
> @@ -79,7 +79,7 @@
> @G6 = weak_odr unnamed_addr constant [1 x i8] c"\01"
>
> ; LINUX: .type G6, at object
> -; LINUX: .section .rodata.G6,"aG", at progbits,G6,comdat
> +; LINUX: .section ".rodata.G6","aG", at progbits,G6,comdat
> ; LINUX: .weak G6
> ; LINUX: G6:
> ; LINUX: .byte 1
> @@ -99,12 +99,12 @@
> ; DARWIN: _G7:
> ; DARWIN: .asciz "abcdefghi"
>
> -; LINUX: .section .rodata.str1.1,"aMS", at progbits,1
> +; LINUX: .section ".rodata.str1.1","aMS", at progbits,1
> ; LINUX: .globl G7
> ; LINUX: G7:
> ; LINUX: .asciz "abcdefghi"
>
> -; LINUX-SECTIONS: .section .rodata.G7,"aMS", at progbits,1
> +; LINUX-SECTIONS: .section ".rodata.G7","aMS", at progbits,1
> ; LINUX-SECTIONS: .globl G7
>
>
> @@ -114,7 +114,7 @@
> ; DARWIN: .globl _G8
> ; DARWIN: _G8:
>
> -; LINUX: .section .rodata.str2.2,"aMS", at progbits,2
> +; LINUX: .section ".rodata.str2.2","aMS", at progbits,2
> ; LINUX: .globl G8
> ; LINUX:G8:
>
> @@ -123,7 +123,7 @@
> ; DARWIN: .globl _G9
> ; DARWIN: _G9:
>
> -; LINUX: .section .rodata.str4.4,"aMS", at progbits,4
> +; LINUX: .section ".rodata.str4.4","aMS", at progbits,4
> ; LINUX: .globl G9
> ; LINUX:G9
>
>
> Modified: llvm/trunk/test/CodeGen/X86/pic_jumptable.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/pic_jumptable.ll?rev=126963&r1=126962&r2=126963&view=diff
> ==============================================================================
> --- llvm/trunk/test/CodeGen/X86/pic_jumptable.ll (original)
> +++ llvm/trunk/test/CodeGen/X86/pic_jumptable.ll Thu Mar 3 16:31:08 2011
> @@ -1,4 +1,4 @@
> -; RUN: llc< %s -relocation-model=pic -mtriple=i386-linux-gnu -asm-verbose=false | grep -F .text._Z3fooILi1EEvi,"axG", at progbits,_Z3fooILi1EEvi,comdat
> +; RUN: llc< %s -relocation-model=pic -mtriple=i386-linux-gnu -asm-verbose=false | grep -F .text._Z3fooILi1EEvi","axG", at progbits,_Z3fooILi1EEvi,comdat
> ; RUN: llc< %s -relocation-model=pic -mtriple=i686-apple-darwin -asm-verbose=false | FileCheck %s
> ; RUN: llc< %s -mtriple=x86_64-apple-darwin | not grep 'lJTI'
> ; rdar://6971437
>
> Modified: llvm/trunk/test/CodeGen/XCore/constants.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/XCore/constants.ll?rev=126963&r1=126962&r2=126963&view=diff
> ==============================================================================
> --- llvm/trunk/test/CodeGen/XCore/constants.ll (original)
> +++ llvm/trunk/test/CodeGen/XCore/constants.ll Thu Mar 3 16:31:08 2011
> @@ -1,6 +1,6 @@
> ; RUN: llc< %s -march=xcore -mcpu=xs1b-generic | FileCheck %s
>
> -; CHECK: .section .cp.rodata.cst4,"aMc", at progbits,4
> +; CHECK: .section ".cp.rodata.cst4","aMc", at progbits,4
> ; CHECK: .LCPI0_0:
> ; CHECK: .long 12345678
> ; CHECK: f:
>
> Modified: llvm/trunk/test/CodeGen/XCore/globals.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/XCore/globals.ll?rev=126963&r1=126962&r2=126963&view=diff
> ==============================================================================
> --- llvm/trunk/test/CodeGen/XCore/globals.ll (original)
> +++ llvm/trunk/test/CodeGen/XCore/globals.ll Thu Mar 3 16:31:08 2011
> @@ -60,33 +60,33 @@
> }
>
> @G1 = global i32 4712
> -; CHECK: .section .dp.data,"awd", at progbits
> +; CHECK: .section ".dp.data","awd", at progbits
> ; CHECK: G1:
>
> @G2 = global i32 0
> -; CHECK: .section .dp.bss,"awd", at nobits
> +; CHECK: .section ".dp.bss","awd", at nobits
> ; CHECK: G2:
>
> @G3 = unnamed_addr constant i32 9401
> -; CHECK: .section .cp.rodata.cst4,"aMc", at progbits,4
> +; CHECK: .section ".cp.rodata.cst4","aMc", at progbits,4
> ; CHECK: G3:
>
> @G4 = global i32* @G1
> -; CHECK: .section .dp.data,"awd", at progbits
> +; CHECK: .section ".dp.data","awd", at progbits
> ; CHECK: G4:
>
> @G5 = unnamed_addr constant i32* @G1
> -; CHECK: .section .cp.rodata,"ac", at progbits
> +; CHECK: .section ".cp.rodata","ac", at progbits
> ; CHECK: G5:
>
> @G6 = global i32* @G8
> -; CHECK: .section .dp.data,"awd", at progbits
> +; CHECK: .section ".dp.data","awd", at progbits
> ; CHECK: G6:
>
> @G7 = unnamed_addr constant i32* @G8
> -; CHECK: .section .cp.rodata,"ac", at progbits
> +; CHECK: .section ".cp.rodata","ac", at progbits
> ; CHECK: G7:
>
> @G8 = internal global i32 9312
> -; CHECK: .section .dp.data,"awd", at progbits
> +; CHECK: .section ".dp.data","awd", at progbits
> ; CHECK: G8:
>
> Modified: llvm/trunk/test/CodeGen/XCore/tls.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/XCore/tls.ll?rev=126963&r1=126962&r2=126963&view=diff
> ==============================================================================
> --- llvm/trunk/test/CodeGen/XCore/tls.ll (original)
> +++ llvm/trunk/test/CodeGen/XCore/tls.ll Thu Mar 3 16:31:08 2011
> @@ -8,7 +8,7 @@
> }
>
> @G = thread_local global i32 15
> -; CHECK: .section .dp.data,"awd", at progbits
> +; CHECK: .section ".dp.data","awd", at progbits
> ; CHECK: G:
> ; CHECK: .long 15
> ; CHECK: .long 15
>
> Added: llvm/trunk/test/MC/ELF/section-quoting.s
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/ELF/section-quoting.s?rev=126963&view=auto
> ==============================================================================
> --- llvm/trunk/test/MC/ELF/section-quoting.s (added)
> +++ llvm/trunk/test/MC/ELF/section-quoting.s Thu Mar 3 16:31:08 2011
> @@ -0,0 +1,10 @@
> +// RUN: llvm-mc -triple x86_64-pc-linux-gnu %s -o - | FileCheck %s
> +
> +// Test that we handle the strings like gas
> +.section bar-"foo"
> +.section "foo"
> +.section "foo bar"
> +
> +// CHECK: .section "bar-\"foo\""
> +// CHECK: .section "foo"
> +// CHECK: .section "foo bar"
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
--
Richard Osborne | XMOS
http://www.xmos.com
More information about the llvm-commits
mailing list