Fix lto-symtab ICE during Ada LTO bootstrap

Jan Hubicka hubicka@ucw.cz
Mon Nov 23 19:05:00 GMT 2015


BTW for the LTO type merging issues one could probably just drop those types
and all derivations to alias set 0. But indeed rewriting them to pointers would
be better, especially for ABI compatibility.

The Ada ICE I get is:
Continuing.
+===========================GNAT BUG DETECTED==============================+
| 6.0.0 20151122 (experimental) (x86_64-pc-linux-gnu) Assert_Failure atree.adb:6776|
| Error detected at system.ads:107:4                                       |
| Please submit a bug report; see http://gcc.gnu.org/bugs.html.            |
| Use a subject line meaningful to you and us to track the bug.            |
| Include the entire contents of this bug box in the report.               |
| Include the exact command that you entered.                              |
| Also include sources listed below.                                       |
+==========================================================================+

Please include these source files with error report
Note that list may not be accurate in some cases,
so please double check that the problem can still
be reproduced with the set of files listed.
Consider also -gnatd.n switch (see debug.adb).

../../gcc/ada/system.ads
../../gcc/ada/a-except.adb
../../gcc/ada/a-except.ads
../../gcc/ada/ada.ads
../../gcc/ada/s-parame.ads
../../gcc/ada/s-stalib.ads
../../gcc/ada/a-unccon.ads
../../gcc/ada/s-traent.ads
../../gcc/ada/s-excdeb.ads
../../gcc/ada/s-soflin.ads
../../gcc/ada/s-stache.ads
../../gcc/ada/s-stoele.ads

compilation abandoned

(gdb) bt
#0  atree__unchecked_access__set_flag96.part.697.lto_priv.6676 () at ../../gcc/ada/atree.adb:6776
#1  0x0000000001711774 in atree__unchecked_access__set_flag96 (n=<optimized out>, val=<optimized out>) at ../../gcc/ada/atree.adb:6774
#2  0x000000000126a95c in einfo.set_warnings_off (v=<optimized out>, id=0) at ../../gcc/ada/einfo.adb:6435
#3  sem_prag.analyze_pragma () at ../../gcc/ada/sem_prag.adb:22879
#4  0x0000000000989893 in sem.analyze (n=12466) at ../../gcc/ada/sem.adb:456
#5  0x0000000000cac089 in sem_ch3.analyze_declarations (l=-99998775) at ../../gcc/ada/sem_ch3.adb:2323
#6  0x000000000134e4d5 in sem_ch7.analyze_package_specification () at ../../gcc/ada/sem_ch7.adb:1395
#7  0x00000000009898ab in sem.analyze (n=12078) at ../../gcc/ada/sem.adb:450
#8  0x00000000013517d8 in sem_ch7.analyze_package_declaration (n=12875) at ../../gcc/ada/sem_ch7.adb:1006
#9  0x0000000000989e89 in sem.analyze (n=n@entry=12875) at ../../gcc/ada/sem.adb:441
#10 0x0000000000998d6d in sem_ch10.analyze_compilation_unit (n=n@entry=12067) at ../../gcc/ada/sem_ch10.adb:892
#11 0x0000000000989947 in sem.analyze (n=n@entry=12067) at ../../gcc/ada/sem.adb:174
#12 0x000000000099760f in sem.semantics.do_analyze () at ../../gcc/ada/sem.adb:1337
#13 sem.semantics () at ../../gcc/ada/sem.adb:1517
#14 0x0000000000998039 in sem_ch10.analyze_with_clause (n=n@entry=2286) at ../../gcc/ada/sem_ch10.adb:2540
#15 0x0000000000989a7f in sem.analyze (n=n@entry=2286) at ../../gcc/ada/sem.adb:601
#16 0x0000000000991e67 in sem_ch10.analyze_context (n=n@entry=2284) at ../../gcc/ada/sem_ch10.adb:1371
#17 0x0000000000998cb0 in sem_ch10.analyze_compilation_unit (n=n@entry=2284) at ../../gcc/ada/sem_ch10.adb:686
#18 0x0000000000989947 in sem.analyze (n=n@entry=2284) at ../../gcc/ada/sem.adb:174
#19 0x000000000099760f in sem.semantics.do_analyze () at ../../gcc/ada/sem.adb:1337
#20 sem.semantics () at ../../gcc/ada/sem.adb:1517
#21 0x000000000090e5f9 in frontend () at ../../gcc/ada/frontend.adb:408
#22 0x000000000146de0a in _ada_gnat1drv () at ../../gcc/ada/gnat1drv.adb:1029
#23 0x00000000006f579e in gnat_parse_file() [clone .lto_priv.5151] () at ../../gcc/ada/gcc-interface/misc.c:121
#24 0x00000000016f723c in compile_file () at ../../gcc/toplev.c:464
#25 0x000000000068996e in do_compile () at ../../gcc/toplev.c:1951
#26 toplev::main (this=this@entry=0x7fffffffe850, argc=argc@entry=39, argv=argv@entry=0x7fffffffe958) at ../../gcc/toplev.c:2058
#27 0x0000000000688e29 in main (argc=39, argv=0x7fffffffe958) at ../../gcc/main.c:39

If you have any clue how to debug it further, I would be happy to try.
That atree code is real software engineering treat BTW

Honza



More information about the Gcc-patches mailing list