This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
In the testcases with the PR, we have a bit of type punning going on, *(int *) &s2.f = 0; s2 = s1; which SRA trasforms to # DEBUG s2 => 0 MEM[(int *)&s2] = 0; # DEBUG s2 => s1$f_7 # DEBUG s2$g => s1$g_6 s2 ={v} {CLOBBER}; Note that it has chosen not to expand s1.f like s1.g, but to expand that field as the type-punned integer. Which means that "s2 => s1$f_7" has mismatched types across lhs and rhs: SI => SF. Which understandibly ICEs during rtl expansion. I'm not really sure how this is avoided for the actual code generation, but this minimal patch (aka hack) simply drops the debug info to avoid the ICE. Thoughts on how this might really be solved? r~
Attachment:
d-59776
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |