This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/61207] [4.9 Regression] Win64 gcc 4.9.0: ICE in in expand_expr_addr_expr_1 at -Os compiling some C++ code
- From: "kugan at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Sat, 07 Mar 2015 05:54:00 +0000
- Subject: [Bug middle-end/61207] [4.9 Regression] Win64 gcc 4.9.0: ICE in in expand_expr_addr_expr_1 at -Os compiling some C++ code
- Auto-submitted: auto-generated
- References: <bug-61207-4 at http dot gcc dot gnu dot org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61207
kugan at gcc dot gnu.org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |kugan at gcc dot gnu.org
--- Comment #7 from kugan at gcc dot gnu.org ---
For the testcase in comment #6, it works if i use -fno-tree-sra.
diff -u6 nok/pr1314.c.022t.forwprop1 nok/pr1314.c.024t.esra
--- nok/pr1314.c.022t.forwprop1 2015-03-07 16:16:43.839799627 +1100
+++ nok/pr1314.c.024t.esra 2015-03-07 16:16:43.839799627 +1100
@@ -25,24 +25,38 @@
}
;; Function virtual A C<int>::_ZTv0_n12_NK1CIiE5m_fn1Ev() const
(_ZTv0_n12_NK1CIiE5m_fn1Ev, funcdef_no=3, decl_uid=4649, symbol_order=12)
+Created a replacement for D.4707 offset: 0, size: 32: SR.6
+Created a replacement for D.4707 offset: 32, size: 32: SR.7
+Removing load: <retval> = D.4707;
+
+Symbols to be put in SSA form
+{ D.4697 D.4708 D.4709 }
+Incremental SSA update started at block: 0
+Number of blocks in CFG: 3
+Number of blocks to update: 2 ( 67%)
+
+
virtual A C<int>::_ZTv0_n12_NK1CIiE5m_fn1Ev() const (const struct C * const
this)
{
+ float SR.7;
+ float SR.6;
struct A D.4707;
const struct C * adjusted_this.3;
int (*<Tdf0>) () vcalloffset.2;
int (*<Tdf0>) () * vtableaddr.1;
int (*<Tdf0>) () * * vptr.0;
struct A <retval>;
<bb 2>:
- D.4707.xp = 0.0;
- D.4707.yp = 0.0;
- <retval> = D.4707;
+ SR.6_12 = 0.0;
+ SR.7_11 = 0.0;
+ MEM[(struct A *)&<retval>] = SR.6_12;
+ MEM[(struct A *)&<retval> + 4B] = SR.7_11;
return <retval>;
}