From: Jason Merrill Date: Mon, 10 May 2010 21:20:47 +0000 (-0400) Subject: re PR c++/44017 (ICE with template hierarchy) X-Git-Tag: upstream/12.2.0~93223 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5a40306bb6bf3f305bc3b6e265aa583c69049449;p=platform%2Fupstream%2Fgcc.git re PR c++/44017 (ICE with template hierarchy) PR c++/44017 * semantics.c (baselink_for_fns): Revert earlier change. From-SVN: r159246 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index beedb80..31749dd 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,8 @@ 2010-05-10 Jason Merrill + PR c++/44017 + * semantics.c (baselink_for_fns): Revert earlier change. + PR c++/44045 * typeck.c (cp_build_modify_expr): Complain about assignment to array from init list. diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c index 0847403..cbbcf96 100644 --- a/gcc/cp/semantics.c +++ b/gcc/cp/semantics.c @@ -2658,8 +2658,7 @@ baselink_for_fns (tree fns) if (!cl) cl = DECL_CONTEXT (fn); cl = TYPE_BINFO (cl); - return build_baselink (TYPE_BINFO (DECL_CONTEXT (fn)), cl, fns, - /*optype=*/NULL_TREE); + return build_baselink (cl, cl, fns, /*optype=*/NULL_TREE); } /* Returns true iff DECL is an automatic variable from a function outside diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 9f0a4b1..3440960 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,8 @@ 2010-05-10 Jason Merrill + PR c++/44017 + * g++.dg/template/inherit5.C: New. + PR c++/44045 * g++.dg/cpp0x/initlist33.C: New. * g++.dg/cpp0x/initlist26.C: Adjust. diff --git a/gcc/testsuite/g++.dg/template/inherit5.C b/gcc/testsuite/g++.dg/template/inherit5.C new file mode 100644 index 0000000..cd22f5b --- /dev/null +++ b/gcc/testsuite/g++.dg/template/inherit5.C @@ -0,0 +1,11 @@ +struct A +{ + template void foo(); +}; + +template struct B : A +{ + B() { foo(); } +}; + +B<0> b;