Commit 8f1352c4 by Jason Merrill Committed by Jason Merrill

re PR c++/57317 (bogus and unsuppressible warning: 'YYY' has a base 'ZZZ' whose…

re PR c++/57317 (bogus and unsuppressible warning: 'YYY' has a base 'ZZZ' whose type uses the anonymous namespace)

	PR c++/57317
	* decl2.c (determine_visibility): Use PRIMARY_TEMPLATE_P to decide
	whether a template has its own args.

From-SVN: r199101
parent a293ed6e
2013-05-20 Jason Merrill <jason@redhat.com>
PR c++/57317
* decl2.c (determine_visibility): Use PRIMARY_TEMPLATE_P to decide
whether a template has its own args.
2013-05-20 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/57327
......
......@@ -2210,9 +2210,6 @@ determine_visibility (tree decl)
&& !lookup_attribute ("visibility", attribs))
{
int depth = TMPL_ARGS_DEPTH (args);
int class_depth = 0;
if (class_type && CLASSTYPE_TEMPLATE_INFO (class_type))
class_depth = TMPL_ARGS_DEPTH (CLASSTYPE_TI_ARGS (class_type));
if (DECL_VISIBILITY_SPECIFIED (decl))
{
/* A class template member with explicit visibility
......@@ -2225,7 +2222,7 @@ determine_visibility (tree decl)
constrain_visibility_for_template (decl, lev);
}
}
else if (depth > class_depth)
else if (PRIMARY_TEMPLATE_P (TI_TEMPLATE (tinfo)))
/* Limit visibility based on its template arguments. */
constrain_visibility_for_template (decl, args);
}
......
// PR c++/57137
#include "anonymous-namespace-4.h"
namespace
{
class NonCloneable;
void fn1 ()
{
is_function_impl < NonCloneable > i;
}
}
template < typename T > struct integral_c {
static const T value = 0;
};
struct is_reference:integral_c < bool > { };
template < class > struct is_function_ptr_helper { };
template < bool > struct is_function_chooser;
template <> struct is_function_chooser <0 >
{
template < typename T > struct result_:is_function_ptr_helper < T * > { };
};
template < typename T > struct is_function_impl:is_function_chooser <
is_reference::value >::result_ < T > { };
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment