> 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. > 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. -- Eric Botcazou