This patch fixes an ICE during gimplification. When reading a STATEMENT_LIST, we were calling append_to_statement_list, ...
13 years, 10 months ago
(2011-06-29 20:50:07 UTC)
#1
This patch fixes an ICE during gimplification. When reading a
STATEMENT_LIST, we were calling append_to_statement_list, but at
that point some elements in the list do not have side-effects
(the final VAR_DECL in a stmt expression), so we were dropping it
out.
Fixed by force-adding every statetement we read. This fixes
c1attr-warn-unused-result.cc.
Tested on x86_64. Committed to branch.
* pph-streamer-in.c (pph_read_tree): Call
append_to_statement_list_force instead of append_to_statement_list.
testsuite/ChangeLog.pph
* g++.dg/pph/c1attr-warn-unused-result.cc: Remove xfail marker.
diff --git a/gcc/cp/ChangeLog.pph b/gcc/cp/ChangeLog.pph
index c2679e6..a62dd66 100644
--- a/gcc/cp/ChangeLog.pph
+++ b/gcc/cp/ChangeLog.pph
@@ -1,3 +1,8 @@
+2011-06-29 Diego Novillo <dnovillo@google.com>
+
+ * pph-streamer-in.c (pph_read_tree): Call
+ append_to_statement_list_force instead of append_to_statement_list.
+
2011-06-28 Diego Novillo <dnovillo@google.com>
* pph-streamer-in.c (pph_in_ld_fn): Instantiate
diff --git a/gcc/cp/pph-streamer-in.c b/gcc/cp/pph-streamer-in.c
index 1dabcf1..1a59640 100644
--- a/gcc/cp/pph-streamer-in.c
+++ b/gcc/cp/pph-streamer-in.c
@@ -1488,7 +1488,7 @@ pph_read_tree (struct lto_input_block *ib
ATTRIBUTE_UNUSED,
for (i = 0; i < num_trees; i++)
{
tree stmt = pph_in_tree (stream);
- append_to_statement_list (stmt, &expr);
+ append_to_statement_list_force (stmt, &expr);
}
}
break;
diff --git a/gcc/testsuite/ChangeLog.pph b/gcc/testsuite/ChangeLog.pph
index 9c33875..aeede51 100644
--- a/gcc/testsuite/ChangeLog.pph
+++ b/gcc/testsuite/ChangeLog.pph
@@ -1,3 +1,7 @@
+2011-06-29 Diego Novillo <dnovillo@google.com>
+
+ * g++.dg/pph/c1attr-warn-unused-result.cc: Remove xfail marker.
+
2011-06-28 Diego Novillo <dnovillo@google.com>
* g++.dg/pph/c1attr-warn-unused-result.cc: Expect an ICE.
diff --git a/gcc/testsuite/g++.dg/pph/c1attr-warn-unused-result.cc
b/gcc/testsuite/g++.dg/pph/c1attr-warn-unused-result.cc
index 4633106..da75561 100644
--- a/gcc/testsuite/g++.dg/pph/c1attr-warn-unused-result.cc
+++ b/gcc/testsuite/g++.dg/pph/c1attr-warn-unused-result.cc
@@ -1,6 +1,3 @@
-/* { dg-xfail-if "ICE" { "*-*-*" } { "-fpph-map=pph.map" } } */
-// { dg-bogus "internal compiler error: Segmentation fault" "" { xfail *-*-* }
0 }
-// { dg-prune-output "In file included from" }
/* { dg-options "-w" } */
// pph asm xdiff
#include "c1attr-warn-unused-result.h"
--
This patch is available for review at http://codereview.appspot.com/4636074
Issue 4636074: [pph] Fix ICE during gimplification
(Closed)
Created 13 years, 10 months ago by Diego Novillo
Modified 13 years, 8 months ago
Reviewers:
Base URL:
Comments: 0