This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/16781] New: [3.3 regression] ICE in cxx_scope_find_binding_for_name with missing 'template' disambiguator
- From: "bangerth at dealii dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 27 Jul 2004 13:13:52 -0000
- Subject: [Bug c++/16781] New: [3.3 regression] ICE in cxx_scope_find_binding_for_name with missing 'template' disambiguator
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
This is spinoff 1 from PR 16777: this code ICEs 3.3.x, but no other
compiler (including 3.4 and mainline)
--------------------
struct X {
template <typename> void foo();
void bar() {
this->X::foo<int>();
}
}
--------------------
g/x> /home/bangerth/bin/gcc-3.3.4-pre/bin/c++ -c x.cc
x.cc: In member function `void X::bar()':
x.cc:5: internal compiler error: tree check: expected identifier_node, have
baselink in cxx_scope_find_binding_for_name, at cp/decl.c:2384
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
One can work around the problem by writing
this->X::template foo<int> ();
This was fixed with the new parser in 3.4, so Gaby will have to decide
if its worth trying to fix it in 3.3.x.
W.
--
Summary: [3.3 regression] ICE in cxx_scope_find_binding_for_name
with missing 'template' disambiguator
Product: gcc
Version: 3.3.4
Status: UNCONFIRMED
Keywords: ice-on-valid-code
Severity: normal
Priority: P2
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: bangerth at dealii dot org
CC: gcc-bugs at gcc dot gnu dot org,gdr at gcc dot gnu dot
org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16781