+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.
@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
@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
@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
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. */
int flag_dump_class = 0;
int flag_list_filename = 0;
int flag_complexity = 0;
+int flag_assert = 1;
int pedantic = 0;
{ "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 }
};
{
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");
%{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} \
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;
{"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
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:
case CATCH_TK:
case THROW_TK:
case INSTANCEOF_TK:
- case ASSERT_TK:
BUILD_OPERATOR (kw->token);
default:
}
%{
+extern int flag_assert;
+
#include "lex.c"
%}