Bug 24994 - raised STORAGE_ERROR : stack overflow or erroneous memory access
Summary: raised STORAGE_ERROR : stack overflow or erroneous memory access
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: ada (show other bugs)
Version: 4.1.0
: P3 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords: build, GC, ice-on-valid-code
: 25436 (view as bug list)
Depends on:
Blocks:
 
Reported: 2005-11-23 03:10 UTC by John David Anglin
Modified: 2007-03-28 11:46 UTC (History)
4 users (show)

See Also:
Host: hppa*-*-hpux* (32-bit)
Target: hppa*-*-hpux* (32-bit), i686-linux-gnu
Build: hppa*-*-hpux* (32-bit)
Known to work:
Known to fail:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description John David Anglin 2005-11-23 03:10:04 UTC
../../xgcc -B../../ -c -g -O2 -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmis
sing-prototypes -fno-common -mdisable-indexing     -gnatpg -gnata -I- -I../rts -
I. -I/xxx/gnu/gcc-3.3/gcc/gcc/ada /xxx/gnu/gcc-3.3/gcc/gcc/ada/make.adb -o make.
o

raised STORAGE_ERROR : stack overflow or erroneous memory access
make[3]: *** [make.o] Error 1

I've seen this both on hppa2.0w-hpux11.11 and hppa1.1-hp-hpux10.20.

It appears to be a garbage collection problem.
Comment 1 Eric Botcazou 2005-11-23 11:10:53 UTC
On PowerPC, I get with tree checking:

+===========================GNAT BUG DETECTED==============================+
| 4.1.0 20051123 (prerelease) (powerpc-apple-darwin8) GCC error:           |
| tree check: expected class 'expression', have 'exceptional'              |
|    (constructor) in get_base_var, at ipa-utils.c:224                     |
| Error detected at make.adb:7541:23         
Comment 2 John David Anglin 2005-12-13 02:19:17 UTC
Program received signal SIGSEGV, Segmentation fault.
0x003ea9cc in gt_ggc_mx_basic_block_def (x_p=0x0) at gtype-desc.c:446
446           gt_ggc_m_9tree_node ((*x).stmt_list);
(gdb)
(gdb) bt
#0  0x003ea9cc in gt_ggc_mx_basic_block_def (x_p=0x0) at gtype-desc.c:446
#1  0x003ed11c in gt_ggc_mx_tree_ann_d (x_p=0x79f4e1c0) at gtype-desc.c:370
#2  0x000467c8 in gt_ggc_mx_lang_tree_node (x_p=0x7a6a8938)
    at ./gtype-ada.h:333
#3  0x003e70d0 in gt_ggc_mx_throw_stmt_node (x_p=0x7a245598) at gtype-desc.c:94
#4  0x003e7144 in gt_ggc_m_P15throw_stmt_node4htab (x_p=0x79ed0600)
    at gtype-desc.c:1527
#5  0x0037b53c in gt_ggc_mx_eh_status (x_p=0x7a6a3f78) at ./gt-except.h:119
#6  0x003ece74 in gt_ggc_mx_function (x_p=0x7a4cb000) at gtype-desc.c:607
#7  0x00046f10 in gt_ggc_mx_lang_tree_node (x_p=0x7a82af80)
    at ./gtype-ada.h:432
#8  0x00046824 in gt_ggc_mx_lang_tree_node (x_p=0x7a5174e0)
    at ./gtype-ada.h:342
#9  0x00046824 in gt_ggc_mx_lang_tree_node (x_p=0x7a516e10)
    at ./gtype-ada.h:342
#10 0x003e6a70 in gt_ggc_mx_tree_statement_list_node (x_p=0x7a59c420)
    at gtype-desc.c:311
#11 0x00046f58 in gt_ggc_mx_lang_tree_node (x_p=0x7a515888)
    at ./gtype-ada.h:403
#12 0x003ea95c in gt_ggc_mx_basic_block_def (x_p=0x0) at gtype-desc.c:446
#13 0x003ed11c in gt_ggc_mx_tree_ann_d (x_p=0x79f8a3f0) at gtype-desc.c:370
#14 0x000467c8 in gt_ggc_mx_lang_tree_node (x_p=0x7a516d70)
    at ./gtype-ada.h:333
---Type <return> to continue, or q <return> to quit---
#15 0x003e6a70 in gt_ggc_mx_tree_statement_list_node (x_p=0x0)
    at gtype-desc.c:311
#16 0x00046f58 in gt_ggc_mx_lang_tree_node (x_p=0x79f865d0)
    at ./gtype-ada.h:403
#17 0x00046ecc in gt_ggc_mx_lang_tree_node (x_p=0x7a4f33c8)
    at ./gtype-ada.h:275
#18 0x0004662c in gt_ggc_mx_lang_tree_node (x_p=0x7ae36a98)
    at ./gtype-ada.h:423
#19 0x00046bec in gt_ggc_mx_lang_tree_node (x_p=0x7ae3c5a0)
    at ./gtype-ada.h:308
