diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 69e62cb621a..9b8529663f4 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2012-02-05 Richard Sandiford + + PR target/52125 + * lib/target-supports.exp (check_effective_target_mips_rel): New. + * gcc.dg/pr48774.c: Skip on MIPS REL targets. + 2012-02-05 Richard Sandiford * lib/target-supports.exp (check_effective_target_mips_llsc): New. diff --git a/gcc/testsuite/gcc.dg/pr48774.c b/gcc/testsuite/gcc.dg/pr48774.c index 91ce361ccb3..abd8c231932 100644 --- a/gcc/testsuite/gcc.dg/pr48774.c +++ b/gcc/testsuite/gcc.dg/pr48774.c @@ -1,5 +1,6 @@ /* PR target/48774 */ /* { dg-do run } */ +/* { dg-skip-if "PR 52125" { mips_rel } { "*" } { "" } } */ /* { dg-options "-O2 -funroll-loops" } */ extern void abort (void); diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index ca101438cc8..518d654ee90 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -910,6 +910,20 @@ proc check_effective_target_mips_llsc { } { }] } +# Return true if the target is a MIPS target that uses in-place relocations. + +proc check_effective_target_mips_rel { } { + if { ![istarget mips*-*-*] } { + return 0 + } + return [check_no_compiler_messages mips_rel object { + #if (defined _ABIN32 && _MIPS_SIM == _ABIN32) \ + || (defined _ABI64 && _MIPS_SIM == _ABI64) + #error FOO + #endif + }] +} + # Return 1 if the current multilib does not generate PIC by default. proc check_effective_target_nonpic { } {