aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKriang Lerdsuwanakij <lerdsuwa@gcc.gnu.org>2003-12-05 14:44:59 +0000
committerKriang Lerdsuwanakij <lerdsuwa@gcc.gnu.org>2003-12-05 14:44:59 +0000
commitf128e1f3326ab1f24d59110b70e118c95eb76fd5 (patch)
tree3d3ab9474c00e9a42836a8ad0de5b8ecae7011d4
parent2a67ff5e9e1a909a2c4a056920abdfadbbe293dd (diff)
downloadgcc-f128e1f3326ab1f24d59110b70e118c95eb76fd5.zip
gcc-f128e1f3326ab1f24d59110b70e118c95eb76fd5.tar.gz
gcc-f128e1f3326ab1f24d59110b70e118c95eb76fd5.tar.bz2
re PR c++/13166 ([DR136] not implemented)
PR c++/13166 * parser.c (cp_parser_late_parsing_default_args): Make sure the context is a class before calling push_nested_class and pop_nested_class. * g++.dg/parse/defarg6.C: New test. From-SVN: r74333
-rw-r--r--gcc/cp/ChangeLog19
-rw-r--r--gcc/cp/parser.c4
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/parse/defarg6.C11
4 files changed, 31 insertions, 8 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 33a772f..6e2239b 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,10 @@
+2003-12-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/13166
+ * parser.c (cp_parser_late_parsing_default_args): Make sure the
+ context is a class before calling push_nested_class and
+ pop_nested_class.
+
2003-12-03 James E Wilson <wilson@specifixinc.com>
* g++spec.c (lang_specific_driver): Delete USE_LIBUNWIND_EXCEPTIONS
@@ -24,15 +31,15 @@
2003-12-02 Giovanni Bajo <giovannibajo@gcc.gnu.org>
- PR c++/10126
- * pt.c (convert_nontype_argument): Handle default conversions
- while converting a pointer to member function.
+ PR c++/10126
+ * pt.c (convert_nontype_argument): Handle default conversions
+ while converting a pointer to member function.
2003-12-02 Giovanni Bajo <giovannibajo@gcc.gnu.org>
- PR c++/12573
- * pt.c (value_dependent_expression_p): Handle COMPONENT_REFs by
- looking into them recursively.
+ PR c++/12573
+ * pt.c (value_dependent_expression_p): Handle COMPONENT_REFs by
+ looking into them recursively.
2003-12-02 Richard Henderson <rth@redhat.com>
diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c
index 1ce8cd78..5f1b473 100644
--- a/gcc/cp/parser.c
+++ b/gcc/cp/parser.c
@@ -14239,10 +14239,10 @@ cp_parser_late_parsing_default_args (cp_parser *parser, tree fn)
saved_local_variables_forbidden_p = parser->local_variables_forbidden_p;
parser->local_variables_forbidden_p = true;
/* Parse the assignment-expression. */
- if (DECL_CONTEXT (fn))
+ if (DECL_CLASS_SCOPE_P (fn))
push_nested_class (DECL_CONTEXT (fn));
TREE_PURPOSE (parameters) = cp_parser_assignment_expression (parser);
- if (DECL_CONTEXT (fn))
+ if (DECL_CLASS_SCOPE_P (fn))
pop_nested_class ();
/* Restore saved state. */
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 5a00a7a..376783e 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2003-12-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
+
+ PR c++/13166
+ * g++.dg/parse/defarg6.C: New test.
+
2003-12-05 Hans-Peter Nilsson <hp@axis.com>
PR target/13256
diff --git a/gcc/testsuite/g++.dg/parse/defarg6.C b/gcc/testsuite/g++.dg/parse/defarg6.C
new file mode 100644
index 0000000..827b605
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/defarg6.C
@@ -0,0 +1,11 @@
+// { dg-do compile }
+
+// Origin: Falk Hueffner <falk@debian.org>
+
+// PR c++/13166: ICE default function argument for friend declaration.
+
+namespace sc_dt {
+ class sc_length_param {
+ friend int compare_unsigned(int if_v_signed = 0) {}
+ };
+}