aboutsummaryrefslogtreecommitdiff
path: root/gcc/java/parse.y
diff options
context:
space:
mode:
authorAlexandre Petit-Bianco <apbianco@cygnus.com>1999-10-29 21:32:28 +0000
committerAlexandre Petit-Bianco <apbianco@gcc.gnu.org>1999-10-29 14:32:28 -0700
commit8119c7200793ac1e1c667f20d948eeffb11996e3 (patch)
treef110b26dd944208fba93263c42fd9a1371805715 /gcc/java/parse.y
parent7281a327ec04a336a01a3df3164c21516c20f078 (diff)
downloadgcc-8119c7200793ac1e1c667f20d948eeffb11996e3.zip
gcc-8119c7200793ac1e1c667f20d948eeffb11996e3.tar.gz
gcc-8119c7200793ac1e1c667f20d948eeffb11996e3.tar.bz2
parse.y (expression_statement:): Call function to report improper invocation of a constructor.
Fri Oct 29 14:23:32 1999 Alexandre Petit-Bianco <apbianco@cygnus.com> * parse.y (expression_statement:): Call function to report improper invocation of a constructor. (parse_ctor_invocation_error): New function. From-SVN: r30267
Diffstat (limited to 'gcc/java/parse.y')
-rw-r--r--gcc/java/parse.y19
1 files changed, 14 insertions, 5 deletions
diff --git a/gcc/java/parse.y b/gcc/java/parse.y
index 76b91f2..8773014 100644
--- a/gcc/java/parse.y
+++ b/gcc/java/parse.y
@@ -93,6 +93,7 @@ static tree method_declarator PROTO ((tree, tree));
static void parse_warning_context PVPROTO ((tree cl, const char *msg, ...))
ATTRIBUTE_PRINTF_2;
static void issue_warning_error_from_context PROTO ((tree, const char *msg, va_list));
+static void parse_ctor_invocation_error PROTO ((void));
static tree parse_jdk1_1_error PROTO ((const char *));
static void complete_class_report_errors PROTO ((jdep *));
static int process_imports PROTO ((void));
@@ -1343,16 +1344,14 @@ expression_statement:
{yyerror ("')' expected"); RECOVER;}
| this_or_super OP_TK CP_TK error
{
- yyerror ("Constructor invocation must be first "
- "thing in a constructor");
+ parse_ctor_invocation_error ();
RECOVER;
}
| this_or_super OP_TK argument_list error
{yyerror ("')' expected"); RECOVER;}
| this_or_super OP_TK argument_list CP_TK error
{
- yyerror ("Constructor invocation must be first "
- "thing in a constructor");
+ parse_ctor_invocation_error ();
RECOVER;
}
| name DOT_TK SUPER_TK error
@@ -2434,7 +2433,17 @@ java_pop_parser_context (generate)
free (toFree);
}
-/* Reporting JDK1.1 features not implemented */
+/* Reporting an constructor invocation error. */
+static void
+parse_ctor_invocation_error ()
+{
+ if (DECL_CONSTRUCTOR_P (current_function_decl))
+ yyerror ("Constructor invocation must be first thing in a constructor");
+ else
+ yyerror ("Only constructors can invoke constructors");
+}
+
+/* Reporting JDK1.1 features not implemented. */
static tree
parse_jdk1_1_error (msg)