diff options
author | Jason Merrill <jason@redhat.com> | 2010-05-10 17:20:47 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2010-05-10 17:20:47 -0400 |
commit | 5a40306bb6bf3f305bc3b6e265aa583c69049449 (patch) | |
tree | 082d207c3f03dd0974e8570a2ce4e8efbcbe8366 | |
parent | eaa9d009d8563f4224f58e982a962662d3b5ea06 (diff) | |
download | gcc-5a40306bb6bf3f305bc3b6e265aa583c69049449.zip gcc-5a40306bb6bf3f305bc3b6e265aa583c69049449.tar.gz gcc-5a40306bb6bf3f305bc3b6e265aa583c69049449.tar.bz2 |
re PR c++/44017 (ICE with template hierarchy)
PR c++/44017
* semantics.c (baselink_for_fns): Revert earlier change.
From-SVN: r159246
-rw-r--r-- | gcc/cp/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/cp/semantics.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/template/inherit5.C | 11 |
4 files changed, 18 insertions, 2 deletions
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 <jason@redhat.com> + 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 <jason@redhat.com> + 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<int> void foo(); +}; + +template<int N> struct B : A +{ + B() { foo<N>(); } +}; + +B<0> b; |