diff options
author | Alexandre Petit-Bianco <apbianco@cygnus.com> | 1999-10-29 21:32:28 +0000 |
---|---|---|
committer | Alexandre Petit-Bianco <apbianco@gcc.gnu.org> | 1999-10-29 14:32:28 -0700 |
commit | 8119c7200793ac1e1c667f20d948eeffb11996e3 (patch) | |
tree | f110b26dd944208fba93263c42fd9a1371805715 /gcc/java/parse.y | |
parent | 7281a327ec04a336a01a3df3164c21516c20f078 (diff) | |
download | gcc-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.y | 19 |
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) |