cgraphunit.c (cgraph_expand_pending_functions): Give up at syntax errors.
authorJan Hubicka <jh@suse.cz>
Wed, 18 Jun 2008 14:07:00 +0000 (16:07 +0200)
committerJan Hubicka <hubicka@gcc.gnu.org>
Wed, 18 Jun 2008 14:07:00 +0000 (14:07 +0000)
* cgraphunit.c (cgraph_expand_pending_functions): Give up at
syntax errors.
(cgraph_analyze_function): Likewise.
* gcc.dg/asm-wide-1.c: Do not require extra errors we output
confused by earlier errors.
* gcc.target/i386/sseregparm-2.c: Remove markers for errors not
output at parsing time.
* gcc.target/i386/sseregparm-8.c: Move here compile time errors
from gcc.target/i386/sseregparm-2.c.
* gcc.dg/weak/weak-6.c: Do not require extra errors we output
confused by earlier errors.
* gcc.dg/weak/weak-7.c: Likewise.

From-SVN: r136895

gcc/ChangeLog
gcc/cgraphunit.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/asm-wide-1.c
gcc/testsuite/gcc.dg/weak/weak-6.c
gcc/testsuite/gcc.dg/weak/weak-7.c
gcc/testsuite/gcc.target/i386/sseregparm-2.c
gcc/testsuite/gcc.target/i386/sseregparm-8.c [new file with mode: 0644]

index 743b89b4a5527b422b41a260c5e6992630cc6440..e6caaeb5071b908dd60fb52e03be72c7a15b829e 100644 (file)
@@ -1,3 +1,9 @@
+2008-06-16  Jan Hubicka  <jh@suse.cz>
+
+       * cgraphunit.c (cgraph_expand_pending_functions): Give up at
+       syntax errors.
+       (cgraph_analyze_function): Likewise.
+
 2008-06-16  Jan Hubicka  <jh@suse.cz>
 
        * cgraph.h (cgraph_mark_if_needed): New function.
index dec2213171277aadcdfa3d53c26b428fff40fc0b..b03913dc5bd8240c9a2030d82b4b59458ffacd89 100644 (file)
@@ -496,7 +496,7 @@ cgraph_assemble_pending_functions (void)
 {
   bool output = false;
 
-  if (flag_unit_at_a_time)
+  if (flag_unit_at_a_time || errorcount || sorrycount)
     return false;
 
   cgraph_output_pending_asms ();
@@ -857,7 +857,7 @@ cgraph_analyze_function (struct cgraph_node *node)
   cgraph_lower_function (node);
   node->analyzed = true;
 
-  if (!flag_unit_at_a_time)
+  if (!flag_unit_at_a_time && !sorrycount && !errorcount)
     {
       bitmap_obstack_initialize (NULL);
       tree_register_cfg_hooks ();
index ff03e2f966802e86fe206c6c76e2edcd231b5bc1..6d2a7952d4c0818dd4ac6eb646db4990cd082174 100644 (file)
@@ -1,3 +1,15 @@
+2008-06-16  Jan Hubicka  <jh@suse.cz>
+
+       * gcc.dg/asm-wide-1.c: Do not require extra errors we output
+       confused by earlier errors.
+       * gcc.target/i386/sseregparm-2.c: Remove markers for errors not
+       output at parsing time.
+       * gcc.target/i386/sseregparm-8.c: Move here compile time errors
+       from gcc.target/i386/sseregparm-2.c.
+       * gcc.dg/weak/weak-6.c: Do not require extra errors we output
+       confused by earlier errors.
+       * gcc.dg/weak/weak-7.c: Likewise.
+
 2008-06-18  Daniel Kraft  <d@domob.eu>
 
        PR fortran/36517, fortran/36492
index 5cc6b0784bbf3e230bcdd9c2679d3b3d875faca3..a42271fd4b1a430cf78d2e73bf0a329598de326b 100644 (file)
@@ -30,6 +30,3 @@ f (void)
 /* { dg-error "output" "output" { target *-*-* } 16 } */
 /* { dg-error "output" "output" { target *-*-* } 18 } */
 /* { dg-error "output" "output" { target *-*-* } 20 } */
-/* { dg-warning "match" "match" { target *-*-* } 21 } */
-/* { dg-error "register" "register" { target *-*-* } 23 } */
-/* { dg-error "register" "register" { target *-*-* } 25 } */
index 711003ccd03756064ebcba6130ea8d639494fdc5..3a660f71ba6e5753ce77d6edef2b6392c7ebd36b 100644 (file)
@@ -3,5 +3,4 @@
 
 extern void * foo (void);
 void * foo (void) { return (void *)foo; } /* { dg-error "precede" } */
-/* { dg-error "function pointer" "pointer conversion" { target *-*-* } 5 } */
 #pragma weak foo
index 7c4a4dc7c2583739dc2437acc1503fb4e1123532..031f830783f6db335af12790c8ed72243aad7252 100644 (file)
@@ -3,5 +3,4 @@
 
 extern void * foo (void);
 void * foo (void) { return (void *)foo; } /* { dg-error "precede" } */
-/* { dg-error "function pointer" "pointer conversion" { target *-*-* } 5 } */
 extern void * foo (void) __attribute__((weak));
index 84bf58925c70fe705d38ce5e68d6ad4d3ff0bcda..cca98ca82ba781ad24366b08850d945a8d1afda6 100644 (file)
@@ -10,8 +10,8 @@ extern double d;
 extern float f;
 void test(void)
 {
-  f = essef(f); /* { dg-error "SSE" } */
-  d = essed(d); /* { dg-error "SSE" } */
-  f = ssef(f); /* { dg-error "SSE" } */
-  d = ssed(d); /* { dg-error "SSE" } */
+  f = essef(f);
+  d = essed(d);
+  f = ssef(f);
+  d = ssed(d);
 }
diff --git a/gcc/testsuite/gcc.target/i386/sseregparm-8.c b/gcc/testsuite/gcc.target/i386/sseregparm-8.c
new file mode 100644 (file)
index 0000000..3a9d345
--- /dev/null
@@ -0,0 +1,17 @@
+/* { dg-do compile } */
+/* { dg-options "-mno-sse" } */
+/* { dg-require-effective-target ilp32 } */
+
+float essef(float) __attribute__((sseregparm));
+double essed(double) __attribute__((sseregparm));
+float __attribute__((sseregparm)) ssef(float f);
+double __attribute__((sseregparm)) ssed(double d);
+extern double d;
+extern float f;
+void test(void)
+{
+  f = essef(f); /* { dg-error "SSE" } */
+  d = essed(d); /* { dg-error "SSE" } */
+  f = ssef(f); /* { dg-error "SSE" } */
+  d = ssed(d); /* { dg-error "SSE" } */
+}