#20 0x00046dfc in gt_ggc_mx_lang_tree_node (x_p=0x7ae3a100)
    at ./gtype-ada.h:262
#21 0x00046e2c in gt_ggc_mx_lang_tree_node (x_p=0x7a6c3d80)
    at ./gtype-ada.h:265
#22 0x00046410 in gt_ggc_mx_lang_tree_node (x_p=0x7a5697e8)
    at ./gtype-ada.h:166
#23 0x003e6f9c in gt_ggc_mx_cgraph_varpool_node (x_p=0x79fbd8e8)
    at gtype-desc.c:104
#24 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79fbdd98)
    at gtype-desc.c:105
#25 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79dc8b10)
    at gtype-desc.c:105
#26 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79dc8b28)
---Type <return> to continue, or q <return> to quit---
    at gtype-desc.c:105
#27 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79dc8b40)
    at gtype-desc.c:105
#28 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79dc8b58)
    at gtype-desc.c:105
#29 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79de1a98)
    at gtype-desc.c:105
#30 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79de1ab0)
    at gtype-desc.c:105
#31 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79de1ac8)
    at gtype-desc.c:105
#32 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79de1ae0)
    at gtype-desc.c:105
#33 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79de1af8)
    at gtype-desc.c:105
#34 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79de1b10)
    at gtype-desc.c:105
#35 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79dfa8a0)
    at gtype-desc.c:105
#36 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79dfa8b8)
    at gtype-desc.c:105
#37 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79dfa8d0)
    at gtype-desc.c:105
---Type <return> to continue, or q <return> to quit---
#38 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79dfa8e8)
    at gtype-desc.c:105
#39 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79dfa900)
    at gtype-desc.c:105
#40 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79dfa918)
    at gtype-desc.c:105
#41 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e00d68)
    at gtype-desc.c:105
#42 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e00d80)
    at gtype-desc.c:105
#43 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e05cc0)
    at gtype-desc.c:105
#44 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e05cd8)
    at gtype-desc.c:105
#45 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e0bf30)
    at gtype-desc.c:105
#46 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e0bf48)
    at gtype-desc.c:105
#47 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e0bf60)
    at gtype-desc.c:105
#48 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e0bf78)
    at gtype-desc.c:105
#49 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e0bf90)
---Type <return> to continue, or q <return> to quit---
    at gtype-desc.c:105
#50 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e0bfa8)
    at gtype-desc.c:105
#51 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e187b0)
    at gtype-desc.c:105
#52 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e187c8)
    at gtype-desc.c:105
#53 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e187e0)
    at gtype-desc.c:105
#54 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e187f8)
    at gtype-desc.c:105
#55 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e18810)
    at gtype-desc.c:105
#56 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e18828)
    at gtype-desc.c:105
#57 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e24030)
    at gtype-desc.c:105
#58 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e24048)
    at gtype-desc.c:105
#59 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e24060)
    at gtype-desc.c:105
#60 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e24078)
    at gtype-desc.c:105
---Type <return> to continue, or q <return> to quit---
#61 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e24090)
    at gtype-desc.c:105
#62 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e240a8)
    at gtype-desc.c:105
#63 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e2b8a0)
    at gtype-desc.c:105
#64 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e2b8b8)
    at gtype-desc.c:105
#65 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e2b8d0)
    at gtype-desc.c:105
#66 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e2b8e8)
    at gtype-desc.c:105
#67 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e2b900)
    at gtype-desc.c:105
#68 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e2b918)
    at gtype-desc.c:105
#69 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e38120)
    at gtype-desc.c:105
#70 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e38138)
    at gtype-desc.c:105
#71 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e38150)
    at gtype-desc.c:105
#72 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e38168)
---Type <return> to continue, or q <return> to quit---
    at gtype-desc.c:105
#73 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e38180)
    at gtype-desc.c:105
#74 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e38198)
    at gtype-desc.c:105
#75 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e3e990)
    at gtype-desc.c:105
#76 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e3e9a8)
    at gtype-desc.c:105
#77 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e3e9c0)
    at gtype-desc.c:105
#78 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e3e9d8)
    at gtype-desc.c:105
#79 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e3e9f0)
    at gtype-desc.c:105
#80 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e3ea08)
    at gtype-desc.c:105
#81 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e4b210)
    at gtype-desc.c:105
#82 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e4b228)
    at gtype-desc.c:105
#83 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e4b240)
    at gtype-desc.c:105
---Type <return> to continue, or q <return> to quit---
#84 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e4b258)
    at gtype-desc.c:105
#85 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e4b270)
    at gtype-desc.c:105
#86 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e4b288)
    at gtype-desc.c:105
#87 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e51a80)
    at gtype-desc.c:105
#88 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e51a98)
    at gtype-desc.c:105
#89 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e51ab0)
    at gtype-desc.c:105
#90 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e51ac8)
    at gtype-desc.c:105
#91 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e51ae0)
    at gtype-desc.c:105
