* builtins.c (define_builtin_type, builtin_types): Delete.
(define_builtin): Rewritten to take just the built-in code,
the function's name, type and fallback library function name.
All built-ins used by Java are implicit and BUILT_IN_NORMAL.
(initialize_builtins): Overhaul to define the GCC builtins
used by gcj manually, providing the Java run-time's
implementations as the fallback library function.
* libjava.lang/MathBuiltin.java: New test case.
* libjava.lang/MathBuiltin.out: New file.
From-SVN: r67632
* flags.h (flag_wrapv): New flag controlling overflow semantics.
* toplev.c (flag_wrapv): Declare the variable with default false.
(lang_independent_options): New option "-fwrapv" to set the above.
* fold-const.c (extract_muldiv_1): Disable optimization of (2*x)/2
as x, when signed arithmetic overflow wraps around.
(fold): Optimize "-A - B" as "-B - A" if overflow wraps around.
* loop.c (basic_induction_var): Ignore BIVs that rely on undefined
overflow when flag_wrapv is true.
* java/lang.c (java_init_options): Prescribe wrap-around two's
complement arithmetic overflow by setting flag_wrapv.
* doc/invoke.texi: Document new -fwrapv command line option.
* doc/c-tree.texi: Mention that the overflow semantics of
NEGATE_EXPR, PLUS_EXPR, MINUS_EXPR and MULT_EXPR is dependent
upon both flag_wrapv and flag_trapv.
* gcc.dg/fwrapv-1.c: New test case.
* gcc.dg/fwrapv-2.c: New test case.
* libjava.lang/Overflow.java: New test.
* libjava.lang/Overflow.out: New file.
From-SVN: r67270
* libjava.mauve/mauve.exp (mauve_compute_uses): Add inner class
object files by changing all occurances of $ to ^.
(test_mauve): Replace ^ with $ for class file names and quote
them with "'"s.
From-SVN: r62914
Fix for PR libgcj/9139:
* lib/libjava.exp (find_javac): Put value of libgcj_jar into
return value when gcj is used.
* libjava.mauve/mauve.exp (test_mauve): Use libgcj_jar global.
From-SVN: r61237
* java/lang/natClassLoader.cc (defineClass0): Removed erroneous
comment.
* java/lang/ClassLoader.java (defineClass): Use chained
exception when rethrowing.
* defineclass.cc (handleClassBegin): Mark class as interpreted.
* java/lang/reflect/Modifier.java (INVISIBLE, INTERPRETED): New
constants.
* resolve.cc (_Jv_PrepareMissingMethods): New function.
(_Jv_PrepareClass): Use it.
* include/java-interp.h (_Jv_IsInterpretedClass): Rewrote.
(_Jv_InterpClass): _Jv_PrepareMissingMethods now friend.
* java/lang/Class.h (Class::getModifiers): Mask with ALL_FLAGS.
(Class): _Jv_PrepareMissingMethods now friend.
* java/lang/natClassLoader.cc (defineClass0): Use JvSynchronize.
Record `NULL' for system class loader.
(_Jv_RegisterInitiatingLoader): Use JvSynchronize. Special case
system class loader.
(_Jv_FindClassInCache): Likewise.
(_Jv_UnregisterClass): Use JvSynchronize. Free old loader info.
(_Jv_FindClass): Special case system class loader.
* java/lang/natClass.cc (_Jv_abstractMethodError): New function.
(_Jv_SetVTableEntries): Put _Jv_abstractMethodError into empty
vtable slots.
(_Jv_LayoutVTableMethods): Don't generate vtable slot for a method
in a final class.
(_getDeclaredMethod): Don't return synthetic methods.
(getDeclaredMethods): Likewise.
(_getMethod): Likewise.
(_getMethods): Likewise.
From-SVN: r60319
* libjava.loader/loader.exp (gcj_loader_test_one): Use
libjava_prune_warnings.
(gcj_loader_run): Likewise.
* libjava.mauve/mauve.exp (test_mauve): Use
libjava_prune_warnings.
(test_mauve_sim): Likewise.
* libjava.jni/jni.exp (gcj_jni_compile_c_to_so): Use
libjava_prune_warnings.
(gcj_jni_build_header): Likewise.
* lib/libjava.exp (libjava_prune_warnings): New proc.
(gcj_link): Use it.
(test_libjava_from_source): Likewise.
(test_libjava_from_javac): Likewise.
From-SVN: r60089
* libjava.jacks/jacks.exp (gcj_jacks_setup_xfail): New function.
(gcj_jacks_parse): Use it; set up xfails.
* libjava.jacks/jacks.xfail: New file.
From-SVN: r59702
* libjava.loader/loader.exp (gcj_loader_test_one): Fix typo in
'type' argument to libjava_tcompile.
(gcj_loader_run): Use libjava_tcompile instead of running
GCJ_UNDER_TEST directly.
From-SVN: r59351