public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* c++/8080: g++ 3.3 ICE in make_decl_rtl
@ 2002-09-28 8:16 snyder
0 siblings, 0 replies; only message in thread
From: snyder @ 2002-09-28 8:16 UTC (permalink / raw)
To: gcc-gnats
>Number: 8080
>Category: c++
>Synopsis: g++ 3.3 ICE in make_decl_rtl
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: ice-on-legal-code
>Submitter-Id: net
>Arrival-Date: Sat Sep 28 08:16:01 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:
>Release: 3.3 20020928 (experimental)
>Organization:
<organization of PR author (multiple lines)>
>Environment:
System: Linux karma 2.4.19-emp_2419p5a829i #1 Tue Sep 3 17:42:17 EST 2002 i686 unknown
Architecture: i686
<machine, os, target, libraries (multiple lines)>
host: i686-pc-linux-gnu
build: i686-pc-linux-gnu
target: i686-pc-linux-gnu
configured with: ../gcc/configure --prefix=/usr/local/gcc --enable-threads=posix --enable-long-long : (reconfigured) : (reconfigured) : (reconfigured)
>Description:
g++ crashes on the source below:
$ g++ x.cc
x.cc: In function `void get_root_object(TIter&) [with T = int]':
x.cc:16: instantiated from here
x.cc:10: internal compiler error: in make_decl_rtl, at varasm.c:812
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
$
Here's where it's crashing:
Starting program: /home/sss/gcc/build/gcc/cc1plus x.cc
void get_root_object(TIter&) void foo(TIter&) void foo(TIter&) void get_root_object(TIter&) [with T = int] void get_root_object(TIter&) [with T = int]
Breakpoint 1, make_decl_rtl (decl=0x4008f380, asmspec=0x0)
at ../../gcc/gcc/varasm.c:812
812 abort ();
(gdb) where
#0 make_decl_rtl (decl=0x4008f380, asmspec=0x0) at ../../gcc/gcc/varasm.c:812
#1 0x08265bcb in expand_expr (exp=0x4008f380, target=0x0, tmode=VOIDmode,
modifier=EXPAND_NORMAL) at ../../gcc/gcc/expr.c:6568
#2 0x082814bf in do_jump (exp=0x4008f380, if_false_label=0x0,
if_true_label=0x4008cf20) at ../../gcc/gcc/expr.c:10059
#3 0x0827fe9c in do_jump (exp=0x4002afe0, if_false_label=0x4008cf20,
if_true_label=0x0) at ../../gcc/gcc/expr.c:9865
#4 0x0843429d in expand_start_cond (cond=0x4002afe0, exitflag=0)
at ../../gcc/gcc/stmt.c:2415
#5 0x081d0c9f in genrtl_if_stmt (t=0x4002afa0)
at ../../gcc/gcc/c-semantics.c:406
#6 0x081d2bd3 in expand_stmt (t=0x4002afa0) at ../../gcc/gcc/c-semantics.c:810
#7 0x081d1121 in genrtl_while_stmt (t=0x4002af20)
at ../../gcc/gcc/c-semantics.c:434
#8 0x081d2bb3 in expand_stmt (t=0x4002af20) at ../../gcc/gcc/c-semantics.c:802
#9 0x081d2596 in genrtl_compound_stmt (t=0x4008db7c)
at ../../gcc/gcc/c-semantics.c:700
#10 0x081d2be3 in expand_stmt (t=0x4008db7c) at ../../gcc/gcc/c-semantics.c:814
#11 0x081d2596 in genrtl_compound_stmt (t=0x4008db40)
at ../../gcc/gcc/c-semantics.c:700
#12 0x081d2be3 in expand_stmt (t=0x4008db40) at ../../gcc/gcc/c-semantics.c:814
#13 0x08192351 in expand_body (fn=0x4008f850)
at ../../gcc/gcc/cp/semantics.c:2454
#14 0x080de371 in instantiate_decl (d=0x4008f850, defer_ok=0)
at ../../gcc/gcc/cp/pt.c:10173
#15 0x080de8ce in instantiate_pending_templates ()
at ../../gcc/gcc/cp/pt.c:10250
#16 0x08117c29 in finish_file () at ../../gcc/gcc/cp/decl2.c:2772
#17 0x0818f6a4 in finish_translation_unit ()
at ../../gcc/gcc/cp/semantics.c:1639
#18 0x08136aae in yyparse () at parse.y:488
#19 0x081d33f0 in c_common_parse_file (set_yydebug=0)
at ../../gcc/gcc/c-lex.c:159
#20 0x0844bf09 in compile_file () at ../../gcc/gcc/toplev.c:2132
#21 0x0845211e in do_compile () at ../../gcc/gcc/toplev.c:5337
#22 0x08452171 in toplev_main (argc=2, argv=0xbfffcf44)
at ../../gcc/gcc/toplev.c:5367
#23 0x081e01e6 in main (argc=2, argv=0xbfffcf44) at ../../gcc/gcc/main.c:35
>How-To-Repeat:
----------------
class TObject {};
struct TIter {
TObject *operator()();
};
template<class T>
void get_root_object(TIter& iobj) {
while ( TObject* pnew_obj = iobj() )
;
}
void foo(TIter& iobj)
{
get_root_object<int>(iobj);
}
----------------
>Fix:
<how to correct or work around the problem, if known (multiple lines)>
>Release-Note:
>Audit-Trail:
>Unformatted:
SEND-PR: Leave "Confidential" as "no"; all GCC PRs are public.
SEND-PR: critical GCC is completely not operational; no work-around known.
SEND-PR: serious GCC is not working properly; a work-around is possible.
SEND-PR: non-critical Report indicates minor problem.
SEND-PR: medium The problem should be solved in the next release.
SEND-PR: low The problem should be solve in a future release.
SEND-PR: doc-bug The documentation is incorrect.
SEND-PR: accepts-illegal GCC fails to reject erroneous code.
SEND-PR: rejects-legal GCC gives an error message for correct code.
SEND-PR: wrong-code The machine code generated by gcc is incorrect.
SEND-PR: ice-on-legal-code GCC gives an Internal Compiler Error (ICE)
SEND-PR: for correct code
SEND-PR: ice-on-illegal-code GCC gives an ICE instead of reporting an error
SEND-PR: pessimizes-code GCC misses an important optimization opportunity
SEND-PR: sw-bug Software bug of some other class than above
SEND-PR: change-request A feature in GCC is missing.
SEND-PR: support I need help with gcc.
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2002-09-28 15:16 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-09-28 8:16 c++/8080: g++ 3.3 ICE in make_decl_rtl snyder
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).