diff options
author | Jakub Jelinek <jakub@redhat.com> | 2009-02-03 18:26:28 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2009-02-03 18:26:28 +0100 |
commit | 754ccf7c7c9db6326708936242365c2df354ffae (patch) | |
tree | b0a7814cdb76726cd1bc60f57e9f3dcfc99dd568 /gcc/testsuite | |
parent | a36c33ebfc595336528780a71a2897d2b8dbdb94 (diff) | |
download | gcc-754ccf7c7c9db6326708936242365c2df354ffae.zip gcc-754ccf7c7c9db6326708936242365c2df354ffae.tar.gz gcc-754ccf7c7c9db6326708936242365c2df354ffae.tar.bz2 |
re PR inline-asm/39059 (ICE with fixed-point type in inline-asm)
PR inline-asm/39059
* c-parser.c (c_parser_postfix_expression): If fixed point is not
supported, don't accept FIXED_CSTs.
* c-decl.c (finish_declspecs): Error if fixed point is not supported
and _Sat is used without _Fract/_Accum. Set specs->type to
integer_type_node for cts_fract/cts_accum if fixed point is not
supported.
* parser.c (cp_parser_primary_expression): Reject FIXED_CSTs.
* gcc.dg/nofixed-point-2.c: New test.
* g++.dg/ext/fixed1.C: Adjust expected diagnostics.
* g++.dg/ext/fixed2.C: Likewise.
* g++.dg/other/error25.C: Likewise.
* g++.dg/lookup/crash7.C: Likewise.
* g++.dg/cpp0x/decltype-38655.C: Likewise.
From-SVN: r143900
Diffstat (limited to 'gcc/testsuite')
-rw-r--r-- | gcc/testsuite/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp0x/decltype-38655.C | 2 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/ext/fixed1.C | 4 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/ext/fixed2.C | 2 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/lookup/crash7.C | 2 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/other/error25.C | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/nofixed-point-2.c | 30 |
7 files changed, 45 insertions, 7 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 128a762..4062c86 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,13 @@ 2009-02-03 Jakub Jelinek <jakub@redhat.com> + PR inline-asm/39059 + * gcc.dg/nofixed-point-2.c: New test. + * g++.dg/ext/fixed1.C: Adjust expected diagnostics. + * g++.dg/ext/fixed2.C: Likewise. + * g++.dg/other/error25.C: Likewise. + * g++.dg/lookup/crash7.C: Likewise. + * g++.dg/cpp0x/decltype-38655.C: Likewise. + PR c++/39056 * g++.dg/cpp0x/initlist13.C: New test. diff --git a/gcc/testsuite/g++.dg/cpp0x/decltype-38655.C b/gcc/testsuite/g++.dg/cpp0x/decltype-38655.C index 689be9f..3b8455b 100644 --- a/gcc/testsuite/g++.dg/cpp0x/decltype-38655.C +++ b/gcc/testsuite/g++.dg/cpp0x/decltype-38655.C @@ -1,4 +1,4 @@ // PR c++/38655 // { dg-options "" } -__decltype(0r)* p = 1; // { dg-error "unnamed-fixed" } +__decltype(0r)* p = 1; // { dg-error "not supported|invalid" } diff --git a/gcc/testsuite/g++.dg/ext/fixed1.C b/gcc/testsuite/g++.dg/ext/fixed1.C index 9ee2780..5a479d6 100644 --- a/gcc/testsuite/g++.dg/ext/fixed1.C +++ b/gcc/testsuite/g++.dg/ext/fixed1.C @@ -3,6 +3,6 @@ template<int> struct A {}; -template<typename> struct B : A<sizeof(0=0r)> {}; +template<typename> struct B : A<sizeof(0=0r)> {}; // { dg-error "not supported" } -template<typename> struct C : A<sizeof(0=0r)> {}; +template<typename> struct C : A<sizeof(0=0r)> {}; // { dg-error "not supported" } diff --git a/gcc/testsuite/g++.dg/ext/fixed2.C b/gcc/testsuite/g++.dg/ext/fixed2.C index a4766eb..1ee5538 100644 --- a/gcc/testsuite/g++.dg/ext/fixed2.C +++ b/gcc/testsuite/g++.dg/ext/fixed2.C @@ -3,5 +3,5 @@ void foo() { - throw 0r; + throw 0r; // { dg-error "not supported" } } diff --git a/gcc/testsuite/g++.dg/lookup/crash7.C b/gcc/testsuite/g++.dg/lookup/crash7.C index 1117667..a3389a0 100644 --- a/gcc/testsuite/g++.dg/lookup/crash7.C +++ b/gcc/testsuite/g++.dg/lookup/crash7.C @@ -5,5 +5,5 @@ void foo(int); void bar() { - foo(1r); // { dg-error "unnamed-fixed" } + foo(1r); // { dg-error "not supported" } } diff --git a/gcc/testsuite/g++.dg/other/error25.C b/gcc/testsuite/g++.dg/other/error25.C index 3bd9842..b5b665a 100644 --- a/gcc/testsuite/g++.dg/other/error25.C +++ b/gcc/testsuite/g++.dg/other/error25.C @@ -1,5 +1,5 @@ // PR c++/35338 // { dg-options "" } -int i = 0r; // { dg-error "unnamed-fixed" } -bool b = !0r; // { dg-error "0.0|argument" } +int i = 0r; // { dg-error "not supported" } +bool b = !0r; // { dg-error "not supported" } diff --git a/gcc/testsuite/gcc.dg/nofixed-point-2.c b/gcc/testsuite/gcc.dg/nofixed-point-2.c new file mode 100644 index 0000000..97bbf70 --- /dev/null +++ b/gcc/testsuite/gcc.dg/nofixed-point-2.c @@ -0,0 +1,30 @@ +/* PR inline-asm/39059 */ +/* { dg-do compile { target {! fixed_point} } } */ +/* { dg-options "-std=gnu99" } */ + +void +f1 (void) +{ + asm ("" : : "r" (0r)); /* { dg-error "not supported" "reject fixed-point" } */ +} + +__typeof (0r) /* { dg-error "not supported" "reject fixed-point" } */ +b2 (void) +{ + return 0r; /* { dg-error "not supported" "reject fixed-point" } */ +} + +_Accum /* { dg-error "not supported" "reject fixed-point" } */ +f3 (void) +{ + return 0k; /* { dg-error "not supported" "reject fixed-point" } */ +} + +_Sat +f4 (void) /* { dg-error "not supported" "reject fixed-point" } */ +{ + return 0k; /* { dg-error "not supported" "reject fixed-point" } */ +} + +/* { dg-warning "defaults to" "" { target *-*-* } 13 } */ +/* { dg-error "is used without" "" { target *-*-* } 24 } */ |