# REQUIRES: mips
#
# Check warning and errors in case of input
# files with incompatible floating point ABI flags.
# RUN: yaml2obj --docnum=1 %s -o %t-dbl.o
# RUN: yaml2obj --docnum=2 %s -o %t-sgl.o
# RUN: yaml2obj --docnum=3 %s -o %t-soft.o
# RUN: yaml2obj --docnum=4 %s -o %t-fp64.o
# RUN: yaml2obj --docnum=5 %s -o %t-fp64old.o
# RUN: yaml2obj --docnum=6 %s -o %t-fp64a.o
# RUN: yaml2obj --docnum=7 %s -o %t-fpxx.o
# RUN: not ld.lld %t-dbl.o %t-fp64.o -shared -o /dev/null 2>&1 \
# RUN: | FileCheck -check-prefixes=DBLFP64 %s
# RUN: not ld.lld %t-sgl.o %t-fp64old.o -shared -o /dev/null 2>&1 \
# RUN: | FileCheck -check-prefixes=SGLFP64OLD %s
# RUN: not ld.lld %t-soft.o %t-fp64a.o -shared -o /dev/null 2>&1 \
# RUN: | FileCheck -check-prefixes=SOFTFP64A %s
# RUN: not ld.lld %t-sgl.o %t-fpxx.o -shared -o /dev/null 2>&1 \
# RUN: | FileCheck -check-prefixes=SGLFPXX %s
# DBLFP64: {{.*}}fp64.o: floating point ABI '-mgp32 -mfp64' is incompatible with target floating point ABI '-mdouble-float'
# SGLFP64OLD: {{.*}}fp64old.o: floating point ABI '-mgp32 -mfp64 (old)' is incompatible with target floating point ABI '-msingle-float'
# SOFTFP64A: {{.*}}fp64a.o: floating point ABI '-mgp32 -mfp64 -mno-odd-spreg' is incompatible with target floating point ABI '-msoft-float'
# SGLFPXX: {{.*}}fpxx.o: floating point ABI '-mfpxx' is incompatible with target floating point ABI '-msingle-float'
# dbl.o
--- !ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2MSB
Type: ET_REL
Machine: EM_MIPS
Flags: [ EF_MIPS_ARCH_64 ]
Sections:
- Name: .MIPS.abiflags
Type: SHT_MIPS_ABIFLAGS
ISA: MIPS64
ASEs: []
FpABI: FP_DOUBLE
GPRSize: REG_64
CPR1Size: REG_64
CPR2Size: REG_NONE
# sgl.o
--- !ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2MSB
Type: ET_REL
Machine: EM_MIPS
Flags: [ EF_MIPS_ARCH_64 ]
Sections:
- Name: .MIPS.abiflags
Type: SHT_MIPS_ABIFLAGS
ISA: MIPS64
ASEs: []
FpABI: FP_SINGLE
GPRSize: REG_64
CPR1Size: REG_64
CPR2Size: REG_NONE
# soft.o
--- !ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2MSB
Type: ET_REL
Machine: EM_MIPS
Flags: [ EF_MIPS_ARCH_64 ]
Sections:
- Name: .MIPS.abiflags
Type: SHT_MIPS_ABIFLAGS
ISA: MIPS64
ASEs: []
FpABI: FP_SOFT
GPRSize: REG_64
CPR1Size: REG_64
CPR2Size: REG_NONE
# fp64.o
--- !ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2MSB
Type: ET_REL
Machine: EM_MIPS
Flags: [ EF_MIPS_ARCH_64 ]
Sections:
- Name: .MIPS.abiflags
Type: SHT_MIPS_ABIFLAGS
ISA: MIPS64
ASEs: []
FpABI: FP_64
GPRSize: REG_64
CPR1Size: REG_64
CPR2Size: REG_NONE
# fp64old.o
--- !ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2MSB
Type: ET_REL
Machine: EM_MIPS
Flags: [ EF_MIPS_ARCH_64 ]
Sections:
- Name: .MIPS.abiflags
Type: SHT_MIPS_ABIFLAGS
ISA: MIPS64
ASEs: []
FpABI: FP_OLD_64
GPRSize: REG_64
CPR1Size: REG_64
CPR2Size: REG_NONE
# fp64a.o
--- !ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2MSB
Type: ET_REL
Machine: EM_MIPS
Flags: [ EF_MIPS_ARCH_64 ]
Sections:
- Name: .MIPS.abiflags
Type: SHT_MIPS_ABIFLAGS
ISA: MIPS64
ASEs: []
FpABI: FP_64A
GPRSize: REG_64
CPR1Size: REG_64
CPR2Size: REG_NONE
# fpxx.o
--- !ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2MSB
Type: ET_REL
Machine: EM_MIPS
Flags: [ EF_MIPS_ARCH_64 ]
Sections:
- Name: .MIPS.abiflags
Type: SHT_MIPS_ABIFLAGS
ISA: MIPS64
ASEs: []
FpABI: FP_XX
GPRSize: REG_64
CPR1Size: REG_64
CPR2Size: REG_NONE