Looking closer into the gcc.target/mips/interrupt_handler-[23].c failures FAIL: gcc.target/mips/interrupt_handler-2.c scan-assembler \\t\\\\.cfi_restore 64\\n FAIL: gcc.target/mips/interrupt_handler-2.c scan-assembler \\t\\\\.cfi_restore 65\\n
and many more for interrupt_handler-3.c, I now understand what's going on: .cfi* directives are only emitted if dwarf2cfi.c (dwarf2out_do_cfi_asm) returns true, but if MIPS_DEBUGGING_INFO is defined (as is the case in iris6.h), it returns false. Thus, the tests are meaningless since even the scan-assembler-not tests only succeed because no .cfi* directives whatsoever are present in the assembler output. XFAILing them with dg-xfail-if doesn't work: XPASS: gcc.target/mips/interrupt_handler-2.c (test for excess errors) FAIL: gcc.target/mips/interrupt_handler-2.c scan-assembler \t\\.cfi_restore 64\n FAIL: gcc.target/mips/interrupt_handler-2.c scan-assembler \t\\.cfi_restore 65\n and adding xfail's to each and every dg-final seems pointless, especially given that the scan-assembler-not tests only pass by accident. I therefore just skip the tests on IRIX. Tested with the appropriate runtest invocation on mips-sgi-irix6.5, installed on mainline. Rainer 2012-02-24 Rainer Orth <r...@cebitec.uni-bielefeld.de> PR target/50580 * gcc.target/mips/interrupt_handler-2.c: Skip on mips-sgi-irix6*. * gcc.target/mips/interrupt_handler-3.c: Likewise.
# HG changeset patch # Parent 5002952adc32431a8c1084a301aa929640d70870 [testsuite] Skip gcc.target/mips/interrupt_handler-[23].c on IRIX (PR target/50580) diff --git a/gcc/testsuite/gcc.target/mips/interrupt_handler-2.c b/gcc/testsuite/gcc.target/mips/interrupt_handler-2.c --- a/gcc/testsuite/gcc.target/mips/interrupt_handler-2.c +++ b/gcc/testsuite/gcc.target/mips/interrupt_handler-2.c @@ -4,6 +4,7 @@ /* { dg-final { scan-assembler "\t\\\.cfi_restore 65\n" } } */ /* { dg-final { scan-assembler-not "\\\.cfi_def_cfa( |\t)" } } */ /* { dg-final { scan-assembler-not "\\\.cfi_def_cfa_register( |\t)" } } */ +/* { dg-skip-if "PR target/50580" { mips-sgi-irix6* } } */ extern void f (void); diff --git a/gcc/testsuite/gcc.target/mips/interrupt_handler-3.c b/gcc/testsuite/gcc.target/mips/interrupt_handler-3.c --- a/gcc/testsuite/gcc.target/mips/interrupt_handler-3.c +++ b/gcc/testsuite/gcc.target/mips/interrupt_handler-3.c @@ -23,6 +23,7 @@ /* { dg-final { scan-assembler "\t\\\.cfi_def_cfa_offset 0\n" } } */ /* { dg-final { scan-assembler-not "\\\.cfi_def_cfa( |\t)" } } */ /* { dg-final { scan-assembler-not "\\\.cfi_def_cfa_register( |\t)" } } */ +/* { dg-skip-if "PR target/50580" { mips-sgi-irix6* } } */ extern void f (void);
-- ----------------------------------------------------------------------------- Rainer Orth, Center for Biotechnology, Bielefeld University