From fdd7f24186c7cd637e24c657367f270afb3ec431 Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Wed, 18 Jun 2008 16:07:00 +0200 Subject: [PATCH] cgraphunit.c (cgraph_expand_pending_functions): Give up at syntax errors. * 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 | 6 ++++++ gcc/cgraphunit.c | 4 ++-- gcc/testsuite/ChangeLog | 12 ++++++++++++ gcc/testsuite/gcc.dg/asm-wide-1.c | 3 --- gcc/testsuite/gcc.dg/weak/weak-6.c | 1 - gcc/testsuite/gcc.dg/weak/weak-7.c | 1 - gcc/testsuite/gcc.target/i386/sseregparm-2.c | 8 ++++---- gcc/testsuite/gcc.target/i386/sseregparm-8.c | 17 +++++++++++++++++ 8 files changed, 41 insertions(+), 11 deletions(-) create mode 100644 gcc/testsuite/gcc.target/i386/sseregparm-8.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 743b89b4a55..e6caaeb5071 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2008-06-16 Jan Hubicka + + * cgraphunit.c (cgraph_expand_pending_functions): Give up at + syntax errors. + (cgraph_analyze_function): Likewise. + 2008-06-16 Jan Hubicka * cgraph.h (cgraph_mark_if_needed): New function. diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c index dec22131712..b03913dc5bd 100644 --- a/gcc/cgraphunit.c +++ b/gcc/cgraphunit.c @@ -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 (); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index ff03e2f9668..6d2a7952d4c 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,15 @@ +2008-06-16 Jan Hubicka + + * 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 PR fortran/36517, fortran/36492 diff --git a/gcc/testsuite/gcc.dg/asm-wide-1.c b/gcc/testsuite/gcc.dg/asm-wide-1.c index 5cc6b0784bb..a42271fd4b1 100644 --- a/gcc/testsuite/gcc.dg/asm-wide-1.c +++ b/gcc/testsuite/gcc.dg/asm-wide-1.c @@ -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 } */ diff --git a/gcc/testsuite/gcc.dg/weak/weak-6.c b/gcc/testsuite/gcc.dg/weak/weak-6.c index 711003ccd03..3a660f71ba6 100644 --- a/gcc/testsuite/gcc.dg/weak/weak-6.c +++ b/gcc/testsuite/gcc.dg/weak/weak-6.c @@ -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 diff --git a/gcc/testsuite/gcc.dg/weak/weak-7.c b/gcc/testsuite/gcc.dg/weak/weak-7.c index 7c4a4dc7c25..031f830783f 100644 --- a/gcc/testsuite/gcc.dg/weak/weak-7.c +++ b/gcc/testsuite/gcc.dg/weak/weak-7.c @@ -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)); diff --git a/gcc/testsuite/gcc.target/i386/sseregparm-2.c b/gcc/testsuite/gcc.target/i386/sseregparm-2.c index 84bf58925c7..cca98ca82ba 100644 --- a/gcc/testsuite/gcc.target/i386/sseregparm-2.c +++ b/gcc/testsuite/gcc.target/i386/sseregparm-2.c @@ -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 index 00000000000..3a9d345a96b --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/sseregparm-8.c @@ -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" } */ +} -- 2.30.2