aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.8
diff options
context:
space:
mode:
authorBen Cheng <bccheng@android.com>2013-04-02 19:34:40 +0800
committerAndrew Hsieh <andrewhsieh@google.com>2013-04-02 20:35:22 +0800
commiteceb576ea5b15a7f8f179f131b665afeeba1c6ad (patch)
tree117843359cb578bfb9e0708aae218a518ffe8285 /gcc-4.8
parentf541ff89c2d66197e371ed6f85174bd732afd8db (diff)
downloadtoolchain_gcc-eceb576ea5b15a7f8f179f131b665afeeba1c6ad.tar.gz
toolchain_gcc-eceb576ea5b15a7f8f179f131b665afeeba1c6ad.tar.bz2
toolchain_gcc-eceb576ea5b15a7f8f179f131b665afeeba1c6ad.zip
[4.8] Backport a gimplify fix.
See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55245 6014e0c5342ece48f16f5b02f1b0657d2538a036 Change-Id: I25bfcfdbf0911f18db9b554012258f4d9aa060bd
Diffstat (limited to 'gcc-4.8')
-rw-r--r--gcc-4.8/ChangeLog.backported39
-rw-r--r--gcc-4.8/gcc/gimplify.c9
2 files changed, 48 insertions, 0 deletions
diff --git a/gcc-4.8/ChangeLog.backported b/gcc-4.8/ChangeLog.backported
new file mode 100644
index 000000000..b6519d034
--- /dev/null
+++ b/gcc-4.8/ChangeLog.backported
@@ -0,0 +1,39 @@
+http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=191571
+2012-09-17 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/54563
+ * tree-ssa-math-opts.c (execute_cse_sincos): Call
+ gimple_purge_dead_eh_edges if last call has been changed.
+
+ * g++.dg/torture/pr54563.C: New test.
+
+http://gcc.gnu.org/viewcvs?view=revision&revision=193554
+2012-11-16 Jakub Jelinek <jakub@redhat.com>
+ PR target/54073
+ * config/i386/i386.md (mov<mode>cc): Use comparison_operator
+ instead of ordered_comparison_operator resp.
+ ix86_fp_comparison_operator predicates.
+ * config/i386/i386.c (ix86_expand_fp_movcc): Reject TImode
+ or for -m32 DImode comparisons.
+
+http://gcc.gnu.org/viewcvs?view=revision&revision=193825
+2012-11-26 Diego Novillo <dnovillo@google.com>
+
+ * gimplify.c: Work around for PR 55245.
+
+http://gcc.gnu.org/viewcvs?view=revision&revision=186451
+2012-04-14 Tom de Vries <tom@codesourcery.com>
+ * cfgcleanup.c (try_optimize_cfg): Replace call to delete_insn_chain by
+ call to delete_insn. Remove code to reorder BASIC_BLOCK note and
+ DELETED_LABEL note, and move it to ...
+ * cfgrtl.c (delete_insn): ... here. Change return type to void.
+ (delete_insn_and_edges): Likewise.
+ (delete_insn_chain): Handle new return type of delete_insn. Delete
+ chain backwards rather than forwards.
+ * rtl.h (delete_insn, delete_insn_and_edges): Change return type to
+ void.
+ * cfglayout.c (fixup_reorder_chain): Delete unused label.
+
+2013-01-03 Jason Merrill <jason@redhat.com>
+ PR c++/55856
+ * semantics.c (build_data_member_initialization): Handle DECL_EXPR.
diff --git a/gcc-4.8/gcc/gimplify.c b/gcc-4.8/gcc/gimplify.c
index e7119283f..9416963c4 100644
--- a/gcc-4.8/gcc/gimplify.c
+++ b/gcc-4.8/gcc/gimplify.c
@@ -2229,6 +2229,15 @@ gimplify_compound_lval (tree *expr_p, gimple_seq *pre_p, gimple_seq *post_p,
if (TREE_OPERAND (t, 3) == NULL_TREE)
{
tree elmt_type = TREE_TYPE (TREE_TYPE (TREE_OPERAND (t, 0)));
+ /* FIXME google - In some edge cases, ELMT_TYPE may
+ not have been laid out. This causes an ICE later
+ (PR 55245). We call layout_type if ELMT_TYPE is not
+ yet complete, but this is not where this bug should
+ be fixed. The FE should have laid out all the types
+ before gimplification. When a proper fix for PR
+ 55245 is available, remove this. */
+ if (!COMPLETE_TYPE_P (elmt_type))
+ layout_type (elmt_type);
tree elmt_size = unshare_expr (array_ref_element_size (t));
tree factor = size_int (TYPE_ALIGN_UNIT (elmt_type));