> I doubt that this is still an issue with the current trunk. > > I tried the test case from the pr37798 on x86_64, and now the object is > 8-aligned, but the object was only 4-byte aligned according to the comments > in the bugzilla at that time.
Yes, it's already fixed with the 4.9.x compiler apparently. > I digged a bit, but did not find any hint for Ada test cases though. > > This change introduced TYPE_ALIGN_OK to get_inner_reference for the first > time. I did not find the discussion for that in the archives: > > ------------------------------------------------------------------------ > r66465 | kenner | 2003-05-05 00:09:48 +0200 (Mo, 05. Mai 2003) | 6 Zeilen > > * expr.c (store_field): Don't clobber TEMP in shift: it might be > a variable. > (get_inner_reference): Don't go through a VIEW_CONVERT_EXPR > whose purpose is to step up the alignment. > (expand_expr, case ADDR_EXPR): Force LO_SUM into memory, just like REG. OK, thanks for digging. I'm going to disable the circuitry and see what happens on SPARC and SPARC64. -- Eric Botcazou