On October 16, 2015 5:55:08 PM GMT+02:00, Eric Botcazou <ebotca...@adacore.com> wrote: >> I wasn't aware that x86/IA-64 is still broken. I am flying to NY >tomorrow >> but will try to take a look. The ICEs are not caused by >operand_equal_p >> changes, but the change to useless_type_conversion to ignore mode on >> aggregate types. > >Sure, but I'd like to avoid hiding new problems against preexisting >ICEs. > >> A safe way would be to add the mode check back (as was in my original >patch) >> that does not change my original intent to separate CANONICAL_TYPE >from >> gimple semantic type equivalence machinery. It was however outcome of >the >> discussion that we would preffer the mode to be ignored in this case >which >> means fixing expansion side. > >What do we gain by doing this? Pretending that the mode doesn't matter >is a >lie at the RTL level and I don't see why GIMPLE would have to care.
Well, it would (I think) ICE on assigning a packed variant to a non-packed variant of a strict that happens to get a non-BLKmode when not packed. Richard. >> I have no way to reproduce the IA-64 change, but will send proposed >patch - >> from backtrace it was clear where the wrong mode went in. Will wait >with >> operand_euqal_p changess until this is fixed. > >Thanks. I have installed 2 testcases that exhibit 2 distinct ICEs on >x86-64, >pack21.adb at -O0 and pack22.adb at -O1 (similar to the IA-64 one). > > > PR middle-end/67966 > * gnat.dg/pack21.adb: New test. > * gnat.dg/pack22.adb: Likewise. > * gnat.dg/pack22_pkg.ad[sb]: New helper.