#92 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e51af8)
    at gtype-desc.c:105
#93 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e5d408)
    at gtype-desc.c:105
#94 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e5d420)
    at gtype-desc.c:105
#95 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e5d438)
---Type <return> to continue, or q <return> to quit---
    at gtype-desc.c:105
#96 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e5d450)
    at gtype-desc.c:105
#97 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e5d468)
    at gtype-desc.c:105
#98 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e5d480)
    at gtype-desc.c:105
#99 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e70150)
    at gtype-desc.c:105
#100 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e70168)
    at gtype-desc.c:105
#101 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e70180)
    at gtype-desc.c:105
#102 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e70198)
    at gtype-desc.c:105
#103 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e701b0)
    at gtype-desc.c:105
#104 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e701c8)
    at gtype-desc.c:105
#105 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e779c0)
    at gtype-desc.c:105
#106 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e779d8)
    at gtype-desc.c:105
---Type <return> to continue, or q <return> to quit---
#107 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e779f0)
    at gtype-desc.c:105
#108 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e77a08)
    at gtype-desc.c:105
#109 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e77a20)
    at gtype-desc.c:105
#110 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e77a38)
    at gtype-desc.c:105
#111 0x003e6fac in gt_ggc_mx_cgraph_varpool_node (x_p=0x79e86240)
    at gtype-desc.c:105
#112 0x003e0dc0 in ggc_mark_roots () at ../../gcc/gcc/ggc-common.c:118
#113 0x00452578 in ggc_collect () at ../../gcc/gcc/ggc-page.c:1884

#114 0x00453cc4 in execute_todo (pass=0x4001ca00, flags=3,
    use_required=4 '\004') at ../../gcc/gcc/passes.c:772
#115 0x00453ff8 in execute_one_pass (pass=0x4001ca00)
    at ../../gcc/gcc/passes.c:854
#116 0x00454074 in execute_pass_list (pass=0x4001ca00)
    at ../../gcc/gcc/passes.c:876
#117 0x00454088 in execute_pass_list (pass=0x4001642c)
    at ../../gcc/gcc/passes.c:877
#118 0x00454088 in execute_pass_list (pass=0x400163f8)
    at ../../gcc/gcc/passes.c:877
#119 0x0031762c in tree_rest_of_compilation (fndecl=0x7a82af80)
---Type <return> to continue, or q <return> to quit---
    at ../../gcc/gcc/tree-optimize.c:419
#120 0x00041dfc in gnat_expand_body (gnu_decl=0x7a82af80)
    at ../../gcc/gcc/ada/misc.c:649

#121 0x0047cdac in cgraph_expand_function (node=0x7a65c880)
    at ../../gcc/gcc/cgraphunit.c:1055
#122 0x0047f74c in cgraph_optimize () at ../../gcc/gcc/cgraphunit.c:1121
#123 0x00042a00 in gnat_parse_file (set_yydebug=0)
    at ../../gcc/gcc/ada/misc.c:245

#124 0x00426b58 in toplev_main (argc=1078648120, argv=0x0)
    at ../../gcc/gcc/toplev.c:990
#125 0x0030df4c in main (argc=0, argv=0x0) at ../../gcc/gcc/main.c:35
(gdb)

This is with 4.2.0 20051212 bootstrapped using 3.4.4.

