[Bug middle-end/13888] New: make gnattools fails on sfn_scan.adb with -O2

charlet at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Tue Jan 27 16:46:00 GMT 2004


Using mainline sources, and a new configure leads the following failure during
make gnatlib_and_tools (during the gnattools):

[...]
../../xgcc -B../../ -c -O2 -g -O2 -W -Wall -Wwrite-strings -Wstrict-prototypes
-Wmissing-prototypes  -fno-common       -gnatpg -gnata -I- -I../rts -I.
-I/home/charlet/cvs/gcc-head/gcc/ada
/home/charlet/cvs/gcc-head/gcc/ada/sfn_scan.adb -o sfn_scan.o
+===========================GNAT BUG DETECTED==============================+   
| 3.5.0 20040127 (experimental) (i686-pc-linux-gnu) Storage_Error stack overflow
(or erroneous memory access)|
| Error detected at sfn_scan.adb:36:14                                     |   
+==========================================================================+

Can be reproduced using -O2, not using -O1

[tools]$ gdb ../../gnat1
(gdb) run -O2 -gnatpg -I- -I../rts -I. -I/home/charlet/cvs/gcc-head/gcc/ada /hom
e/charlet/cvs/gcc-head/gcc/ada/sfn_scan.adb
Starting program: /home/charlet/cvs/gcc-obj/gcc/gnat1 -O2 -gnatpg -I- -I../rts -
I. -I/home/charlet/cvs/gcc-head/gcc/ada /home/charlet/cvs/gcc-head/gcc/ada/sfn_s
can.adb
 Sfn_Scan._Elabs
 Sfn_Scan.Acquire_String
 Sfn_Scan.Acquire_Unit_Name

Program received signal SIGSEGV, Segmentation fault.
0x0826b6bb in insert_insn_on_edge (pattern=0x40177768, e=0x8b253fc)
    at ../../gcc-head/gcc/cfgrtl.c:1388
1388      if ((e->flags & EDGE_ABNORMAL) && EDGE_CRITICAL_P (e))
Current language:  auto; currently c
(gdb) p e
$1 = 0x8b253fc
(gdb) p e->flags
$2 = -1347440721
(gdb) list
1383    void
1384    insert_insn_on_edge (rtx pattern, edge e)
1385    {
1386      /* We cannot insert instructions on an abnormal critical edge.
1387         It will be easier to find the culprit if we die now.  */
1388      if ((e->flags & EDGE_ABNORMAL) && EDGE_CRITICAL_P (e))
1389        abort ();
1390
1391      if (e->insns == NULL_RTX)
1392        start_sequence ();
(gdb) bt
#0  0x0826b6bb in insert_insn_on_edge (pattern=0x40177768, e=0x8b253fc)
    at ../../gcc-head/gcc/cfgrtl.c:1388
#1  0x08312b39 in one_cprop_pass (pass=1, cprop_jumps=1, bypass_jumps=1)
    at ../../gcc-head/gcc/gcse.c:4890
#2  0x083162df in bypass_jumps (file=0x8b253fc)
    at ../../gcc-head/gcc/gcse.c:8017
#3  0x084580e7 in rest_of_handle_jump_bypass (decl=0x8b253fc, insns=0x40177768)
    at ../../gcc-head/gcc/toplev.c:2593
#4  0x08459794 in rest_of_compilation (decl=0x40147798)
    at ../../gcc-head/gcc/toplev.c:3348
#5  0x08063d19 in end_subprog_body () at ../../gcc-head/gcc/ada/utils.c:1887
#6  0x08081fd4 in tree_transform (gnat_node=1664)
    at ../../gcc-head/gcc/ada/trans.c:2771
#7  0x0807b5c3 in gnat_to_code (gnat_node=-1347440721)
    at ../../gcc-head/gcc/ada/trans.c:237
#8  0x0807b7d7 in process_decls (gnat_decls=-1347440721,
    gnat_decls2=1075279720, gnat_end_list=0, pass1p=1, pass2p=1)
    at ../../gcc-head/gcc/ada/trans.c:4516
[...]

This is caused by the following patch:

<<
2004-01-23  Jan Hubicka  <jh@suse.cz>

        * alloc-pool.c (align_four): Kill.
        (create_alloc_pool): Align size to eight.
        (free_alloc_pool, free_pool): Invalidate deallocated data.
>>

-- 
           Summary: make gnattools fails on sfn_scan.adb with -O2
           Product: gcc
           Version: 3.5.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P2
         Component: middle-end
        AssignedTo: jh at suse dot cz
        ReportedBy: charlet at gcc dot gnu dot org
                CC: gcc-bugs at gcc dot gnu dot org
  GCC host triplet: i686-pc-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13888



More information about the Gcc-bugs mailing list