[Bug ada/42073] [4.4 regression] Infinite loop when parsing a project file, alpha only

2011-04-16 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42073

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|4.4.6   |4.4.7


[Bug ada/42073] [4.4 regression] Infinite loop when parsing a project file, alpha only

2010-10-01 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42073

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|4.4.5   |4.4.6


[Bug ada/42073] [4.4 regression] Infinite loop when parsing a project file, alpha only

2010-04-30 Thread jakub at gcc dot gnu dot org


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

   Target Milestone|4.4.4   |4.4.5


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



[Bug ada/42073] [4.4 regression] Infinite loop when parsing a project file, alpha only

2010-02-16 Thread rguenth at gcc dot gnu dot org


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

   Target Milestone|--- |4.4.4


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



[Bug ada/42073] [4.4 regression] Infinite loop when parsing a project file, alpha only

2009-11-19 Thread ludovic at ludovic-brenta dot org


--- Comment #7 from ludovic at ludovic-brenta dot org  2009-11-19 18:50 
---
Created an attachment (id=19060)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=19060action=view)
Disassembly of prj-part.adb, with sources (objdump -S)


-- 


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



[Bug ada/42073] [4.4 regression] Infinite loop when parsing a project file, alpha only

2009-11-18 Thread ludovic at ludovic-brenta dot org


--- Comment #6 from ludovic at ludovic-brenta dot org  2009-11-18 22:09 
---
With a stock GCC 4.4.2 bootstrapped with the default options (-g -O2, I think)
on alpha the symptoms are the same.  Here is a backtrace:

(gdb) run -vP2 -Pp
Starting program: /home/lbrenta/gcc-obj/gcc/gnatmake -vP2 -Pp
GPR_PROJECT_PATH=.:/home/lbrenta/gcc/lib/gcc/alphaev68-unknown-linux-gnu/4.4.2/../../../gnat
Project_Path_Name_Of (p, /home/lbrenta/);
   Trying /home/lbrenta//p.gpr
Project_Name_From (/home/lbrenta/p.gpr)
^C
Program received signal SIGINT, Interrupt.
0x0001200f8ed8 in prj.part.parse_single_project (in_tree=0x1205fc3e0,
path_name=value optimized out, extended=value optimized out,
from_extended=value optimized out, in_limited=false,
packages_to_check=..., depth=0, current_dir=...)
at /home/lbrenta/gcc-4.4.2/gcc/ada/prj-part.adb:1104
1104   Tree_Private_Part.Projects_Htable.Get_Next
(In_Tree.Projects_HT);
(gdb) bt
#0  0x0001200f8ed8 in prj.part.parse_single_project (in_tree=0x1205fc3e0,
path_name=value optimized out, extended=value optimized out,
from_extended=value optimized out, in_limited=false,
packages_to_check=..., depth=0, current_dir=...)
at /home/lbrenta/gcc-4.4.2/gcc/ada/prj-part.adb:1104
#1  0x0001200fb020 in prj.part.parse (in_tree=0x1205fc3e0,
project_file_name=value optimized out,
always_errout_finalize=value optimized out, packages_to_check=value
optimized out, store_comments=false, current_directory=...)
at /home/lbrenta/gcc-4.4.2/gcc/ada/prj-part.adb:525
#2  0x0001200f4878 in prj.pars.parse (in_tree=value optimized out,
project_file_name=..., packages_to_check=...,
when_no_sources=value optimized out, reset_tree=true) at
/home/lbrenta/gcc-4.4.2/gcc/ada/prj-pars.adb:63
#3  0x0001200858f8 in make.initialize () at
/home/lbrenta/gcc-4.4.2/gcc/ada/make.adb:6993
#4  0x0001200866cc in make.gnatmake () at
/home/lbrenta/gcc-4.4.2/gcc/ada/make.adb:4708
#5  0x000120067708 in gnatmake () at
/home/lbrenta/gcc-4.4.2/gcc/ada/gnatmake.adb:38
(gdb) p In_Tree.Projects_HT
$4 = (access prj.tree.tree_private_part.projects_htable.tab.instance_data) 0x0