(gdb) p debug_tree (fndecl)
 <function_decl 7a82af80 make__collect_arguments
    type <function_type 7a83e720
        type <void_type 7adf3720 void sizes-gimplified visited VOID
            align 8 symtab 10 alias set 355
            pointer_to_this <pointer_type 7adf3780>>
        SI
        size <integer_cst 7ade62d0 constant invariant 32>
        unit size <integer_cst 7ade6060 constant invariant 4>
        align 32 symtab 0 alias set -1
        arg-types <tree_list 7a838d50 value <integer_type 7ae33d80 types__file_name_type___XDLU_300000000__399999999>
            chain <tree_list 7a838d68 value <integer_type 7ae3c480 types__int>
                chain <tree_list 7a838d80 value <record_type 7ae33ea0 gnat__strings__string_list_access>
                    chain <tree_list 7a838d98 value <void_type 7adf3720 void>>>>>
        pointer_to_this <pointer_type 7a64b2a0>>
    addressable asm_written static SI file /mnt/gnu/gcc-3.3/gcc/gcc/ada/make.adb line 1788 initial <block 7a689540>
    arguments <parm_decl 7a833c80 source_file
        type <integer_type 7ae33d80 types__file_name_type___XDLU_300000000__399999999 type <integer_type 7ae33d20 types__Tname_idB>
            readonly sizes-gimplified unsigned SI size <integer_cst 7ade62d0 32> unit size <integer_cst 7ade6060 4>
            user align 32 symtab 1292 alias set -1 precision 32 min <integer_cst 7ae367c8 300000000> max <integer_cst 7ae367f8 399999999> RM size <integer_cst 7ade62d0 32>>
        readonly used unsigned SI file /mnt/gnu/gcc-3.3/gcc/gcc/ada/make.adb line 714 size <integer_cst 7ade62d0 32> unit size <integer_cst 7ade6060 4>
        align 32 context <function_decl 7a82af80 make__collect_arguments> initial <integer_type 7ae33d80 types__file_name_type___XDLU_300000000__399999999>
        (mem/c/i:SI (plus:SI (reg/f:SI 3 %r3)
        (const_int -36 [0xffffffdc])) [357 source_file+0 S4 A32]) arg-type <integer_type 7ae33d80 types__file_name_type___XDLU_300000000__399999999>
        incoming-rtl (reg:SI 26 %r26 [ source_file ])
        chain <parm_decl 7a833cd0 source_index type <integer_type 7ae3c480 types__int>
            readonly used SI file /mnt/gnu/gcc-3.3/gcc/gcc/ada/make.adb line 715 size <integer_cst 7ade62d0 32> unit size <integer_cst 7ade6060 4>
            align 32 context <function_decl 7a82af80 make__collect_arguments> initial <integer_type 7ae3c480 types__int>
            (mem/c/i:SI (plus:SI (reg/f:SI 3 %r3)
        (const_int -40 [0xffffffd8])) [197 source_index+0 S4 A32]) arg-type <integer_type 7ae3c480 types__int>
            incoming-rtl (reg:SI 25 %r25 [ source_index ]) chain <parm_decl 7a833d20 args>>>
    result <result_decl 7a833d70 D.5138 type <void_type 7adf3720 void>
        ignored VOID file /mnt/gnu/gcc-3.3/gcc/gcc/ada/make.adb line 713
        align 8 context <function_decl 7a82af80 make__collect_arguments>>
    (mem:SI (symbol_ref/v:SI ("@make__collect_arguments") [flags 0x3] <function_decl 7a82af80 make__collect_arguments>) [0 S4 A32])
    saved-insns 7a4cb000>

From gtype-ada.h:
            case TS_EXP:
              gt_ggc_m_9tree_node ((*x).t.exp.common.chain);
              gt_ggc_m_9tree_node ((*x).t.exp.common.type);
              gt_ggc_m_10tree_ann_d ((*x).t.exp.common.ann);
Comment 3 John David Anglin 2005-12-13 02:29:35 UTC
Strangely, this didn't occur with using 4.1.0 and the same bootstrap version
of gcc.
Comment 4 Andrew Pinski 2005-12-15 23:43:01 UTC
*** Bug 25436 has been marked as a duplicate of this bug. ***
Comment 5 Andrew Pinski 2005-12-15 23:45:42 UTC
From the dup bug, this is also reproducible on x86-linux-gnu too.
Comment 6 Eric Botcazou 2005-12-16 06:50:32 UTC
So, in the end, is this 4.1 or 4.2?
Comment 7 Laurent GUERBY 2005-12-16 07:51:39 UTC
4.2, see PR25436 for last known working revision number
Comment 8 Christian Joensson 2005-12-17 12:19:54 UTC
I suppose this is what I experience too on sparc/sparc64 linux, see also
http://gcc.gnu.org/ml/gcc/2005-12/msg00491.html 

I get this on trunk Sat Dec 17 00:14:08 UTC 2005 (revision 108698):

../../xgcc -B../../ -c -O2 -g -O2  -W -Wall -Wwrite-strings
-Wstrict-prototypes -Wmissing-prototypes -fno-common      -gnatpg
-gnata -I- -I../rts -I. -I/usr/local/src/trunk/gcc/gcc/ada
/usr/local/src/trunk/gcc/gcc/ada/make.adb -o make.o
+===========================GNAT BUG DETECTED==============================+
| 4.2.0 20051216 (experimental) (sparc64-unknown-linux-gnu) GCC error:     |
| Segmentation fault                                                       |
| Error detected at make.adb:7541:23                                       |
| 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.

Is this some more wide spread problem, well-known, or would you rather
I posted more debugging info on it?

The system is this:

Aurora SPARC Linux release 2.0b2 (Kashmir FC3) UltraSparc IIi (Sabre) sun4u:

binutils-2.15.92.0.2-5.sparc
bison-1.875c-2.sparc
dejagnu-1.4.4-2.noarch
expect-5.42.1-1.sparc
gcc-3.4.2-6.fc3.sparc
gcc4-4.0.0-0.8sparc.sparc
glibc-2.3.3-99.sparcv9
glibc-2.3.3-99.sparc64
glibc-devel-2.3.3-99.sparc
glibc-devel-2.3.3-99.sparc64
glibc-headers-2.3.3-99.sparc
glibc-kernheaders-2.6-20sparc.sparc
gmp-4.1.4-3sparc.sparc
gmp-4.1.4-3sparc.sparc64
gmp-devel-4.1.4-3sparc.sparc
gmp-devel-4.1.4-3sparc.sparc64
kernel-2.6.13-1.1603sp8.sparc64
package kernel-devel is not installed
package kernel-smp is not installed
libgcc-3.4.2-6.fc3.sparc
libgcc-3.4.2-6.fc3.sparc64
libstdc++-3.4.2-6.fc3.sparc
libstdc++-3.4.2-6.fc3.sparc64
libstdc++-devel-3.4.2-6.fc3.sparc
libstdc++-devel-3.4.2-6.fc3.sparc64
make-3.80-5.sparc
nptl-devel-2.3.3-99.sparcv9
tcl-8.4.7-2.sparc

