http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48835
--- Comment #49 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2011-12-08 16:00:34 UTC --- > That is, first ada maps precisions 32, 64, and 80 to bit sizes 32, 64, and 96, > respectively. Then ada turns around and tries to map _bit_size_ 80 to a > precision, but bit size 80 doesn't exist so fp_size_to_prec() asserts. Did > something confuse precision with bit size somewhere? No, but the new code (cstand.adb:Register_Float_Type) makes an invalid assumption about the size of a FP mode given its precision and alignment, instead of using the proper interface. enumerate_modes should probably pass GET_MODE_BITSIZE to its callback. I'd suggest opening a new regression PR for this problem.