From acc59b855d7e95215412c2c86a6865595245be36 Mon Sep 17 00:00:00 2001 From: Anthony Green Date: Mon, 30 Sep 2002 14:57:43 +0000 Subject: [PATCH] Add -fno-assert flag. From-SVN: r57649 --- gcc/java/ChangeLog | 15 +++++++++++++++ gcc/java/gcj.texi | 14 ++++++++++++-- gcc/java/java-tree.h | 4 ++++ gcc/java/jv-scan.c | 4 ++++ gcc/java/jvspec.c | 2 +- gcc/java/lang.c | 6 +++++- gcc/java/lex.c | 10 +++++++++- gcc/java/parse-scan.y | 2 ++ 8 files changed, 52 insertions(+), 5 deletions(-) diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index 620543a5ca2..0035db2a2c5 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,18 @@ +2002-09-28 Anthony Green + + * gcj.texi (Invoking jv-scan): Add --no-assert documentation. + (Code Generation): Add -fno-assert documentation. + * jv-scan.c (flag_assert): New global. + (options): Add assert option. + (help): Add --no-assert documentation. + * parse-scan.y (flag_assert): New global. + * lang.c (lang_f_options): Add -fassert/-fno-assert support. + (flag_assert): New global. + * java-tree.h (flag_assert): New global. + * lex.c (java_lex): Obey flag_assert. + * jvspec.c (jvgenmain_spec): Strip -fassert/-fno-assert when + calling cc1. + 2002-09-26 Andrew Haley * expr.c (build_java_array_length_access): Check for null pointer. diff --git a/gcc/java/gcj.texi b/gcc/java/gcj.texi index bb45c4b72e2..8acf3a35f91 100644 --- a/gcc/java/gcj.texi +++ b/gcc/java/gcj.texi @@ -428,6 +428,10 @@ using JNI, then you must use @code{-fjni}. This option causes @command{gcj} to generate stubs which will invoke the underlying JNI methods. +@item -fno-assert +Don't recognize the @code{assert} keyword. This is for compatibility +with older versions of the language specification. + @item -fno-optimize-static-class-initialization When the optimization level is greater or equal to @code{-O2}, @command{gcj} will try to optimize the way calls into the runtime are made @@ -622,8 +626,9 @@ source file (@file{.java} file). @ignore @c man begin SYNOPSIS jv-scan -jv-scan [@option{--complexity}] [@option{--encoding}=@var{name}] - [@option{--print-main}] [@option{--list-class}] [@option{--list-filename}] +jv-scan [@option{--no-assert}] [@option{--complexity}] + [@option{--encoding}=@var{name}] [@option{--print-main}] + [@option{--list-class}] [@option{--list-filename}] [@option{--version}] [@option{--help}] [@option{-o} @var{file}] @var{inputfile}@dots{} @c man end @@ -635,6 +640,11 @@ and the Info entries for @file{gcj} and @file{gcc}. @c man begin OPTIONS jv-scan +@table @gcctabopt +@item --no-assert +Don't recognize the @code{assert} keyword, for backwards compatibility +with older versions of the language specification. + @table @gcctabopt @item --complexity This prints a complexity measure, related to cyclomatic complexity, for diff --git a/gcc/java/java-tree.h b/gcc/java/java-tree.h index 5d76d3cbb5c..794ebc6e04e 100644 --- a/gcc/java/java-tree.h +++ b/gcc/java/java-tree.h @@ -160,6 +160,10 @@ extern int flag_emit_class_files; extern int flag_filelist_file; +/* When nonzero, permit the use of the assert keyword. */ + +extern int flag_assert; + /* When nonzero, assume all native functions are implemented with JNI, not CNI. */ diff --git a/gcc/java/jv-scan.c b/gcc/java/jv-scan.c index 2f7c3b9a6db..73eb3f4d535 100644 --- a/gcc/java/jv-scan.c +++ b/gcc/java/jv-scan.c @@ -64,6 +64,7 @@ int flag_find_main = 0; int flag_dump_class = 0; int flag_list_filename = 0; int flag_complexity = 0; +int flag_assert = 1; int pedantic = 0; @@ -85,6 +86,8 @@ static const struct option options[] = { "list-class", no_argument, &flag_dump_class, 1 }, { "encoding", required_argument, NULL, OPT_ENCODING }, { "complexity", no_argument, &flag_complexity, 1 }, + { "no-assert", no_argument, &flag_assert, 0 }, + { "assert", no_argument, &flag_assert, 1 }, { NULL, no_argument, NULL, 0 } }; @@ -100,6 +103,7 @@ help () { printf ("Usage: jv-scan [OPTION]... FILE...\n\n"); printf ("Print useful information read from Java source files.\n\n"); + printf (" --no-assert Don't recognize the assert keyword\n"); printf (" --complexity Print cyclomatic complexity of input file\n"); printf (" --encoding NAME Specify encoding of input file\n"); printf (" --print-main Print name of class containing `main'\n"); diff --git a/gcc/java/jvspec.c b/gcc/java/jvspec.c index 84b34559462..e531f7ca5f3 100644 --- a/gcc/java/jvspec.c +++ b/gcc/java/jvspec.c @@ -62,7 +62,7 @@ static const char jvgenmain_spec[] = %{v:-version} %{pg:-p} %{p}\ %{token); + return kw->token; + } + else + break; + /* Some keyword we want to retain information on the location they where found. */ case CASE_TK: @@ -1617,7 +1626,6 @@ java_lex (java_lval) case CATCH_TK: case THROW_TK: case INSTANCEOF_TK: - case ASSERT_TK: BUILD_OPERATOR (kw->token); default: diff --git a/gcc/java/parse-scan.y b/gcc/java/parse-scan.y index 977bbce226d..81ce627216d 100644 --- a/gcc/java/parse-scan.y +++ b/gcc/java/parse-scan.y @@ -135,6 +135,8 @@ void report PARAMS ((void)); } %{ +extern int flag_assert; + #include "lex.c" %} -- 2.30.2