and configure was done like this:

xgcc -v
Using built-in specs.
Target: sparc64-unknown-linux-gnu
Configured with: ../gcc/configure --enable-__cxa_atexit
--enable-shared --with-cpu=v7
--enable-languages=c,ada,c++,fortran,java,objc,obj-c++,treelang :
(reconfigured) ../gcc/configure --enable-__cxa_atexit --enable-shared
--with-cpu=v7 --enable-languages=c,ada,c++,fortran,java,objc,obj-c++,treelang
--no-create --no-recursion
Thread model: posix
gcc version 4.2.0 20051216 (experimental)
Comment 9 John David Anglin 2005-12-17 14:54:44 UTC
../../xgcc -B../../ -c -O2 -g -O2  -W -Wall -Wwrite-strings -Wstrict-prototypes
-Wmissing-prototypes -fno-common      -gnatpg -gnata -I- -I../rts -I. -I/home/da
ve/gcc-4.2/gcc/gcc/ada /home/dave/gcc-4.2/gcc/gcc/ada/make.adb -o make.o
+===========================GNAT BUG DETECTED==============================+
| 4.2.0 20051217 (experimental) (hppa-unknown-linux-gnu) Segmentation fault|
| Error detected at make.adb:7541:23                                       |
| 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.

/home/dave/gcc-4.2/gcc/gcc/ada/make.adb
/home/dave/gcc-4.2/gcc/gcc/ada/make.ads
/home/dave/gcc-4.2/gcc/gcc/ada/table.ads
/home/dave/gcc-4.2/gcc/gcc/ada/types.ads
/home/dave/gcc-4.2/gcc/gcc/ada/ali.ads
/home/dave/gcc-4.2/gcc/gcc/ada/casing.ads
/home/dave/gcc-4.2/gcc/gcc/ada/gnatvsn.ads
/home/dave/gcc-4.2/gcc/gcc/ada/rident.ads
/home/dave/gcc-4.2/gcc/gcc/ada/ali-util.ads
/home/dave/gcc-4.2/gcc/gcc/ada/csets.ads
/home/dave/gcc-4.2/gcc/gcc/ada/debug.ads
/home/dave/gcc-4.2/gcc/gcc/ada/fmap.ads
/home/dave/gcc-4.2/gcc/gcc/ada/fname.ads
/home/dave/gcc-4.2/gcc/gcc/ada/fname-sf.ads
/home/dave/gcc-4.2/gcc/gcc/ada/fname-uf.ads
/home/dave/gcc-4.2/gcc/gcc/ada/hostparm.ads
/home/dave/gcc-4.2/gcc/gcc/ada/makeusg.ads
/home/dave/gcc-4.2/gcc/gcc/ada/makeutl.ads
/home/dave/gcc-4.2/gcc/gcc/ada/osint.ads
/home/dave/gcc-4.2/gcc/gcc/ada/prj.ads
/home/dave/gcc-4.2/gcc/gcc/ada/scans.ads
/home/dave/gcc-4.2/gcc/gcc/ada/uintp.ads
/home/dave/gcc-4.2/gcc/gcc/ada/alloc.ads
/home/dave/gcc-4.2/gcc/gcc/ada/urealp.ads
/home/dave/gcc-4.2/gcc/gcc/ada/mlib.ads
/home/dave/gcc-4.2/gcc/gcc/ada/mlib-prj.ads
/home/dave/gcc-4.2/gcc/gcc/ada/mlib-tgt.ads
/home/dave/gcc-4.2/gcc/gcc/ada/mlib-utl.ads
/home/dave/gcc-4.2/gcc/gcc/ada/namet.ads
/home/dave/gcc-4.2/gcc/gcc/ada/opt.ads
/home/dave/gcc-4.2/gcc/gcc/ada/osint-m.ads
/home/dave/gcc-4.2/gcc/gcc/ada/output.ads
/home/dave/gcc-4.2/gcc/gcc/ada/prj-com.ads
/home/dave/gcc-4.2/gcc/gcc/ada/prj-env.ads
/home/dave/gcc-4.2/gcc/gcc/ada/prj-pars.ads
/home/dave/gcc-4.2/gcc/gcc/ada/prj-util.ads
/home/dave/gcc-4.2/gcc/gcc/ada/sfn_scan.ads
/home/dave/gcc-4.2/gcc/gcc/ada/sinput.ads
/home/dave/gcc-4.2/gcc/gcc/ada/sinput-p.ads
/home/dave/gcc-4.2/gcc/gcc/ada/snames.ads
/home/dave/gcc-4.2/gcc/gcc/ada/switch.ads
/home/dave/gcc-4.2/gcc/gcc/ada/switch-m.ads
/home/dave/gcc-4.2/gcc/gcc/ada/targparm.ads
/home/dave/gcc-4.2/gcc/gcc/ada/tempdir.ads
/home/dave/gcc-4.2/gcc/gcc/ada/table.adb
/home/dave/gcc-4.2/gcc/gcc/ada/tree_io.ads
/home/dave/gcc-4.2/gcc/gcc/ada/prj-env.adb


