http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52033
Bug #: 52033 Summary: Compiler assertion, apparently due to incomplete type Classification: Unclassified Product: gcc Version: 4.5.3 Status: UNCONFIRMED Severity: normal Priority: P3 Component: ada AssignedTo: unassig...@gcc.gnu.org ReportedBy: gary...@comcast.net Created attachment 26495 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=26495 gnatchop file containing the source This code causes a compiler assertion in GNAT-GCC 4.6.2. The same code presented to GNAT-GPL 4.5.3 reports: /home/geb/gnat/try/pl-io.ads:175:14: error: premature usage of incomplete type "Quick_T" defined at line 175 Which isn't really a correct diagnostic. The type Quick_T isn't what is incomplete. Line 175 is where Quick_T would be completed. Rather the problem is the Stream field of Quick_T at line 177. It has an incomplete type named Stream_T. Except for the main program (which is a single Text_Io.Put_Line call) all of the code is a series of Ada specification units. Gary ------------------------------------------------------------------------------ lapwarmer-256: which gcc /usr/local/gcc-4.6.2/bin/gcc ------------------------------------------------------------------------------ lapwarmer-257: which gnat /usr/local/gcc-4.6.2/bin/gnat ------------------------------------------------------------------------------ lapwarmer-258: gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/local/gcc-4.6.2/libexec/gcc/i686-pc-linux-gnu/4.6.2/lto-wrapper Target: i686-pc-linux-gnu Configured with: ../gcc-4.6.2/configure --enable-languages=c,c++,ada --prefix=/usr/local/gcc-4.6.2 --with-local-prefix=/usr/local/gcc-4.6.2 --with-stage1-ldflags=-L/usr/local/gcc-4.6.2/lib --with-boot-ldflags=-L/usr/local/gcc-4.6.2/lib --with-cloog=/usr/local/gcc-4.6.2 --with-ppl=/usr/local/gcc-4.6.2 Thread model: posix gcc version 4.6.2 (GCC) ------------------------------------------------------------------------------ lapwarmer-259: gnat make -P simple.gpr pb_code_main.adb gcc -c -gnata -gnatE -fstack-check -gnatef -gnatf -gnatm50 -gnatn -gnato -gnatU -gnatwa -gnatwe -gnatwi -gnatwj -gnatwK -gnatwl -Wuninitialized -gnatVa -pass-exit-codes -O -g -I- -gnatA /home/geb/gnat/try/pb_code_main.adb +===========================GNAT BUG DETECTED==============================+ | 4.6.2 (i686-pc-linux-gnu) Assert_Failure sem_ch3.adb:13569 | | Error detected at pl-io.ads:510:9 | | 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 gcc or gnatmake command that you entered. | | Also include sources listed below in gnatchop format | | (concatenated together with no headers between files). | +==========================================================================+ 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). /home/geb/gnat/try/pb_code_main.adb /home/geb/gnat/try/GNAT-TEMP-000001.TMP /home/geb/gnat/try/GNAT-TEMP-000002.TMP /home/geb/gnat/try/pl.ads /home/geb/gnat/try/pl-container.ads /home/geb/gnat/try/pl-convert.ads /home/geb/gnat/try/pl-types.ads /home/geb/gnat/try/pl-internal.ads /home/geb/gnat/try/pl-internal-configuration.ads /home/geb/gnat/try/pl-dp.ads /home/geb/gnat/try/pl-container-depr.ads /home/geb/gnat/try/pl-container-depr-ary.ads /home/geb/gnat/try/pl-container-depr-interfaces.ads /home/geb/gnat/try/pl-container-depr-interfaces-abstract_iterators.ads /home/geb/gnat/try/pl-container-depr-interfaces-item_type.ads /home/geb/gnat/try/pl-container-depr-ary-interfaces.ads /home/geb/gnat/try/pl-container-depr-interfaces-item_type-iterators.ads /home/geb/gnat/try/pl-container-depr-hashfixed.ads /home/geb/gnat/try/pl-container-depr-hashfixed-ek_items.ads /home/geb/gnat/try/pl-container-depr-hashfixed-ek_items-interfaces.ads /home/geb/gnat/try/pl-container-depr-hashfixed-items.ads /home/geb/gnat/try/pl-container-depr-hashfixed-items-interfaces.ads /home/geb/gnat/try/pl-container-depr-hashfixed-sk_items.ads /home/geb/gnat/try/pl-container-depr-interfaces-abstract_iterators_sk.ads /home/geb/gnat/try/pl-container-depr-hashfixed-sk_items-interfaces.ads /home/geb/gnat/try/pl-container-depr-hashvaria.ads /home/geb/gnat/try/pl-container-depr-hashvaria-ek_items.ads /home/geb/gnat/try/pl-container-depr-hashvaria-ek_items-interfaces.ads /home/geb/gnat/try/pl-container-depr-hashvaria-items.ads /home/geb/gnat/try/pl-container-depr-hashvaria-items-interfaces.ads /home/geb/gnat/try/pl-container-depr-hashvaria-sk_items.ads /home/geb/gnat/try/pl-container-depr-hashvaria-sk_items-interfaces.ads /home/geb/gnat/try/pl-container-depr-interfaces-abstract_iterators-over_container.ads /home/geb/gnat/try/pl-container-depr-interfaces-abstract_iterators_sk-over_container.ads /home/geb/gnat/try/pl-container-depr-interfaces-dp_container_t.ads /home/geb/gnat/try/pl-container-depr-interfaces-embedded_key_type.ads /home/geb/gnat/try/pl-container-depr-interfaces-forall.ads /home/geb/gnat/try/pl-container-depr-interfaces-hash_item_type.ads /home/geb/gnat/try/pl-container-depr-interfaces-hash_key_type.ads /home/geb/gnat/try/pl-container-depr-interfaces-separate_key_type.ads /home/geb/gnat/try/pl-container-depr-seq.ads /home/geb/gnat/try/pl-container-depr-seq-dllist.ads /home/geb/gnat/try/pl-container-depr-seq-dllist-interfaces.ads /home/geb/gnat/try/pl-container-depr-seq-fixary.ads /home/geb/gnat/try/pl-container-depr-seq-fixary-interfaces.ads /home/geb/gnat/try/pl-container-depr-seq-incary.ads /home/geb/gnat/try/pl-container-depr-seq-incary-interfaces.ads /home/geb/gnat/try/pl-container-depr-seq-sllist.ads /home/geb/gnat/try/pl-container-depr-seq-sllist-interfaces.ads /home/geb/gnat/try/pl-container-depr-seq-varary.ads /home/geb/gnat/try/pl-container-depr-seq-varary-interfaces.ads /home/geb/gnat/try/pl-container-depr-tree.ads /home/geb/gnat/try/pl-container-depr-tree-ek_items.ads /home/geb/gnat/try/pl-container-depr-tree-ek_items-interfaces.ads /home/geb/gnat/try/pl-container-depr-tree-items.ads /home/geb/gnat/try/pl-container-depr-tree-items-interfaces.ads /home/geb/gnat/try/pl-container-depr-tree-sk_items.ads /home/geb/gnat/try/pl-container-depr-tree-sk_items-interfaces.ads /home/geb/gnat/try/pl-db.ads /home/geb/gnat/try/pl-io.ads /home/geb/gnat/try/pl-pointer.ads /home/geb/gnat/try/pl-pointer-char8.ads /home/geb/gnat/try/pl-pointer-generic_pointer.ads /home/geb/gnat/try/pl-pointer-uint8.ads /home/geb/gnat/try/pl-storage.ads /home/geb/gnat/try/pl-heap.ads /home/geb/gnat/try/pl-heap-generic_ada_heap.ads /home/geb/gnat/try/pl-heap-chunk.ads /home/geb/gnat/try/pl-heap-generic_caching_splitting.ads /home/geb/gnat/try/pl-heap-generic_alignment.ads /home/geb/gnat/try/pl-heap-generic_mixin_caching.ads /home/geb/gnat/try/pl-heap-cache.ads /home/geb/gnat/try/pl-internal-heap.ads /home/geb/gnat/try/pl-heap-generic_mixin_splitting.ads /home/geb/gnat/try/pl-heap-generic_paranoia_helper.ads /home/geb/gnat/try/pl-heap-malloc_raw.ads /home/geb/gnat/try/pl-heap-malloc_alignment.ads /home/geb/gnat/try/pl-heap-generic_storage_pool.ads /home/geb/gnat/try/pl-string.ads /home/geb/gnat/try/pl-unix.ads /home/geb/gnat/try/pl-db-messages.ads /home/geb/gnat/try/pl-heap-chunk_set.ads /home/geb/gnat/try/pl-heap-generic_c_cpp_heap.ads /home/geb/gnat/try/pl-heap-generic_caching.ads /home/geb/gnat/try/pl-heap-generic_splitting.ads /home/geb/gnat/try/pl-heap-mmap.ads /home/geb/gnat/try/pl-heap-mmap_alignment.ads /home/geb/gnat/try/pl-heap-mmap_raw.ads /home/geb/gnat/try/pl-io-file.ads /home/geb/gnat/try/pl-io-string.ads /home/geb/gnat/try/pl-types-dp_subr.ads /home/geb/gnat/try/pl-unix-strings.ads compilation abandoned gnatmake: "/home/geb/gnat/try/pb_code_main.adb" compilation error lapwarmer-260: