aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2009-02-03 18:26:28 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2009-02-03 18:26:28 +0100
commit754ccf7c7c9db6326708936242365c2df354ffae (patch)
treeb0a7814cdb76726cd1bc60f57e9f3dcfc99dd568 /gcc/testsuite
parenta36c33ebfc595336528780a71a2897d2b8dbdb94 (diff)
downloadgcc-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/ChangeLog8
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/decltype-38655.C2
-rw-r--r--gcc/testsuite/g++.dg/ext/fixed1.C4
-rw-r--r--gcc/testsuite/g++.dg/ext/fixed2.C2
-rw-r--r--gcc/testsuite/g++.dg/lookup/crash7.C2
-rw-r--r--gcc/testsuite/g++.dg/other/error25.C4
-rw-r--r--gcc/testsuite/gcc.dg/nofixed-point-2.c30
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 } */