raised TYPES.UNRECOVERABLE_ERROR : comperr.adb:380
Comment 10 Laurent GUERBY 2005-12-20 21:19:33 UTC
Bootstrap started to fail after the following patch:

Index: gcc/ChangeLog
===================================================================
--- gcc/ChangeLog       (revision 108421)
+++ gcc/ChangeLog       (revision 108425)
@@ -1,3 +1,23 @@
+2005-12-12  Jeff Law  <law@redhat.com>
+
+       * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Remove
+       reassociation code.
+       * passes.c (init_optimization_passes): Run reassociation again
+       after loop optimizations.
+
+2005-12-12  Daniel Berlin  <dberlin@dberlin.org>
+
+       * tree-ssa-dom.c (thread_across_edge): Canonicalize condition
+       if necessary.
+       (optimize_stmt): Ditto.
+       (canonicalize_comparison): New function.
+       * tree-ssa-operands.c (swap_tree_operands): Make external.
+       (get_expr_operands): Stop auto-canonicalization.
+       * tree-ssa-reassoc.c: Rewrite.
+       (init_optimization_passes):
+       * tree-flow.h (swap_tree_operands): Prototype.
+       * Makefile.in (tree-ssa-reassoc.o): Update dependencies.
+

Comment 11 Jeffrey A. Law 2006-01-04 16:29:38 UTC
Subject: Bug 24994

Author: law
Date: Wed Jan  4 16:29:32 2006
New Revision: 109335

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=109335
Log:
        PR ada/24994
        * tree-cfg.c (bsi_replace): Remove the original statement
        from the EH throw statement table.



Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/tree-cfg.c

Comment 12 Jeffrey A. Law 2006-01-04 16:36:36 UTC
Fixed by attached patch.  Would appreciate it if folks could verify ada is bootstrapping again on PPC, HPUX and any other platform reported as failing.

Comment 13 John David Anglin 2006-01-06 00:12:15 UTC
Sadly, a slightly different error now appears:

../../xgcc -B../../ -c -O2 -g -O2  -W -Wall -Wwrite-strings -Wstrict-prototypes
-Wmissing-prototypes -fno-common      -gnatpg -gnata -I- -I../rts -I. -I/home/da
ve/gcc-4.2/gcc/gcc/ada /home/dave/gcc-4.2/gcc/gcc/ada/make.adb -o make.o
+===========================GNAT BUG DETECTED==============================+
| 4.2.0 20060105 (experimental) (hppa-unknown-linux-gnu) Segmentation fault|
| Error detected at make.adb:7541:23                                       |
| 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.

