# 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