aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2008-06-18 16:07:00 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2008-06-18 14:07:00 +0000
commitfdd7f24186c7cd637e24c657367f270afb3ec431 (patch)
tree878438cf2cf81bfdb9c8550a7066b87ba738e0eb /gcc
parentd28480827e3674794d7d6793148c737d491bc9ba (diff)
downloadgcc-fdd7f24186c7cd637e24c657367f270afb3ec431.zip
gcc-fdd7f24186c7cd637e24c657367f270afb3ec431.tar.gz
gcc-fdd7f24186c7cd637e24c657367f270afb3ec431.tar.bz2
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/cgraphunit.c4
-rw-r--r--gcc/testsuite/ChangeLog12
-rw-r--r--gcc/testsuite/gcc.dg/asm-wide-1.c3
-rw-r--r--gcc/testsuite/gcc.dg/weak/weak-6.c1
-rw-r--r--gcc/testsuite/gcc.dg/weak/weak-7.c1
-rw-r--r--gcc/testsuite/gcc.target/i386/sseregparm-2.c8
-rw-r--r--gcc/testsuite/gcc.target/i386/sseregparm-8.c17
8 files changed, 41 insertions, 11 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 743b89b..e6caaeb 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
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.
* cgraphunit.c (cgraph_mark_if_needed): New function.
* c-decl.c (duplicate_decl): Use it.
diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c
index dec2213..b03913d 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 ff03e2f..6d2a795 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -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
diff --git a/gcc/testsuite/gcc.dg/asm-wide-1.c b/gcc/testsuite/gcc.dg/asm-wide-1.c
index 5cc6b07..a42271f 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 711003c..3a660f7 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 7c4a4dc..031f830 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 84bf589..cca98ca 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 0000000..3a9d345
--- /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" } */
+}