From 5a40306bb6bf3f305bc3b6e265aa583c69049449 Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Mon, 10 May 2010 17:20:47 -0400 Subject: [PATCH] re PR c++/44017 (ICE with template hierarchy) PR c++/44017 * semantics.c (baselink_for_fns): Revert earlier change. From-SVN: r159246 --- gcc/cp/ChangeLog | 3 +++ gcc/cp/semantics.c | 3 +-- gcc/testsuite/ChangeLog | 3 +++ gcc/testsuite/g++.dg/template/inherit5.C | 11 +++++++++++ 4 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 gcc/testsuite/g++.dg/template/inherit5.C diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index beedb80edd9..31749dd1b29 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 0847403c227..cbbcf96e2cc 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 9f0a4b1d670..344096022d2 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 00000000000..cd22f5b10c9 --- /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; -- 2.30.2