This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/55709] New: [4.8 Regression] Infinite loop in pointer_set_insert compiling cp/pt.c
- From: "danglin at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Sat, 15 Dec 2012 16:35:46 +0000
- Subject: [Bug middle-end/55709] New: [4.8 Regression] Infinite loop in pointer_set_insert compiling cp/pt.c
- Auto-submitted: auto-generated
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55709
Bug #: 55709
Summary: [4.8 Regression] Infinite loop in pointer_set_insert
compiling cp/pt.c
Classification: Unclassified
Product: gcc
Version: 4.8.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: middle-end
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: danglin@gcc.gnu.org
CC: jakub@gcc.gnu.org, steven@gcc.gnu.org
Host: hppa-unknown-linux-gnu
Target: hppa-unknown-linux-gnu
Build: hppa-unknown-linux-gnu
Created attachment 28978
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=28978
Compressed preprocessed sourcce
Hang occurs in stage2 here:
/home/dave/gnu/gcc/objdir/./prev-gcc/xg++
-B/home/dave/gnu/gcc/objdir/./prev-gcc/
-B/home/dave/opt/gnu/gcc/gcc-4.8/hppa-linux-gnu/bin/ -nostdinc++
-B/home/dave/gnu/gcc/objdir/prev-hppa-linux-gnu/libstdc++-v3/src/.libs
-B/home/dave/gnu/gcc/objdir/prev-hppa-linux-gnu/libstdc++-v3/libsupc++/.libs
-I/home/dave/gnu/gcc/objdir/prev-hppa-linux-gnu/libstdc++-v3/include/hppa-linux-gnu
-I/home/dave/gnu/gcc/objdir/prev-hppa-linux-gnu/libstdc++-v3/include
-I/home/dave/gnu/gcc/gcc/libstdc++-v3/libsupc++
-L/home/dave/gnu/gcc/objdir/prev-hppa-linux-gnu/libstdc++-v3/src/.libs
-L/home/dave/gnu/gcc/objdir/prev-hppa-linux-gnu/libstdc++-v3/libsupc++/.libs -c
-DIN_GCC_FRONTEND -DIN_GCC_FRONTEND -g -O2 -DIN_GCC -fno-exceptions
-fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings
-Wcast-qual -Wmissing-format-attribute -pedantic -Wno-long-long
-Wno-variadic-macros -Wno-overlength-strings -Werror -fno-common
-DHAVE_CONFIG_H -I. -Icp -I../../gcc/gcc -I../../gcc/gcc/cp
-I../../gcc/gcc/../include -I../../gcc/gcc/../libcpp/include
-I../../gcc/gcc/../libdecnumber -I../../gcc/gcc/../libdecnumber/dpd
-I../libdecnumber -I../../gcc/gcc/../libbacktrace ../../gcc/gcc/cp/pt.c -o
cp/pt.o
(gdb) bt
#0 0x006a88a4 in insert_aux (log_slots=1, n_slots=4096, slots=0x15659c0,
p=0x3b579) at ../../gcc/gcc/pointer-set.c:123
#1 pointer_set_insert (pset=0xe06f20, p=0x4309cf80)
at ../../gcc/gcc/pointer-set.c:153
#2 0x009d3dcc in assemble_external (decl=0x4309cf80)
at ../../gcc/gcc/varasm.c:2199
#3 0x004e0608 in output_addr_const (file=0xe05a20, x=0x4421d090)
at ../../gcc/gcc/final.c:3701
#4 0x009eb3ac in pa_assemble_integer (x=0x4421d090, size=<optimized out>,
aligned_p=1) at ../../gcc/gcc/config/pa/pa.c:3221
#5 0x009d476c in assemble_integer (x=0x4421d090, size=4, align=32, force=1)
at ../../gcc/gcc/varasm.c:2496
#6 0x009eb208 in output_deferred_plabels ()
at ../../gcc/gcc/config/pa/pa.c:5611
#7 0x0076b588 in compile_file () at ../../gcc/gcc/toplev.c:670
#8 0x0076d4ec in do_compile () at ../../gcc/gcc/toplev.c:1878
#9 toplev_main (argc=73, argv=0xfc1c002c) at ../../gcc/gcc/toplev.c:1954
#10 0x00b32bdc in main (argc=<optimized out>, argv=<optimized out>)
at ../../gcc/gcc/main.c:36
This was introduced by:
2012-12-12 Steven Bosscher <steven@gcc.gnu.org>
Jakub Jelinek <jakub@redhat.com>
PR middle-end/52640
* varasm.c (pending_assemble_externals_set): New pointer set.
(process_pending_assemble_externals): Destroy the pointer set.
(assemble_external): See if decl is in pending_assemble_externals_set,
and add it to pending_assemble_externals if necessary.
(init_varasm_once): Allocate pending_assemble_externals_set.
Think pending_assemble_externals_set has been destroyed when this happens.
This came up before which was why the above change wasn't installed on trunk.
See PR middle-end/52894. Thought Steven was going to try to come up with
something better for trunk.
cc1plus options:
-fpreprocessed pt.ii -quiet -dumpbase pt.c -auxbase-strip cp/pt.o -g -O2
-Wextra -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual
-Wsuggest-attribute=format -Wpedantic -Wno-long-long -Wno-variadic-macros
-Wno-overlength-strings -Werror -version -fno-exceptions -fno-rtti
-fasynchronous-unwind-tables -fno-common -o pt.s