/home/dave/gcc-4.2/gcc/gcc/ada/make.adb
/home/dave/gcc-4.2/gcc/gcc/ada/make.ads
/home/dave/gcc-4.2/gcc/gcc/ada/table.ads
/home/dave/gcc-4.2/gcc/gcc/ada/types.ads
/home/dave/gcc-4.2/gcc/gcc/ada/ali.ads
/home/dave/gcc-4.2/gcc/gcc/ada/casing.ads
/home/dave/gcc-4.2/gcc/gcc/ada/gnatvsn.ads
/home/dave/gcc-4.2/gcc/gcc/ada/rident.ads
/home/dave/gcc-4.2/gcc/gcc/ada/ali-util.ads
/home/dave/gcc-4.2/gcc/gcc/ada/csets.ads
/home/dave/gcc-4.2/gcc/gcc/ada/debug.ads
/home/dave/gcc-4.2/gcc/gcc/ada/fmap.ads
/home/dave/gcc-4.2/gcc/gcc/ada/fname.ads
/home/dave/gcc-4.2/gcc/gcc/ada/fname-sf.ads
/home/dave/gcc-4.2/gcc/gcc/ada/fname-uf.ads
/home/dave/gcc-4.2/gcc/gcc/ada/hostparm.ads
/home/dave/gcc-4.2/gcc/gcc/ada/makeusg.ads
/home/dave/gcc-4.2/gcc/gcc/ada/makeutl.ads
/home/dave/gcc-4.2/gcc/gcc/ada/osint.ads
/home/dave/gcc-4.2/gcc/gcc/ada/prj.ads
/home/dave/gcc-4.2/gcc/gcc/ada/scans.ads
/home/dave/gcc-4.2/gcc/gcc/ada/uintp.ads
/home/dave/gcc-4.2/gcc/gcc/ada/alloc.ads
/home/dave/gcc-4.2/gcc/gcc/ada/urealp.ads
/home/dave/gcc-4.2/gcc/gcc/ada/mlib.ads
/home/dave/gcc-4.2/gcc/gcc/ada/mlib-prj.ads
/home/dave/gcc-4.2/gcc/gcc/ada/mlib-tgt.ads
/home/dave/gcc-4.2/gcc/gcc/ada/mlib-utl.ads
/home/dave/gcc-4.2/gcc/gcc/ada/namet.ads
/home/dave/gcc-4.2/gcc/gcc/ada/opt.ads
/home/dave/gcc-4.2/gcc/gcc/ada/osint-m.ads
/home/dave/gcc-4.2/gcc/gcc/ada/output.ads
/home/dave/gcc-4.2/gcc/gcc/ada/prj-com.ads
/home/dave/gcc-4.2/gcc/gcc/ada/prj-env.ads
/home/dave/gcc-4.2/gcc/gcc/ada/prj-pars.ads
/home/dave/gcc-4.2/gcc/gcc/ada/prj-util.ads
/home/dave/gcc-4.2/gcc/gcc/ada/sfn_scan.ads
/home/dave/gcc-4.2/gcc/gcc/ada/sinput.ads
/home/dave/gcc-4.2/gcc/gcc/ada/sinput-p.ads
/home/dave/gcc-4.2/gcc/gcc/ada/snames.ads
/home/dave/gcc-4.2/gcc/gcc/ada/switch.ads
/home/dave/gcc-4.2/gcc/gcc/ada/switch-m.ads
/home/dave/gcc-4.2/gcc/gcc/ada/targparm.ads
/home/dave/gcc-4.2/gcc/gcc/ada/tempdir.ads
/home/dave/gcc-4.2/gcc/gcc/ada/table.adb
/home/dave/gcc-4.2/gcc/gcc/ada/tree_io.ads
/home/dave/gcc-4.2/gcc/gcc/ada/prj-env.adb


