From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1917 invoked by alias); 7 Feb 2013 06:22:54 -0000 Received: (qmail 1633 invoked by uid 48); 7 Feb 2013 06:22:21 -0000 From: "ppluzhnikov at google dot com" To: gcc-bugs@gcc.gnu.org Subject: [Bug c++/56238] New: [4.8 regression] ICE in tree check: expected record_type or union_type or qual_union_type, have template_type_parm in lookup_conversions, at cp/search.c:2515 Date: Thu, 07 Feb 2013 06:22:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: c++ X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: ppluzhnikov at google dot com X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Changed-Fields: Message-ID: X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2013-02/txt/msg00618.txt.bz2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D56238 Bug #: 56238 Summary: [4.8 regression] ICE in tree check: expected record_type or union_type or qual_union_type, have template_type_parm in lookup_conversions, at cp/search.c:2515 Classification: Unclassified Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned@gcc.gnu.org ReportedBy: ppluzhnikov@google.com Test case: class A { template < typename T > T& get (); template < typename T > class B { void RemovePoint (A& value) { static_cast < double >(value.get < T > ()); } }; }; Compiles fine with 4.7.x, with 4.8 without -std=3Dc++11. ICE's with -std=3Dc++11 using g++ (GCC) 4.8.0 20130205 (experimental) g++ -c t.ii -std=3Dc++11=20 t.ii: In member function =E2=80=98void A::B::RemovePoint(A&)=E2=80=99: t.ii:8:55: internal compiler error: tree check: expected record_type or union_type or qual_union_type, have template_type_parm in lookup_conversion= s, at cp/search.c:2515 static_cast < double >(value.get < T > ()); ^ 0xc6159a tree_check_failed(tree_node const*, char const*, int, char const*, ...) ../../gcc/tree.c:8946 0x66c962 tree_check3 ../../gcc/tree.h:3709 ... Google ref: b/8153313