Files
clang-p2996/llvm/test/CodeGen/SPARC/constructor.ll
Rainer Orth d9993484ee [Sparc] Don't use SunStyleELFSectionSwitchSyntax
As discussed in D85414 <https://reviews.llvm.org/D85414>, two tests
currently `FAIL` on Sparc since that backend uses the Sun assembler syntax
for the `.section` directive, controlled by
`SunStyleELFSectionSwitchSyntax`.

Instead of adapting the affected tests, this patch changes that default.
The internal assembler still accepts both forms as input, only the output
syntax is affected.

Current support for the Sun syntax is cursory at best: the built-in
assembler cannot even assemble some of the directives emitted by GCC, and
the set supported by the Solaris assembler is even larger: SPARC Assembly
Language Reference Manual, 3.4 Pseudo-Op Attributes
<https://docs.oracle.com/cd/E37838_01/html/E61063/gmabi.html#scrolltoc>.

A few Sparc test cases need to be adjusted. At the same time, the patch
fixes the failures from D85414 <https://reviews.llvm.org/D85414>.

Tested on `sparcv9-sun-solaris2.11`.

Differential Revision: https://reviews.llvm.org/D85415
2022-08-17 12:59:29 +02:00

30 lines
871 B
LLVM

; RUN: llc -mtriple sparc-sun-solaris2.11 -use-ctors < %s | FileCheck --check-prefix=CTOR %s
; RUN: llc -mtriple sparc-sun-solaris2.11 < %s | FileCheck --check-prefix=INIT-ARRAY %s
@llvm.global_ctors = appending global [2 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @f, i8* null}, { i32, void ()*, i8* } { i32 15, void ()* @g, i8* @v }]
@v = weak_odr global i8 0
define void @f() {
entry:
ret void
}
define void @g() {
entry:
ret void
}
; CTOR: .section .ctors,"aw"
; CTOR-NEXT: .p2align 2
; CTOR-NEXT: .word f
; CTOR-NEXT: .section .ctors.65520,"aGw"
; CTOR-NEXT: .p2align 2
; CTOR-NEXT: .word g
; INIT-ARRAY: .section .init_array.15,"aGw"
; INIT-ARRAY-NEXT: .p2align 2
; INIT-ARRAY-NEXT: .word g
; INIT-ARRAY-NEXT: .section .init_array,"aw"
; INIT-ARRAY-NEXT: .p2align 2
; INIT-ARRAY-NEXT: .word f