+2004-06-29 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR c++/16260
+ * parser.c (cp_parser_template_declaration_after_export): Disable
+ access checks here ...
+ (cp_parser_class_specifier): ... not here.
+
2004-06-28 Nathan Sidwell <nathan@codesourcery.com>
* cp-tree.h (VAR_OR_FUNCTION_DECL_CHECK,
2004-06-28 Nathan Sidwell <nathan@codesourcery.com>
- PR C++/16174
+ PR c++/16174
* call.c (build_temp): Declare.
(check_constructor_callable): New.
(reference_binding): Only set CHECK_COPY_CONSTRUCTOR if not for
pop_p = push_scope (CP_DECL_CONTEXT (TYPE_MAIN_DECL (type)));
type = begin_class_definition (type);
- if (processing_template_decl)
- /* There are no access checks when parsing a template, as we do no
- know if a specialization will be a friend. */
- push_deferring_access_checks (dk_no_check);
-
if (type == error_mark_node)
/* If the type is erroneous, skip the entire body of the class. */
cp_parser_skip_to_closing_brace (parser);
/* Parse the member-specification. */
cp_parser_member_specification_opt (parser);
- if (processing_template_decl)
- pop_deferring_access_checks ();
-
/* Look for the trailing `}'. */
cp_parser_require (parser, CPP_CLOSE_BRACE, "`}'");
/* We get better error messages by noticing a common problem: a
cp_parser_template_declaration_after_export (parser, member_p);
else
{
+ /* There are no access checks when parsing a template, as we do not
+ know if a specialization will be a friend. */
+ push_deferring_access_checks (dk_no_check);
+
decl = cp_parser_single_declaration (parser,
member_p,
&friend_p);
+ pop_deferring_access_checks ();
+
/* If this is a member template declaration, let the front
end know. */
if (member_p && !friend_p && decl)
+2004-06-29 Nathan Sidwell <nathan@codesourcery.com>
+
+ PR c++/16260
+ * g++.dg/parse/crash15.C: New.
+
2004-06-28 Andrew Pinski <apinski@apple.com>
* gcc.dg/pr14963.c: Remove the dg-warning as it is dected
2004-06-28 Nathan Sidwell <nathan@codesourcery.com>
- * PR C++/16174
+ * PR c++/16174
* g++.dg/template/ctor4.C: New.
2004-06-27 Andrew Pinski <pinskia@physics.uc.edu>
--- /dev/null
+// { dg-do compile }
+
+// Copyright (C) 2001 Free Software Foundation, Inc.
+// Contributed by Nathan Sidwell 29 Jun 2004 <nathan@codesourcery.com>
+
+// Origin: Volker Reichelt <reichelt@gcc.gnu.org>
+// Bug 16260. ICE
+
+template<typename T> int foo() { return T::X::Y; }