------- Comment #1 from ludovic at ludovic-brenta dot org 2009-08-01 14:59 ------- I now think my analysis was wrong; a1 is not a discriminant, so the program is actually legal and the value of x1 should be:
x1 = (a1 => (b => False)) (this does not change anything to the GCC bug, actually.) -- ludovic at ludovic-brenta dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|ICE in illegal program, |ICE in legal program, |Assert_Failure |Assert_Failure |atree.adb:3815, RM |atree.adb:3815, RM |4.3.1(17.1/2) |4.3.1(4/2, 19.1/2) http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40932