diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/java/ChangeLog | 15 | ||||
-rw-r--r-- | gcc/java/gcj.texi | 14 | ||||
-rw-r--r-- | gcc/java/java-tree.h | 4 | ||||
-rw-r--r-- | gcc/java/jv-scan.c | 4 | ||||
-rw-r--r-- | gcc/java/jvspec.c | 2 | ||||
-rw-r--r-- | gcc/java/lang.c | 6 | ||||
-rw-r--r-- | gcc/java/lex.c | 10 | ||||
-rw-r--r-- | gcc/java/parse-scan.y | 2 |
8 files changed, 52 insertions, 5 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index 620543a..0035db2 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,18 @@ +2002-09-28 Anthony Green <green@redhat.com> + + * 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 <aph@redhat.com> * expr.c (build_java_array_length_access): Check for null pointer. diff --git a/gcc/java/gcj.texi b/gcc/java/gcj.texi index bb45c4b..8acf3a3 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 @@ -636,6 +641,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 each input file. diff --git a/gcc/java/java-tree.h b/gcc/java/java-tree.h index 5d76d3c..794ebc6 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 2f7c3b9..73eb3f4 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 84b3455..e531f7c 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}\ %{<fbounds-check} %{<fno-bounds-check}\ %{<fassume-compiled} %{<fno-assume-compiled}\ - %{<fcompile-resource*}\ + %{<fcompile-resource*} %{<fassert} %{<fno-assert} \ %{<femit-class-file} %{<femit-class-files} %{<fencoding*}\ %{<fuse-boehm-gc} %{<fhash-synchronization} %{<fjni}\ %{<findirect-dispatch} \ diff --git a/gcc/java/lang.c b/gcc/java/lang.c index d08aca8..c6fbb44 100644 --- a/gcc/java/lang.c +++ b/gcc/java/lang.c @@ -147,6 +147,9 @@ int flag_use_boehm_gc = 0; object to its synchronization structure. */ int flag_hash_synchronization; +/* When nonzero, permit the use of the assert keyword. */ +int flag_assert = 1; + /* When nonzero, assume all native functions are implemented with JNI, not CNI. */ int flag_jni = 0; @@ -205,7 +208,8 @@ lang_f_options[] = {"force-classes-archive-check", &flag_force_classes_archive_check, 1}, {"optimize-static-class-initialization", &flag_optimize_sci, 1 }, {"indirect-dispatch", &flag_indirect_dispatch, 1}, - {"store-check", &flag_store_check, 1} + {"store-check", &flag_store_check, 1}, + {"assert", &flag_assert, 1} }; static const struct string_option diff --git a/gcc/java/lex.c b/gcc/java/lex.c index d8bcfd9..d690176 100644 --- a/gcc/java/lex.c +++ b/gcc/java/lex.c @@ -1604,6 +1604,15 @@ java_lex (java_lval) SET_LVAL_NODE (null_pointer_node); return NULL_TK; + case ASSERT_TK: + if (flag_assert) + { + BUILD_OPERATOR (kw->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 977bbce..81ce627 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" %} |