This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug ada/42073] [4.4 regression] Infinite loop when parsing a project file, alpha only
- From: "ludovic at ludovic-brenta dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 18 Nov 2009 22:09:48 -0000
- Subject: [Bug ada/42073] [4.4 regression] Infinite loop when parsing a project file, alpha only
- References: <bug-42073-286@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu 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.
0x00000001200f8ed8 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 0x00000001200f8ed8 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 0x00000001200fb020 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 0x00000001200f4878 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 0x00000001200858f8 in make.initialize () at
/home/lbrenta/gcc-4.4.2/gcc/ada/make.adb:6993
#4 0x00000001200866cc in make.gnatmake () at
/home/lbrenta/gcc-4.4.2/gcc/ada/make.adb:4708
#5 0x0000000120067708 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