raised TYPES.UNRECOVERABLE_ERROR : comperr.adb:380
make[3]: *** [make.o] Error 1
make[3]: Leaving directory `/home/dave/gcc-4.2/objdir/gcc/ada/tools'
make[2]: *** [gnattools-native] Error 2
make[2]: Leaving directory `/home/dave/gcc-4.2/objdir/gnattools'
make[1]: *** [all-gnattools] Error 2
make[1]: Leaving directory `/home/dave/gcc-4.2/objdir'
make: *** [bootstrap] Error 2
Wed Jan  4 23:16:38 PST 2006
Comment 14 John David Anglin 2006-01-06 01:29:32 UTC
(gdb) r `cat xx.sh`
Starting program: /home/dave/gcc-4.2/objdir/gcc/gnat1 `cat xx.sh`

Program received signal SIGSEGV, Segmentation fault.
0x0042a09c in gt_ggc_mx_basic_block_def (x_p=Variable "x_p" is not available.
) at gtype-desc.c:460
460       while (x != xlimit)
(gdb) bt
#0  0x0042a09c in gt_ggc_mx_basic_block_def (x_p=Variable "x_p" is not available.
) at gtype-desc.c:460
#1  0x0042c5a4 in gt_ggc_mx_tree_ann_d (x_p=Variable "x_p" is not available.
) at gtype-desc.c:386
#2  0x0003ac64 in gt_ggc_mx_lang_tree_node (x_p=0x400bea50) at gtype-ada.h:333
#3  0x00426af8 in gt_ggc_m_P15throw_stmt_node4htab (x_p=Variable "x_p" is not available.
) at gtype-desc.c:1549
#4  0x0042c31c in gt_ggc_mx_function (x_p=Variable "x_p" is not available.
) at gtype-desc.c:623
#5  0x0003a52c in gt_ggc_mx_lang_tree_node (x_p=0x4157b700) at gtype-ada.h:279
#6  0x00039ef8 in gt_ggc_mx_lang_tree_node (x_p=0x419d12c0) at gtype-ada.h:166
#7  0x0042ab30 in gt_ggc_mx_rtx_def (x_p=0x42508790) at gtype-desc.c:1258
#8  0x00312dac in gt_ggc_ma_reg_known_value (x_p=Variable "x_p" is not available.
) at gt-alias.h:367
#9  0x004212a8 in ggc_mark_roots () at ../../gcc/gcc/ggc-common.c:118
#10 0x0050697c in ggc_collect () at ../../gcc/gcc/ggc-page.c:1880
#11 0x0036732c in cse_main (f=Variable "f" is not available.
) at ../../gcc/gcc/cse.c:6856
#12 0x00367408 in rest_of_handle_cse2 () at ../../gcc/gcc/cse.c:7856
#13 0x0050818c in execute_one_pass (pass=0x784bf4)
    at ../../gcc/gcc/passes.c:845
#14 0x005082b4 in execute_pass_list (pass=0x784bf4)
    at ../../gcc/gcc/passes.c:877
#15 0x005082c8 in execute_pass_list (pass=0x7858a0)
    at ../../gcc/gcc/passes.c:878
#16 0x002c3204 in tree_rest_of_compilation (fndecl=0x4157b700)
    at ../../gcc/gcc/tree-optimize.c:419
#17 0x00035de0 in gnat_expand_body (gnu_decl=0x4157b700)
    at ../../gcc/gcc/ada/misc.c:649
---Type <return> to continue, or q <return> to quit---
#18 0x0054a22c in cgraph_expand_function (node=0x41a0a200)
    at ../../gcc/gcc/cgraphunit.c:1055
#19 0x0054c99c in cgraph_optimize () at ../../gcc/gcc/cgraphunit.c:1121
#20 0x00036828 in gnat_parse_file (set_yydebug=Variable "set_yydebug" is not available.
)
    at ../../gcc/gcc/ada/misc.c:245
#21 0x004d5f88 in toplev_main (argc=Variable "argc" is not available.
) at ../../gcc/gcc/toplev.c:990
#22 0x408326e4 in __libc_start_main () from /lib/libc.so.6
#23 0x0001b828 in _start () at ../sysdeps/hppa/elf/start.S:84
(gdb) disass 0x0042a07c 0x0042a0bc
Dump of assembler code from 0x42a07c to 0x42a0bc:
0x0042a07c <gt_ggc_mx_basic_block_def+196>:     b,l 0x40a884 <fold+2444>,rp
0x0042a080 <gt_ggc_mx_basic_block_def+200>:     nop
0x0042a084 <gt_ggc_mx_basic_block_def+204>:     ldw 2c(,r4),r26
0x0042a088 <gt_ggc_mx_basic_block_def+208>:     cmpib,=,n 0,r26,0x42a094 <gt_ggc_mx_basic_block_def+220>
0x0042a08c <gt_ggc_mx_basic_block_def+212>:     b,l 0x429f34 <gt_ggc_mx_edge_prediction>,rp
0x0042a090 <gt_ggc_mx_basic_block_def+216>:     nop
0x0042a094 <gt_ggc_mx_basic_block_def+220>:     ldw 20(,r4),r4
0x0042a098 <gt_ggc_mx_basic_block_def+224>:     cmpb,<>,n r5,r4,0x42a020 <gt_ggc_mx_basic_block_def+104>
0x0042a09c <gt_ggc_mx_basic_block_def+228>:     ldw 0(,r4),r26
0x0042a0a0 <gt_ggc_mx_basic_block_def+232>:     ldw -54(,sp),rp
0x0042a0a4 <gt_ggc_mx_basic_block_def+236>:     ldw -3c(,sp),r4
0x0042a0a8 <gt_ggc_mx_basic_block_def+240>:     ldw -38(,sp),r3
0x0042a0ac <gt_ggc_mx_basic_block_def+244>:     bv r0(rp)
0x0042a0b0 <gt_ggc_mx_basic_block_def+248>:     ldw,mb -40(,sp),r5
0x0042a0b4 <gt_ggc_mx_basic_block_def+252>:     b,l 0x40ae04 <fold+3852>,rp
0x0042a0b8 <gt_ggc_mx_basic_block_def+256>:     copy r3,r26
End of assembler dump.
(gdb) p/x $r4
$1 = 0x0
Comment 15 Eric Botcazou 2007-03-27 22:37:49 UTC
Dave, does the problem still exist on the 4.2 branch for the PA?  I'm
now seeing it (same backtrace) on a patched 4.1 branch for x86-64.
Comment 16 dave 2007-03-28 00:49:31 UTC
Subject: Re:  raised STORAGE_ERROR : stack overflow or erroneous memory access

> Dave, does the problem still exist on the 4.2 branch for the PA?  I'm
> now seeing it (same backtrace) on a patched 4.1 branch for x86-64.

No.  Ada builds successfully on all PA targets that support it
on both 4.1 and 4.2.  However, my 4.1 builds aren't very recent.
All results are posted.

Don't remember what fixed comment #13.  Possibly, a change just
made the issue latent.

Dave
Comment 17 Eric Botcazou 2007-03-28 11:46:12 UTC
> Don't remember what fixed comment #13.  Possibly, a change just
> made the issue latent.

OK, thanks.  Here is what I needed on my 4.1 branch:

Index: cfgexpand.c
===================================================================
--- cfgexpand.c	(revision 123291)
+++ cfgexpand.c	(working copy)
@@ -1630,9 +1634,10 @@ tree_expand_cfg (void)
   /* We're done expanding trees to RTL.  */
   currently_expanding_to_rtl = 0;
 
-  /* Convert tree EH labels to RTL EH labels, and clean out any unreachable
-     EH regions.  */
+  /* Convert tree EH labels to RTL EH labels and zap the tree
+     EH table to avoid dangling references during GC.  */
   convert_from_eh_region_ranges ();
+  set_eh_throw_stmt_table (cfun, NULL);
 
   rebuild_jump_labels (get_insns ());
   find_exception_handler_labels ();