diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 456cb4519fa..c399e8030c7 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,19 @@ +2010-03-01 Rainer Orth + + * lib/target-supports.exp (check_effective_target_ucn_nocache): + New function. + (check_effective_target_ucn): Likewise. + + * g++.dg/other/ucnid-1.C: Don't XFAIL on *-*-solaris2.*, but skip + if !ucn. + * gcc.dg/ucnid-2.c: Likewise. + * gcc.dg/ucnid-3.c: Likewise. + * gcc.dg/ucnid-4.c: Likewise. + * gcc.dg/ucnid-11.c: Likewise. + * gcc.dg/ucnid-12.c: Likewise. + * gcc.dg/ucnid-6.c: Skip if !ucn. + * gcc.dg/ucnid-9.c: Likewise. + 2010-03-01 Rainer Orth * gcc.target/i386/pr32000-2.c: Add missing include and exclude diff --git a/gcc/testsuite/g++.dg/other/ucnid-1.C b/gcc/testsuite/g++.dg/other/ucnid-1.C index edc39c973b9..9a2728f25bb 100644 --- a/gcc/testsuite/g++.dg/other/ucnid-1.C +++ b/gcc/testsuite/g++.dg/other/ucnid-1.C @@ -1,6 +1,7 @@ /* { dg-do run } */ /* { dg-options "-fextended-identifiers" } */ -/* { dg-xfail-if "" { powerpc-ibm-aix* *-*-solaris2.* } { "*" } { "" } } */ +/* { dg-xfail-if "" { powerpc-ibm-aix* } { "*" } { "" } } */ +/* { dg-skip-if "" { ! ucn } { "*" } { "" } } */ #include int \u00C0(void) { return 1; } diff --git a/gcc/testsuite/gcc.dg/ucnid-11.c b/gcc/testsuite/gcc.dg/ucnid-11.c index 056017ee988..3faa4927a6f 100644 --- a/gcc/testsuite/gcc.dg/ucnid-11.c +++ b/gcc/testsuite/gcc.dg/ucnid-11.c @@ -1,5 +1,6 @@ /* { dg-do run } */ -/* { dg-xfail-if "" { powerpc-ibm-aix* *-*-solaris2.* } { "*" } { "" } } */ +/* { dg-xfail-if "" { powerpc-ibm-aix* } { "*" } { "" } } */ +/* { dg-skip-if "" { ! ucn } { "*" } { "" } } */ /* { dg-skip-if "-fdata-sections not supported" { { hppa*-*-hpux* } && { ! hppa*64*-*-* } } { "*" } { "" } } */ /* { dg-options "-std=c99 -fextended-identifiers -fdata-sections" } */ diff --git a/gcc/testsuite/gcc.dg/ucnid-12.c b/gcc/testsuite/gcc.dg/ucnid-12.c index 3d84ad0d3e0..9ea2836b795 100644 --- a/gcc/testsuite/gcc.dg/ucnid-12.c +++ b/gcc/testsuite/gcc.dg/ucnid-12.c @@ -1,5 +1,6 @@ /* { dg-do run } */ -/* { dg-xfail-if "" { powerpc-ibm-aix* *-*-solaris2.* } { "*" } { "" } } */ +/* { dg-xfail-if "" { powerpc-ibm-aix* } { "*" } { "" } } */ +/* { dg-skip-if "" { ! ucn } { "*" } { "" } } */ /* { dg-skip-if "-ffunction-sections not supported" { { hppa*-*-hpux* } && { ! hppa*64*-*-* } } { "*" } { "" } } */ /* { dg-options "-std=c99 -fextended-identifiers -ffunction-sections" } */ diff --git a/gcc/testsuite/gcc.dg/ucnid-2.c b/gcc/testsuite/gcc.dg/ucnid-2.c index d8e9186bb86..9cbc7504cec 100644 --- a/gcc/testsuite/gcc.dg/ucnid-2.c +++ b/gcc/testsuite/gcc.dg/ucnid-2.c @@ -1,5 +1,6 @@ /* { dg-do run } */ -/* { dg-xfail-if "" { powerpc-ibm-aix* *-*-solaris2.* } { "*" } { "" } } */ +/* { dg-xfail-if "" { powerpc-ibm-aix* } { "*" } { "" } } */ +/* { dg-skip-if "" { ! ucn } { "*" } { "" } } */ /* { dg-options "-std=c99 -fextended-identifiers" } */ void abort (void); diff --git a/gcc/testsuite/gcc.dg/ucnid-3.c b/gcc/testsuite/gcc.dg/ucnid-3.c index 1f3481bf376..5ea0d03bca1 100644 --- a/gcc/testsuite/gcc.dg/ucnid-3.c +++ b/gcc/testsuite/gcc.dg/ucnid-3.c @@ -1,5 +1,6 @@ /* { dg-do run } */ -/* { dg-xfail-if "" { powerpc-ibm-aix* *-*-solaris2.* } { "*" } { "" } } */ +/* { dg-xfail-if "" { powerpc-ibm-aix* } { "*" } { "" } } */ +/* { dg-skip-if "" { ! ucn } { "*" } { "" } } */ /* { dg-options "-std=c99 -fextended-identifiers" } */ void abort (void); diff --git a/gcc/testsuite/gcc.dg/ucnid-4.c b/gcc/testsuite/gcc.dg/ucnid-4.c index 0f1a12875c8..a18e6e302a6 100644 --- a/gcc/testsuite/gcc.dg/ucnid-4.c +++ b/gcc/testsuite/gcc.dg/ucnid-4.c @@ -1,5 +1,6 @@ /* { dg-do run } */ -/* { dg-xfail-if "" { powerpc-ibm-aix* *-*-solaris2.* } { "*" } { "" } } */ +/* { dg-xfail-if "" { powerpc-ibm-aix* } { "*" } { "" } } */ +/* { dg-skip-if "" { ! ucn } { "*" } { "" } } */ /* { dg-options "-std=c99 -fextended-identifiers" } */ void abort (void); diff --git a/gcc/testsuite/gcc.dg/ucnid-6.c b/gcc/testsuite/gcc.dg/ucnid-6.c index 5363c0396a5..5713a84f265 100644 --- a/gcc/testsuite/gcc.dg/ucnid-6.c +++ b/gcc/testsuite/gcc.dg/ucnid-6.c @@ -1,5 +1,6 @@ /* { dg-do run } */ /* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "*" } { "" } } */ +/* { dg-skip-if "" { ! ucn } { "*" } { "" } } */ /* { dg-options "-std=c99 -fextended-identifiers -save-temps" } */ void abort (void); diff --git a/gcc/testsuite/gcc.dg/ucnid-9.c b/gcc/testsuite/gcc.dg/ucnid-9.c index c563b91106d..a6f91184a98 100644 --- a/gcc/testsuite/gcc.dg/ucnid-9.c +++ b/gcc/testsuite/gcc.dg/ucnid-9.c @@ -2,6 +2,7 @@ conversions. */ /* { dg-do run } */ /* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "*" } { "" } } */ +/* { dg-skip-if "" { ! ucn } { "*" } { "" } } */ /* { dg-options "-std=c99 -fextended-identifiers -fexec-charset=ISO-8859-1" } */ /* { dg-require-iconv "ISO-8859-1" } */ diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index df3158a67b0..924a595d1d8 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -1,4 +1,4 @@ -# Copyright (C) 1999, 2001, 2003, 2004, 2005, 2006, 2007, 2008, 2009 +# Copyright (C) 1999, 2001, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 # Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify @@ -1336,7 +1336,7 @@ proc check_effective_target_dfp { } { } # Return 1 if the target supports linking and executing Decimal Floating -# Point, # 0 otherwise. +# Point, 0 otherwise. # # This won't change for different subtargets so cache the result. @@ -1346,6 +1346,32 @@ proc check_effective_target_dfprt { } { }] } +# Return 1 if the target supports compiling and assembling UCN, 0 otherwise. + +proc check_effective_target_ucn_nocache { } { + # -std=c99 is only valid for C + if [check_effective_target_c] { + set ucnopts "-std=c99" + } + append ucnopts " -fextended-identifiers" + verbose "check_effective_target_ucn_nocache: compiling source" 2 + set ret [check_no_compiler_messages_nocache ucn object { + int \u00C0; + } $ucnopts] + verbose "check_effective_target_ucn_nocache: returning $ret" 2 + return $ret +} + +# Return 1 if the target supports compiling and assembling UCN, 0 otherwise. +# +# This won't change for different subtargets, so cache the result. + +proc check_effective_target_ucn { } { + return [check_cached_effective_target ucn { + check_effective_target_ucn_nocache + }] +} + # Return 1 if the target needs a command line argument to enable a SIMD # instruction set.