OSDN Git Service

PR c++/44017
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 10 May 2010 21:20:47 +0000 (21:20 +0000)
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 10 May 2010 21:20:47 +0000 (21:20 +0000)
* semantics.c (baselink_for_fns): Revert earlier change.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@159246 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/cp/ChangeLog
gcc/cp/semantics.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/template/inherit5.C [new file with mode: 0644]

index beedb80..31749dd 100644 (file)
@@ -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.
index 0847403..cbbcf96 100644 (file)
@@ -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
index 9f0a4b1..3440960 100644 (file)
@@ -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 (file)
index 0000000..cd22f5b
--- /dev/null
@@ -0,0 +1,11 @@
+struct A
+{
+  template<int> void foo();
+};
+
+template<int N> struct B : A
+{
+  B() { foo<N>(); }
+};
+
+B<0> b;