The infinite loop appears to be the loop starting at prj-pars.adb:1048 (frame
#0 in the above backtrace).  I'll attach a disassembly.


-- 


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



[Bug ada/42073] [4.4 regression] Infinite loop when parsing a project file, alpha only

2009-11-17 Thread ludovic at ludovic-brenta dot org


--- Comment #1 from ludovic at ludovic-brenta dot org  2009-11-17 10:27 
---
The following project file is known to work on alpha-gnu-linux with GCC 4.3.4:

project Build_XMLAda is
   for Source_Dirs use (dom, input_sources, sax, schema, unicode);
   for Library_Name use xmlada;
   for Library_Dir use .;
   for Library_Kind use External (kind);
   for Library_Version use External (soname);
   for Object_Dir use External (obj);
   for Library_ALI_Dir use ali-  External (obj);
   package Compiler is
  for Default_Switches (Ada) use (-g, -O2, -gnatafno, -gnatVa,
-gnatwa);
   end Compiler;
end Build_XMLAda;

Since this project file is not noticeably different from GNADE_Common_Build, I
think the bug is actually a regression in 4.4.


-- 

ludovic at ludovic-brenta dot org changed:

   What|Removed |Added

  Known to fail||4.4.2
  Known to work||4.3.4
Summary|Infinite loop when parsing a|[4.4 regression] Infinite
   |project file, alpha only|loop when parsing a project
   ||file, alpha only


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



[Bug ada/42073] [4.4 regression] Infinite loop when parsing a project file, alpha only

2009-11-17 Thread ubizjak at gmail dot com


--- Comment #2 from ubizjak at gmail dot com  2009-11-17 17:47 ---
(In reply to comment #0)

 I have access to an alpha-linux-gnu machine, please tell me if I can help
 narrow this problem down.

A debug trace from gdb would be a nice starting point.


-- 


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



[Bug ada/42073] [4.4 regression] Infinite loop when parsing a project file, alpha only

2009-11-17 Thread ludovic at ludovic-brenta dot org


--- Comment #3 from ludovic at ludovic-brenta dot org  2009-11-17 19:56 
---
Even an empty project file triggers the bug:

$ cat  p.gpr EOF
project p is
end p;
EOF
$ gdb gnatmake
(gdb) run -vP2 -Pp
Starting program: /usr/bin/gnatmake -vP2 -Pp
GPR_PROJECT_PATH=.:/usr/share/ada/adainclude/
Project_Path_Name_Of (p, /home/lbrenta/);
   Trying /home/lbrenta//p.gpr
Project_Name_From (/home/lbrenta/p.gpr)
^C
Program received signal SIGINT, Interrupt.
0x0286f344 in prj__tree__tree_private_part__projects_htable__get_next
() from /usr/lib/libgnatprj.so.4.4
(gdb) bt
#0  0x0286f344 in
prj__tree__tree_private_part__projects_htable__get_next () from
/usr/lib/libgnatprj.so.4.4
#1  0x02853dd8 in ?? () from /usr/lib/libgnatprj.so.4.4
#2  0x02856abc in prj__part__parse () from /usr/lib/libgnatprj.so.4.4
#3  0x0284df7c in prj__pars__parse () from /usr/lib/libgnatprj.so.4.4
#4  0x0001200635d4 in ?? ()
#5  0x0001200450c4 in ?? ()
#6  0x00012000cf60 in ?? ()
#7  0x0001200ad114 in ?? ()
#8  0x02bd650c in __libc_start_main (main=value optimized out,
argc=value optimized out, ubp_av=value optimized out,
init=0x1200ad190, fini=value optimized out, rtld_fini=value optimized
out, stack_end=0x11fcbd730) at libc-start.c:222
#9  0x00012000b958 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

Note: this gnatmake is built with -O2 and without -g.

(gdb) disassemble
Dump of assembler code for function
prj__tree__tree_private_part__projects_htable__tab__get_next:
0x0286f290
prj__tree__tree_private_part__projects_htable__tab__get_next+0:ldah   
gp,6(t12)
0x0286f294
prj__tree__tree_private_part__projects_htable__tab__get_next+4:lda
gp,-12016(gp)
0x0286f298
prj__tree__tree_private_part__projects_htable__tab__get_next+8:lda
sp,-32(sp)
0x0286f29c
prj__tree__tree_private_part__projects_htable__tab__get_next+12:   stq
s0,8(sp)
0x0286f2a0
prj__tree__tree_private_part__projects_htable__tab__get_next+16:   mov
a0,s0
0x0286f2a4
prj__tree__tree_private_part__projects_htable__tab__get_next+20:   stq
ra,0(sp)
0x0286f2a8
prj__tree__tree_private_part__projects_htable__tab__get_next+24:   stq
s1,16(sp)
0x0286f2ac
prj__tree__tree_private_part__projects_htable__tab__get_next+28:   bne
a0,0x286f2d0
prj__tree__tree_private_part__projects_htable__tab__get_next+64
0x0286f2b0
prj__tree__tree_private_part__projects_htable__tab__get_next+32:   clr v0
0x0286f2b4
prj__tree__tree_private_part__projects_htable__tab__get_next+36:   ldq
ra,0(sp)
0x0286f2b8
prj__tree__tree_private_part__projects_htable__tab__get_next+40:   ldq
s0,8(sp)
0x0286f2bc
prj__tree__tree_private_part__projects_htable__tab__get_next+44:   ldq
s1,16(sp)
0x0286f2c0
prj__tree__tree_private_part__projects_htable__tab__get_next+48:   lda
sp,32(sp)
0x0286f2c4
prj__tree__tree_private_part__projects_htable__tab__get_next+52:   ret
0x0286f2c8
prj__tree__tree_private_part__projects_htable__tab__get_next+56:   nop
0x0286f2cc
prj__tree__tree_private_part__projects_htable__tab__get_next+60:   unop
0x0286f2d0
prj__tree__tree_private_part__projects_htable__tab__get_next+64:   ldah   
s1,1(a0)
0x0286f2d4
prj__tree__tree_private_part__projects_htable__tab__get_next+68:   ldl
t0,-16312(s1)
0x0286f2d8
prj__tree__tree_private_part__projects_htable__tab__get_next+72:   and
t0,0xff,t0
0x0286f2dc
prj__tree__tree_private_part__projects_htable__tab__get_next+76:   beq
t0,0x286f2b0
prj__tree__tree_private_part__projects_htable__tab__get_next+32
0x0286f2e0
prj__tree__tree_private_part__projects_htable__tab__get_next+80:   ldq
a0,-16320(s1)
0x0286f2e4
prj__tree__tree_private_part__projects_htable__tab__get_next+84:   ldq
t12,-32248(gp)
0x0286f2e8
prj__tree__tree_private_part__projects_htable__tab__get_next+88:   jsr
ra,(t12),0x286f2ec
prj__tree__tree_private_part__projects_htable__tab__get_next+92
0x0286f2ec
prj__tree__tree_private_part__projects_htable__tab__get_next+92:   ldah   
gp,6(ra)
0x0286f2f0
prj__tree__tree_private_part__projects_htable__tab__get_next+96:   mov
s0,a0
0x0286f2f4
prj__tree__tree_private_part__projects_htable__tab__get_next+100:  lda
gp,-12108(gp)
0x0286f2f8
prj__tree__tree_private_part__projects_htable__tab__get_next+104:  stq
v0,-16320(s1)
0x0286f2fc
prj__tree__tree_private_part__projects_htable__tab__get_next+108:  ldq
t12,-28536(gp)
0x0286f300
prj__tree__tree_private_part__projects_htable__tab__get_next+112:  jsr
ra,(t12),0x286f304
prj__tree__tree_private_part__projects_htable__tab__get_next+116
0x0286f304
prj__tree__tree_private_part__projects_htable__tab__get_next+116:  ldah   
gp,6(ra)
0x0286f308

[Bug ada/42073] [4.4 regression] Infinite loop when parsing a project file, alpha only

2009-11-17 Thread ludovic at ludovic-brenta dot org


--- Comment #4 from ludovic at ludovic-brenta dot org  2009-11-17 19:59 
---
Actually the disassembly above was that of Tab.Get_Next. The source for
Tab.Get_Next is:

  function Get_Next (T : Instance) return Elmt_Ptr is
  begin
 if T = null or else not T.Iterator_Started then
return Null_Ptr;
 end if;

 T.Iterator_Ptr := Next (T.Iterator_Ptr);
 return Get_Non_Null (T);
  end Get_Next;


The disassembly of Simple_HTable.Get_Next is:

(gdb) up
#1  0x0286f344 in
prj__tree__tree_private_part__projects_htable__get_next () from
/usr/lib/libgnatprj.so.4.4
(gdb) disassemble
Dump of assembler code for function
prj__tree__tree_private_part__projects_htable__get_next:
0x0286f320 prj__tree__tree_private_part__projects_htable__get_next+0:
ldahgp,6(t12)
0x0286f324 prj__tree__tree_private_part__projects_htable__get_next+4:
lda gp,-12160(gp)
0x0286f328 prj__tree__tree_private_part__projects_htable__get_next+8:
lda sp,-16(sp)
0x0286f32c
prj__tree__tree_private_part__projects_htable__get_next+12:ldq
t12,-27200(gp)
0x0286f330
prj__tree__tree_private_part__projects_htable__get_next+16:stq
s0,8(sp)
0x0286f334
prj__tree__tree_private_part__projects_htable__get_next+20:mov
a0,s0
0x0286f338
prj__tree__tree_private_part__projects_htable__get_next+24:stq
ra,0(sp)
0x0286f33c
prj__tree__tree_private_part__projects_htable__get_next+28:mov
a1,a0
0x0286f340
prj__tree__tree_private_part__projects_htable__get_next+32:jsr
ra,(t12),0x286f344
prj__tree__tree_private_part__projects_htable__get_next+36
0x0286f344
prj__tree__tree_private_part__projects_htable__get_next+36:ldah   
gp,6(ra)
0x0286f348
prj__tree__tree_private_part__projects_htable__get_next+40:lda
gp,-12196(gp)
0x0286f34c
prj__tree__tree_private_part__projects_htable__get_next+44:beq
v0,0x286f390 prj__tree__tree_private_part__projects_htable__get_next+112
0x0286f350
prj__tree__tree_private_part__projects_htable__get_next+48:ldl
t0,16(v0)
0x0286f354
prj__tree__tree_private_part__projects_htable__get_next+52:ldl
t3,4(v0)
0x0286f358
prj__tree__tree_private_part__projects_htable__get_next+56:ldl
t2,8(v0)
0x0286f35c
prj__tree__tree_private_part__projects_htable__get_next+60:ldl
t1,12(v0)
0x0286f360
prj__tree__tree_private_part__projects_htable__get_next+64:stl
t3,0(s0)
0x0286f364
prj__tree__tree_private_part__projects_htable__get_next+68:stl
t2,4(s0)
0x0286f368
prj__tree__tree_private_part__projects_htable__get_next+72:stl
t1,8(s0)
0x0286f36c
prj__tree__tree_private_part__projects_htable__get_next+76:stl
t0,12(s0)
0x0286f370
prj__tree__tree_private_part__projects_htable__get_next+80:mov
s0,v0
0x0286f374
prj__tree__tree_private_part__projects_htable__get_next+84:ldq
ra,0(sp)
0x0286f378
prj__tree__tree_private_part__projects_htable__get_next+88:ldq
s0,8(sp)
0x0286f37c
prj__tree__tree_private_part__projects_htable__get_next+92:lda
sp,16(sp)
0x0286f380
prj__tree__tree_private_part__projects_htable__get_next+96:ret
0x0286f384
prj__tree__tree_private_part__projects_htable__get_next+100:   unop
0x0286f388
prj__tree__tree_private_part__projects_htable__get_next+104:   nop
0x0286f38c
prj__tree__tree_private_part__projects_htable__get_next+108:   unop
0x0286f390
prj__tree__tree_private_part__projects_htable__get_next+112:   ldah   
t1,-4(gp)
0x0286f394
prj__tree__tree_private_part__projects_htable__get_next+116:   lda
t0,20296(t1)
0x0286f398
prj__tree__tree_private_part__projects_htable__get_next+120:   ldl
t3,20296(t1)
0x0286f39c
prj__tree__tree_private_part__projects_htable__get_next+124:   ldl
t2,4(t0)
0x0286f3a0
prj__tree__tree_private_part__projects_htable__get_next+128:   ldl
t1,12(t0)
0x0286f3a4
prj__tree__tree_private_part__projects_htable__get_next+132:   ldl
t0,8(t0)
0x0286f3a8
prj__tree__tree_private_part__projects_htable__get_next+136:   stl
t3,0(s0)
0x0286f3ac
prj__tree__tree_private_part__projects_htable__get_next+140:   stl
t2,4(s0)
0x0286f3b0
prj__tree__tree_private_part__projects_htable__get_next+144:   stl
t0,8(s0)
0x0286f3b4
prj__tree__tree_private_part__projects_htable__get_next+148:   stl
t1,12(s0)
0x0286f3b8
prj__tree__tree_private_part__projects_htable__get_next+152:   mov
s0,v0
0x0286f3bc
prj__tree__tree_private_part__projects_htable__get_next+156:   ldq
ra,0(sp)
0x0286f3c0

Re: [Bug ada/42073] [4.4 regression] Infinite loop when parsing a project file, alpha only

2009-11-17 Thread Arnaud Charlet
 #1  0x02853dd8 in ?? () from /usr/lib/libgnatprj.so.4.4
 #2  0x02856abc in prj__part__parse () from /usr/lib/libgnatprj.so.4.4
 #3  0x0284df7c in prj__pars__parse () from /usr/lib/libgnatprj.so.4.4

Well, there's no such thing as libgnatprj.so in GCC sources/Makefiles.

Can you please retry with a stock GCC and build with -O0 -g to get a more
complete info/debug session? TIA.

Arno


[Bug ada/42073] [4.4 regression] Infinite loop when parsing a project file, alpha only

2009-11-17 Thread charlet at adacore dot com


--- Comment #5 from charlet at adacore dot com  2009-11-17 21:45 ---
Subject: Re:  [4.4 regression] Infinite loop when parsing a
project file, alpha only

 #1  0x02853dd8 in ?? () from /usr/lib/libgnatprj.so.4.4
 #2  0x02856abc in prj__part__parse () from /usr/lib/libgnatprj.so.4.4
 #3  0x0284df7c in prj__pars__parse () from /usr/lib/libgnatprj.so.4.4

Well, there's no such thing as libgnatprj.so in GCC sources/Makefiles.

Can you please retry with a stock GCC and build with -O0 -g to get a more
complete info/debug session? TIA.

Arno


-- 


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