aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorVolker Reichelt <reichelt@igpm.rwth-aachen.de>2006-04-20 16:19:21 +0000
committerVolker Reichelt <reichelt@gcc.gnu.org>2006-04-20 16:19:21 +0000
commit06866a732572672982d3a22fdec8ae6ac700d281 (patch)
tree47c0c5b95d88fc3848ab235c8fef9c9b3a0e6a72 /gcc
parentbfc646bfc0fe67e0665c2cb2d350339cc10f0b7d (diff)
downloadgcc-06866a732572672982d3a22fdec8ae6ac700d281.zip
gcc-06866a732572672982d3a22fdec8ae6ac700d281.tar.gz
gcc-06866a732572672982d3a22fdec8ae6ac700d281.tar.bz2
re PR c++/26789 (ICE on incomplete struct with -fmudflap)
PR mudflap/26789 * tree-mudflap.c (mudflap_finish_file): Skip function when there were errors. Remove check for erroneous objects. From-SVN: r113121
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/tree-mudflap.c7
2 files changed, 10 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8241b98..164b3e3 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2006-04-20 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ PR mudflap/26789
+ * tree-mudflap.c (mudflap_finish_file): Skip function when there
+ were errors. Remove check for erroneous objects.
+
2006-04-20 Jeff Law <law@redhat.com>
PR tree-optimization/26854
diff --git a/gcc/tree-mudflap.c b/gcc/tree-mudflap.c
index 1a62859..ed5ef48 100644
--- a/gcc/tree-mudflap.c
+++ b/gcc/tree-mudflap.c
@@ -1232,6 +1232,10 @@ mudflap_finish_file (void)
{
tree ctor_statements = NULL_TREE;
+ /* No need to continue when there were errors. */
+ if (errorcount != 0 || sorrycount != 0)
+ return;
+
/* Insert a call to __mf_init. */
{
tree call2_stmt = build_function_call_expr (mf_init_fndecl, NULL_TREE);
@@ -1256,9 +1260,6 @@ mudflap_finish_file (void)
{
gcc_assert (DECL_P (obj));
- if (TREE_TYPE (obj) == error_mark_node)
- continue;
-
if (mf_marked_p (obj))
continue;