PR c++/15701
* friend.c (add_friend): Do not try to perform access checks for
functions from dependent classes.
PR c++/15701
* g++.dg/template/friend29.C: New test.
From-SVN: r82516
+2004-05-31 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/15701
+ * friend.c (add_friend): Do not try to perform access checks for
+ functions from dependent classes.
+
2004-05-31 Gabriel Dos Reis <gdr@integrable-solutions.net>
* cxx-pretty-print.c (pp_cxx_colon_colon): Expor.
}
if (DECL_CLASS_SCOPE_P (decl))
- perform_or_defer_access_check (TYPE_BINFO (DECL_CONTEXT (decl)), decl);
+ {
+ tree class_binfo = TYPE_BINFO (DECL_CONTEXT (decl));
+ if (!uses_template_parms (BINFO_TYPE (class_binfo)))
+ perform_or_defer_access_check (class_binfo, decl);
+ }
maybe_add_class_template_decl_list (type, decl, /*friend_p=*/1);
+2004-05-31 Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/15701
+ * g++.dg/template/friend29.C: New test.
+
2004-05-31 Joseph S. Myers <jsm@polyomino.org.uk>
PR c/15749
--- /dev/null
+// PR c++/15701
+
+template<template<int> class T> struct A : T<0>
+{
+ void foo();
+ template<template<int> class U> friend void A<U>::foo();
+};
+
+template<int> struct B {};
+
+A<B> a;