If we have the following IR (before the first may_alias pass):
f1 (a)
{
short int b;
short unsigned int b.2;
short int b.1;
int D.1525;
short unsigned int a.0;
<bb 2>:
a.0_2 = (short unsigned int) a_1;
# b_4 = V_MUST_DEF <b_3>;
VIEW_CONVERT_EXPR<short unsigned int>(b) = a.
b.1_5 = b;
b.2_6 = (short unsigned int) b.1_5;
D.1525_7 = (int) b.2_6;
return D.1525_7;
}
The may_alias pass removes the TREE_ADDRESSABLE on b so we ICE in the
checking pass after may_alias runs. Does someone have an idea on where
it is going wrong?
I am trying to fix PR 26069 but am running into this ICE for the
following code:
unsigned short f1(short a)
{
short b;
*(unsigned short*)&b = a;
return b;
}
I don't know if this problem shows up in Ada code but it seems like it
could.
The error I get is:
t.c: In function ‘f1’:
t.c:11: error: statement makes a memory store, but has no V_MAY_DEFS nor
V_MUST_DEFS
VIEW_CONVERT_EXPR<short unsigned int>(b_9) = a.0_2;
t.c:11: internal compiler error: verify_ssa failed
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
Thanks,
Andrew Pinski