[llvm-commits] [llvm-gcc-4.2] r43913 [75/80] - in /llvm-gcc-4.2/trunk: boehm-gc/ boehm-gc/Mac_files/ boehm-gc/cord/ boehm-gc/doc/ boehm-gc/include/ boehm-gc/include/private/ boehm-gc/tests/ libffi/ libffi/include/ libffi/src/ libffi/src/alpha/ libffi/src/arm/ libffi/src/cris/ libffi/src/frv/ libffi/src/ia64/ libffi/src/m32r/ libffi/src/m68k/ libffi/src/mips/ libffi/src/pa/ libffi/src/powerpc/ libffi/src/s390/ libffi/src/sh/ libffi/src/sh64/ libffi/src/sparc/ libffi/src/x86/ libffi/testsuite/ libffi/testsuite/config/ li...

Bill Wendling isanbard at gmail.com
Thu Nov 8 14:57:11 PST 2007


Added: llvm-gcc-4.2/trunk/libjava/testsuite/ChangeLog-old
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/ChangeLog-old?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/ChangeLog-old (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/ChangeLog-old Thu Nov  8 16:56:19 2007
@@ -0,0 +1,2153 @@
+2004-06-08  Andrew Pinski  <pinskia at physics.uc.edu>
+
+	PR java/15769
+	* libjava.compile/PR15769.java: New test.
+
+2004-01-12  Andreas Tobler  <a.tobler at schweiz.ch>
+
+	* lib/libjava.exp: Add LD_LIBRARY_PATH_32/64 to get proper
+	path setting for Ssolaris 32/64-bit testing.
+	Reorganize LD_LIBRARY_PATH setting.
+
+2004-01-09  Andrew Haley  <aph at redhat.com>
+
+	* lib/libjava.exp (bytecompile_file): Log compile command.
+
+2004-01-07  Andreas Tobler  <a.tobler at schweiz.ch>
+
+	PR libgcj/13011:
+	* libjava.jar/simple.jar: Add a working MANIFEST.MF.
+
+2003-12-03  Ralph Loader  <rcl at ihug.co.nz>
+
+	PR java/12374:
+	* libjava.compile/PR12374.java: New file.
+
+2003-12-01  Jeff Sturm  <jsturm at one-point.com>
+
+	PR optimization/13024
+	* libjava.compile/PR13024.java: New file.
+
+	PR java/13237
+	* libjava.compile/PR13237.java: New file.
+
+2003-11-18  Andreas Tobler  <a.tobler at schweiz.ch>
+
+	* libjava.jar/jar.exp: Cleanup files and reset CLASSPATH.
+
+2003-11-17  Jeff Sturm  <jsturm at one-point.com>
+
+	* libjava.compile/PR12857.java: New test case.
+
+2003-11-14  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.jar/simple.jar: Replaced.
+
+2003-11-13  Tom Fitzsimmons  <fitzsim at redhat.com>
+
+	* libjava.jni/jniutf.c: New file.
+	* libjava.jni/jniutf.java: New file.
+	* libjava.jni/jniutf.out: New file.
+
+2003-11-11  Tom Tromey  <tromey at redhat.com>
+
+	For PR java/12915:
+	* libjava.lang/PR12915.java: New file.
+	* libjava.lang/PR12915.out: New file.
+
+	* libjava.jacks/jacks.exp (gcj_jacks_write): Enable "assert"
+	constraint.
+	* libjava.jacks/jacks.xfail: Added new xfails.
+
+2003-11-10  Tom Tromey  <tromey at redhat.com>
+
+	For PR java/12996:
+	* libjava.jar/simple.jar: New file.
+	* libjava.jar/simple.xfail: New file.
+	* libjava.jar/simple.out: New file.
+	* libjava.jar/simple.java: New file.
+	* libjava.jar/jar.exp: New file.
+
+2003-11-08  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.jacks/jacks.xfail: Updated.
+
+2003-11-03  Jeff Sturm  <jsturm at one-point.com>
+
+	PR java/12866:
+	* libjava.compile/InnerExcept.java: New File.
+
+2003-10-22  Tom Tromey  <tromey at redhat.com>
+
+	PR libgcj/12416:
+	* libjava.lang/PR12416.out: New file.
+	* libjava.lang/PR12416.java: New file.
+
+	PR libgcj/12656:
+	* libjava.lang/PR12656.java: New file.
+	* libjava.lang/PR12656.out: New file.
+
+2003-10-21  Tom Tromey  <tromey at redhat.com>
+
+	* lib/libjava.exp (find_javac): Use -Wno-unreachable-bytecode.
+
+2003-10-08  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.mauve/xfails: Removed some tests.
+
+2003-09-27  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.jacks/jacks.xfail: Updated for new passes.
+
+2003-09-21  Ralph Loader  <suckfish at ihug.co.nz>
+
+	PR java/12350
+	* libjava.lang/PR12350.java: New file.
+	* libjava.lang/PR12350.out: New file.
+
+2003-09-17  Ranjit Mathew  <rmathew at hotmail.com>
+
+	PR java/9577
+	* libjava.cni/PR9577.java: New file.
+	* libjava.cni/natPR9577.cc: New file.
+	* libjava.cni/PR9577.out: New file.
+
+2003-09-04  Jeff Sturm  <jsturm at one-point.com>
+
+	* libjava.compile/compile.exp: Test with -O3 rather than -O.
+	* libjava.lang/lang.exp: Likewise.
+
+2003-09-04  Jeff Sturm  <jsturm at one-point.com>
+
+	* lib/libjava.exp (libjava_arguments): Remove unneeded variables.
+	(test_libjava_from_source): Likewise.
+	(test_libjava_from_javac): Likewise.
+
+2003-08-23  Andreas Tobler <a.tobler at schweiz.ch> 
+
+	PR libgcj/8823
+        * libjava.lang/pr8823.xfail: Removed.
+
+2003-08-19  Jeff Sturm  <jsturm at one-point.com>
+
+	* lib/libjava.exp (libjava_arguments): Add $libjava to the list of
+	libraries.
+
+2003-08-18  Tom Tromey  <tromey at redhat.com>
+
+	PR libgcj/11951:
+	* libjava.jni/pr11951.c: New file.
+	* libjava.jni/pr11951.out: New file.
+	* libjava.jni/pr11951.java: New file.
+
+2003-08-12  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.jacks/jacks.xfail: Updated to account for new passes.
+	* libjava.compile/abstr.xfail: Now can compile from bytecode.
+	* libjava.compile/PR5641.xfail: Now can compile from bytecode.
+
+	* libjava.mauve/mauve.exp (test_mauve_sim): Don't find
+	DejaGNUTestHarness in gnu/testlet.
+	(test_mauve): Use correct object extension.
+
+2003-08-12  Tom Tromey  <tromey at redhat.com>
+
+	* lib/libjava.exp (libjava_find_lib): Search for .so file first.
+	(libjava_arguments): Don't add libraries to link line explictly.
+
+2003-08-05  Tom Tromey  <tromey at redhat.com>
+
+	For PR java/11600:
+	* libjava.compile/PR11600.xfail: New file.
+	* libjava.compile/PR11600.java: New file.
+
+2003-08-04  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.jacks/jacks.exp (gcj_jacks_run): Just ignore errors
+	from jacks.
+
+2003-07-24  Tom Tromey  <tromey at redhat.com>
+
+	For PR libgcj/7482:
+	* libjava.lang/PR7482.java: New file.
+	* libjava.lang/PR7482.out: New file.
+
+2003-07-20  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.mauve/mauve.exp (mauve_find_harness_files): New proc.
+	(test_mauve): Use it.
+	(test_mauve_sim): Likewise.
+
+2003-07-19  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.verify/verify.exp (gcj_verify_list_tests): Only change
+	directory if new directory exists.
+
+2003-07-13  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.verify/verify.exp: Fixed variable init.
+
+2003-07-10  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.verify/verify.exp: New file.
+	* libjava.verify/README.verify: New file.
+
+2003-07-09  Jeff Sturm  <jsturm at one-point.com>
+
+	* libjava.lang/SyncTest.java (run): Cache .class value.
+
+2003-06-08  Roger Sayle  <roger at eyesopen.com>
+
+	* libjava.lang/MathBuiltin.java: New test case.
+	* libjava.lang/MathBuiltin.out: New file.
+
+2003-06-05  Mark Wielaard  <mark at klomp.org>
+
+	* libjava.mauve/mauve.exp (test_mauve): Add -wno-deprecated to GCJ.
+	
+	PR libgcj/6181:
+	* libjava.mauve/xfails: Remove getBeanInfo() failures.
+
+	PR libgcj/6293:
+	* libjava.mauve/xfails: Remove PipedStream.close() failure.
+
+2003-05-31  Roger Sayle  <roger at eyesopen.com>
+
+	* libjava.lang/Overflow.java: New test.
+	* libjava.lang/Overflow.out: New file.
+
+2003-05-06  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.lang/verify.java: New file.
+	* libjava.lang/verify.out: New file.
+
+2003-05-01  Tom Tromey  <tromey at redhat.com>
+
+	PR java/10459:
+	* libjava.compile/pr10459_2.java: New file.
+	* libjava.compile/pr10459.java: New file.
+
+2003-04-30  Tom Tromey  <tromey at redhat.com>
+
+	PR libgcj/10582:
+	* libjava.lang/assign.java: New file.
+	* libjava.lang/assign.out: New file.
+
+2003-04-16  Mark Mitchell  <mark at codesourcery.com>
+
+	PR middle-end/8866
+	* libjava.lang/PR8866.java: New test.
+
+2003-04-16  Andrew Haley  <aph at redhat.com>
+
+	* libjava.lang/Throw_2.java (main): Make a successful test produce
+	some output.
+
+2003-03-22  Andreas Tobler <a.tobler at schweiz.ch>
+
+	* libjava.jni/jni.exp: Add compilation/link fix dor darwin dylibs.
+
+2003-03-22  Tom Tromey  <tromey at redhat.com>
+
+	* lib/libjava.exp (gcj_invoke): Moved...
+	* libjava.jni/jni.exp: ...from here.
+
+	* libjava.cni/shortfield.out: New file.
+	* libjava.cni/shortfield.java: New file.
+	* libjava.cni/natshortfield.cc: New file.
+	* libjava.cni/natlongfield.cc: New file.
+	* libjava.cni/longfield.out: New file.
+	* libjava.cni/longfield.java: New file.
+
+	* libjava.cni/cni.exp: New file.
+
+2003-03-11  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.lang/initfield.java: New file.
+	* libjava.lang/initfield.out: New file.
+
+2003-03-08  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.lang/initfield.java: New file.
+	* libjava.lang/initfield.out: New file.
+
+2003-03-10  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.jacks/jacks.xfail: Updated to reflect reality.
+
+2003-03-02  Mark Wielaard  <mark at klomp.org>
+
+	* libjava.mauve/xfails: Remove all AcuniaPropertiesTest failures
+
+2003-02-23  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.jacks/jacks.xfail: Most 4.7.10 tests pass now.
+
+2003-02-16  Jeff Sturm  <jsturm at one-point.com>
+
+	* libjava.lang/CompareNaN.java: New test.
+	* libjava.lang/CompareNaN.out: New test.
+
+2003-02-16  Mark Wielaard  <mark at klomp.org>
+
+	* libjava.mauve/xfails: Add Class.reflect2 and String.getBytes FAILs.
+
+2003-02-15  Mark Wielaard  <mark at klomp.org>
+
+	* lib/libjava.exp (test_libjava_from_javac): Use regsub not string map.
+	* libjava.mauve/mauve.exp (mauve_compute_uses): Likewise.
+	(test_mauve): Likewise.
+
+2003-02-14  Mark Wielaard  <mark at klomp.org>
+
+	* lib/libjava.exp (test_libjava_from_javac): Don't create .o files
+	containing $ characters and always quote class files with "'"s.
+
+2003-02-14  Mark Wielaard  <mark at klomp.org>
+
+	* 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.
+
+2003-02-13  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.mauve/xfails: Added entries for an unimplemented Class
+	method.
+
+2003-02-07  Mark Wielaard  <mark at klomp.org>
+
+	* libjava.mauve/xfails: Add new entries for
+	gnu.testlet.java.text.CollationElementIterator.jdk11
+
+2003-02-03  Ulrich Weigand  <uweigand at de.ibm.com>
+
+	* libjava.jacks/jacks.exp (gcj_jacks_write): Set LD_LIBRARY_PATH
+	to find libgcc_s.  Set JAVA_CLASSPATH to find libgcj.jar.
+
+2003-01-31  Mark Wielaard  <mark at klomp.org>
+
+	* lib/libjava.exp (libjava_prune_warnings): Remove all unreachable
+	bytecode warnings.
+
+2003-01-28  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.loader/TestEarlyGC.java: Added comment explaining
+	bytecode.
+
+	* libjava.jacks/jacks.xfail: More lexer tests now pass.
+
+2003-01-27  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.compile/consthrow.java: New file.
+	* libjava.compile/consthrow.xfail: New file.
+
+2003-01-27  Kaveh R. Ghazi  <ghazi at caip.rutgers.edu>
+
+	* libjava.lang/pr8823.xfail: New file, add "xfail-byte".
+
+2003-01-24  Ranjit Mathew  <rmathew at hotmail.com>
+
+	* libjava.jni/calls.c (Java_calls_docall): Define with
+	JNIEXPORT and JNICALL method attributes.
+	* libjava.jni/field.c (Java_field_fetch): Likewise.
+	* libjava.jni/final_method.c (Java_final_1method_meth): Likewise.
+	* libjava.jni/findclass.c (Java_findclass_doit): Likewise.
+	* libjava.jni/invoke.c (Java_invoke_val): Likewise.
+	* libjava.jni/martin.c (Java_martin_myNative): Likewise.
+	* libjava.jni/noclass.c (Java_noclass_find_1it): Likewise.
+	* libjava.jni/overload.c (Java_overload_over__I): Likewise.
+	(Java_overload_over__II): Likewise.
+	* libjava.jni/register.c (JNI_OnLoad): Likewise.
+	* libjava.jni/simple_int.c (Java_simple_1int_nat): Likewise.
+	* libjava.jni/throwit.c (Java_throwit_throwit): Likewise.
+	* libjava.jni/virtual.c (Java_virtual_equals): Likewise.
+
+2003-01-21  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.jacks/jacks.xfail: All 8.4.3 tests and 9.4-modifier-10
+	now pass.
+
+2003-01-12  Tom Tromey  <tromey at redhat.com>
+
+	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.
+
+2003-01-03  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.compile/pr8712.java: New file, for PR java/8712.
+
+2003-01-01  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.compile/pr8955.java: New test, for PR java/8955.
+
+2002-12-19  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.jacks/jacks.xfail: Updated.
+
+2002-12-18  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.lang/pr8945.java: New file.
+	* libjava.lang/pr8945.out: New file.
+
+2002-12-12  Tom Tromey  <tromey at redhat.com>
+
+	* 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.
+
+2002-12-08  Tom Tromey  <tromey at redhat.com>
+
+	Test for PR libgcj/8823:
+	* libjava.lang/pr8823.java: New file.
+	* libjava.lang/pr8823.out: New file.
+
+2002-12-05  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.lang/override.java: New file.
+	* libjava.lang/override.out: New file.
+
+2002-12-01  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.jacks/jacks.exp (gcj_jacks_setup_xfail): New function.
+	(gcj_jacks_parse): Use it; set up xfails.
+	* libjava.jacks/jacks.xfail: New file.
+
+2002-12-01  Mark Wielaard  <mark at klomp.org>
+
+	* libjava.mauve/xfails: Remove Inspector FAILs that now PASS.
+
+2002-11-21  Tom Tromey  <tromey at redhat.com>
+
+	For PR java/8676:
+	* libjava.lang/pr8676.java: New file.
+	* libjava.lang/pr8676.out: New file.
+
+2002-11-21  Ulrich Weigand  <uweigand at de.ibm.com>
+
+	* 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.
+
+2002-11-05  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.jacks/jacks.exp: New file.
+
+2002-11-04  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.compile/pr7912.java: New file.
+
+2002-11-04  Andrew Haley  <aph at redhat.com>
+
+	* libjava.lang/utilTest.java: New.
+	* libjava.lang/utilTest.out: New.
+
+2002-11-04  Anthony Green  <green at redhat.com>
+
+	* libjava.loader/MyLoader.java: New constructor.
+	* libjava.loader/TestParent.java: New file.
+	* libjava.loader/TestParent.out: New file.
+
+2002-11-04  Anthony Green  <green at redhat.com>
+
+	* libjava.loader/TestEarlyGC.java,
+	libjava.loader/TestEarlyGC.out: New files (from
+	Jeff Sturm).
+
+2002-11-04  Anthony Green  <green at redhat.com>
+
+	* libjava.loader/dummy.java, libjava.loader/loader.exp,
+	libjava.loader/MyLoader.java, libjava.loader/TestLeak.java,
+	libjava.loader/TestLeak.out, libjava.loader/TestMultiple.java,
+	libjava.loader/TestMultiple.out: New files.
+
+2002-11-02  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.lang/initexc.java (fail): Static initializers must be
+	able to complete normally.  From Eric Blake.
+
+	* libjava.lang/initexc.java: New file.
+	* libjava.lang/initexc.out: New file.
+
+2002-11-01  Tom Tromey  <tromey at redhat.com>
+
+	For PR java/8415:
+	* libjava.lang/pr8415.java: New file.
+	* libjava.lang/pr8415.out: New file.
+
+	* libjava.mauve/mauve.exp (find_mauve_sources): New proc.
+	(test_mauve): Use it.
+	(test_mauve_sim): Likewise.
+
+2002-10-24  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.lang/Primes.java: Removed.
+	* libjava.lang/Primes.out: Removed.
+
+2002-10-23  Tom Tromey  <tromey at redhat.com>
+
+	For PR java/6388:
+	* libjava.lang/pr6388.java: New file.
+	* libjava.lang/pr6388.out: New file.
+
+2002-10-15  Andrew Haley  <aph at redhat.com>
+
+	* libjava.lang/EvaluationOrder.java (EvaluationOrder): New.
+	* libjava.lang/EvaluationOrder.out (EvaluationOrder): New.
+
+2002-10-14  Andrew Haley  <aph at redhat.com>
+
+	* libjava.lang/StaticConstructor.java: New.
+	* libjava.lang/StaticConstructor.out: New.
+
+2002-10-13  Mark Wielaard  <mark at klomp.org>
+
+	* libjava.mauve/xfails: Remove tests that now XPASS.
+
+2002-10-03  Andrew Haley  <aph at redhat.com>
+
+	* libjava.lang/Array_3.java (baz): New.
+	(main): Call baz.
+
+2002-09-29  Anthony Green  <green at redhat.com>
+
+	* libjava.lang/TestProxy.java: New file.
+	* libjava.lang/TestProxy.out: Ditto.
+
+2002-09-29  Anthony Green  <green at redhat.com>
+
+	* libjava.lang/utf8concat.java: New file.
+	* libjava.lang/utf8concat.out: Ditto.
+
+2002-08-26  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.compile/narrow_case.java: New file.
+
+2002-08-25  Adam Megacz <adam at xwt.org>
+
+	* lib/libjava.exp: don't apply -no-install when platform is mingw.
+
+2002-08-16  H.J. Lu <hjl at gnu.org>
+
+	* lib/libjava.exp (gcc_version): Removed.
+	(libgcj_jar): New.
+	(libjava_init): Set libgcj_jar with tcl glob.
+	(libjava_arguments): Use libgcj_jar.
+
+2002-07-22  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.compile/zeroexp.java: New file.
+
+2002-07-18  Rainer Orth  <ro at TechFak.Uni-Bielefeld.DE>
+
+	* libjava.compile/compile.exp: Sort sources.
+	* libjava.jni/jni.exp (gcj_jni_run): Likewise.
+	* libjava.lang/lang.exp: Likewise.
+
+2002-07-02  Andrew Haley  <aph at redhat.com>
+
+	* libjava.lang/inline.java: New file.
+	* libjava.lang/inline.out: Likewise.
+
+	* libjava.lang/Array_3.java: Add another case.
+
+2002-06-23  Tom Tromey  <tromey at redhat.com>
+
+	* Makefile.in: Rebuilt.
+	* Makefile.am (RUNTEST): Added AM_RUNTESTFLAGS.
+	(AM_RUNTESTFLAGS): New variable.
+	(RUNTESTFLAGS): Don't define.
+	* lib/libjava.exp (libjava_invoke): New proc.
+	(test_libjava_from_source): Use it.
+	(test_libjava_from_javac): Likewise.
+	(libjava_find_gij): New proc.
+
+2002-06-12  Tom Tromey  <tromey at redhat.com>
+
+	* lib/libjava.exp (test_libjava): Fixed typo.
+	* libjava.compile/PR6865.xfail: New file.
+
+2002-06-11  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.compile/PR6865.java: New file.  For PR java/6865.
+
+	* libjava.lang/PR6520.java: Fixed typo.
+
+2002-06-10  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.lang/PR6520.java: New file.  For PR java/6520.
+
+2002-06-04  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.compile/T20020604.java: New file.
+
+	For PR libgcj/6389:
+	* libjava.mauve/xfails: Now passes System.getProperty test.
+
+	For PR java/1343 and PR java/6336:
+	* libjava.compile/PR1343.java: New file.
+
+	For PR java/5913:
+	* libjava.compile/PR5913.xfail: Removed.
+
+2002-05-29  Bryce McKinlay  <bryce at waitaki.otago.ac.nz>
+
+	* libjava.compile/T20020529.java: New file.
+
+2002-05-27  Bryce McKinlay  <bryce at waitaki.otago.ac.nz>
+
+	* libjava.lang/PR6820.java: New file.
+	* libjava.lang/PR6820.out: New file.
+
+2002-05-23  Bryce McKinlay  <bryce at waitaki.otago.ac.nz>
+
+	* libjava.lang/PR6729.java: New file.
+	* libjava.lang/PR6729.out: New file.
+
+2002-05-04  Mark Wielaard  <mark at klomp.org>
+
+	For PR java/6519:
+	* libjava.lang/emptystring.java: New.
+	* libjava.lang/emptystring.out: New.
+
+2002-04-21  Mark Wielaard  <mark at klomp.org>
+
+	* libjava.mauve/xfail: Expect failures for PR java/6391 and
+	libgcj/6389.
+
+2002-04-16  Mark Wielaard  <mark at klomp.org>
+
+	* libjava.lang/negzero.java: New.
+	* libjava.lang/negzero.out: New.
+
+2002-04-14  Mark Wielaard  <mark at klomp.org>
+
+        * libjava.mauve/xfails: Expect failures for PR libgcj/6302 and
+        libgcj/6298.
+
+2002-04-14  Mark Wielaard  <mark at klomp.org>
+
+	* libjava.mauve/xfails: Expect failures for PR libgcj/6293,
+	libgcj/6295, libgcj/6296 and libgcj/6297.
+
+2002-04-12  Anthony Green  <green at redhat.com>
+
+	* lib/libjava.exp: Use libgcj-VERSION.jar, not libgcj.jar.
+
+2002-04-12  Loren J. Rittle <ljrittle at acm.org>
+
+	* libjava.lang/SyncGlobal.java, libjava.lang/SyncGlobal.out:
+	New test case.
+
+2002-04-09  Bryce McKinlay  <bryce at waitaki.otago.ac.nz>
+
+	* libjava.lang/PR6204.java, libjava.lang/PR6204.out: New test case.
+	* libjava.lang/PR6085.java, libjava.lang/PR6085.out: Likewise.
+
+2002-04-07  Mark Wielaard  <mark at klomp.org>
+
+	* libjava.mauve/xfails: Add CASE_INSENSITIVE_ORDER, result was
+	unspecified and test should be updated to match latest spec.
+	Add AcuniaPropertiesTest, known bug #6219. Add test_getClassLoader,
+	what we do seems to be not really right or wrong.
+
+2002-04-06  Mark Wielaard  <mark at klomp.org>
+
+	* libjava.mauve/mauve.exp: Use libgcj.jar not libgcj.zip.
+	* libjava.mauve/xfails: add Character.classify12 (number 1),
+	Character.getType (number 11), Character.getType (number 20) and
+	Character.getType (number 22). We implement 1.4 Character.
+
+2002-03-28  Andrew Haley  <aph at redhat.com>
+
+	* libjava.lang/Throw_2.java: New.
+	* libjava.lang/Throw_2.out: New.
+
+2002-03-27  Anthony Green  <green at redhat.com>
+
+	* libjava.lang/InvokeReturn.java: Modify test for targets
+	which do not yet support reflection.
+
+2002-03-27  Anthony Green  <green at redhat.com>
+
+	* libjava.jni/jni.exp (gcj_jni_run): Fix cross build test.
+
+2002-03-27  Anthony Green  <green at redhat.com>
+
+	* lib/libjava.exp: Add the wrapper link options only when we're
+	linking.
+
+2002-03-26  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.mauve/mauve.exp (test_mauve): Use correct stderr
+	redirection code.
+
+2002-03-22  Eric Blake  <ebb9 at email.byu.edu>
+
+	For PR java/6026:
+	* libjava.compile/PR6026.java: New file.
+
+2002-03-21  Andrew Haley  <aph at redhat.com>
+
+	* libjava.lang/Thread_Interrupt.java (Looper.calibrate): New.
+	(yields): New.
+
+2002-03-18  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.jni/jni.exp (gcj_jni_test_one): Find libstdc++ in build
+	tree.
+	(gcj_invoke): Added ld_library_additions argument.
+
+2002-03-17  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.jni/jni.exp (gcj_jni_build_header): Use local_exec, not
+	target_compile.  Fixes PR other/5874.
+
+2002-03-15  Eric Blake  <ebb9 at email.byu.edu>
+
+	For PR java/5902:
+	* libjava.compile/PR5902.java: Does not need to execute.
+	For PR java/5913:
+	* libjava.compile/PR5913.java: Ditto.
+
+2002-03-12  Tom Tromey  <tromey at redhat.com>
+
+	Test for PR java/5848:
+	* libjava.compile/PR5848.xfail: New file.
+	* libjava.compile/PR5848.java: New file.
+
+2002-03-12  Eric Blake  <ebb9 at email.byu.edu>
+
+	* libjava.compile/PR5913.java: Expand test.
+
+2002-03-11  Eric Blake  <ebb9 at email.byu.edu>
+
+	* libjava.compile/PR5902.java: New file.
+	* libjava.compile/PR5913.java: New file.
+	* libjava.compile/PR5913.xfail: New file.
+
+2002-02-23  Jeff Sturm  <jsturm at one-point.com>
+
+	* libjava.lang/InvokeReturn.java: New file.
+	* libjava.lang/InvokeReturn.out: New file.
+
+2002-02-20  Bryce McKinlay  <bryce at waitaki.otago.ac.nz>
+
+	* lib/libjava.exp: Add "xfail-byte-output" and "xfail-source-output".
+	Don't display expected and actual output for a failed output test.
+
+	* libjava.lang/ArrayStore.java: New file.
+	* libjava.lang/ArrayStore.out: New file.
+	* libjava.lang/ArrayStore.xfail: New file. xfail-byte-output.
+	* libjava.lang/ArrayStore2.java: New file.
+	* libjava.lang/ArrayStore2.out: New file.
+	* libjava.lang/ArrayStore2.xfail: New file. xfail-source-output.
+
+	* libjava.lang/stringconst.xfail: xfail-output -> xfail-source-output.
+
+2002-02-18  Bryce McKinlay  <bryce at waitaki.otago.ac.nz>
+
+	* libjava.lang/err7.xfail: Removed.
+	* libjava.lang/err8.xfail: Removed.
+	
+	* libjava.lang/ArrayStore.java: New file.
+	* libjava.lang/ArrayStore.out: New file.
+
+2002-02-10  Tom Tromey  <tromey at redhat.com>
+
+	For PR java/5641:
+	* libjava.compile/PR5641.xfail: New file.
+	* libjava.compile/PR5641.java: New file.
+
+2002-02-10  Rainer Orth  <ro at TechFak.Uni-Bielefeld.DE>
+
+	* lib/libjava.exp (libjava_find_lib): Remove duplicate .la files.
+
+2002-01-05  H.J. Lu <hjl at gnu.org>
+
+	* libjava.jni/jni.exp: Add -I.. for generated header.
+
+2001-12-20  Tom Tromey  <tromey at redhat.com>
+
+	For PR java/4766:
+	* libjava.compile/PR4766.java: New file.
+
+2001-12-20  Andrew Haley  <aph at redhat.com>
+
+	* libjava.lang/FileHandleGcTest.out:  New file.
+	* libjava.lang/FileHandleGcTest.java: New file.
+	* libjava.lang/Array_3.out: New file.
+	* libjava.lang/Array_3.java: New file.
+
+2001-12-18  Tom Tromey  <tromey at redhat.com>
+
+	For PR java/3417:
+	* libjava.compile/PR3417.xfail: New file.
+	* libjava.compile/PR3417.java: New file.
+
+2001-12-17  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.lang/PR3731.xfail: Removed.
+
+	Inspired by PR java/5057:
+	* libjava.lang/PR5057_2.java: New file.
+	* libjava.lang/PR5057_2.out: New file.
+
+	For PR java/5057:
+	* libjava.lang/PR5057.out: New file.
+	* libjava.lang/PR5057.java: New file.
+
+2001-12-13  Tom Tromey  <tromey at redhat.com>
+
+	For PR libgcj/5103:
+	* libjava.jni/cxxtest.out: New file.
+	* libjava.jni/cxxtest.cc: New file.
+	* libjava.jni/cxxtest.java: New file.
+	* libjava.jni/jni.exp (gcj_jni_test_one): If there is no .c file,
+	assume there is a .cc file.
+
+2001-12-09  Bryce McKinlay  <bryce at waitaki.otago.ac.nz>
+
+	* libjava.lang/PR3731.out: Adjust output to reflect that "instanceof"
+	shouldn't trigger class initialization.
+
+2001-12-06  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.compile/BlankFinal.java: Removed; incorrect test.
+
+2001-11-02  Bryce McKinlay  <bryce at waitaki.otago.ac.nz>
+
+	* libjava.lang/TLtest.xfail: New file. Needs threads.
+
+2001-10-04  Alexandre Petit-Bianco  <apbianco at redhat.com>
+
+	* libjava.lang/PR3096.java: New file.
+	* libjava.lang/PR3096.out: Likewise.
+
+2001-09-27  Alexandre Petit-Bianco  <apbianco at redhat.com>
+
+	* libjava.compile/final_initialization_in_ctor.java: New file
+
+2001-08-28  Alexandre Petit-Bianco  <apbianco at redhat.com>
+
+	* libjava.compile/final_assignment_check.java: New file.
+	* libjava.compile/final_assignment_check.xfail: Likewise.
+	* libjava.compile/final_local_switch.java: Likewise.
+	
+2001-08-24  Alexandre Petit-Bianco  <apbianco at redhat.com>
+
+	* libjava.lang/KeepInline.out: Fixed content.
+
+2001-08-17  Alexandre Petit-Bianco  <apbianco at redhat.com>
+
+	* libjava.compile/XercesBug.java: New file.
+
+2001-08-12  Alexandre Petit-Bianco  <apbianco at redhat.com>
+	
+	* libjava.lang/Matrix4f.java: New file.
+	* libjava.lang/Matrix4f.out: New file.
+
+2001-08-03  Richard Henderson  <rth at redhat.com>
+
+	* libjava.jni/calls.c (Java_calls_docall): Fix typo.
+
+2001-08-01  Jeff Sturm  <jsturm at one-point.com>
+
+	* libjava.lang/KeepInline.java: New file.
+	* libjava.lang/KeepInline.out: New file.
+
+2001-07-30  Jeff Sturm  <jsturm at one-point.com>
+
+	* libjava.lang/SyncTest.java: New file.
+	* libjava.lang/SyncTest.out: New file.
+	* libjava.lang/SyncTest.xfail: New file.
+
+2001-07-27  Rainer Orth  <ro at TechFak.Uni-Bielefeld.DE>
+
+	* lib/libjava.exp (${tool}_set_ld_library_path): New, copied from
+	g++.exp.
+
+2001-07-19  Jeff Sturm  <jsturm at one-point.com>
+
+	* libjava.lang/PR3731.java: New file.
+	* libjava.lang/PR3731.out: New file.
+	* libjava.lang/PR3731.xfail: New file.
+
+2001-07-12  Alexandre Petit-Bianco  <apbianco at redhat.com>
+
+	* libjava.compile/anon_ctor_itf_arg.java: Moved to `libjava.lang.'
+	* libjava.compile/anon_ctor_itf_arg.out: Likewise
+	* libjava.lang/invoke_from_inner.java: New file.
+	* libjava.lang/invoke_from_inner.out: Likewise.
+
+2001-07-12  Alexandre Petit-Bianco  <apbianco at redhat.com>
+
+	* libjava.compile/anon_ctor_itf_arg.java: New file.
+	* libjava.compile/anon_ctor_itf_arg.out: New file.
+
+2001-07-12  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.lang/N19990310_4.xfail: Removed.
+
+2001-07-10  Alexandre Petit-Bianco  <apbianco at readhat.com>
+
+	* libjava.lang/TLtest.java: New file.
+	* libjava.lang/TLtest.out: New file.
+
+2001-07-06  Andrew Haley  <aph at cambridge.redhat.com>
+
+	* libjava.lang/Divide_1.java: Add many more test cases.
+	* libjava.lang/Divide_1.out: Likewise.
+
+2001-07-03  Jeff Sturm  <jsturm at one-point.com>
+
+	* libjava.lang/II.java: New file.
+	* libjava.lang/II.out: New file.
+
+2001-06-25  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.lang/stub.xfail: Removed.
+
+2001-06-24  Andreas Jaeger  <aj at suse.de>
+
+	* libjava.jni/jni.exp (gcj_jni_compile_c_to_so): Fix path for
+	jni.h.
+
+2001-06-14  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.jni/jni.exp: New file.
+	* lib/libjava.exp (gcj_link): New proc.
+
+2001-06-08  Tom Tromey  <tromey at redhat.com>
+
+	Fix for PR libgcj/2874:
+	* libjava.mauve/mauve.exp (gcj_run_mauve_tests): New proc.
+	(test_mauve): Return 0 on failure.
+	* lib/libjava.exp (test_libjava_from_source): Remove generated
+	files if test is successful.
+	(test_libjava_from_javac): Likewise.
+	(gcj_cleanup): New proc.
+
+2001-06-05  Jeff Sturm  <jsturm at one-point.com>
+
+	* lib/libjava.exp (libjava_arguments): Build with `-no-install'
+	when $mode == "link".
+
+2001-06-02  Anthony Green  <green at redhat.com>
+
+	* libjava.lang/invokethrow.java: Fake a pass for systems which
+	don't support invocation.
+
+2001-05-30  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.lang/invokethrow.out: New file.
+	* libjava.lang/invokethrow.java: New file.
+
+2001-05-03  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.lang/Thread_Wait_Interrupt.xfail: New file.
+	* libjava.lang/Thread_Wait_2.xfail: New file.
+	* libjava.lang/Thread_Wait.xfail: New file.
+	* libjava.lang/Thread_Sleep.xfail: New file.
+	* libjava.lang/Thread_Monitor.xfail: New file.
+	* libjava.lang/Thread_Join.xfail: New file.
+	* libjava.lang/Thread_Interrupt.xfail: New file.
+	* libjava.lang/Thread_Alive.xfail: New file.
+	* lib/libjava.exp (libjava_init): Set global
+	libjava_uses_threads.
+	(test_libjava): Document `need-threads' tag.
+	(test_libjava_from_source): handle need-threads tag.
+	(test_libjava_from_javac): Likewise.
+
+2001-05-03  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.lang/err11.xfail: Removed.
+
+2001-04-25  Tom Tromey  <tromey at redhat.com>
+
+	* lib/libjava.exp (libjava_init): Use UTF-8 encoding.
+	(test_libjava_from_javac): Likewise.
+
+2001-04-09  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.lang/pr83.xfail: Removed.
+	* libjava.lang/Shazam.xfail: Removed.
+	* libjava.lang/PR162.xfail: Removed.
+	* libjava.compile/PR375.xfail: Removed.
+	* libjava.compile/PR208.xfail: Removed xfail-byte.
+	* libjava.compile/PR207.xfail: Removed xfail-byte.
+
+2001-04-07  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.compile/weirddecl.xfail: Removed xfail-*.
+	* libjava.compile/PR374.xfail: Removed.
+
+2001-03-29  Alexandre Petit-Bianco  <apbianco at redhat.com>
+
+	* libjava.lang/instinit2.out: Fixed.
+
+2001-03-22  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.jni/field.out: New file.
+	* libjava.jni/field.c: New file.
+	* libjava.jni/field.java: New file.
+
+2001-03-20  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.compile/uesc.java: New file.
+	* libjava.compile/uesc.xfail: New file.
+
+2001-03-16  Tom Tromey  <tromey at redhat.com>
+
+	* lib/libjava.exp (libjava_arguments): Rewrote computation of
+	LD_LIBRARY_PATH.  Add gcc build directory if it contains
+	libgcc_s.so.
+
+2001-03-14  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.compile/assignment.xfail: Removed.
+	* libjava.compile/assignment_2.xfail: Removed.
+
+2001-02-08  Warren Levy  <warrenl at redhat.com>
+
+	* libjava.mauve/mauve.exp: Added support for XFAILs.
+	* libjava.mauve/xfails: New file.
+
+2001-01-26  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.jni/martin.c (Java_martin_myNative): Flush stdout.
+
+	* libjava.jni/martin.out: New file.
+	* libjava.jni/martin.c: New file.
+	* libjava.jni/martin.java: New file.
+
+2001-01-16  Richard Henderson  <rth at redhat.com>
+
+	* lib/libjava.exp (bytecompile_file): Don't unset CLASSPATH.
+	(libjava_arguments): Use .jar extension for libgcj.
+
+2001-01-08  Bryce McKinlay  <bryce at albatross.co.nz>
+
+	* libjava.compile/SuperConstr.java: New test case.
+
+2000-12-18  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.mauve/mauve.exp (test_mauve): Don't look for exceptions
+	thrown in the test harness.
+	(test_mauve_sim): Likewise.
+
+2000-12-16  Tom Tromey  <tromey at redhat.com>
+
+	* lib/libjava.exp (test_libjava_from_javac): Strange quoting trick
+	for `.class' link case.
+	(bytecompile_file): Change directory outside of `catch'.
+
+	* libjava.lang/Thread_1.java: Removed.
+	* libjava.lang/Thread_1.out: Likewise.
+
+	* libjava.lang/N19990310_4.xfail: New file.
+	* libjava.lang/stub.xfail: Added new failure modes.
+	* libjava.lang/stringconst.xfail: New file.
+	* libjava.lang/PR162.xfail: New file.
+	* libjava.lang/Final.xfail: Removed.
+
+2000-12-15  Tom Tromey  <tromey at redhat.com>
+
+	* libjava.lang/instinit.out: Removed erroneous line.
+
+	* libjava.lang/Thread_1.out: Expect `0' active count.
+
+	* libjava.lang/stub.xfail: New file.
+	* libjava.lang/pr83.xfail: New file.
+	* libjava.lang/err8.xfail: New file.
+	* libjava.lang/err7.xfail: New file.
+	* libjava.lang/Shazam.xfail: New file.
+	* libjava.lang/err11.xfail: New file.
+
+	* libjava.lang/instinit2.java: Renamed class to `instinit2'.
+
+	* libjava.lang/anon3.out: Fixed typo.
+
+	* libjava.lang/Class_1.java (main): Uncommented out previously
+	failing code; now it works
+
+	* lib/libjava.exp (libjava_tcompile): New proc.
+	(test_libjava_from_source): Use it.
+	(test_libjava_from_javac): Likewise.
+	(find_javac): New proc.
+	(bytecompile_file): Use it.
+	(test_libjava_from_javac): Handle `xfail-gcjC' tag.  If no-exec
+	set, then don't link even if program has a `main'.
+
+	* libjava.compile/static_3.xfail: New file.
+	* libjava.compile/weirddecl.xfail: New file.
+	* libjava.compile/static_2.xfail: New file.
+	* libjava.compile/not_a_redef.xfail: New file.
+	* libjava.compile/inner_1.xfail: New file.
+	* libjava.compile/assignment_2.xfail: New file.
+	* libjava.compile/assignment.xfail: New file.
+	* libjava.compile/abstr.xfail: New file.
+	* libjava.compile/PR375.xfail: New file.
+	* libjava.compile/PR374.java: New file.
+	* libjava.compile/PR238.xfail: New file.
+	* libjava.compile/PR208.xfail: New file.
+	* libjava.compile/PR207.xfail: New file.
+
+2000-11-30  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.lang/instinit.java: Don't extend `foo'.
+
+2000-11-26  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.compile/weirddecl.java: New file.
+
+Fri Nov 24 11:25:20 2000  Anthony Green  <green at redhat.com>
+
+	* lib/libjava.exp (bytecompile_file): Change default from javac to
+	gcj -C.
+	(libjava_arguments): Fix classpath.
+
+	* libjava.compile/PR129_B.no-link: New file.
+
+2000-11-24  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.compile/PR375.java: New file.  For PR gcj/375.
+
+	* libjava.compile/PR374.java: New file.  For PR gcj/374.
+
+2000-11-07  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.compile/sjis_comment3.java: Removed.
+	* libjava.compile/sjis_comment2.java: Removed.
+	* libjava.compile/sjis_comment1.java: Removed.
+	* libjava.compile/euc_comment3.java: Removed.
+	* libjava.compile/euc_comment2.java: Removed.
+	* libjava.compile/euc_comment1.java: Removed.
+
+2000-11-03  Tom Tromey  <tromey at cygnus.com>
+
+	* lib/libjava.exp (libjava_arguments): Set --tag on libtool
+	invocation.
+
+Sun Oct  8 19:14:05 2000  Anthony Green  <green at redhat.com>
+
+	* libjava.compile/ArrayClass.java: New file.
+
+2000-08-31  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.compile/abstr.xfail: New file.
+	* libjava.compile/abstr.java: New file.
+
+2000-08-09  Tom Tromey  <tromey at cygnus.com>
+
+	From PR gcj/310:
+	* libjava.compile/PR310.java: New file.
+	* libjava.compile/PR310.xfail: New file.
+
+2000-07-30  Anthony Green  <green at redhat.com>
+
+	* libjava.compile/PR295.java: New file.
+	See PR gcj/295.
+
+2000-07-11  Andrew Haley  <aph at cygnus.com>
+
+	* libjava.compile/static_init2.java: New file.
+
+2000-07-07  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.lang/stringconst2.out: New file.
+	* libjava.lang/stringconst2.java: New file.
+
+2000-06-23  Tom Tromey  <tromey at cygnus.com>
+
+	For PR gcj/260:
+	* libjava.lang/PR260.out: New file.
+	* libjava.lang/PR260.java: New file.
+
+2000-06-13  Warren Levy  <warrenl at cygnus.com>
+
+	Test for PR java.lang/258:
+	* libjava.lang/Class_1.java: New file.
+	* libjava.lang/Class_1.out: New file.
+
+2000-05-29  Bryce McKinlay  <bryce at albatross.co.nz>
+
+	* libjava.lang/PR242.java: New file. PR gcj/242.
+
+2000-05-23  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.compile/PR238.java: New file.  For PR gcj/238.
+
+	* libjava.lang/stringconst.out: New file.
+	* libjava.lang/stringconst.java: New file.
+
+2000-05-22  Bryce McKinlay  <bryce at albatross.co.nz>
+
+	* libjava.compile/PR232B.java: Additional PR gcj/232 test.
+
+2000-05-22  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.compile/PR235.java: New file.  For PR gcj/235.
+
+2000-05-21  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.compile/PR234.java: New file.  For PR gcj/234.
+
+2000-05-22  Bryce McKinlay  <bryce at albatross.co.nz>
+
+	Test for PR gcj/232:
+	* libjava.compile/PR232.java: New file.
+
+2000-05-18  Tom Tromey  <tromey at cygnus.com>
+
+	* lib/libjava.exp (bytecompile_file): Use exec, not system.
+
+2000-05-17  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.mauve/mauve.exp (test_mauve): Call `prune_warnings'.
+	(test_mauve_sim): Likewise.
+	(test_mauve): Redirect stderr in system call.
+	(test_mauve_sim): Likewise.
+	* lib/libjava.exp (test_libjava_from_source): Call
+	`prune_warnings'.
+	(test_libjava_from_javac): Likewise.
+	(bytecompile_file): Redirect stderr in system call.
+	* lib/libjava.exp (libjava_find_program): New proc.
+	(find_jvscan): Use it.
+	(find_gcjh): New proc.
+
+	* libjava.compile/compile.exp: Use "", not $options.
+
+2000-05-16  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.lang/instance.out: New file.
+	* libjava.lang/instance.java: New file.
+
+2000-05-10  Bryce McKinlay  <bryce at albatross.co.nz>
+
+	* libjava.lang/StringBuffer_1.java: New file.
+	* libjava.lang/StringBuffer_1.out: New file.
+
+2000-05-08  Bryce McKinlay  <bryce at albatross.co.nz>
+
+	Test for PR gcj/224:
+	* libjava.compile/PR224.java: New file.
+	* libjava.compile/PR224.xfail: New file.
+
+2000-04-28  Bryce McKinlay  <bryce at albatross.co.nz>
+
+	Test for PR gcj/218:
+	* libjava.lang/PR218.java: New file.
+	* libjava.lang/PR218.out: New file.
+
+2000-04-25  Alexandre Petit-Bianco  <apbianco at cygnus.com>
+
+	* libjava.compile/MethodFailure4.java: New file.
+	* libjava.compile/MethodFailure4.out: New file.
+
+2000-04-20  Alexandre Petit-Bianco  <apbianco at cygnus.com>
+
+	* libjava.compile/block.java: New file.
+	* libjava.compile/block.out: New file.
+
+2000-04-20  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.jni/throwit.out: Fixed output to be correct.
+
+	* libjava.jni/noclass.java (main): `find_it' throws an exception.
+
+2000-04-16  Anthony Green  <green at redhat.com>
+
+	* libjava.compile/PR209.java: New file.
+
+2000-04-16  Anthony Green  <green at redhat.com>
+
+	* libjava.compile/PR208.java: New file.
+
+2000-04-16  Anthony Green  <green at redhat.com>
+
+	* libjava.compile/PR207.java: New file.
+	libjava.compile/PR207_A.java: New file.
+	libjava.compile/PR206.java: New file.
+	libjava.compile/PR206_A.java: New file.
+
+2000-04-14  Bryce McKinlay  <bryce at albatross.co.nz>
+
+	Additional test for PR gcj/148:
+	* libjava.compile/assignment_2.java: New file.
+
+2000-03-28  Bryce McKinlay  <bryce at albatross.co.nz>
+
+	Test case for PR libgcj/184:
+	* libjava.lang/pr184.java: New file.
+	* libjava.lang/pr184.out: New file.
+
+2000-03-27  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.lang/test_long.out: New file.
+	* libjava.lang/test_long.java: New file.
+
+2000-03-26  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.lang/Array_1.xfail: Removed.
+
+2000-03-23  Bryce McKinlay  <bryce at albatross.co.nz>
+
+	* libjava.lang/Thread_Wait.java: New file.
+	* libjava.lang/Thread_Sleep.java: New file.
+	* libjava.lang/Thread_Monitor.java: New file.
+	* libjava.lang/Thread_Wait.out: New file.
+	* libjava.lang/Thread_Sleep.out: New file.
+	* libjava.lang/Thread_Monitor.out: New file.
+	* libjava.lang/Thread_Interrupt.java: New file.
+	* libjava.lang/Thread_Wait_2.java: New file.
+	* libjava.lang/Thread_Wait_2.out: New file.
+	* libjava.lang/Thread_Wait_Interrupt.java: New file.
+	* libjava.lang/Thread_Wait_Interrupt.out: New file.
+	* libjava.lang/Thread_Interrupt.out: New file.
+	* libjava.lang/Thread_Join.java: New file.
+	* libjava.lang/Thread_Join.out: New file.
+	* libjava.lang/Thread_Alive.java: New file.
+	* libjava.lang/Thread_Alive.out: New file.
+
+2000-03-22  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.compile/iface.java: New file.
+	* libjava.compile/static_3.java: New file.
+	* libjava.compile/static_2.java: New file.
+	* libjava.compile/static_1.xfail: New file.
+	* libjava.compile/static_1.java: New file.
+	* libjava.compile/redef6.xfail: New file.
+	* libjava.compile/redef6.java: New file.
+	* libjava.compile/redef5.xfail: New file.
+	* libjava.compile/redef5.java: New file.
+	* libjava.compile/redef4.xfail: New file.
+	* libjava.compile/redef4.java: New file.
+	* libjava.compile/redef3.xfail: New file.
+	* libjava.compile/redef3.java: New file.
+	* libjava.compile/redef2.xfail: New file.
+	* libjava.compile/redef2.java: New file.
+	* libjava.compile/redef1.xfail: New file.
+	* libjava.compile/redef1.java: New file.
+	* libjava.compile/not_a_redef.java: New file.
+	* libjava.compile/inner_1.java: New file.
+	* libjava.compile/static_init.xfail: New file.
+	* libjava.compile/static_init.java: New file.
+
+2000-03-21  Bryce McKinlay  <bryce at albatross.co.nz>
+
+	Test case for PR libgcj/179:
+	* libjava.lang/pr179.java: New file.
+	* libjava.lang/pr179.out: New file.
+
+2000-03-18  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.lang/pr109.java: Added `println' at end.
+
+2000-03-15  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.compile/pr176.java: New file, for PR gcj/176.
+
+2000-03-15  Bryce McKinlay  <bryce at albatross.co.nz>
+
+	* libjava.compile/pr172.java: Correct classname to match file name.
+	* libjava.compile/pr174.java: ditto. Remove superfluous main()
+	method.
+	* libjava.compile/PR140.xfail: New file.
+
+2000-03-14  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.compile/PR140.java: New file, for PR gcj/140.
+
+	* libjava.compile/pr172.java: New file, for PR gcj/172.
+
+	* libjava.compile/pr174.java: New file, for PR gcj/174.
+
+2000-03-07  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.lang/PR162.java: Mention `PR162', not `Test', as class
+	name.
+
+2000-03-07  Bryce McKinlay  <bryce at albatross.co.nz>
+
+	Test for PR gcj/163:
+	* libjava.lang/PR163.java: New file.
+	* libjava.lang/PR163.xfail: New file.
+
+2000-03-07  Tom Tromey  <tromey at cygnus.com>
+
+	* lib/libjava.exp (test_libjava_from_javac): Removed hack for
+	interfaces.  Fail if jv-scan reports a parse error.
+
+	Test for PR gcj/162:
+	* libjava.lang/PR162.out: New file.
+	* libjava.lang/PR162.java: New file.
+
+2000-03-06  Tom Tromey  <tromey at cygnus.com>
+
+	Test for PR gcj/164:
+	* libjava.compile/PR164.xfail: New file.
+	* libjava.compile/PR164.java: New file.
+
+2000-03-06  Bryce McKinlay  <bryce at albatross.co.nz>
+
+	* libjava.compile/PR127.java: New file.
+	* libjava.compile/PR127.xfail: New file.
+        PR 127 test case from Joerg Brunsmann.
+
+2000-03-05  Tom Tromey  <tromey at cygnus.com>
+
+	* lib/libjava.exp (test_libjava): Document `shouldfail' token.
+	(test_libjava_from_source): Handle `shouldfail' case.
+	(test_libjava_from_javac): Likewise.
+
+	Test for PR libgcj/124:
+	* libjava.compile/PR124.java: New file.
+	* libjava.compile/PR124.xfail: New file.
+
+2000-03-05  Anthony Green  <green at redhat.com>
+
+	* libjava.lang/PR141.java: New file.
+	* libjava.lang/PR141.out: New file.
+	For PR java.io/141.
+
+2000-03-05  Anthony Green  <green at redhat.com>
+
+	* libjava.compile/PR129_B.java: New file.
+	* libjava.compile/support/PR129_A.java: New file.
+	For PR gcj/129.
+
+2000-03-04  Anthony Green  <green at redhat.com>
+
+	* libjava.lang/PR160.java: New file.
+	* libjava.lang/PR160.out: New file.
+
+2000-02-28  Mo DeJong <mdejong at cygnus.com>
+
+	* libjava.compile/static_inner.java: New file.
+
+2000-02-23  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.jni/noclass.c: New file.
+	* libjava.jni/noclass.out: New file.
+	* libjava.jni/noclass.java: New file.
+
+2000-02-18  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.jni/register.java: New file.
+	* libjava.jni/register.c: New file.
+	* libjava.jni/register.out: New file.
+
+2000-02-16  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.jni/calls.c: New file.
+	* libjava.jni/calls.out: New file.
+	* libjava.jni/calls.java: New file.
+
+	* libjava.jni/throwit.java: New file.
+	* libjava.jni/throwit.c: New file.
+	* libjava.jni/throwit.out: New file.
+
+2000-02-15  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.jni/findclass.java: New file
+	* libjava.jni/findclass.c: New file
+	* libjava.jni/findclass.out: New file
+
+2000-02-16  Bryce McKinlay  <bryce at albatross.co.nz>
+
+	* libjava.lang/InterfaceDispatch.java: New file.
+	* libjava.lang/InterfaceDispatch.out: New file.
+
+2000-02-15  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.jni/virtual.java: New file.
+	* libjava.jni/virtual.c: New file.
+	* libjava.jni/virtual.out: New file.
+	* libjava.jni/final_method.java: New file.
+	* libjava.jni/final_method.c: New file.
+	* libjava.jni/final_method.out: New file.
+	* libjava.jni/overload.java: New file.
+	* libjava.jni/overload.c: New file.
+	* libjava.jni/overload.out: New file.
+	* libjava.jni/simple_int.java: New file.
+	* libjava.jni/simple_int.c: New file.
+	* libjava.jni/simple_int.out: New file.
+	* libjava.jni/invoke.out: New file.
+	* libjava.jni/invoke.c: New file.
+	* libjava.jni/invoke.java: New file.
+
+2000-02-12  Anthony Green  <green at cygnus.com>
+
+	* libjava.compile/comment.java: New file.
+
+2000-02-12  Anthony Green  <green at cygnus.com>
+
+	* libjava.compile/assignment.java: New file.
+
+2000-02-12  Anthony Green  <green at cygnus.com>
+
+	* libjava.compile/inner_data.java: New file.
+
+2000-02-12  Anthony Green  <green at cygnus.com>
+
+	* libjava.compile/inner_inherit.java: New file.
+
+2000-02-12  Alexandre Petit-Bianco  <apbianco at cygnus.com>
+
+	* libjava.lang/inner_interface.out: New file.
+	* libjava.lang/inner_interface.java: New file.
+	* libjava.lang/final_int.out: New file.
+	* libjava.lang/final_int.java: New file.
+	* libjava.lang/final_static_and_friend.out: New file.
+	* libjava.lang/final_static_and_friend.java: New file.
+
+2000-02-07  Alexandre Petit-Bianco  <apbianco at cygnus.com>
+
+	* libjava.lang/anonarray3.out: New file.
+	* libjava.lang/anonarray3.java: New file.
+
+2000-02-09  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.compile/inner_priv.java: New file.
+
+2000-02-07  Alexandre Petit-Bianco  <apbianco at cygnus.com>
+
+	* libjava.lang/instinit2.out: New file.
+	* libjava.lang/instinit2.java: New file.
+	* libjava.lang/instinit.out: New file.
+	* libjava.lang/instinit.java: New file.
+	* libjava.lang/anonarray2.out: New file.
+	* libjava.lang/anonarray2.java: New file.
+	* libjava.lang/anonarray.out: New file.
+	* libjava.lang/anonarray.java: New file.
+	* libjava.lang/nested_with_ctor.out: New file.
+	* libjava.lang/nested_with_ctor.java: New file.
+	* libjava.lang/anfi.out: New file.
+	* libjava.lang/anfi.java: New file.
+	* libjava.lang/stub.out: New file.
+	* libjava.lang/stub.java: New file.
+
+2000-01-30  Alexandre Petit-Bianco  <apbianco at cygnus.com>
+
+	* libjava.lang/final_inner.java: New file.
+	* libjava.lang/final_inner.out: Likewise.
+
+2000-01-20  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.compile/BlankFinal.java: New file.
+
+2000-01-19  Alexandre Petit-Bianco  <apbianco at cygnus.com>
+
+	* libjava.lang/anon.java, libjava.lang/anon2.java,
+	libjava.lang/anon3.java, libjava.lang/anon4.java,
+	libjava.lang/direct_read.java, libjava.lang/direct_write.java,
+	libjava.lang/indirect.java, libjava.lang/indirect_read.java,
+	libjava.lang/indirect_write.java, libjava.lang/inner1.java,
+	libjava.lang/inner2.java, libjava.lang/inner3.java,
+	libjava.lang/inner4.java, libjava.lang/inner_array.java,
+	libjava.lang/multiple_finit.java,
+	libjava.lang/private_direct_read.java,
+	libjava.lang/private_direct_write.java,
+	libjava.lang/private_indirect_read.java,
+	libjava.lang/private_indirect_write.java,
+	libjava.lang/search_outer.java, libjava.lang/tmi.java,
+	libjava.lang/tp.java, libjava.lang/update_outer.java: New files.
+
+2000-01-18  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.compile/inner_pub.java: New file.
+
+2000-01-16  Anthony Green  <green at cygnus.com>
+
+	* libjava.lang/pr133.out: New file.
+	* libjava.lang/pr133.java: New file.
+
+	* libjava.lang/pr100.xpo: New file.
+	* libjava.lang/pr100.java: New file.
+
+2000-01-16  Anthony Green  <green at cygnus.com>
+
+	* libjava.lang/pr93.xpo: New file.
+	* libjava.lang/pr93.java: New file.
+
+2000-01-16  Anthony Green  <green at cygnus.com>
+
+	* libjava.lang/lang.exp: Handle regexp matches correctly.
+
+2000-01-16  Anthony Green  <green at cygnus.com>
+
+	* libjava.lang/pr83.out: New file.
+	* libjava.lang/pr83.java: New file.
+
+	* libjava.lang/pr109.out: New file.
+	* libjava.lang/pr109.java: New file.
+
+2000-01-11  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.lang/klass.out: New file.
+	* libjava.lang/klass.java: New file.
+
+1999-12-31  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.mauve/mauve.exp (mauve_compute_uses): Let user select
+	specific tests to run.
+
+1999-10-19  Bryce McKinlay  <bryce at albatross.co.nz>
+
+	* libjava.compile/invokeinterface: New directory.
+	* libjava.compile/invokeinterface/Test.java: New file. Test code for
+	PR gcj/71 and PR gcj/72.
+	* libjava.compile/invokeinterface/A.java: New file.
+	* libjava.compile/invokeinterface/B.java: New file.
+
+1999-10-02  Anthony Green  <green at cygnus.com>
+
+	* libjava.compile/Case.xfail: Removed.  This test should pass now.
+
+	* libjava.compile/compile.exp: Copied from test.exp.
+	* libjava.compile/test.exp: Removed.
+
+	* libjava.lang/lang.exp: Copied from test.exp.
+	* libjava.lang/test.exp: Removed.
+
+1999-10-01  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.lang/PR56.out: New file.
+	* libjava.lang/PR56.java: New file.
+
+1999-09-29  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.lang/PR55.out: New file.
+	* libjava.lang/PR55.java: New file.
+
+1999-08-25  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.toshiba/G19990304_01.out: New file.
+	* libjava.toshiba/G19990304_01.java: New file.
+
+	* libjava.lang/G19990310_01.out: New file.
+	* libjava.lang/G19990310_01.java: New file.
+
+1999-08-17  Tom Tromey  <tromey at cygnus.com>
+
+	From Bryce McKinlay:
+	* libjava.lang/Array_2.java: New file.
+	* libjava.lang/Array_2.out: New file.
+
+1999-08-09  Anthony Green  <green at cygnus.com>
+
+	* libjava.lang/Primes.java: New file.
+	* libjava.lang/Primes.out: New file.
+
+1999-07-31  Alexandre Oliva  <oliva at dcc.unicamp.br>
+
+	* lib/libjava.exp (bytecompile_file): Use `env(SUN_JAVAC)', that
+	defaults to javac, as Sun-javac compiler or compatible.
+	(libjava_init): Get GCJ from environment if neither GCJ_UNDER_TEST
+	nor TOOL_EXECUTABLE are set.  Set `original_ld_library_path' from
+	environment.
+	(libjava_arguments): Prepend `.' and `$srcdir/$subdir' to
+	CLASSPATH, for `support' sources.  Search for libgcj.spec in
+	`$objdir/..', by adding -B to GCJ_UNDER_TEST.  Append
+	original_ld_library_path to ld_library_path.
+	* libjava.mauve/mauve.exp (test_mauve): Set `env(GCJ)' from
+	GCJ_UNDER_TEST, calculated just like in libjava.exp.
+
+1999-07-14  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.compile/G19990217_02.no-link: New file.
+	* libjava.compile/test.exp: Look for `.no-link' file.
+	* lib/libjava.exp (test_libjava_from_source): Added `no-link'
+	option.
+	(test_libjava_from_javac): Likewise.  Also, handle package
+	information from class name when creating class file name.
+
+1999-07-13  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.lang/test.exp: New file.
+	* libjava.lang/err9.out: New file.
+	* libjava.lang/err9.java: New file.
+	* libjava.lang/err8.out: New file.
+	* libjava.lang/err8.java: New file.
+	* libjava.lang/err7.out: New file.
+	* libjava.lang/err7.java: New file.
+	* libjava.lang/err6.out: New file.
+	* libjava.lang/err6.java: New file.
+	* libjava.lang/err5.out: New file.
+	* libjava.lang/err5.java: New file.
+	* libjava.lang/err4.out: New file.
+	* libjava.lang/err4.java: New file.
+	* libjava.lang/err3.out: New file.
+	* libjava.lang/err3.java: New file.
+	* libjava.lang/err2.out: New file.
+	* libjava.lang/err2.java: New file.
+	* libjava.lang/err13.out: New file.
+	* libjava.lang/err13.java: New file.
+	* libjava.lang/err12.out: New file.
+	* libjava.lang/err12.java: New file.
+	* libjava.lang/err11.out: New file.
+	* libjava.lang/err11.java: New file.
+	* libjava.lang/err10.out: New file.
+	* libjava.lang/err10.java: New file.
+	* libjava.lang/err1.out: New file.
+	* libjava.lang/err1.java: New file.
+	* libjava.lang/N19990310_5.out: New file.
+	* libjava.lang/N19990310_5.java: New file.
+	* libjava.lang/N19990310_4.out: New file.
+	* libjava.lang/N19990310_4.java: New file.
+	* libjava.lang/N19990310_3.out: New file.
+	* libjava.lang/N19990310_3.java: New file.
+	* libjava.lang/N19990310_02.out: New file.
+	* libjava.lang/N19990310_02.java: New file.
+	* libjava.lang/G19990303_02.out: New file.
+	* libjava.lang/G19990303_02.java: New file.
+	* libjava.lang/G19990303_01.out: New file.
+	* libjava.lang/G19990303_01.java: New file.
+	* libjava.lang/G19990302_02.out: New file.
+	* libjava.lang/G19990302_02.java: New file.
+	* libjava.lang/G19990301_01.out: New file.
+	* libjava.lang/G19990301_01.java: New file.
+
+	* libjava.compile/N19990317.java: New file.
+	* libjava.compile/N19990310_01.java: New file.
+	* libjava.compile/G19990225_01.java: New file.
+	* libjava.compile/G19990217_02.java: New file.
+	* libjava.compile/G19990217_01.java: New file.
+	* libjava.compile/G19990210_3.java: New file.
+	* libjava.compile/G19990210_2.java: New file.
+	* libjava.compile/G19990210_1.java: New file.
+
+1999-07-06  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.lang/Final.xfail: Output fails, not exec.
+
+	* libjava.lang/Final.xfail: New file.
+	* libjava.compile/Case.xfail: New file.
+	* libjava.compile/Where.xfail: New file.
+	* libjava.compile/test.exp: Look for `.xfail' files.
+	* libjava.lang/test.exp: Don't look for `.arg' files.
+	Do look for `.xfail' files.
+	* lib/libjava.exp (test_libjava_from_source): Changed meaning of
+	`exec_args' argument.  Handle `xfail-*' arguments.
+	(test_libjava_from_javac): Likewise.
+	(test_libjava): Likewise.
+	(libjava_read_xfail): New proc.
+
+1999-07-05  Bryce McKinlay  <bryce at albatross.co.nz>
+
+	* libjava.lang/Final.java: Added.
+	* libjava.lang/Final.out: Added.
+
+1999-07-02  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.lang/Finalize_1.out: Removed.
+	* libjava.lang/Finalize_1.java: Removed.
+
+	* libjava.lang/Thread_1.out: Updated.
+	* libjava.lang/Thread_1.java: Don't run exit test.
+
+Thu Jul  1 16:22:19 1999  Anthony Green  <green at cygnus.com>
+
+	* libjava.mauve/mauve.exp: Don't stop counting test results
+	prematurely.
+
+1999-06-25  Tom Tromey  <tromey at cygnus.com>
+
+	* lib/libjava.exp (test_libjava_from_javac): Fixed typo.  Always
+	make class_files a list.
+
+	* lib/libjava.exp (test_libjava_from_javac): Prepend `$objdir/' to
+	class file names.
+
+1999-06-24  Tom Tromey  <tromey at cygnus.com>
+
+	* lib/libjava.exp (libjava_arguments): If `libtool' not found in
+	build tree, just use $GCJ_UNDER_TEST as compiler.
+
+1999-06-23  Tom Tromey  <tromey at cygnus.com>
+
+	* lib/libjava.exp (libjava_arguments): Handle -lzgcj.
+
+1999-05-24  Anthony Green  <green at cygnus.com>
+
+	* libjava.lang/Shazam.java: New file.
+	libjava.lang/Shazam.out: New file.
+
+1999-05-12  Andrew Haley  <aph at cygnus.com>
+
+	* libjava.lang/Invoke_2.java: New file.
+
+1999-05-03  Tom Tromey  <tromey at cygnus.com>
+
+	* lib/libjava.exp (libjava_arguments): Don't use -nodefaultlibs.
+	(libjava_find_lib): Add `-L' option to find the actual library.
+
+	* libjava.mauve/mauve.exp (test_mauve): Pass `link' to
+	libjava_arguments when linking.
+	(test_mauve_sim): Likewise.
+	* lib/libjava.exp (libjava_arguments): Run `libtool' to link.
+	Don't use `-static'.  Added `mode' argument.  Use -nodefaultlibs
+	when linking.
+	(test_libjava_from_source): Mention why target_compile failed.
+	Pass `link' to libjava_arguments when linking.  Only do `xfails'
+	for tests we would actually have run.
+	(test_libjava_from_javac): Likewise.
+	(libjava_find_lib): Return name of `.la' file.
+
+1999-04-26  Tom Tromey  <tromey at cygnus.com>
+
+	* lib/libjava.exp (libjava_find_lib): New proc.
+	(libjava_arguments): Use it.  Force static linking.
+
+Thu Apr 22 14:19:35 1999  Anthony Green  <green at cygnus.com>
+
+	* libjava.compile/OperatorBenchmark.java: New file.
+
+1999-04-09  Warren Levy  <warrenl at cygnus.com>
+
+	* libjava.mauve/mauve.exp (KEYS): Default to libgcj.
+
+1999-04-09  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.compile/plusplus.java: New file.
+	From MoT <Sebastien.Villemot at ens.fr>.
+
+1999-04-06  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.mauve/mauve.exp (test_mauve_sim): Reference
+	mauve-libgcj.
+	(test_mauve): Likewise.
+
+1999-03-30  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.mauve/mauve.exp: Renamed from test.exp.  With the new
+	name it is easier to run just the Mauve tests.
+
+	* libjava.mauve/test.exp (test_mauve): Added gnu/testlet/config to
+	list of files to link in.
+	(test_mauve_sim): Likewise.
+	* libjava.mauve/DejaGNUTestHarness.java (srcdir, tmpdir): New
+	static variables.
+	(DejaGNUTestHarness): Removed argument from constructor.
+	(dejasrcdir): New static variable.
+	(main): Set `dejasrcdir'.
+	(getSourceDirectory): New method.
+
+1999-03-08  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.compile/perc.java: New file.
+
+1999-02-26  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.util/test.exp: Removed.
+
+1999-02-25  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.mauve/test.exp: Make sure current directory is correct
+	after tests are run.
+
+	* libjava.mauve/test.exp (test_mauve): Removed extra arg in call
+	to bytecompile_file.
+	(test_mauve_sim): Likewise.
+
+Thu Feb 25 09:21:03 1999  Anthony Green  <green at cygnus.com>
+
+	* libjava.compile/euc_comment1.java,
+	libjava.compile/euc_comment2.java,
+	libjava.compile/euc_comment3.java,
+	libjava.compile/euc_comment1.java,
+	libjava.compile/euc_comment2.java,
+	libjava.compile/euc_comment3.java: New files.
+
+	* libjava.compile/Case.java, libjava.compile/support/Case.java:
+	New files.
+
+1999-02-24  Tom Tromey  <tromey at cygnus.com>
+
+	* lib/libjava.exp (find_jvscan): New proc.
+	(bytecompile_file): Removed `srcfile_in' argument.
+	(test_libjava_from_javac): Use `jv-scan' program to find name of
+	`main' and name of all generated classes.  Compile all generated
+	classes, not just primary class.  For no-exec tests, only try to
+	build the .o, not the full executable.
+
+Wed Feb 24 11:22:32 1999  Anthony Green  <green at hoser.cygnus.com>
+
+	* libjava.compile/test.exp: Minor fix.
+
+1999-02-23  Anthony Green  <green at cygnus.com>
+
+	* libjava.compile/Where.java, libjava.compile/support/Waldo.java,
+	libjava.compile/Twice.java, libjava.compile/Semi.java,
+	libjava.compile/Statics.java, libjava.compile/test.exp,
+	libjava.lang/Synch.java, libjava.lang/Synch.out: New files.
+
+1999-02-16  Tom Tromey  <tromey at cygnus.com>
+
+	* Makefile.in: Rebuilt.
+	* Makefile.am (AUTOMAKE_OPTIONS): Added no-installinfo.
+
+Wed Feb 17 19:53:51 1999  Warren Levy  <warrenl at cygnus.com>
+
+	* libjava.mauve/test.exp: modified file allows Mauve tests to
+	run on JMR board; simplified script to use same procedure for
+	all testing
+
+1999-02-10  Tom Tromey  <tromey at cygnus.com>
+
+	* lib/libjava.exp (libjava_arguments): Updated to track library
+	renames.
+
+1999-02-07  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.lang/slash.java: New file.
+	* libjava.lang/slash.out: New file.
+
+Mon Feb  1 05:17:40 1999  Anthony Green  <green at fencer.cygnus.com>
+
+	* lib/libjava.exp: Test compiling from source as well as from
+	bytecodes.
+
+1999-01-11  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.mauve/test.exp (mauve_compute_uses): Read classes file,
+	not choices file.
+
+	* libjava.mauve/test.exp (test_mauve): Added
+	ResourceNotFoundException to list of harness files to compile.
+	(test_mauve_sim): Likewise.
+
+1998-12-17  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.lang/Invoke_1.java: New file.
+
+	* libjava.lang/Thread_1.java (Thread_1): Class now public.
+	* libjava.lang/Array_1.java (Array_1): Class now public.
+
+	* libjava.lang/Throw_1.out: New file.
+	* libjava.lang/Throw_1.java: New file.
+
+1998-12-11  Tom Tromey  <tromey at cygnus.com>
+
+	* lib/libjava.exp (libjava_arguments): New proc.
+	(test_libjava): Use it.
+	(bytecompile_file): Added classpath argument.
+	* libjava.mauve/test.exp: New file.
+	* libjava.mauve/DejaGNUTestHarness.java: New file.
+
+1998-12-08  Tom Tromey  <tromey at cygnus.com>
+
+	* Various: removed all test files that migrated to Mauve.
+
+1998-12-07  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.lang/Array_1.java (main): Removed extraneous
+	getSuperclass call.
+
+1998-11-23  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.lang/Finalize_1.java (main): Clear `f' before GC.
+
+1998-10-08  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.lang/Thread_1.out: Added missing line.
+
+Fri Oct  2 14:55:46 1998  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.lang/Array_1.java: Changed so Cloneable test can run
+	even if clone test itself fails.
+
+	* libjava.lang/Array_1.java: Uncommented calls to getSuperclass.
+	Added test to see if array implements Cloneable.
+
+Thu Oct  1 11:28:06 1998  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.lang/Array_1.java: New file.
+	* libjava.lang/Array_1.out: New file.
+
+Thu Oct  1 13:51:00 1998  Anthony Green  <green at cygnus.com>
+
+	* testsuite/lib/libjava.exp: Find qthreads library correctly.
+
+Tue Sep 29 16:36:43 1998  Warren Levy  <warrenl at cygnus.com>
+
+	* libjava.util/Hashtable_1.java, libjava.util/Hashtable_1.out: Created.
+
+Tue Sep 29 00:40:26 1998  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.lang/Thread_1.java (started): New field.
+	(run): Set `started'.  Handle all synchronization here.
+	(Thread_1): Initialize `started'.
+	(doit): Just start both threads and let them handle their own
+	synchronization.
+
+	* libjava.lang/Boolean_5.out: Changed to reflect the
+	Boolean_5.java changes.
+	* libjava.lang/Boolean_5.java: Don't replace the system
+	properties, just augment them.  Don't print the property object.
+	* libjava.lang/Long_2.out: Changed to reflect Long_2.java
+	changes.
+	* libjava.lang/Long_2.java: Don't replace the system properties,
+	just augment them.  Don't print the property object.
+	* libjava.lang/Integer_2.out: Changed to reflect Integer_2.java
+	changes.
+	* libjava.lang/Integer_2.java: Don't replace the system
+	properties, just augment them.  Don't print the property object.
+
+Sat Sep 26 15:57:39 1998  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.lang/Thread_1.java (main): Catch InterruptedException.
+
+Tue Sep 22 13:45:58 1998  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.lang/Thread_1.out: New file.
+	* libjava.lang/Thread_1.java: New file.
+
+Mon Sep 21 14:20:08 1998  Tom Tromey  <tromey at cygnus.com>
+
+	* lib/libjava.exp (test_libjava): Use runtest_file_p to see if
+	test should be short-circuited.
+
+Tue Sep 15 13:57:45 1998  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.lang/Character_9.java: New file.
+	* libjava.lang/Character_9.out: New file.
+
+Mon Sep 14 12:27:04 1998  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.lang/Character_8.out: New file.
+	* libjava.lang/Character_8.java: New file.
+	* libjava.lang/Character_7.out: New file.
+	* libjava.lang/Character_7.java: New file.
+	* libjava.lang/Character_6.out: New file.
+	* libjava.lang/Character_6.java: New file.
+	* libjava.lang/Character_5.out: New file.
+	* libjava.lang/Character_5.java: New file.
+	* libjava.lang/Character_4.out: New file.
+	* libjava.lang/Character_4.java: New file.
+	* libjava.lang/Character_3.out: New file.
+	* libjava.lang/Character_3.java: New file.
+	* libjava.lang/Character_2.out: New file.
+	* libjava.lang/Character_2.java: New file.
+
+Fri Sep 11 10:04:55 1998  Tom Tromey  <tromey at cygnus.com>
+
+	* libjava.lang/Character_1.out: New file.
+	* libjava.lang/Character_1.java: New file.
+
+Fri Sep 18 14:43:59 1998  Warren Levy  <warrenl at cygnus.com>
+
+	* libjava.lang/Long_1.java, libjava.lang/Long_1.out,
+	libjava.lang/Long_2.java, libjava.lang/Long_2.out: Created.
+
+Fri Sep 18 12:43:52 1998  Warren Levy  <warrenl at cygnus.com>
+
+	* libjava.lang/Integer_1.java, libjava.lang/Integer_1.out,
+	libjava.lang/Integer_2.java, libjava.lang/Integer_2.out: Created.
+
+	* libjava.lang/String_2.java, libjava.lang/String_2.out: Use JDK 1.2
+	values for hashCode.
+
+Thu Sep 10 12:44:42 1998  Warren Levy  <warrenl at cygnus.com>
+
+	* libjava.lang/String_1.java, libjava.lang/String_1.out,
+	libjava.lang/String_2.java, libjava.lang/String_2.out,
+	libjava.lang/String_3.java, libjava.lang/String_3.out,
+	libjava.lang/String_4.java, libjava.lang/String_4.out,
+	libjava.lang/String_5.java, libjava.lang/String_5.out,
+	libjava.lang/String_6.java, libjava.lang/String_6.out,
+	libjava.lang/String_7.java, libjava.lang/String_7.out,
+	libjava.lang/String_8.java, libjava.lang/String_8.out,
+	libjava.lang/String_9.java, libjava.lang/String_9.out: Created.
+
+Tue Sep  8 13:31:59 1998  Warren Levy  <warrenl at cygnus.com>
+
+	* libjava.lang/Byte_1.java, libjava.lang/Byte_1.out,
+	libjava.lang/Short_1.java, libjava.lang/Short_1.out: New files.
+
+Thu Sep  3 15:57:57 1998  Warren Levy  <warrenl at cygnus.com>
+
+	* libjava.lang/Boolean_1.java, libjava.lang/Boolean_1.out,
+	libjava.lang/Boolean_2.java, libjava.lang/Boolean_2.out,
+	libjava.lang/Boolean_3.java, libjava.lang/Boolean_3.out,
+	libjava.lang/Boolean_4.java, libjava.lang/Boolean_4.out,
+	libjava.lang/Boolean_5.java, libjava.lang/Boolean_5.out: Created.
+
+Tue Sep  1 12:27:54 1998  Tom Tromey  <tromey at cygnus.com>
+
+	* lib/libjava.exp (bytecompile_file): Don't throw error if byte
+	compilation fails.  Added `srcfile_in' argument.  Changed return
+	value.
+	(test_libjava): Gracefully handle byte-compilation failure.
+
+	* libjava.lang/System_15.java (main): Typo fix.
+	(System_15): Choose correct class name.
+	(X): Moved into System_15.
+
+	* libjava.lang/System_1.java, libjava.lang/System_1.out,
+	libjava.lang/System_10.java, libjava.lang/System_10.out,
+	libjava.lang/System_11.java, libjava.lang/System_11.out,
+	libjava.lang/System_12.java, libjava.lang/System_12.out,
+	libjava.lang/System_13.java, libjava.lang/System_13.out,
+	libjava.lang/System_14.java, libjava.lang/System_14.out,
+	libjava.lang/System_15.java, libjava.lang/System_15.out,
+	libjava.lang/System_2.java, libjava.lang/System_2.out,
+	libjava.lang/System_3.java, libjava.lang/System_3.out,
+	libjava.lang/System_4.java, libjava.lang/System_4.out,
+	libjava.lang/System_5.java, libjava.lang/System_5.out,
+	libjava.lang/System_6.java, libjava.lang/System_6.out,
+	libjava.lang/System_7.java, libjava.lang/System_7.out,
+	libjava.lang/System_8.java, libjava.lang/System_8.out,
+	libjava.lang/System_9.java, libjava.lang/System_9.out: New files.
+
+	* lib/libjava.exp (test_libjava): Only add -lgc or -lqthreads if
+	library is actually found.
+
+	* lib/libjava.exp (test_libjava): Look for qthreads.
+
+Mon Aug 31 17:49:21 1998  Warren Levy  <warrenl at cygnus.com>
+
+	* libjava.util/Random_1.java, libjava.util/Random_1.out,
+	libjava.util/Random_2.java, libjava.util/Random_2.out,
+	libjava.util/Random_3.java, libjava.util/Random_3.out,
+	libjava.util/Random_4.java, libjava.util/Random_4.out,
+	libjava.util/Random_5.java, libjava.util/Random_5.out,
+	libjava.util/Random_6.java, libjava.util/Random_6.out,
+	libjava.util/Random_7.java, libjava.util/Random_7.out,
+	libjava.util/Random_8.java, libjava.util/Random_8.out,
+	libjava.util/test.exp: Created.
+
+Mon Aug 31 16:37:19 1998  Tom Tromey  <tromey at cygnus.com>
+
+	* lib/libjava.exp: Changed gjavac to gcj everywhere.
+
+Wed Aug 26 12:20:10 1998  Anthony Green  <green at cygnus.com>
+
+	* Makefile.am (EXPECT,RUNTEST): Find expect and runtest
+	correctly.
+	* Makefile.in: Rebuild.
+
+Tue Aug 25 18:43:33 1998  Anthony Green  <green at cygnus.com>
+
+	* lib/libjava.exp: Fix CLASSPATH setting.
+
+Tue Aug 25 17:27:37 1998  Anthony Green  <green at cygnus.com>
+
+	* ChangeLog, lib/libjava.exp, config/default.exp,
+	libjava.lang/Finalize_1.java, libjava.lang/Finalize_1.out,
+	libjava.lang/Float_1.java, libjava.lang/Float_1.out
+	libjava.lang/test.exp, Makefile.am, Makefile.in: Created.

Added: llvm-gcc-4.2/trunk/libjava/testsuite/Makefile.am
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/Makefile.am?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/Makefile.am (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/Makefile.am Thu Nov  8 16:56:19 2007
@@ -0,0 +1,21 @@
+## Process this file with automake to produce Makefile.in.
+
+AUTOMAKE_OPTIONS = foreign dejagnu
+
+# May be used by various substitution variables.
+gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER)
+
+# autoconf2.13's target_alias
+target_noncanonical = @target_noncanonical@
+
+# Setup the testing framework, if you have one
+EXPECT = `if [ -f $(top_builddir)/../expect/expect ] ; then \
+            echo $(top_builddir)/../expect/expect ; \
+          else echo expect ; fi`
+
+RUNTEST = "`if [ -f $(top_srcdir)/../dejagnu/runtest ] ; then \
+	       echo $(top_srcdir)/../dejagnu/runtest ; \
+	    else echo runtest; fi` $(AM_RUNTESTFLAGS)"
+
+## Tell dejagnu whether the interpreter is enabled.
+AM_RUNTESTFLAGS = INTERPRETER=$(INTERPRETER)

Added: llvm-gcc-4.2/trunk/libjava/testsuite/Makefile.in
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/Makefile.in?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/Makefile.in (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/Makefile.in Thu Nov  8 16:56:19 2007
@@ -0,0 +1,509 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = testsuite
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
+	$(top_srcdir)/../config/depstand.m4 \
+	$(top_srcdir)/../config/enable.m4 \
+	$(top_srcdir)/../config/gxx-include-dir.m4 \
+	$(top_srcdir)/../config/iconv.m4 \
+	$(top_srcdir)/../config/lcmessage.m4 \
+	$(top_srcdir)/../config/lead-dot.m4 \
+	$(top_srcdir)/../config/lib-ld.m4 \
+	$(top_srcdir)/../config/lib-link.m4 \
+	$(top_srcdir)/../config/lib-prefix.m4 \
+	$(top_srcdir)/../config/multi.m4 \
+	$(top_srcdir)/../config/no-executables.m4 \
+	$(top_srcdir)/../config/tls.m4 \
+	$(top_srcdir)/../config/unwind_ipinfo.m4 \
+	$(top_srcdir)/../libtool.m4 $(top_srcdir)/mingwld.m4 \
+	$(top_srcdir)/pkg.m4 $(top_srcdir)/shlibpath.m4 \
+	$(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+CONFIG_HEADER = $(top_builddir)/include/config.h \
+	$(top_builddir)/gcj/libgcj-config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DEJATOOL = $(PACKAGE)
+RUNTESTDEFAULTFLAGS = --tool $$tool --srcdir $$srcdir
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+AS = @AS@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BACKTRACESPEC = @BACKTRACESPEC@
+BASH_JAR_FALSE = @BASH_JAR_FALSE@
+BASH_JAR_TRUE = @BASH_JAR_TRUE@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CHECKREFSPEC = @CHECKREFSPEC@
+CLASSPATH_SEPARATOR = @CLASSPATH_SEPARATOR@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DIRLTDL = @DIRLTDL@
+DIVIDESPEC = @DIVIDESPEC@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXCEPTIONSPEC = @EXCEPTIONSPEC@
+EXEEXT = @EXEEXT@
+GCC_UNWIND_INCLUDE = @GCC_UNWIND_INCLUDE@
+GCDEPS = @GCDEPS@
+GCINCS = @GCINCS@
+GCJ = @GCJ@
+GCJDEPMODE = @GCJDEPMODE@
+GCJFLAGS = @GCJFLAGS@
+GCJH = @GCJH@
+GCJVERSION = @GCJVERSION@
+GCLIBS = @GCLIBS@
+GCSPEC = @GCSPEC@
+GCTESTSPEC = @GCTESTSPEC@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_LIBS = @GLIB_LIBS@
+GTK_CFLAGS = @GTK_CFLAGS@
+GTK_LIBS = @GTK_LIBS@
+HASH_SYNC_SPEC = @HASH_SYNC_SPEC@
+IEEESPEC = @IEEESPEC@
+INCLTDL = @INCLTDL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTERPRETER = @INTERPRETER@
+JAR = @JAR@
+JAVA_HOME = @JAVA_HOME@
+JAVA_HOME_SET_FALSE = @JAVA_HOME_SET_FALSE@
+JAVA_HOME_SET_TRUE = @JAVA_HOME_SET_TRUE@
+JC1GCSPEC = @JC1GCSPEC@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LD_FINISH_STATIC_SPEC = @LD_FINISH_STATIC_SPEC@
+LD_START_STATIC_SPEC = @LD_START_STATIC_SPEC@
+LIBART_CFLAGS = @LIBART_CFLAGS@
+LIBART_LIBS = @LIBART_LIBS@
+LIBFFI = @LIBFFI@
+LIBFFIINCS = @LIBFFIINCS@
+LIBGCJDEBUG = @LIBGCJDEBUG@
+LIBGCJTESTSPEC = @LIBGCJTESTSPEC@
+LIBGCJ_CFLAGS = @LIBGCJ_CFLAGS@
+LIBGCJ_CXXFLAGS = @LIBGCJ_CXXFLAGS@
+LIBGCJ_JAVAFLAGS = @LIBGCJ_JAVAFLAGS@
+LIBGCJ_LD_SYMBOLIC = @LIBGCJ_LD_SYMBOLIC@
+LIBGCJ_SPEC = @LIBGCJ_SPEC@
+LIBICONV = @LIBICONV@
+LIBLTDL = @LIBLTDL@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTLIBICONV = @LTLIBICONV@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
+MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
+MAKEINFO = @MAKEINFO@
+NATIVE_FALSE = @NATIVE_FALSE@
+NATIVE_TRUE = @NATIVE_TRUE@
+NEEDS_DATA_START_FALSE = @NEEDS_DATA_START_FALSE@
+NEEDS_DATA_START_TRUE = @NEEDS_DATA_START_TRUE@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PLATFORM_INNER_NAT_HDRS = @PLATFORM_INNER_NAT_HDRS@
+RANLIB = @RANLIB@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+SYSDEP_SOURCES = @SYSDEP_SOURCES@
+SYSTEMSPEC = @SYSTEMSPEC@
+SYS_ZLIBS = @SYS_ZLIBS@
+TESTSUBDIR_FALSE = @TESTSUBDIR_FALSE@
+TESTSUBDIR_TRUE = @TESTSUBDIR_TRUE@
+THREADCXXFLAGS = @THREADCXXFLAGS@
+THREADDEPS = @THREADDEPS@
+THREADINCS = @THREADINCS@
+THREADLDFLAGS = @THREADLDFLAGS@
+THREADLIBS = @THREADLIBS@
+THREADSPEC = @THREADSPEC@
+THREADSTARTFILESPEC = @THREADSTARTFILESPEC@
+TOOLKIT = @TOOLKIT@
+UNZIP = @UNZIP@
+USE_LIBGCJ_BC_FALSE = @USE_LIBGCJ_BC_FALSE@
+USE_LIBGCJ_BC_TRUE = @USE_LIBGCJ_BC_TRUE@
+USING_BOEHMGC_FALSE = @USING_BOEHMGC_FALSE@
+USING_BOEHMGC_TRUE = @USING_BOEHMGC_TRUE@
+USING_DARWIN_CRT_FALSE = @USING_DARWIN_CRT_FALSE@
+USING_DARWIN_CRT_TRUE = @USING_DARWIN_CRT_TRUE@
+USING_GCC_FALSE = @USING_GCC_FALSE@
+USING_GCC_TRUE = @USING_GCC_TRUE@
+USING_NOGC_FALSE = @USING_NOGC_FALSE@
+USING_NOGC_TRUE = @USING_NOGC_TRUE@
+USING_NO_THREADS_FALSE = @USING_NO_THREADS_FALSE@
+USING_NO_THREADS_TRUE = @USING_NO_THREADS_TRUE@
+USING_POSIX_PLATFORM_FALSE = @USING_POSIX_PLATFORM_FALSE@
+USING_POSIX_PLATFORM_TRUE = @USING_POSIX_PLATFORM_TRUE@
+USING_POSIX_THREADS_FALSE = @USING_POSIX_THREADS_FALSE@
+USING_POSIX_THREADS_TRUE = @USING_POSIX_THREADS_TRUE@
+USING_WIN32_PLATFORM_FALSE = @USING_WIN32_PLATFORM_FALSE@
+USING_WIN32_PLATFORM_TRUE = @USING_WIN32_PLATFORM_TRUE@
+USING_WIN32_THREADS_FALSE = @USING_WIN32_THREADS_FALSE@
+USING_WIN32_THREADS_TRUE = @USING_WIN32_THREADS_TRUE@
+VERSION = @VERSION@
+XLIB_AWT_FALSE = @XLIB_AWT_FALSE@
+XLIB_AWT_TRUE = @XLIB_AWT_TRUE@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+ZINCS = @ZINCS@
+ZIP = @ZIP@
+ZLIBS = @ZLIBS@
+ZLIBSPEC = @ZLIBSPEC@
+ZLIBTESTSPEC = @ZLIBTESTSPEC@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_AS = @ac_ct_AS@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_GCJ = @ac_ct_GCJ@
+ac_ct_LD = @ac_ct_LD@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__fastdepGCJ_FALSE = @am__fastdepGCJ_FALSE@
+am__fastdepGCJ_TRUE = @am__fastdepGCJ_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_libsubdir = @build_libsubdir@
+build_os = @build_os@
+build_subdir = @build_subdir@
+build_vendor = @build_vendor@
+datadir = @datadir@
+dbexecdir = @dbexecdir@
+exec_prefix = @exec_prefix@
+extra_ldflags_libjava = @extra_ldflags_libjava@
+gxx_include_dir = @gxx_include_dir@
+here = @here@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_subdir = @host_subdir@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+libstdcxx_incdir = @libstdcxx_incdir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+mkinstalldirs = @mkinstalldirs@
+multi_basedir = @multi_basedir@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+subdirs = @subdirs@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+
+# autoconf2.13's target_alias
+target_noncanonical = @target_noncanonical@
+target_os = @target_os@
+target_subdir = @target_subdir@
+target_vendor = @target_vendor@
+toolexecdir = @toolexecdir@
+toolexeclibdir = @toolexeclibdir@
+toolexecmainlibdir = @toolexecmainlibdir@
+AUTOMAKE_OPTIONS = foreign dejagnu
+
+# May be used by various substitution variables.
+gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER)
+
+# Setup the testing framework, if you have one
+EXPECT = `if [ -f $(top_builddir)/../expect/expect ] ; then \
+            echo $(top_builddir)/../expect/expect ; \
+          else echo expect ; fi`
+
+RUNTEST = "`if [ -f $(top_srcdir)/../dejagnu/runtest ] ; then \
+	       echo $(top_srcdir)/../dejagnu/runtest ; \
+	    else echo runtest; fi` $(AM_RUNTESTFLAGS)"
+
+AM_RUNTESTFLAGS = INTERPRETER=$(INTERPRETER)
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  testsuite/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --foreign  testsuite/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+distclean-libtool:
+	-rm -f libtool
+uninstall-info-am:
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+check-DEJAGNU: site.exp
+	srcdir=`$(am__cd) $(srcdir) && pwd`; export srcdir; \
+	EXPECT=$(EXPECT); export EXPECT; \
+	runtest=$(RUNTEST); \
+	if $(SHELL) -c "$$runtest --version" > /dev/null 2>&1; then \
+	  l='$(DEJATOOL)'; for tool in $$l; do \
+	    $$runtest $(AM_RUNTESTFLAGS) $(RUNTESTDEFAULTFLAGS) $(RUNTESTFLAGS); \
+	  done; \
+	else echo "WARNING: could not find \`runtest'" 1>&2; :;\
+	fi
+site.exp: Makefile
+	@echo 'Making a new site.exp file...'
+	@echo '## these variables are automatically generated by make ##' >site.tmp
+	@echo '# Do not edit here.  If you wish to override these values' >>site.tmp
+	@echo '# edit the last section' >>site.tmp
+	@echo 'set srcdir $(srcdir)' >>site.tmp
+	@echo "set objdir `pwd`" >>site.tmp
+	@echo 'set build_alias "$(build_alias)"' >>site.tmp
+	@echo 'set build_triplet $(build_triplet)' >>site.tmp
+	@echo 'set host_alias "$(host_alias)"' >>site.tmp
+	@echo 'set host_triplet $(host_triplet)' >>site.tmp
+	@echo 'set target_alias "$(target_alias)"' >>site.tmp
+	@echo 'set target_triplet $(target_triplet)' >>site.tmp
+	@echo '## All variables above are generated by configure. Do Not Edit ##' >>site.tmp
+	@test ! -f site.exp || \
+	  sed '1,/^## All variables above are.*##/ d' site.exp >> site.tmp
+	@-rm -f site.bak
+	@test ! -f site.exp || mv site.exp site.bak
+	@mv site.tmp site.exp
+
+distclean-DEJAGNU:
+	-rm -f site.exp site.bak
+	-l='$(DEJATOOL)'; for tool in $$l; do \
+	  rm -f $$tool.sum $$tool.log; \
+	done
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+	list='$(DISTFILES)'; for file in $$list; do \
+	  case $$file in \
+	    $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+	    $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+	  esac; \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+	  if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+	    dir="/$$dir"; \
+	    $(mkdir_p) "$(distdir)$$dir"; \
+	  else \
+	    dir=''; \
+	  fi; \
+	  if test -d $$d/$$file; then \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+	$(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-DEJAGNU distclean-generic \
+	distclean-libtool
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am:
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am
+
+.PHONY: all all-am check check-DEJAGNU check-am clean clean-generic \
+	clean-libtool distclean distclean-DEJAGNU distclean-generic \
+	distclean-libtool distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-exec \
+	install-exec-am install-info install-info-am install-man \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	uninstall uninstall-am uninstall-info-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:

Added: llvm-gcc-4.2/trunk/libjava/testsuite/config/default.exp
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/config/default.exp?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/config/default.exp (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/config/default.exp Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+load_lib "standard.exp"

Added: llvm-gcc-4.2/trunk/libjava/testsuite/lib/libjava.exp
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/lib/libjava.exp?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/lib/libjava.exp (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/lib/libjava.exp Thu Nov  8 16:56:19 2007
@@ -0,0 +1,937 @@
+# Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2006 Free Software Foundation
+
+proc load_gcc_lib { filename } {
+    global srcdir
+    load_file $srcdir/../../gcc/testsuite/lib/$filename
+}
+
+load_lib libgloss.exp
+load_gcc_lib target-libpath.exp
+
+# GCJ_UNDER_TEST is the compiler under test.
+
+global tmpdir
+
+if ![info exists tmpdir] {
+    set tmpdir "/tmp"
+}
+
+# This is like `prune_warnings', but it also prunes away a warning
+# from the bytecode front end that we don't care about.
+proc libjava_prune_warnings {text} {
+    set text [prune_warnings $text]
+    set tlist [split $text \n]
+    set len [llength $tlist]
+    for {set i [expr {$len - 1}]} {$i >= 2} {incr i -1} {
+	if {[string match "*unreachable bytecode*" [lindex $tlist $i]]} {
+	    # Delete this line, all other unreachable warnings and the previous
+	    # two lines containing the method and class.
+	    set j [expr {$i - 1}]
+	    while {[string match "*unreachable bytecode*" [lindex $tlist $j]]} {
+		incr j -1
+	    }
+	    incr j -1
+	    set tlist [lreplace $tlist $j $i]
+	    set i $j
+	}
+    }
+    return [join $tlist \n]
+}
+
+# This is like `target_compile' but it does some surgery to work
+# around stupid DejaGNU bugs.  In particular DejaGNU has very poor
+# quoting, so for instance a `$' will be re-evaluated at spawn time.
+# We don't want that.
+proc libjava_tcompile {source destfile type options} {
+    # This strange-looking expression really does quote the `$'.
+    regsub -all -- {\$} $source {\$} source
+    regsub -all -- {\$} $destfile {\$} destfile
+    return [target_compile $source $destfile $type $options]
+}
+
+# Read an `xfail' file if it exists.  Returns a list of xfail tokens.
+proc libjava_read_xfail {file} {
+    if {! [file exists $file]} {
+	return ""
+    }
+    set fd [open $file r]
+    set tokens [string trim [read $fd]]
+    close $fd
+    return $tokens
+}
+
+# Find a particular executable.  FIXME: this relies on DejaGnu
+# internals.  These should probably be exposed in a better way.
+proc libjava_find_program {prog} {
+    global tool_root_dir
+
+    set file [lookfor_file $tool_root_dir $prog]
+    if { $file == "" } {
+	set file [lookfor_file $tool_root_dir gcc/$prog];
+    }
+    if {$file == ""} {
+	set file $prog
+    }
+    return $file
+}
+
+# Find `jv-scan'.
+proc find_jvscan {} {
+    return [libjava_find_program jv-scan]
+}
+
+# Find `gcjh'.
+proc find_gcjh {} {
+    return [libjava_find_program gcjh]
+}
+
+proc find_javac {} {
+    global SUN_JAVAC GCJ_UNDER_TEST env libgcj_jar
+    # If JDK doesn't run on your platform but some other
+    # JDK-compatible javac does, you may set SUN_JAVAC to point to it.
+    # One of the most important properties of a SUN_JAVAC is that it
+    # must create class-files even for classes that have not been
+    # specified in the command line, but that were needed to compile
+    # those that have.  For example, Pizza won't do it, but you can
+    # use `kaffe sun.tools.javac.Main', if you have Sun's classes.zip
+    # in the kaffe's default search path.
+    if {![info exists SUN_JAVAC]} {
+	if {[info exists env(SUN_JAVAC)]} {
+	    set SUN_JAVAC $env(SUN_JAVAC)
+	} else {
+	    set SUN_JAVAC "$GCJ_UNDER_TEST -C -I$libgcj_jar"
+	}
+    }
+    return $SUN_JAVAC
+}
+
+proc bytecompile_file { file objdir {classpath {}} } {
+    global env
+    set dirname [file dirname $file]
+
+    set javac [find_javac]
+    if {$classpath != ""} then {
+        set env(CLASSPATH) $classpath
+    }
+    set here [pwd]
+    cd $dirname
+    send_log "byte compile: $javac -g [list $file] -d $objdir 2>@ stdout\n"
+    if {[catch {
+	set q [eval exec "$javac -g [list $file] -d $objdir 2>@ stdout"]
+    } msg]} then {
+	send_log "couldn't compile $file: $msg\n"
+	set r 0
+    } else {
+	set r 1
+    }
+    cd $here
+    return $r
+}
+
+set libjava_initialized 0
+
+#
+# Build the status wrapper library as needed.
+#
+proc libjava_init { args } {
+    global wrapper_file;
+    global wrap_compile_flags;
+    global libjava_initialized libjava_uses_threads
+    global GCJ_UNDER_TEST
+    global TOOL_EXECUTABLE
+    global env objdir
+    global env libgcj_jar
+    global tool_root_dir
+    global libjava_libgcc_s_path
+    global target_triplet
+    global libjava_version
+
+    # We set LC_ALL and LANG to C so that we get the same error messages as expected.
+    setenv LC_ALL C
+    setenv LANG C
+
+    if { $libjava_initialized == 1 } { return; }
+
+    if ![info exists GCJ_UNDER_TEST] {
+	if [info exists TOOL_EXECUTABLE] {
+	    set GCJ_UNDER_TEST $TOOL_EXECUTABLE;
+	} else {
+	    if [info exists env(GCJ)] {
+		set GCJ_UNDER_TEST $env(GCJ)
+	    } else {
+		set GCJ_UNDER_TEST "[find_gcj]"
+	    }
+	}
+    }
+
+    # Find the libgcj jar file.
+
+    # FIXME: This finds libgcj.spec for the default multilib.
+    # If thread models differ between multilibs, this has to be moved
+    # to libjava_arguments
+    set specdir [libjava_find_spec]
+
+    set text [eval exec "$GCJ_UNDER_TEST -B$specdir -v 2>@ stdout"]
+    regexp " version \[^\n\r\]*" $text version
+    set libjava_version [lindex $version 1]
+
+    verbose "version: $libjava_version"
+
+    set libgcj_jar [glob $objdir/../libgcj-$libjava_version.jar]
+    verbose "jar file is $libgcj_jar"
+
+    # The -B is so we find libgcj.spec.
+    regexp -- "Thread model: (\[^\n\]+)\n" $text ignore model
+    set libjava_uses_threads [expr {! ($model == "no"
+				       || $model == "none"
+				       || $model == "single")}]
+
+    # Always set encoding used by gcj.
+    append GCJ_UNDER_TEST " --encoding=UTF-8"
+
+    set wrapper_file "";
+    set wrap_compile_flags "";
+    if [target_info exists needs_status_wrapper] {
+	set result [build_wrapper "testglue.o"];
+	if { $result != "" } {
+	    set wrapper_file [lindex $result 0];
+	    set wrap_compile_flags [lindex $result 1];
+	} else {
+	    warning "Status wrapper failed to build."
+	}
+    }
+
+    # Finally, add the gcc build directory so that we can find the
+    # shared libgcc.  This, like much of dejagnu, is hideous.
+    set libjava_libgcc_s_path {}
+
+    if { [istarget "*-*-darwin*"] } {
+	set so_extension "dylib"
+    } else {
+	set so_extension "so"
+    }
+    set gccdir [lookfor_file $tool_root_dir gcc/libgcc_s.${so_extension}]
+    if {$gccdir != ""} {
+	set gccdir [file dirname $gccdir]
+	lappend libjava_libgcc_s_path $gccdir
+	verbose "libjava_libgcc_s_path = $libjava_libgcc_s_path"
+	set compiler ${gccdir}/xgcc
+	if { [is_remote host] == 0 && [which $compiler] != 0 } {
+	    foreach i "[exec $compiler --print-multi-lib]" {
+		set mldir ""
+		regexp -- "\[a-z0-9=_/\.-\]*;" $i mldir
+		set mldir [string trimright $mldir "\;@"]
+		if { "$mldir" == "." } {
+		    continue
+		}
+		if { [llength [glob -nocomplain ${gccdir}/${mldir}/libgcc_s*.${so_extension}.*]] >= 1 } {
+		    lappend libjava_libgcc_s_path "${gccdir}/${mldir}"
+		}
+	    }
+	}
+    }
+
+    set libjava_initialized 1
+}
+
+# Find a library.  We know where libtool puts the actual libraries,
+# and we look there.  The implementation is fairly hacky.  We can't
+# compile with -nodefaultlibs, because that will also eliminate the
+# system libraries we need.  In order to have gcj still work, it must
+# find the appropriate libraries so we must add -L options for their
+# paths.  However we can't simply use those libraries; we still need
+# libtool for linking.
+# Don't return the the lib${name}.la files here, since this causes the
+# libraries to be linked twice: once as lib${name}.so/dylib and another time
+# via gcj's implicit -l${name}.  This is both unnecessary and causes the
+# Solaris ld to warn: attempted multiple inclusion of file.  This warning
+# is not ignored by the dejagnu framework and cannot be disabled.
+proc libjava_find_lib {dir name} {
+    global base_dir
+    set gp [get_multilibs]
+    foreach extension {so dll dylib sl a} {
+	foreach sub {.libs _libs} {
+	    if {$gp != ""} {
+		if {[file exists $gp/$dir/$sub/lib${name}.${extension}]} then {
+		    # Just return the `-L' option.  The library itself
+		    # will be picked up via the spec file.
+		    return "-L$gp/$dir/$sub"
+		}
+	    }
+	    # Just return the `-L' option.  The library itself will be
+	    # picked up via the spec file.
+	    set lib [findfile \
+		       $base_dir/../../$dir/$sub/lib${name}.${extension} \
+		       "-L$base_dir/../../$dir/$sub" \
+		       ""]
+	    if {$lib != ""} {
+		return $lib
+	    }
+	}
+    }
+    return ""
+}
+
+# Find libgcj.spec.  We need to use the file corresponding to the multilib
+# under test since they might differ.  Append a trailing slash since this
+# is used with -B.
+proc libjava_find_spec {} {
+    global objdir
+    return "$objdir/../"
+}
+
+# Find `gij'.  Return empty string if not found.
+proc libjava_find_gij {} {
+    global base_dir objdir
+
+    set gijdir [lookfor_file [get_multilibs] libjava];
+    # Fall back if get_multilibs fails.
+    if {$gijdir == ""} {
+      set gijdir "$objdir/.."
+    }
+    if {! [file exists $gijdir/gij]} {
+	return ""
+    }
+    return $gijdir/gij
+}
+
+# Remove a bunch of files.
+proc gcj_cleanup {args} {
+    foreach file $args {
+	if {[string match *.o $file]} {
+	    verbose "removing [file rootname $file].lo"
+	    file delete -force [file rootname $file].lo
+	}
+	file delete -force -- $file
+	verbose "removing $file"
+    }
+    # It is simplest to do this instead of trying to figure out what
+    # bits in .libs ought to be removed.
+    catch {system "rm -rf .libs"}
+}
+
+# Compute arguments needed for compiler.  MODE is a libtool mode:
+# either compile or link.
+proc libjava_arguments {{mode compile}} {
+    global base_dir
+    global LIBJAVA
+    global srcdir subdir objdir
+    global TOOL_OPTIONS
+    global GCJ_UNDER_TEST
+    global tmpdir
+    global runtests
+    global env
+    global tool_root_dir
+    global libgcj_jar
+    global libjava_libgcc_s_path
+    global libjava_ld_library_path
+    global ld_library_path
+    global target_triplet
+
+    if [info exists LIBJAVA] {
+	set libjava $LIBJAVA;
+    } else {
+	set libjava [libjava_find_lib libjava gcj]
+    }
+
+    verbose "using LIBJAVA = $libjava" 2
+    set args ""
+
+    # Basically we want to build up a colon separated path list from
+    # the value of $libjava.
+
+    set lpath "."
+    foreach dir [list $libjava] {
+	foreach item [split $dir " "] {
+	    switch -glob -- $item {
+		"-L*" {
+		    lappend lpath [string range $item 2 end]
+		}
+	    }
+	}
+    }
+
+    set lpath [concat $lpath $libjava_libgcc_s_path]
+    verbose "lpath = $lpath ; libgcc_s_path = $libjava_libgcc_s_path"
+    set ld_library_path [join $lpath :]
+    set libjava_ld_library_path "$ld_library_path"
+
+    # That's enough to make things work for the normal case.
+    # If we wanted to handle an arbitrary value of libjava,
+    # then we'd have to do a lot more work.
+
+    set_ld_library_path_env_vars
+    if [info exists env(LD_LIBRARY_PATH)] {
+	verbose "LD_LIBRARY_PATH = $env(LD_LIBRARY_PATH)"
+    }
+
+    # Determine CLASSPATH separator
+    if { [string match "i?86-pc-mingw32*" $target_triplet] } {
+	set sep ";"
+    } else {
+	set sep ":"
+    }
+
+    # Set the CLASSPATH environment variable
+    global env
+    set env(CLASSPATH) \
+	[join [list . $srcdir/$subdir $objdir $libgcj_jar] $sep]
+    verbose "CLASSPATH is $env(CLASSPATH)"
+
+    if {$mode == "link"} {
+	global wrapper_file wrap_compile_flags
+	lappend args "additional_flags=$wrap_compile_flags"
+	lappend args "libs=$wrapper_file"
+	lappend args "libs=$libjava"
+	lappend args debug
+    }
+
+    if { [target_info needs_status_wrapper]!="" && [info exists gluefile] } {
+	lappend args "libs=${gluefile}"
+	lappend args "ldflags=$wrap_flags"
+    }
+
+    if [info exists TOOL_OPTIONS] {
+	lappend args "additional_flags=$TOOL_OPTIONS"
+    }
+
+    # Determine libgcj.spec corresponding to multilib under test.
+    set specdir [libjava_find_spec]
+
+    # Search for libtool.  We need it to link.
+    set found_compiler 0
+    set d [absolute $objdir]
+    foreach x {. .. ../.. ../../..} {
+	if {[file exists $d/$x/libtool]} then {
+	    # We have to run silently to avoid DejaGNU lossage.
+	    lappend args \
+	      "compiler=$d/$x/libtool --silent --tag=GCJ --mode=$mode $GCJ_UNDER_TEST -B$specdir"
+	    set found_compiler 1
+	    break
+	}
+    }
+    if {! $found_compiler} {
+	# Append -B$specdir so that we find libgcj.spec before it
+	# is installed.
+	lappend args "compiler=$GCJ_UNDER_TEST -B$specdir"
+    }
+
+    # Avoid libtool wrapper scripts when possible.
+    # but not if libtool warnings results in FAILs
+    if {$mode == "link"} {
+	if {! [istarget "*-*-cygwin*"] && ! [istarget "*-*-mingw*"] } {
+	    lappend args "additional_flags=-no-install"
+	}
+	if { [istarget "*-*-darwin*"] } {
+	    lappend args "additional_flags=-bind_at_load"
+	    lappend args "additional_flags=-multiply_defined suppress"
+	}
+    }
+
+    return $args
+}
+
+# Link a bunch of objects into a program.  MAIN is the name of the
+# class holding `main'.  Return 0 on failure.
+proc gcj_link {program main files {options {}}} {
+    set arguments [libjava_arguments link]
+    if {[llength $options]} {
+	eval lappend arguments $options
+    }
+    lappend arguments "additional_flags=--main=$main"
+    set x [libjava_prune_warnings \
+	     [libjava_tcompile $files $program executable $arguments]]
+    if {$x != ""} {
+	verbose "link failure: $x" 2
+	fail "linking $program"
+	setup_xfail "*-*-*"
+	fail "running $program"
+	return 0
+    }
+
+    pass "linking $program"
+    return 1
+}
+
+# Invoke the program and see what happens.  Return 0 on failure.
+proc gcj_invoke {program expectFile ld_library_additions} {
+  global env
+  global libjava_ld_library_path
+  global ld_library_path
+
+  set ld_library_path "$libjava_ld_library_path"
+  if {[llength $ld_library_additions] > 0} {
+    append ld_library_path :[join $ld_library_additions :]
+  }
+
+  set_ld_library_path_env_vars
+  if [info exists env(LD_LIBRARY_PATH)] {
+    verbose "LD_LIBRARY_PATH=$env(LD_LIBRARY_PATH)"
+  }
+
+  set result [libjava_load ./$program]
+  set status [lindex $result 0]
+  set output [lindex $result 1]
+
+  # Restore setting
+  restore_ld_library_path_env_vars
+
+  if {$status != "pass"} {
+    verbose "got $output"
+    fail "$program run"
+    untested "$program output"
+    return 0
+  }
+
+  set id [open $expectFile r]
+  set expected [read $id]
+  close $id
+
+  if {! [string compare $output $expected]} {
+    pass "$program output"
+    return 1
+  } else {
+    fail "$program output"
+    return 0
+  }
+}
+
+# Invoke a program and check its output.  EXECUTABLE is the program;
+# ARGS are the arguments to the program.  Returns 1 if tests passed
+# (or things were left untested), 0 otherwise.
+proc libjava_invoke {errname testName optName executable inpfile resultfile
+		      ld_library_additions args} {
+    global env
+    global libjava_ld_library_path
+    global ld_library_path
+
+    set ld_library_path "$libjava_ld_library_path"
+    if {[llength $ld_library_additions] > 0} {
+	append ld_library_path :[join $ld_library_additions :]
+    }
+
+    set_ld_library_path_env_vars
+    if [info exists env(LD_LIBRARY_PATH)] {
+	verbose "LD_LIBRARY_PATH=$env(LD_LIBRARY_PATH)"
+    }
+
+    upvar $optName opts
+
+    if {[info exists opts(no-exec)]} {
+	if {[info exists opts(need-threads)]} {
+	    # This means we wanted to try to run it but we couldn't
+	    # because threads aren't supported.  So we have to
+	    # generate an `untested'.
+	    untested "$errname execution - $testName"
+	    untested "$errname output - $testName"
+	}
+	return 1
+    }
+
+    set result [libjava_load $executable $args "$inpfile"]
+    set status [lindex $result 0]
+    set output [lindex $result 1]
+
+    # Restore LD_LIBRARY_PATH setting.
+    restore_ld_library_path_env_vars
+
+    if {[info exists opts(xfail-exec)]} then {
+	setup_xfail *-*-*
+    }
+    $status "$errname execution - $testName"
+    if { $status != "pass" } {
+	untested "$errname output - $testName"
+	return 0
+    }
+
+    verbose "resultfile is $resultfile"
+    set id [open $resultfile r]
+    set expected ""
+    append expected [read $id]
+    regsub -all "\r" "$output" "" output
+    regsub "\n*$" $expected "" expected
+    regsub "\n*$" $output "" output
+    regsub "^\n*" $expected "" expected
+    regsub "^\n*" $output "" output
+    regsub -all "\[ \t\]\[ \t\]*" $expected " " expected
+    regsub -all "\[ \t\]*\n\n*" $expected "\n" expected
+    regsub -all "\[ \t\]\[ \t\]*" $output " " output
+    regsub -all "\[ \t\]*\n\n*" $output "\n" output
+    verbose "expected is $expected"
+    verbose "actual is $output"
+    set passed 0
+    if {[info exists opts(regexp_match)]} {
+	if [regexp $expected $output] {
+	    set passed 1
+	}
+    } else {
+	if { $expected == $output } {
+	    set passed 1
+	}
+    }
+    if {[info exists opts(xfail-output)]} {
+	setup_xfail *-*-*
+    }
+    if { $passed == 1 } {
+	pass "$errname output - $testName"
+    } else {
+	fail "$errname output - $testName"
+    }
+    close $id
+
+    return $passed
+}
+
+#
+# Run the test specified by srcfile and resultfile. compile_args and
+# exec_args are options telling this proc how to work.
+#
+proc test_libjava_from_source { options srcfile compile_args inpfile resultfile exec_args } {
+    global base_dir
+    global srcdir subdir objdir
+    global TOOL_OPTIONS
+    global GCJ_UNDER_TEST
+    global tmpdir
+    global runtests
+
+    # Make opts into an array.
+    set opts(_) x
+    unset opts(_)
+    foreach item $exec_args {
+	set opts($item) x
+    }
+
+    # If we need threads and we don't have them then set the `no-exec'
+    # flag.  This is case is also handled specially later.
+    if {[info exists opts(need-threads)]} {
+	global libjava_uses_threads
+	if {! $libjava_uses_threads} {
+	    set opts(no-exec) x
+	}
+    }
+
+    set errname [file rootname [file tail $srcfile]]
+    if {! [runtest_file_p $runtests $errname]} {
+        return
+    }
+
+    if {[info exists opts(no-link)]} {
+	set mode compile
+    } else {
+	set mode link
+    }
+    set args [libjava_arguments $mode]
+    if {! [info exists opts(no-link)]} {
+	# Add the --main flag
+	lappend args "additional_flags=--main=[file rootname [file tail $srcfile]]"
+	if { $compile_args != "" } {
+	    lappend args "additional_flags=$compile_args"
+	}
+    }
+
+    regsub "^.*/(\[^/.\]+)\[.\]\[^/]*$" "$srcfile" "\\1" out
+    set executable "${objdir}/$out"
+    if {[info exists opts(no-link)]} {
+	append executable ".o"
+	set target object
+    } else {
+        # DOS/win32 targets default to .exe if no suffix is given
+        # We then try to delete a file that doesn't exist.  It is
+        # simpler to add the suffix everywhere.
+        append executable ".exe"
+	set target executable
+    }
+    if { $compile_args != "" } {
+	set errname "$errname $compile_args"
+    }
+
+    set removeList [list $executable]
+
+    set x [libjava_prune_warnings \
+	     [libjava_tcompile $srcfile "$executable" $target $args]]
+    if {[info exists opts(xfail-gcj)]} {
+	setup_xfail *-*-*
+    }
+    if { $x != "" } {
+	verbose "target_compile failed: $x" 2
+
+	if {[info exists opts(shouldfail)]} {
+	    pass "$errname compilation from source"
+	    eval gcj_cleanup $removeList
+	    return
+	}
+
+	fail "$errname compilation from source"
+	if {[info exists opts(xfail-gcj)]
+	    || ! [info exists opts(no-exec)]
+	    || [info exists opts(need-threads)]} {
+	    untested "$errname execution from source compiled test"
+	    untested "$errname output from source compiled test"
+	}
+	return
+    }
+    if {[info exists opts(shouldfail)]} {
+	fail "$errname compilation from source"
+	return
+    }
+    pass "$errname compilation from source"
+
+    # Set up the options the way they are expected by libjava_invoke.
+    if {[info exists opts(xfail-source-output)]} {
+	set opts(xfail-output) x
+    }
+    if {[libjava_invoke $errname "source compiled test" opts $executable \
+	   $inpfile $resultfile ""]} {
+	# Everything ok, so clean up.
+	eval gcj_cleanup $removeList
+    }
+}
+
+#
+# Run the test specified by srcfile and resultfile. compile_args and
+# exec_args are options telling this proc how to work.
+#
+proc test_libjava_from_javac { options srcfile compile_args inpfile resultfile exec_args } {
+    global base_dir
+    global srcdir subdir objdir
+    global TOOL_OPTIONS
+    global GCJ_UNDER_TEST
+    global tmpdir
+    global runtests
+    global INTERPRETER
+
+    # Make opts into an array.
+    set opts(_) x
+    unset opts(_)
+    foreach item $exec_args {
+	set opts($item) x
+    }
+
+    # If we need threads and we don't have them then set the `no-exec'
+    # flag.  This is case is also handled specially later.
+    if {[info exists opts(need-threads)]} {
+	global libjava_uses_threads
+	if {! $libjava_uses_threads} {
+	    set opts(no-exec) x
+	}
+    }
+    set errname [file rootname [file tail $srcfile]]
+    if {! [runtest_file_p $runtests $errname]} {
+        return
+    }
+
+    # bytecompile files with Sun's compiler for now.
+    set bc_ok [bytecompile_file $srcfile $objdir]
+
+    set javac [find_javac]
+    # This is an ugly heuristic but it will have to do.
+    if {[string match *gcj* $javac]} {
+	set tag gcjC
+    } else {
+	set tag javac
+    }
+    if {[info exists opts(xfail-$tag)]} {
+	setup_xfail *-*-*
+    }
+    if {! $bc_ok} then {
+	if {[info exists opts(shouldfail)]} {
+	    pass "$errname byte compilation"
+	    return
+	}
+	fail "$errname byte compilation"
+	untested "$errname compilation from bytecode"
+	if {! [info exists opts(no-exec)]
+	    || [info exists opts(need-threads)]} {
+	    untested "$errname execution from bytecode->native test"
+	    untested "$errname output from bytecode->native test"
+	}
+	return
+    }
+    if {[info exists opts(shouldfail)]} {
+	fail "$errname byte compilation"
+	return
+    }
+    pass "$errname byte compilation"
+
+    set removeList {}
+
+    # Find name to use for --main, and name of all class files.
+    set jvscan [find_jvscan]
+    verbose "jvscan is $jvscan"
+    set main_name [string trim \
+		     [libjava_prune_warnings \
+			[lindex [local_exec "$jvscan --encoding=UTF-8 $srcfile --print-main" "" "" 300] 1]]]
+    verbose "main name is $main_name"
+    set class_out [string trim \
+		     [libjava_prune_warnings \
+			[lindex [local_exec "$jvscan --encoding=UTF-8 $srcfile --list-class" "" "" 300] 1]]]
+    verbose "class list is $class_out"
+
+    if {[string match "*parse error*" $main_name]
+	|| [string match "*parse error*" $class_out]} {
+	untested "$errname compilation from bytecode"
+	if {! [info exists opts(no-exec)]
+	    || [info exists opts(need-threads)]} {
+	    untested "$errname execution from bytecode->native test"
+	    untested "$errname output from bytecode->native test"
+	}
+	return
+    }
+
+    # Turn "a b" into "a.class b.class".
+    # Also, turn "foo.bar" into "foo/bar.class".
+    set class_files {}
+    foreach file [split [string trim $class_out]] {
+	set file [join [split $file .] /]
+	lappend class_files $objdir/$file.class
+    }
+
+    eval lappend removeList $class_files
+
+    # Usually it is an error for a test program not to have a `main'
+    # method.  However, for no-exec tests it is ok.  Treat no-link
+    # like no-exec here.
+    if {[info exists opts(no-link)]} {
+	set opts(no-exec) x
+    }
+    set largs {}
+
+    if {[info exists opts(no-exec)]} {
+	set type object
+	set mode compile
+    } elseif {$main_name == ""} {
+	perror "No `main' given in program $errname"
+	return
+    } else {
+	set type executable
+	lappend largs "additional_flags=--main=$main_name"
+	# DOS/win32 targets default to .exe if no suffix is given
+        # We then try to delete a file that doesn't exist.  It is
+	# simpler to add the suffix everywhere.
+	set executable "${objdir}/${main_name}.exe"
+	set mode link
+    }
+
+    # We purposely ignore errors here; we still want to run the other
+    # appropriate tests.
+    set gij [libjava_find_gij]
+    # libjava_find_gij will return "" if it couldn't find the
+    # program; in this case we want to skip the test.
+    if {$INTERPRETER == "yes" && $gij != ""} {
+	libjava_invoke $errname "gij test" opts $gij \
+	  $inpfile $resultfile "" $main_name
+    }
+
+    # Initial arguments.
+    set args [libjava_arguments $mode]
+    eval lappend args $largs
+
+    if { $compile_args != "" } {
+	lappend args "additional_flags=$compile_args"
+    }
+
+    if { $compile_args != "" } {
+	set errname "$errname $compile_args"
+    }
+
+    verbose "compilation command = $args" 2
+    # When compiling and not linking, we have to build each .o
+    # separately.  We do this because DejaGNU's target_compile won't
+    # accept an empty "destfile" argument when the mode is "compile".
+    if {$mode == "compile"} {
+	foreach c_file $class_files {
+	    set executable [file rootname [file tail $c_file]].o
+	    # Don't write files which contain $ chars.
+	    regsub -all "\\$" $executable "\^" executable
+	    set x [libjava_prune_warnings \
+		     [libjava_tcompile '$c_file' "$executable" $type $args]]
+	    lappend removeList $executable
+	    if {$x != ""} {
+		break
+	    }
+	}
+    } else {
+	# This is so evil: we de-listify CLASS_FILES so that we can
+	# turn around and quote the `$' in it for the shell.  I really
+	# hate DejaGNU.  It is so !@#$!@# unpredictable.
+	set hack ""
+	foreach stupid $class_files {
+	    set hack "$hack $stupid"
+	}
+	lappend removeList $executable
+	set x [libjava_prune_warnings \
+		 [libjava_tcompile $hack "$executable" $type $args]]
+    }
+    if {[info exists opts(xfail-byte)]} {
+	setup_xfail *-*-*
+    }
+    if { $x != "" } {
+	verbose "target_compile failed: $x" 2
+	fail "$errname compilation from bytecode"
+	if {! [info exists opts(no-exec)]
+	    || [info exists opts(need-threads)]} {
+	    untested "$errname execution from bytecode->native test"
+	    untested "$errname output from bytecode->native test"
+	}
+	return;
+    }
+    pass "$errname compilation from bytecode"
+
+    # Set up the options the way they are expected by libjava_invoke.
+    if {[info exists opts(xfail-byte-output)]} {
+	set opts(xfail-output) x
+    }
+    if {[libjava_invoke $errname "bytecode->native test" opts $executable \
+	   $inpfile $resultfile ""]} {
+	# Everything ok, so clean up.
+	eval gcj_cleanup $removeList
+    }
+}
+
+#
+# Run the test specified by srcfile and resultfile. compile_args and
+# exec_args are options telling this proc how to work.
+#   `no-link'     don't try to link the program
+#   `no-exec'     don't try to run the test
+#   `xfail-gcj'   compilation from source will fail
+#   `xfail-javac' compilation with javac will fail
+#   `xfail-gcjC'  compilation with gcj -C will fail
+#   `shouldfail'  compilation from source is supposed to fail
+#                 This is different from xfail, which marks a known
+#                 failure that we just haven't fixed.
+#                 A compilation marked this way should fail with any
+#                 front end.
+#   `xfail-byte'  compilation from bytecode will fail
+#   `xfail-exec'  exec will fail
+#   `xfail-output'
+#                 output will be wrong
+#   `xfail-byte-output'
+#                 output will be wrong when compiled from bytecode
+#   `xfail-source-output'
+#                 output will be wrong when compiled from source code
+#   `need-threads'
+#                 test relies on thread support
+#
+proc test_libjava { options srcfile compile_args inpfile resultfile exec_args } {
+    test_libjava_from_source $options $srcfile $compile_args $inpfile $resultfile $exec_args
+    test_libjava_from_javac $options $srcfile $compile_args $inpfile $resultfile $exec_args
+    
+    # Test BC-ABI compilation, currently for bytecode->native only
+    set compile_args_bcabi $compile_args
+    lappend compile_args_bcabi "-findirect-dispatch"
+
+    test_libjava_from_javac $options $srcfile $compile_args_bcabi $inpfile $resultfile $exec_args
+ }
+
+#
+# libjava_version -- extract and print the version number of libjavap
+#
+proc default_libjava_version {} {
+}
+
+proc default_libjava_start { } {
+}
+
+# Local Variables:
+# tcl-indent-level:4
+# End:

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.cni/PR9577.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.cni/PR9577.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.cni/PR9577.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.cni/PR9577.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,14 @@
+// Check if a method name is mangled properly in the presence
+// of an array parameter sharing a part of the type name 
+// with a subsequent parameter.
+
+public class PR9577
+{
+  private native void sayHello (String[] s, Object o);
+
+  public static void main (String[] args)
+  {
+    PR9577 x = new PR9577( );
+    x.sayHello( null, null);
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.cni/PR9577.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.cni/PR9577.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.cni/PR9577.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.cni/PR9577.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+Hello!

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.cni/cni.exp
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.cni/cni.exp?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.cni/cni.exp (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.cni/cni.exp Thu Nov  8 16:56:19 2007
@@ -0,0 +1,119 @@
+# Tests for CNI code.
+
+# Compile a single C++ file and produce a .o file.  OPTIONS is a list
+# of options to pass to the compiler.  Returns 0 on failure, 1 on
+# success.
+proc gcj_cni_compile_cxx_to_o {file {options {}}} {
+  global srcdir
+
+  set name [file rootname [file tail $file]]
+  set oname ${name}.o
+
+  # Find the generated header.
+  lappend options "additional_flags=-I. -I.."
+  # Find libgcj headers.
+  lappend options "additional_flags=-I$srcdir/.."
+
+  set x [libjava_prune_warnings \
+	   [target_compile $file $oname object $options]]
+  if {$x != ""} {
+    verbose "target_compile failed: $x" 2
+    fail "[file tail $file] compilation"
+    return 0
+  }
+
+  pass "[file tail $file] compilation"
+  return 1
+}
+
+# Build header files given name of .java file.  Return 0 on failure.
+proc gcj_cni_build_headers {file} {
+  set gcjh [find_gcjh]
+  set jvscan [find_jvscan]
+
+  set class_out [string trim \
+		   [libjava_prune_warnings \
+		      [lindex [local_exec "$jvscan --encoding=UTF-8 $file --list-class" "" "" 300] 1]]]
+  if {[string match "*parse error*" $class_out]} {
+    fail "$file header generation"
+    return 0
+  }
+
+  foreach file [split $class_out] {
+    set x [string trim [libjava_prune_warnings \
+			  [lindex [local_exec "$gcjh $file" "" "" 300] 1]]]
+    if {$x != ""} {
+      verbose "local_exec failed: $x" 2
+      fail "$file header generation"
+      return 0
+    }
+  }
+
+  pass "$file header generation"
+  return 1
+}
+
+# Do all the work for a single CNI test.  Return 0 on failure.
+proc gcj_cni_test_one {file} {
+  global runtests
+
+  # The base name.  We use it for several purposes.
+  set main [file rootname [file tail $file]]
+  if {! [runtest_file_p $runtests $main]} {
+    # Simply skip it.
+    return 1
+  }
+
+  if {! [bytecompile_file $file [pwd]]} {
+    fail "bytecompile $file"
+    # FIXME - should use `untested' on all remaining tests.
+    # But that is hard.
+    return 0
+  }
+  pass "bytecompile $file"
+
+  if {! [gcj_cni_build_headers $file]} {
+    # FIXME
+    return 0
+  }
+
+  set cfile [file join [file dirname $file] nat$main.cc]
+  if {! [gcj_cni_compile_cxx_to_o $cfile]} {
+    # FIXME
+    return 0
+  }
+
+  if {! [gcj_link $main $main [list $file nat$main.o]]} {
+    # FIXME
+    return 0
+  }
+
+  if {! [gcj_invoke $main [file rootname $file].out {}]} {
+    # FIXME
+    return 0
+  }
+
+  # When we succeed we remove all our clutter.
+  eval gcj_cleanup [glob -nocomplain -- ${main}.*] [list $main nat$main.o]
+
+  return 1
+}
+
+# Run the CNI tests.
+proc gcj_cni_run {} {
+  global srcdir subdir
+  global build_triplet host_triplet
+
+  # For now we only test CNI on native builds.
+  if {$build_triplet == $host_triplet} {
+    catch { lsort [glob -nocomplain ${srcdir}/${subdir}/*.java] } srcfiles
+
+    foreach x $srcfiles {
+      gcj_cni_test_one $x
+    }
+  } else {
+    verbose "CNI tests not run in cross-compilation environment"
+  }
+}
+
+gcj_cni_run

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.cni/longfield.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.cni/longfield.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.cni/longfield.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.cni/longfield.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,22 @@
+public class longfield
+{
+  long lval = 232300;
+  boolean bval = true;
+  String sval = "maude";
+
+  public native void doitc ();
+
+  public void doitj()
+  {
+    System.out.println(lval);
+    System.out.println(bval);
+    System.out.println(sval);
+  }
+
+  public static void main(String[] args)
+  {
+    longfield f = new longfield();
+    f.doitc();
+    f.doitj();
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.cni/longfield.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.cni/longfield.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.cni/longfield.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.cni/longfield.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,6 @@
+232300
+true
+maude
+232300
+true
+maude

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.cni/natPR9577.cc
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.cni/natPR9577.cc?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.cni/natPR9577.cc (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.cni/natPR9577.cc Thu Nov  8 16:56:19 2007
@@ -0,0 +1,9 @@
+#include <stdio.h>
+
+#include "PR9577.h"
+
+void
+PR9577::sayHello (JArray< ::java::lang::String *> *x, ::java::lang::Object *y)
+  {
+    printf( "Hello!\n");
+  }

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.cni/natlongfield.cc
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.cni/natlongfield.cc?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.cni/natlongfield.cc (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.cni/natlongfield.cc Thu Nov  8 16:56:19 2007
@@ -0,0 +1,15 @@
+#include <gcj/cni.h>
+
+#include "longfield.h"
+#include <java/lang/System.h>
+#include <java/io/PrintStream.h>
+
+void
+longfield::doitc ()
+{
+  java::io::PrintStream *ps = java::lang::System::out;
+
+  ps->println(lval);
+  ps->println(bval);
+  ps->println(sval);
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.cni/natshortfield.cc
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.cni/natshortfield.cc?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.cni/natshortfield.cc (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.cni/natshortfield.cc Thu Nov  8 16:56:19 2007
@@ -0,0 +1,10 @@
+#include <stdio.h>
+#include "shortfield.h"
+
+void shortfield::ouch ()
+{
+  printf ("list: %d %d 0x%x\n",
+	  modCount,
+	  size__,
+	  data);
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.cni/shortfield.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.cni/shortfield.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.cni/shortfield.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.cni/shortfield.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,21 @@
+class shortfieldbase
+{
+   short modCount;
+}
+
+public class shortfield extends shortfieldbase
+{
+  short size__;
+  int data;
+  
+  native void ouch ();
+  
+  public static void main (String[] s)
+  {
+    shortfield f = new shortfield();
+    f.modCount = 99;
+    f.size__ = 2;
+    f.data = 0x12345678;
+    f.ouch();
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.cni/shortfield.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.cni/shortfield.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.cni/shortfield.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.cni/shortfield.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+list: 99 2 0x12345678

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/ArrayClass.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/ArrayClass.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/ArrayClass.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/ArrayClass.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,11 @@
+public class ArrayClass
+{
+  public static void main (String[] args)
+  {
+    System.out.println (ArrayClass.class);
+    System.out.println (ArrayClass[].class);
+    System.out.println (ArrayClass[][].class);
+    System.out.println (ArrayClass[][][].class);
+    System.out.println (ArrayClass[][][][].class);
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/AssertBug.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/AssertBug.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/AssertBug.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/AssertBug.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,7 @@
+// PR java/16927
+public class AssertBug {
+    public void bug(Integer i) {
+        assert(false):
+            i.toString() + "!";
+    }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/Case.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/Case.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/Case.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/Case.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,15 @@
+// Simple compiler test.
+
+public class Case 
+{
+  public static int foo (int i, support.Case x)
+    {
+      switch (i)
+	{
+	case x.A:
+	  return 1;
+	default:
+	  return 0;
+	}
+    }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/G19990210_1.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/G19990210_1.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/G19990210_1.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/G19990210_1.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,18 @@
+/*-------------------------------------------------------------------------*/
+/* File name : G19990210_1                                                 */
+/*           :                                                             */
+/* Cause     :                                                             */
+/*           :                                                             */
+/* Message   : G19990210_1.java: In class `G19990210_1':                   */
+/*             G19990210_1.java: In method `foo()':                        */
+/*             G19990210_1.java:8: Unreachable statement.                  */
+/*                             return 0;                                   */
+/*                             ^                                           */
+/*             1 error                                                     */
+/*-------------------------------------------------------------------------*/
+public class G19990210_1 {
+  int foo() {
+	try { ; } finally { ; }
+	return 0;
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/G19990210_2.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/G19990210_2.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/G19990210_2.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/G19990210_2.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,18 @@
+/*-------------------------------------------------------------------------*/
+/* File name : G19990210_2                                                 */
+/*           :                                                             */
+/* Cause     :                                                             */
+/*           :                                                             */
+/* Message   : G19990210_2.java: In class `G19990210_2':                   */
+/*           : G19990210_2.java: In method `foo()':                        */
+/*           : G19990210_2.java:5: Missing return statement.               */
+/*           :         }                                                   */
+/*           :         ^                                                   */
+/*           : 1 error                                                     */
+/*-------------------------------------------------------------------------*/
+public class G19990210_2  {
+  public int foo () {
+	return 1;
+	;
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/G19990210_3.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/G19990210_3.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/G19990210_3.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/G19990210_3.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,23 @@
+/*-------------------------------------------------------------------------*/
+/* File name : G19990210_3                                                 */
+/*           :                                                             */
+/* Cause     :                                                             */
+/*           :                                                             */
+/* Message   : G19990210_3.java: In class `G19990210_3':                   */
+/*           : G19990210_3.java: In method `foo()':                        */
+/*           : G19990210_3.java:23: Invalid argument to `++'.              */
+/*           :                         o.i++;                              */
+/*           :                            ^                                */
+/*           : 1 error                                                     */
+/*-------------------------------------------------------------------------*/
+public class G19990210_3  {
+  static void foo() {
+	bar o = new bar();
+	synchronized(o) {
+	  o.i++;
+	}
+  }
+}
+class bar {
+  static int i;
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/G19990217_01.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/G19990217_01.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/G19990217_01.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/G19990217_01.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,16 @@
+/*-------------------------------------------------------------------------*/
+/* File name : G19990217_01                                                */
+/*           :                                                             */
+/* Cause     : Compiler seems to run endlessly.                            */
+/*           :                                                             */
+/* Message   : No message. It's not stop to compile.                       */
+/*-------------------------------------------------------------------------*/
+
+public class G19990217_01 {
+  int foo() {
+	try {
+	  return 0;
+	} 
+	finally { ; }
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/G19990217_02.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/G19990217_02.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/G19990217_02.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/G19990217_02.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,16 @@
+/*-------------------------------------------------------------------------*/
+/* File name : G19990217_02                                                */
+/*           :                                                             */
+/* Cause     :                                                             */
+/*           :                                                             */
+/* Message   : Can't access class `foo.bar'.                               */
+/*           : Only public classes and interfaces in other packages can be */
+/*           : accessed.                                                   */
+/*           : public class G19990217_02 extends bar {                     */
+/*           :                                   ^                         */
+/*-------------------------------------------------------------------------*/
+package foo;
+public class G19990217_02 extends bar {
+}
+class bar {
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/G19990217_02.no-link
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/G19990217_02.no-link?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/G19990217_02.no-link (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/G19990217_02.no-link Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+Don't link me

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/G19990225_01.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/G19990225_01.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/G19990225_01.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/G19990225_01.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,7 @@
+public class G19990225_01 {
+  static int foo ;
+  static {
+    foo = 0;
+   }
+}
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/InnerExcept.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/InnerExcept.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/InnerExcept.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/InnerExcept.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,19 @@
+import java.io.*;
+
+// Test case for http://gcc.gnu.org/PR12866
+// From Mark Wielaard
+public class InnerExcept
+{
+  static private void createFile() throws IOException
+  {
+    new File("/dev/null");
+  }
+
+  class Inner
+  {
+    private void m() throws IOException
+    {
+      createFile();
+    }
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/MethodFailure4.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/MethodFailure4.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/MethodFailure4.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/MethodFailure4.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,40 @@
+import java.util.*;
+
+public class MethodFailure4 {
+
+  public static String call(A obj) {
+    return "A";
+  }
+  public static String call(I obj) {
+    return "I";
+  }
+
+  interface I {}
+  static class A {}
+  static class B extends A implements I {}
+  static class C extends B {}
+
+
+  public static A getA() {
+    return new A();
+  }
+
+  public static B getB() {
+    return new B();
+  }
+
+  public static C getC() {
+    return new C();
+  }
+
+  public static I getI() {
+    return new C();
+  }
+  
+  // this method invocation is ambiguous
+  
+  public static void main(String[] argv) {
+    call( getC() );
+  }
+
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/MethodFailure4.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/MethodFailure4.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/MethodFailure4.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/MethodFailure4.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+shouldfail

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/N19990310_01.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/N19990310_01.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/N19990310_01.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/N19990310_01.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,18 @@
+/*--------------------------------------------------------------------------*/
+/* name       : N19990310_01                                                */
+/*            :                                                             */
+/* cause      :  When compare string with connected strings, error.         */
+/*            :                                                             */
+/* Message    : Internal compiler error: program jc1 got                    */
+/*            : fatal signal 11                                             */
+/*--------------------------------------------------------------------------*/
+
+public class N19990310_01 {
+	public static void main(String[] args) {
+
+		if ( "Hello" == ("Hel"+"lo") ) {
+		}
+
+		System.out.println("OK");
+	}
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/N19990317.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/N19990317.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/N19990317.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/N19990317.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,23 @@
+/*--------------------------------------------------------------------------*/
+/* Name       : N19990317.java                                              */
+/*            :                                                             */
+/* Cause      : When initialize valiable whose name is equal to method      */
+/*            : return value, error.                                        */
+/*            :                                                             */
+/* Message    : Internal compiler error: program jc1 got                    */
+/*            :  fatal signal 11                                            */
+/*--------------------------------------------------------------------------*/
+
+class Point {}
+
+public class N19990317 {
+
+	Point  func() {
+		return null;
+	}
+
+	public static void main(String[] args) {
+		int Point = 2; 
+		System.out.println("OK");
+	}
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/OperatorBenchmark.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/OperatorBenchmark.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/OperatorBenchmark.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/OperatorBenchmark.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,886 @@
+
+/*
+ * Copyright (c) 1996, 1997 by Doug Bell <dbell at shvn.com>.  All Rights Reserved.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+
+// This file has been hacked to compile without the rest of the
+// benchmark code.
+
+class OperatorBenchmark {
+
+  public int getSampleCount() { return 0; }
+  public int getSampleMillis() { return 0; }
+  public boolean go;
+  public int useint[];
+  public void startTest () { }
+  public long finishTest () { return 0; }
+  public void startTimer (boolean b) { }
+  public void stopTimer (int a, int b) { }
+  public void report  (String s) { }
+  public void println  (String s) { }
+
+	public int getTestTime () {
+		return (int) (100 * getSampleCount() * getSampleMillis()) / 1000;
+	}
+
+	public int getRunningTime () {
+		return (int) (1.1 * getTestTime());
+	}
+
+	public long	runTest () {
+		int			dummy1 = 0, dummy2 = 0, dummy3 = 0;  // occupy implicit index slots
+		int			cnt, ii;
+		byte		b1 = 1, b2 = 2, b3 = 3;
+		short		s1 = 1, s2 = 2, s3 = 3;
+		int			i1 = 1, i2 = 2, i3 = 3;
+		long		l1 = 1, l2 = 2, l3 = 3;
+		float		f1 = 1, f2 = 2, f3 = 3;
+		double		d1 = 1, d2 = 2, d3 = 3;
+
+		startTest();
+
+		println("--- byte operators, local vars");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				b1++;
+			stopTimer(cnt, ii);
+		}
+		report("byte++");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				b1 += b2;
+			stopTimer(cnt, ii);
+		}
+		report("byte += byte");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				b1 = (byte) (b2 + b3);
+			stopTimer(cnt, ii);
+		}
+		report("byte = byte + byte");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				b1 *= b2;
+			stopTimer(cnt, ii);
+		}
+		report("byte *= byte");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				b1 = (byte) (b2 * b3);
+			stopTimer(cnt, ii);
+		}
+		report("byte = byte * byte");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				b1 *= 2;
+			stopTimer(cnt, ii);
+		}
+		report("byte *= 2");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				b1 <<= 1;
+			stopTimer(cnt, ii);
+		}
+		report("byte <<= 1");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				b1 %= b2;
+			stopTimer(cnt, ii);
+		}
+		report("byte %= byte");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				b1 = (byte) (b2 % b3);
+			stopTimer(cnt, ii);
+		}
+		report("byte = byte % byte");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				b1 /= b2;
+			stopTimer(cnt, ii);
+		}
+		report("byte /= byte");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				b1 = (byte) (b2 / b3);
+			stopTimer(cnt, ii);
+		}
+		report("byte = byte / byte");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				b1 /= 2;
+			stopTimer(cnt, ii);
+		}
+		report("byte /= 2");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				b1 >>= 1;
+			stopTimer(cnt, ii);
+		}
+		report("byte >>= 1");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				b1 >>= i2;
+			stopTimer(cnt, ii);
+		}
+		report("byte >>= int");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				b1 = (byte) (b2 >> i3);
+			stopTimer(cnt, ii);
+		}
+		report("byte = byte >> int");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				b1 |= b2;
+			stopTimer(cnt, ii);
+		}
+		report("byte |= byte");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				b1 = (byte) (b2 | b3);
+			stopTimer(cnt, ii);
+		}
+		report("byte = byte | byte");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				b1 &= b2;
+			stopTimer(cnt, ii);
+		}
+		report("byte &= byte");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				b1 = (byte) (b2 & b3);
+			stopTimer(cnt, ii);
+		}
+		report("byte = byte & byte");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				b1 ^= b2;
+			stopTimer(cnt, ii);
+		}
+		report("byte ^= byte");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				b1 = (byte) (b2 ^ b3);
+			stopTimer(cnt, ii);
+		}
+		report("byte = byte ^ byte");
+
+
+		println("--- short operators, local vars");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				s1++;
+			stopTimer(cnt, ii);
+		}
+		report("short++");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				s1 += s2;
+			stopTimer(cnt, ii);
+		}
+		report("short += short");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				s1 = (short) (s2 + s3);
+			stopTimer(cnt, ii);
+		}
+		report("short = short + short");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				s1 *= s2;
+			stopTimer(cnt, ii);
+		}
+		report("short *= short");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				s1 = (short) (s2 * s3);
+			stopTimer(cnt, ii);
+		}
+		report("short = short * short");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				s1 *= 2;
+			stopTimer(cnt, ii);
+		}
+		report("short *= 2");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				s1 <<= 1;
+			stopTimer(cnt, ii);
+		}
+		report("short <<= 1");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				s1 %= s2;
+			stopTimer(cnt, ii);
+		}
+		report("short %= short");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				s1 = (short) (s2 % s3);
+			stopTimer(cnt, ii);
+		}
+		report("short = short % short");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				s1 /= s2;
+			stopTimer(cnt, ii);
+		}
+		report("short /= short");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				s1 = (short) (s2 / s3);
+			stopTimer(cnt, ii);
+		}
+		report("short = short / short");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				s1 /= 2;
+			stopTimer(cnt, ii);
+		}
+		report("short /= 2");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				s1 >>= 1;
+			stopTimer(cnt, ii);
+		}
+		report("short >>= 1");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				s1 >>= i2;
+			stopTimer(cnt, ii);
+		}
+		report("short >>= int");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				s1 = (short) (s2 >> i3);
+			stopTimer(cnt, ii);
+		}
+		report("short = short >> int");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				s1 |= s2;
+			stopTimer(cnt, ii);
+		}
+		report("short |= short");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				s1 = (short) (s2 | s3);
+			stopTimer(cnt, ii);
+		}
+		report("short = short | short");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				s1 &= s2;
+			stopTimer(cnt, ii);
+		}
+		report("short &= short");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				s1 = (short) (s2 & s3);
+			stopTimer(cnt, ii);
+		}
+		report("short = short & short");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				s1 ^= s2;
+			stopTimer(cnt, ii);
+		}
+		report("short ^= short");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				s1 = (short) (s2 ^ s3);
+			stopTimer(cnt, ii);
+		}
+		report("short = short ^ short");
+
+
+		println("--- int operators, local vars");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				i1++;
+			stopTimer(cnt, ii);
+		}
+		report("int++");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				i1 += i2;
+			stopTimer(cnt, ii);
+		}
+		report("int += int");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				i1 = (i2 + i3);
+			stopTimer(cnt, ii);
+		}
+		report("int = int + int");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				i1 *= i2;
+			stopTimer(cnt, ii);
+		}
+		report("int *= int");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				i1 = (i2 * i3);
+			stopTimer(cnt, ii);
+		}
+		report("int = int * int");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				i1 *= 2;
+			stopTimer(cnt, ii);
+		}
+		report("int *= 2");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				i1 <<= 1;
+			stopTimer(cnt, ii);
+		}
+		report("int <<= 1");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				i1 %= i2;
+			stopTimer(cnt, ii);
+		}
+		report("int %= int");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				i1 = (i2 % i3);
+			stopTimer(cnt, ii);
+		}
+		report("int = int % int");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				i1 /= i2;
+			stopTimer(cnt, ii);
+		}
+		report("int /= int");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				i1 = (i2 / i3);
+			stopTimer(cnt, ii);
+		}
+		report("int = int / int");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				i1 /= 2;
+			stopTimer(cnt, ii);
+		}
+		report("int /= 2");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				i1 >>= 1;
+			stopTimer(cnt, ii);
+		}
+		report("int >>= 1");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				i1 >>= i2;
+			stopTimer(cnt, ii);
+		}
+		report("int >>= int");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				i1 = i2 >> i3;
+			stopTimer(cnt, ii);
+		}
+		report("int = int >> int");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				i1 |= i2;
+			stopTimer(cnt, ii);
+		}
+		report("int |= int");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				i1 = i2 | i3;
+			stopTimer(cnt, ii);
+		}
+		report("int = int | int");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				i1 &= i2;
+			stopTimer(cnt, ii);
+		}
+		report("int &= int");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				i1 = i2 & i3;
+			stopTimer(cnt, ii);
+		}
+		report("int = int & int");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				i1 ^= i2;
+			stopTimer(cnt, ii);
+		}
+		report("int ^= int");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				i1 = i2 ^ i3;
+			stopTimer(cnt, ii);
+		}
+		report("int = int ^ int");
+
+
+		println("--- long operators, local vars");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				l1++;
+			stopTimer(cnt, ii);
+		}
+		report("long++");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				l1 += l2;
+			stopTimer(cnt, ii);
+		}
+		report("long += long");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				l1 = (l2 + l3);
+			stopTimer(cnt, ii);
+		}
+		report("long = long + long");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				l1 *= l2;
+			stopTimer(cnt, ii);
+		}
+		report("long *= long");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				l1 = (l2 * l3);
+			stopTimer(cnt, ii);
+		}
+		report("long = long * long");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				l1 *= 2;
+			stopTimer(cnt, ii);
+		}
+		report("long *= 2");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				l1 <<= 1;
+			stopTimer(cnt, ii);
+		}
+		report("long <<= 1");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				l1 %= l2;
+			stopTimer(cnt, ii);
+		}
+		report("long %= long");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				l1 = (l2 % l3);
+			stopTimer(cnt, ii);
+		}
+		report("long = long % long");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				l1 /= l2;
+			stopTimer(cnt, ii);
+		}
+		report("long /= long");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				l1 = (l2 / l3);
+			stopTimer(cnt, ii);
+		}
+		report("long = long / long");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				l1 /= 2;
+			stopTimer(cnt, ii);
+		}
+		report("long /= 2");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				l1 >>= 1;
+			stopTimer(cnt, ii);
+		}
+		report("long >>= 1");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				l1 >>= i2;
+			stopTimer(cnt, ii);
+		}
+		report("long >>= int");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				l1 = l2 >> i3;
+			stopTimer(cnt, ii);
+		}
+		report("long = long >> int");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				l1 |= l2;
+			stopTimer(cnt, ii);
+		}
+		report("long |= long");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				l1 = l2 | l3;
+			stopTimer(cnt, ii);
+		}
+		report("long = long | long");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				l1 &= l2;
+			stopTimer(cnt, ii);
+		}
+		report("long &= long");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				l1 = l2 & l3;
+			stopTimer(cnt, ii);
+		}
+		report("long = long & long");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				l1 ^= l2;
+			stopTimer(cnt, ii);
+		}
+		report("long ^= long");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				l1 = l2 ^ l3;
+			stopTimer(cnt, ii);
+		}
+		report("long = long ^ long");
+
+
+		println("--- float operators, local vars");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				f1 += f2;
+			stopTimer(cnt, ii);
+		}
+		report("float += float");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				f1 = (float) (f2 + f3);
+			stopTimer(cnt, ii);
+		}
+		report("float = float + float");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				f1 *= f2;
+			stopTimer(cnt, ii);
+		}
+		report("float *= float");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				f1 = (float) (f2 * f3);
+			stopTimer(cnt, ii);
+		}
+		report("float = float * float");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				f1 %= f2;
+			stopTimer(cnt, ii);
+		}
+		report("float %= float");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				f1 = (float) (f2 % f3);
+			stopTimer(cnt, ii);
+		}
+		report("float = float % float");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				f1 /= f2;
+			stopTimer(cnt, ii);
+		}
+		report("float /= float");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				f1 = (float) (f2 / f3);
+			stopTimer(cnt, ii);
+		}
+		report("float = float / float");
+
+
+		println("--- double operators, local vars");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				d1 += d2;
+			stopTimer(cnt, ii);
+		}
+		report("double += double");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				d1 = (d2 + d3);
+			stopTimer(cnt, ii);
+		}
+		report("double = double + double");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				d1 *= d2;
+			stopTimer(cnt, ii);
+		}
+		report("double *= double");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				d1 = (d2 * d3);
+			stopTimer(cnt, ii);
+		}
+		report("double = double * double");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				d1 %= d2;
+			stopTimer(cnt, ii);
+		}
+		report("double %= double");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				d1 = (d2 % d3);
+			stopTimer(cnt, ii);
+		}
+		report("double = double % double");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				d1 /= d2;
+			stopTimer(cnt, ii);
+		}
+		report("double /= double");
+
+		for (cnt = getSampleCount();  --cnt >= 0; ) {
+			startTimer(true);
+			for (ii = 0;  go;  ii++)
+				d1 = (d2 / d3);
+			stopTimer(cnt, ii);
+		}
+		report("double = double / double");
+
+		useint[0] = dummy1;  useint[1] = dummy2;  useint[2] = dummy3;
+		return finishTest();
+	}
+}  // class OperatorBenchmark
+
+// EOF

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR11600.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR11600.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR11600.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR11600.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,7 @@
+public class PR11600 implements Cloneable
+{
+  public Object clone ()
+  {
+    return super.clone ();
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR11600.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR11600.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR11600.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR11600.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+shouldfail

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR12374.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR12374.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR12374.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR12374.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,27 @@
+public class PR12374 {
+
+  /* We weren't coping with field refs on a string constant...  */
+
+  Object Foo()
+  {
+    return "".CASE_INSENSITIVE_ORDER;
+  }
+
+  /* Special casing access to array.length while analysing syntax is
+     evil.  Especially when it means we can't cope with a type
+     called length.  */
+
+  class length
+  {
+    static final int i = 2;
+  }
+
+  int bar()
+  {
+    return length.i;
+  }
+
+  public static void main (String[] argv)
+  {
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR124.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR124.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR124.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR124.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,9 @@
+import java.lang.reflect.*;
+
+public class PR124
+{
+  public static void main (String[] args)
+  {
+    System.out.println (new InvocationTargetException ());
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR124.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR124.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR124.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR124.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+shouldfail

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR127.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR127.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR127.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR127.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,11 @@
+// Test case for PR127:
+// gcj dumps core on method invocation on a primitive type 
+
+class PR127 
+{
+  void f() 
+  {
+    int i;
+    i.f();
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR127.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR127.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR127.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR127.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+shouldfail

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR12857.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR12857.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR12857.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR12857.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,4 @@
+// Based on original test case from Yves Martin.
+interface PR12857 {
+  static final String CONST = PR12857.class.getName();
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR129_B.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR129_B.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR129_B.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR129_B.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,9 @@
+import support.PR129_A;
+
+public class PR129_B { 
+  public static void main ( String[] args ) { 
+    int length = PR129_A.strArr.length; 
+    System.out.println ( "Array length: " + length ); 
+  } 
+} 
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR129_B.no-link
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR129_B.no-link?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR129_B.no-link (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR129_B.no-link Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+Don't link me

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR13024.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR13024.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR13024.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR13024.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,18 @@
+import java.io.*;
+import java.util.zip.*;
+
+class PR13024 {
+    void isZipOrJarArchive(File file) throws IOException {
+        ZipFile zipFile = null;
+
+        try {
+            zipFile = new ZipFile(file);
+        } finally {
+            if (zipFile != null) {
+                try {
+                    zipFile.close();
+                } catch (IOException ignored) {}
+            }
+        }
+    }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR13237.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR13237.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR13237.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR13237.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,3 @@
+class PR13237 {
+  double kappa = Math.sqrt(2.0);
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR1343.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR1343.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR1343.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR1343.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,17 @@
+import java.util.Vector;
+
+public class PR1343
+{
+    void f(Object[] l)
+    {
+        class x1
+        {
+        };
+    }
+    void f(Vector l)
+    {
+        class x1
+        {
+        };
+    }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR13733.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR13733.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR13733.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR13733.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,10 @@
+// 15.26: "The type of an assignment expression is the type of the variable"
+// (LHS).
+class PR13733 {
+  String a, c = "";
+  Object b;
+
+  void bug() {
+    a = (b = c);	// invalid without cast
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR13733.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR13733.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR13733.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR13733.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+shouldfail

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR140.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR140.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR140.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR140.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,13 @@
+public class PR140 {
+  public static void fill(int[] a) {
+    for (int i = 0; i < a.length; i++) {
+      a[i] = i;
+    }
+  }
+  public static void main(String[] args) {
+    int[] a = new int[3];
+    fill(a);
+    a.length = 3000;
+    fill(a);
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR140.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR140.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR140.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR140.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+shouldfail

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR14853.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR14853.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR14853.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR14853.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,17 @@
+class tt
+{
+  static final tt tt1 = new tt();
+  tt()
+  {
+  }
+}
+
+public class PR14853
+{
+  public static void main (String[] args)
+  {
+    // This is an invalid assignment.  gcj would get confused in
+    // definite assignment when compiling to object code.
+    tt.tt1 = new tt();
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR14853.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR14853.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR14853.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR14853.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+shouldfail

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR15769.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR15769.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR15769.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR15769.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,10 @@
+class PR15769 {
+        private boolean foo () { return false; }
+
+
+        public boolean bar (double blaz)
+        {       
+                return (Double.POSITIVE_INFINITY != blaz) && foo ();
+        }
+}
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR16249.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR16249.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR16249.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR16249.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,18 @@
+// Regression test for PR java/16249.
+
+class PR16249
+{
+    static void bug(byte[] iCode, int pc)
+    {
+        while (pc < 100) {
+            try {
+                switch (iCode[pc] & 0xff) {
+                    case 666:
+                        iCode[++pc] = 1;
+                }
+            }
+            catch (Throwable ex) {
+            }
+        }
+    }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR163.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR163.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR163.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR163.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,8 @@
+// Test case for the PR gcj/163
+
+// Uninitalized final variables should not be permitted.
+
+class PR163
+{
+  final int foo;
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR163.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR163.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR163.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR163.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+shouldfail

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR164.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR164.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR164.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR164.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,6 @@
+// Test from PR 164.
+
+class PR164
+{
+  volatile final int foo = 8;
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR164.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR164.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR164.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR164.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+shouldfail

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR16675.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR16675.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR16675.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR16675.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,13 @@
+public class PR16675 {
+    public PR16675(Object obj) { }
+
+    public void someTestMethod() {
+        // gcj crashed compiling this, as `null' had type `void*'.
+        new PR16675(null) { };
+    }
+
+    public void someTestMethod2() {
+        new PR16675((Object) null) { };
+    }
+
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR16701.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR16701.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR16701.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR16701.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,10 @@
+class Cl
+{
+  private static final int CONSTANT1 = 0x001;
+  public static final int CONSTANT2 = 0x002 >> CONSTANT1;
+}
+
+public class PR16701
+{
+  public static final int VALUE = Cl.CONSTANT2;
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR19277.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR19277.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR19277.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR19277.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,7 @@
+class PR19277
+{
+  void snafu (int[] array)
+  {
+    array.length++;
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR19277.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR19277.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR19277.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR19277.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+shouldfail

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR19295.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR19295.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR19295.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR19295.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,16 @@
+public class PR19295 implements myInterface {
+        public long tagBits = 0;
+
+        public final boolean isArrayType() {
+            return (tagBits & IsArrayType) != 0;
+        }
+}
+
+abstract class blah {
+	public final static int Bit1 = 0x2;
+}
+
+interface myInterface {
+        long IsArrayType = blah.Bit1;
+}
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR19674.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR19674.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR19674.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR19674.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,7 @@
+public interface PR19674
+{
+  public interface Inside
+  {
+    void m(int p, int p2);
+  };
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR20312.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR20312.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR20312.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR20312.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,8 @@
+/* Can't throw what the overridden method doesn't. */
+public class PR20312
+{
+  public String toString( ) throws java.io.IOException
+  {
+    return "SNAFU";
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR20312.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR20312.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR20312.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR20312.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+shouldfail

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR20418.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR20418.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR20418.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR20418.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,7 @@
+public class PR20418
+{
+  public static void main( String[] args)
+  {
+    java.io.File = new java.io.File( "junk");
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR20418.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR20418.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR20418.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR20418.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+shouldfail

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR206.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR206.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR206.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR206.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,7 @@
+class PR206 {
+
+  PR206 (String s) 
+  {
+    support.PR206_A x;
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR20697.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR20697.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR20697.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR20697.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,29 @@
+public class PR20697
+{
+    public interface I
+    {
+        public void m();
+    }
+
+    public static class A2 implements I
+    {
+        public void m()
+        {
+            return;
+        }
+    }
+    
+}
+
+class Test extends PR20697.A2
+{
+    public void m()
+    {
+        return;
+    }
+
+    public void n()
+    {
+        m();
+    }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR207.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR207.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR207.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR207.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,6 @@
+class PR207 {
+  PR207 (String s) 
+  {
+    System.out.println (s + support.PR207_A.hello());
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR207.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR207.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR207.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR207.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+no-link

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR208.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR208.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR208.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR208.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,16 @@
+public class PR208
+{
+  public String toString () 
+  {
+    StringBuffer sb = new StringBuffer("");
+    
+    sb.append (new java.util.Date().getTime() / 1000);
+    
+    try {
+    }
+    catch (java.io.IOException e) {
+    }
+
+    return sb.toString();
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR208.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR208.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR208.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR208.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+no-link

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR209.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR209.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR209.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR209.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,4 @@
+public class PR209
+{
+  public int i = java.sql.Types.TINYINT;
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR21045.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR21045.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR21045.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR21045.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,11 @@
+public class PR21045
+{
+	class InnerBase {
+		InnerBase() throws Exception, NullPointerException {}
+	}
+	void method() {
+		try {
+			InnerBase obj = new InnerBase() {};
+		} catch (Exception e) {}
+	}
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR224.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR224.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR224.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR224.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,16 @@
+// File PrivateInnerInterface.java
+
+public class PR224 {
+    private interface Inter {}
+}
+
+
+class PrivateInnerInterface_Test extends PR224 {
+    void foo() {
+        // Implement the interface with an innerclass
+        Inter i = new Inter() { } ;
+    }
+}
+
+// This should fail to compile because Inter is private in the superclass
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR224.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR224.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR224.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR224.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+shouldfail

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR232.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR232.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR232.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR232.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,16 @@
+// Use of a "static final String" as a monitor causes ICE
+// in jc1 (20000520)
+//
+// Program received signal SIGSEGV, Segmentation fault.
+// put_decl_node (node=0x0) at ../../../gcc/java/lang.c:413
+// 413       if (TREE_CODE (node) == POINTER_TYPE)
+
+class PR232
+{
+  static final String lock= "LOCK";
+  
+  void a()
+  {   
+    synchronized(lock) {}
+  }
+};

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR232B.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR232B.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR232B.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR232B.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,15 @@
+// This triggers a failure when compiling from bytecode (only) with 20000519
+
+public class PR232B
+{
+  private static Object lock = new Object();
+  private static PR232B instance = null;
+
+  public void a()
+  {   
+    synchronized(lock)
+    {
+      instance = new PR232B();
+    } 
+  }
+};

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR234.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR234.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR234.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR234.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,24 @@
+// PR234.java
+public class PR234 extends B implements I
+{
+  public static void main(String args[])
+  {
+    PR234 x = new PR234();
+    x.m();
+  }
+}
+
+// B.java
+class B
+{
+  public void m()
+  {
+    System.out.println ("yes");
+  }
+}
+
+// I.java
+interface I
+{
+  public void m();
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR23431_1.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR23431_1.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR23431_1.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR23431_1.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,9 @@
+abstract class Foo
+{
+  public abstract void bar( );
+}
+
+class PR23431_1 extends Foo
+{
+  private void bar( ) { }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR23431_1.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR23431_1.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR23431_1.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR23431_1.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+shouldfail

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR23431_2.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR23431_2.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR23431_2.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR23431_2.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,9 @@
+interface Foo
+{
+  public void bar( );
+}
+
+class PR23431_2 implements Foo
+{
+  private void bar( ) { }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR23431_2.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR23431_2.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR23431_2.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR23431_2.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+shouldfail

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR235.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR235.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR235.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR235.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,7 @@
+public class PR235
+{
+  public static Class[] ConstructArgs =
+  {
+    Integer.TYPE
+  };
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR238.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR238.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR238.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR238.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,9 @@
+public class PR238
+{
+  void foo(A a)
+  {
+    a.toString();
+  }
+
+  class A {}
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR238.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR238.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR238.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR238.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+no-link

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR295.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR295.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR295.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR295.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,11 @@
+public class PR295 {
+    public class csemi {
+    };
+
+    public int foo;
+
+    public interface isemi {
+    };
+
+    public int bar;
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR310.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR310.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR310.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR310.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,9 @@
+public class PR310
+{
+  void m (long l)
+  {
+    switch (l)
+      {
+      }
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR310.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR310.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR310.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR310.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+shouldfail

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR3417.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR3417.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR3417.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR3417.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,6 @@
+// Make sure that assignment conversion checks are done for `return'.
+
+class PR3417
+{
+  char func (int i) { return i; }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR3417.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR3417.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR3417.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR3417.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+shouldfail

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR374.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR374.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR374.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR374.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,9 @@
+public class PR374
+{
+  Object a, b[], c[];
+
+  public void foo ()
+  {
+    c = new Object[10];
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR375.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR375.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR375.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR375.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,7 @@
+public class PR375
+{
+  public void foo ()
+  {
+    (Boolean.TRUE).booleanValue ();
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR4766.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR4766.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR4766.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR4766.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,25 @@
+// Test that bytecode generation works even when `finally' clause
+// doesn't return normally.
+
+public class PR4766
+{
+  public static int myfunction()
+  {
+    try
+      {
+	System.out.println ("hi");
+      }
+    catch( Exception e )
+      {
+	e.printStackTrace();
+      }
+    finally
+      {
+	return 0;
+      }
+  }
+
+  public static void main (String[] args)
+  {
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR5641.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR5641.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR5641.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR5641.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,20 @@
+interface I
+{
+  void m();
+}
+abstract class C implements I {}
+class Foo
+{
+  void Bar(C c)
+  {
+    c.m();
+  }
+  void blah(C c)
+  {
+    c.m();
+  }
+
+  public static void main (String[] args)
+  {
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR5641.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR5641.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR5641.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR5641.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+no-link

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR5848.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR5848.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR5848.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR5848.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,14 @@
+import java.util.Vector;
+import java.util.Enumeration;
+
+public class PR5848
+{
+  private Vector data;
+  void sub()
+  {
+    long sz = 0;
+    for (Enumeration e = data.elements() ; e.hasMoreElements() ;) {
+      sz =+ ((byte[])e.nextElement()).length;
+    }
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR5848.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR5848.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR5848.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR5848.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+no-link

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR5902.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR5902.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR5902.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR5902.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,4 @@
+class PR5902
+{
+  double d = 019f;
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR5913.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR5913.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR5913.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR5913.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,6 @@
+class PR5913
+{
+  boolean test1 = ("" + 1) instanceof String;
+  // This also tests literal parsing, as mentioned in PR 5902.
+  boolean test2 = "" + 0x1instanceof String;
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR6026.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR6026.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR6026.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR6026.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,4 @@
+class PR6026
+{
+  double d = 0.4e1+0.8;
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR6865.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR6865.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR6865.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR6865.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,5 @@
+// gcj crashes on this
+public class PR6865
+{
+  private foo;
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR6865.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR6865.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR6865.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/PR6865.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+shouldfail

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/Semi.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/Semi.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/Semi.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/Semi.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,8 @@
+// Simple compiler test.
+
+public class Semi
+{
+  Semi () { };
+}
+
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/Statics.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/Statics.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/Statics.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/Statics.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,7 @@
+// Simple compiler test.
+
+public interface Statics {
+
+  public static final int OwnerGrabButtonMask = 1<<24; 
+
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/SuperConstr.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/SuperConstr.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/SuperConstr.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/SuperConstr.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,20 @@
+// It is legal to reference "this" from an enclosing type, or an instance 
+// field from an enclosing type, in a super constructor call.
+
+public class SuperConstr
+{
+  SuperConstr (Object x, Outer y) {}
+}
+
+class Outer
+{
+  Object x;
+  
+  class Sub extends SuperConstr
+  {
+    Sub()
+    {
+      super(x, Outer.this);
+    }
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/T20020529.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/T20020529.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/T20020529.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/T20020529.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,23 @@
+public class T20020529
+{
+  public void checkXMLLangAttributeValue(String lang)
+  {
+      int offset = -1;
+      if (lang.length() >= 2) {
+          char ch0 = lang.charAt(0);
+      }
+      if (offset > 0) {
+          char ch = lang.charAt(offset++);
+          if (ch != '-') {
+              offset = -1;
+          } else {
+              while (true)
+	      {
+                if (ch == '-')
+                  ch = lang.charAt(offset++);
+                ch = lang.charAt(offset++);
+              }
+          }
+      }
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/T20020604.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/T20020604.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/T20020604.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/T20020604.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,17 @@
+// Regression test for gcj crash, when compiled with -O2 on
+// i686-pc-linux-gnu.
+public class T20020604
+{
+  static double d2 = 0.0;
+
+  static Object lockObject = new Object();
+
+  public static double f(double d1) {
+
+    synchronized (lockObject){
+      d2 = Math.max(d1, d2);
+    }
+
+    return d2;
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/Twice.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/Twice.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/Twice.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/Twice.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,14 @@
+// Simple compiler test.
+
+public class Twice
+{
+  Twice (boolean q)
+    {
+      if (q)
+	for (int p = 0; p < 10; p++);
+      else
+	for (int p = 0; p < 10; p++);
+    }
+}
+
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/Where.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/Where.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/Where.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/Where.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,12 @@
+// Simple compiler test.
+
+public final class Where implements support.Waldo 
+{
+  int WhereIsWaldo ()
+    {
+      // The compiler should find 'here' in support.Waldo.
+      return here;
+    }
+}
+
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/Where.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/Where.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/Where.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/Where.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+xfail-gcj

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/XercesBug.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/XercesBug.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/XercesBug.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/XercesBug.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,13 @@
+// This is java/4007
+public final class XercesBug
+{
+    static final class OrderedHashtable
+    {
+	private Entry[] fEntries = null;
+        public static final class Entry
+        {
+            int x;
+        }
+
+    }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/abstr.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/abstr.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/abstr.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/abstr.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,14 @@
+// This fails to compile from bytecode for some versions of the compiler.
+
+interface foo
+{
+  public void start ();
+}
+
+public abstract class abstr implements foo
+{
+  public void doit ()
+  {
+    start ();
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/abstr.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/abstr.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/abstr.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/abstr.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+no-link

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/assignment.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/assignment.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/assignment.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/assignment.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,19 @@
+// A definite assignment test.
+
+public class assignment
+{
+  public static Byte foo ()
+    {
+      Byte b;
+	
+      while (true) {
+	try {
+	  b = Byte.decode ("42");
+	  break;
+	} catch (NumberFormatException ignored) {}
+      }
+
+      return b;
+    }
+}
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/assignment_2.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/assignment_2.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/assignment_2.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/assignment_2.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,32 @@
+
+/**
+ * assignment_2.java
+ *
+ *
+ * Created: Thu Apr 13 16:48:40 2000
+ *
+ * @author Oliver Brandt
+ * @version
+ */
+
+public class assignment_2  {
+    public assignment_2 () 
+    {
+    }
+    
+    public int foo ()
+    {
+        int result;
+        
+        try
+        {
+            result = 0;
+        }
+        finally
+        {
+        }
+        return result;
+        
+    }
+    
+}// test

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/block.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/block.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/block.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/block.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,14 @@
+// Class block
+// Generated on Thu Apr 20 15:03:23 PDT 2000
+// It is illegal to use modifiers for in-block (local) classes
+
+class block {
+  public void foo ()
+  {
+    public class xxx {}
+  }
+  public static void main (String[] arg)
+  {
+    System.out.println ("Testing class `block'...");
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/block.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/block.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/block.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/block.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+shouldfail

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/comment.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/comment.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/comment.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/comment.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,7 @@
+public class comment
+{
+  /***
+  // This is supposed to be a comment.
+  */
+}
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/compile.exp
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/compile.exp?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/compile.exp (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/compile.exp Thu Nov  8 16:56:19 2007
@@ -0,0 +1,20 @@
+global srcdir subdir
+
+catch { lsort [glob -nocomplain ${srcdir}/${subdir}/*.java] } srcfiles
+verbose "srcfiles are $srcfiles"
+
+set prefix ""
+foreach x $srcfiles {
+    set args [libjava_read_xfail [file rootname $x].xfail]
+    if {[file exists [file rootname $x].no-link]} {
+	lappend args no-link
+    }
+    lappend args no-exec
+
+    test_libjava "" "$x" "" "" "" $args
+    test_libjava "" "$x" "-O3" "" "" $args
+}
+
+# Local Variables:
+# tcl-indent-level:4
+# End:

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/consthrow.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/consthrow.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/consthrow.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/consthrow.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,6 @@
+public class consthrow
+{
+  public consthrow () throws Object
+  {
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/consthrow.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/consthrow.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/consthrow.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/consthrow.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1,2 @@
+no-link
+shouldfail

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/final_assignment_check.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/final_assignment_check.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/final_assignment_check.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/final_assignment_check.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,12 @@
+class f {
+    final static char c = 3;
+    final static byte b = 0.1;
+    final static short s = 3.5f;
+    final static int i = 4L;
+    final static long x = 2.5;
+    final static float y = 2.6;
+    final static String S = new Object (); 
+    void foo () {
+      final int i = 2.1;
+    }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/final_assignment_check.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/final_assignment_check.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/final_assignment_check.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/final_assignment_check.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+shouldfail

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/final_initialization_in_ctor.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/final_initialization_in_ctor.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/final_initialization_in_ctor.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/final_initialization_in_ctor.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,21 @@
+// This test case was insipred by
+// http://gcc.gnu.org/ml/java/2001-09/msg00181.html
+
+class M {
+    int size () { return 3; }
+}
+
+class final_initialization_in_ctor {
+
+ final float loadFactor;
+
+  public final_initialization_in_ctor(M m)
+  {
+      this(Math.max(m.size() * 2, 30), (float)40.0);
+  }
+
+  public final_initialization_in_ctor(int initialCapacity, float loadFactor)
+  {
+      this.loadFactor = loadFactor;
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/final_local_switch.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/final_local_switch.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/final_local_switch.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/final_local_switch.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,16 @@
+// This bug was discovered while working on java/1413 (compiling freetds.)
+// http://gcc.gnu.org/ml/java-prs/2000-q4/msg00156.html
+// The following code should build.
+
+class final_local_switch {
+    void foo (int type) {
+	final byte CHARSET_CHANGE = (byte)3;
+	final byte CHARSET_CHANGES = (byte)4;
+	switch (type) {
+	case CHARSET_CHANGE:
+	    break;
+	case CHARSET_CHANGES:
+	    break;
+	}
+    }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/iface.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/iface.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/iface.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/iface.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,24 @@
+// Test for searching through interface extension.
+
+interface basei
+{
+  public int method ();
+}
+
+interface basei2
+{
+  public int confuse ();
+}
+
+interface derivedi extends basei, basei2
+{
+  public void nothing ();
+}
+
+public class iface
+{
+  public int try_it (derivedi x)
+  {
+    return x.method ();
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/inner_1.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/inner_1.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/inner_1.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/inner_1.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,36 @@
+// inner class regression test.
+
+package bar.foo;
+
+class other {
+  class foo {}
+}
+
+class inner_1 {
+    static void bar () {
+        inner_1 xxxx;			// Refers to inner_1
+	bar.foo.another xyz;		// Refers to non inner another 
+	bar.foo.other.foo X;		// OK to declare, inner class foo
+	bar.foo.inner_1.t bar;		// Inner class t
+	inner_1.t foo;			// Inner class t
+	t foobar;			// Inner class t
+	other.foo zag;			// Valid for declaration.
+	t.ungah x;
+    }
+    void foo () {
+	// z.t.u foo;
+	t t1 = new t();
+        t1.print (); 
+	new t().print();
+    }
+
+    class t {
+	void print () {
+	    System.out.println ("This is `inner_1.t'");
+	}
+	class ungah {}
+    }
+}
+
+class another {
+} 

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/inner_1.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/inner_1.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/inner_1.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/inner_1.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+xfail-gcj

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/inner_data.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/inner_data.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/inner_data.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/inner_data.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,18 @@
+// Test referencing protected data from parent of inner class.
+
+import java.util.Random;
+
+public class inner_data
+{
+    private class Randomer extends Super {
+	public long xxx ()
+	{
+	    return seed;
+	}
+    }
+}
+
+class Super
+{
+  protected long seed;
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/inner_inherit.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/inner_inherit.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/inner_inherit.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/inner_inherit.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,14 @@
+// Test to insure that we can refer to methods inherited through an
+// inner class.
+
+public class inner_inherit
+{
+    private class Agent extends Thread {
+    }
+
+    public void f ()
+    {
+	Agent a = new Agent();
+	a.setDaemon(true);
+    }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/inner_priv.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/inner_priv.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/inner_priv.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/inner_priv.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,11 @@
+// Test to ensure that private inner classes are ok.
+
+public class inner_priv
+{
+  private class K
+  {
+    int z;
+  }
+
+  K foo;
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/inner_pub.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/inner_pub.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/inner_pub.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/inner_pub.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,11 @@
+// Test to ensure that public inner classes work.
+
+public class inner_pub
+{
+  public class really_inner
+  {
+    int z;
+  }
+
+  really_inner foo;
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/invokeinterface/A.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/invokeinterface/A.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/invokeinterface/A.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/invokeinterface/A.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,4 @@
+public interface A
+{
+  public void a();
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/invokeinterface/B.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/invokeinterface/B.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/invokeinterface/B.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/invokeinterface/B.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,4 @@
+public interface B extends A
+{
+  public void b();
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/invokeinterface/Test.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/invokeinterface/Test.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/invokeinterface/Test.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/invokeinterface/Test.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,19 @@
+public class Test implements B
+{
+  public static void main(String args[])
+  {
+    Test t = new Test();
+    B a = (B) t;
+    a.a();
+  }
+
+  public void a()
+  {
+    System.out.println("A");
+  }
+
+  public void b()
+  {
+    System.out.println("B");
+  }  
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/narrow_case.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/narrow_case.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/narrow_case.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/narrow_case.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,11 @@
+public class narrow_case
+{
+  private int test(byte b)
+  {
+    switch (b)
+      {
+      case '0' :return 0;
+      }
+    return 99;
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/not_a_redef.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/not_a_redef.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/not_a_redef.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/not_a_redef.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,6 @@
+package bar.foo;
+// This is not a redef.
+
+class not_a_redef {
+ class baz { class bar { class foo {}} class foo {}}	
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/not_a_redef.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/not_a_redef.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/not_a_redef.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/not_a_redef.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+no-link

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/perc.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/perc.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/perc.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/perc.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,9 @@
+// This generates code that `gcj -C' doesn't like.
+
+public class perc
+{
+  public static void main (String[] args)
+    {
+      System.out.println (27.0 % 10.0);
+    }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/plusplus.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/plusplus.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/plusplus.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/plusplus.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,10 @@
+// Test from MoT <Sebastien.Villemot at ens.fr>.
+
+class plusplus {
+        public static void main(String[] args)
+        {
+                int n = 5;
+                int[] gnu = new int[10];
+                gnu[n]++;
+        }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr10459.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr10459.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr10459.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr10459.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,15 @@
+public class pr10459
+{
+  pr10459 x;
+
+  public void aMethod() throws Throwable
+  {
+    for (; ;x.foo().foo())
+      ;
+  }
+  
+  pr10459 foo() 
+  {
+    return null;
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr13788.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr13788.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr13788.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr13788.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,8 @@
+class pr13788 {
+  private static final int  DUMMY1 = 1 >>> 1;
+
+  public static void main(String [] args) {
+    System.out.println(DUMMY1);
+  }
+}
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr15656.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr15656.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr15656.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr15656.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,8 @@
+// This used to cause a gcj crash in error_if_numeric_overflow.
+
+public class pr15656 {
+        public static void defineClass ()
+        {
+                Object ctor = new Object;
+        }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr15656.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr15656.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr15656.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr15656.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+shouldfail

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr172.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr172.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr172.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr172.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,9 @@
+// jc1 (2.96 20000313) says "`A_Inner' not found"
+
+public class pr172
+{
+  class A_Inner
+  {
+    A_Inner (A_Inner i) {}
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr17329.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr17329.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr17329.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr17329.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,14 @@
+// gcj had a problem with "SomeClass.field++" when gimplifying.
+
+class helper
+{
+  static int value;
+}
+
+public class pr17329
+{
+  static void doit ()
+  {
+    helper.value += 2;
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr174.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr174.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr174.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr174.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,15 @@
+class A
+{
+}
+
+public class pr174
+{
+  public pr174()
+  {
+    A a = new A();
+  }
+
+  class A
+  {
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr17500.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr17500.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr17500.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr17500.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,28 @@
+// gcj had a problem compiling code where two anonymous classes had
+// captured constructor arguments of the same type but with different
+// names.
+
+public class pr17500
+{
+  public Object m1 (final Object one)
+  {
+    return new Comparable()
+      {
+	public int compareTo(Object other)
+	{
+	  return one == other ? 0 : 1;
+	}
+      };
+  }
+
+  public Object m2 (final Object two)
+  {
+    return new Comparable()
+      {
+	public int compareTo(Object other)
+	{
+	  return two == other ? 0 : 1;
+	}
+      };
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr176.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr176.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr176.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr176.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,15 @@
+// gcj (20000313) reports "Type `x' not found in the declaration of the
+// return type of method `getX'."
+
+public class pr176
+{
+  class A
+  {
+    x getX()
+    {
+      return new x();
+    }
+
+    class x {}
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr21519.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr21519.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr21519.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr21519.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,8 @@
+public class pr21519 {
+  char[] source;
+  public int compute(int pos) {
+    for (int i = 0; i < pos; ++i)
+      if (!(source[i] == ' ' || source[i] == '\t')) return -1;
+    return pos;
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr21519.no-link
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr21519.no-link?rev=43913&view=auto

==============================================================================
    (empty)

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr21540.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr21540.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr21540.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr21540.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,15 @@
+public class pr21540
+{
+    public static final long xxx = 555;
+    
+    public boolean fn (int v)
+    {
+	switch (v)
+	    {
+	    case ((int) xxx >>> 32):
+		return true;
+	    default:
+		return false;
+	    }
+    }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr25429.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr25429.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr25429.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr25429.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,13 @@
+public class pr25429
+{
+  private static final int CONST  = 0;
+  class I {
+    public void f () {
+      switch(0) {
+      case CONST:
+      }
+    }
+  }
+
+  public static void main(String[] args) { }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr26042.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr26042.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr26042.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr26042.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,12 @@
+class One
+{
+    long l;    // no ICE if this is int, not long
+    int b;     // no ICE if this line is gone; type doesn't matter
+}
+
+public class pr26042
+{
+    class Three extends One { }
+    Three three () { return new Three (); }
+}
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr7912.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr7912.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr7912.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr7912.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,8 @@
+public class pr7912
+{
+  static Cloneable c;
+  public static void main(String[] args)
+  {
+    c = new int[1];
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr8712.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr8712.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr8712.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr8712.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,7 @@
+public class pr8712
+{
+  boolean x(pr8712 a)
+  {
+    return (!(a instanceof pr8712));
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr8955.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr8955.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr8955.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/pr8955.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,13 @@
+public class pr8955
+{
+  static final int val = Integer.MIN_VALUE;
+  void foo()
+  {
+    switch(1) {
+    case val:
+      break;
+    case 1:
+      break;
+    }
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/redef1.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/redef1.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/redef1.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/redef1.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,6 @@
+package bar.foo;
+// A case of innerclass redefinition
+
+class redef1 {
+    class redef1 {}
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/redef1.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/redef1.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/redef1.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/redef1.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+shouldfail

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/redef2.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/redef2.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/redef2.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/redef2.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,6 @@
+package bar.foo;
+// A case of innerclass redefinition
+
+class redef2 {
+    class foo {class redef2{}}
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/redef2.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/redef2.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/redef2.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/redef2.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+shouldfail

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/redef3.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/redef3.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/redef3.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/redef3.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,6 @@
+package bar.foo;
+// A case of innerclass redefinition
+
+class redef3 {
+  class foo { class bar {} class bar {}}
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/redef3.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/redef3.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/redef3.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/redef3.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+shouldfail

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/redef4.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/redef4.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/redef4.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/redef4.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,6 @@
+package bar.foo;
+// A case of innerclass redefinition
+
+class redef4 {
+  class foo { class bar { class foo {}}}
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/redef4.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/redef4.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/redef4.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/redef4.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+shouldfail

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/redef5.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/redef5.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/redef5.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/redef5.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,6 @@
+package bar.foo;
+// Redefining and stuffing the redefined class with something
+
+class redef5 {
+  class redef5 {void foobar() {}}
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/redef5.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/redef5.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/redef5.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/redef5.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+shouldfail

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/redef6.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/redef6.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/redef6.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/redef6.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,6 @@
+package bar.foo;
+// Redefining and stuffing the redefined class with something
+
+class redef6 {
+  class redef6 {int foo;}
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/redef6.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/redef6.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/redef6.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/redef6.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+shouldfail

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/rh174912.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/rh174912.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/rh174912.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/rh174912.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,17 @@
+// Derived from Red Hat bugzilla 174912
+// https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=174912
+// The bug is that the anonymous class constructor here will end up
+// with a bogus '[3C' in its signature.
+
+public class rh174912 {
+  public rh174912(char[][] args) { }
+
+  public Object m() {
+    return new rh174912(new char[][] { "hi".toCharArray(),
+				       "bob".toCharArray(),
+				       "and joe".toCharArray() }) {
+      };
+  }
+
+  public static void main(String[] args) { }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/rh175833.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/rh175833.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/rh175833.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/rh175833.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,13 @@
+// Follow-on to PR 25429
+public class rh175833
+{
+  private static final Object CONST  = new Object();
+    class I {
+        public Object f () {
+	  // We need an accessor here.
+	  return CONST;
+        }
+    }
+
+  public static void main(String[] args) { }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/static_1.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/static_1.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/static_1.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/static_1.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,12 @@
+package bar.foo;
+
+class static_1 {
+    class bar {
+	// No Static members: methods, fields, inner classes.
+	static int foo;			
+	static int xyzzy (){return 0;}
+	static {}		
+	static class foo {}
+	// No Member interface FIXME
+        }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/static_1.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/static_1.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/static_1.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/static_1.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+shouldfail

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/static_2.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/static_2.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/static_2.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/static_2.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,10 @@
+package bar.foo;
+
+class static_2 {
+	static class koink {
+	 	static int i;					
+		static void foo (){}				
+		static {}					
+		static class foo {}				
+	}
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/static_2.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/static_2.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/static_2.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/static_2.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+no-link

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/static_3.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/static_3.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/static_3.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/static_3.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,5 @@
+package bar.foo;
+
+class static_3 {
+    static class zoink { static class zork {}}
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/static_3.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/static_3.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/static_3.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/static_3.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+no-link

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/static_init.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/static_init.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/static_init.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/static_init.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,4 @@
+class static_init
+{
+  native { }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/static_init.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/static_init.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/static_init.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/static_init.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+shouldfail

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/static_init2.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/static_init2.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/static_init2.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/static_init2.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,9 @@
+class static_init2 {
+  static final float two_to_the_30 = 
+    (float) (1L << 30);
+
+  static float[] floatValues = {
+    (float)1.0,
+    (float)two_to_the_30,
+  };
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/static_inner.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/static_inner.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/static_inner.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/static_inner.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,19 @@
+// File Parent.java
+class Parent {
+  public static class Kid {
+    public Kid(int age) {
+      this.age = age;
+    }
+
+    int age;
+  }
+}
+
+// File NewParent.java
+public class static_inner extends Parent {
+
+  public static void main(String[] argv) {
+    Kid kid = new Kid(2);
+  }
+
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/support/Case.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/support/Case.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/support/Case.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/support/Case.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,6 @@
+package support;
+
+public class Case
+{
+  public static final int A = 9;
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/support/PR129_A.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/support/PR129_A.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/support/PR129_A.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/support/PR129_A.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,6 @@
+package support;
+
+public class PR129_A { 
+  public static String[] strArr = { "A", "B", "C" }; 
+} 
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/support/PR206_A.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/support/PR206_A.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/support/PR206_A.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/support/PR206_A.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,8 @@
+package support;
+
+public final class PR206_A {
+  static 
+  {
+    String s = System.getProperty ("soylent");
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/support/PR207_A.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/support/PR207_A.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/support/PR207_A.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/support/PR207_A.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,13 @@
+package support;
+
+public final class PR207_A {
+  static 
+  {
+    String s = System.getProperty ("soylent");
+  }
+
+  public static String hello ()
+  {
+    return "green";
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/support/Waldo.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/support/Waldo.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/support/Waldo.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/support/Waldo.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,7 @@
+package support;
+
+public interface Waldo {
+
+  public static final int here = 9;
+
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/uesc.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/uesc.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/uesc.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/uesc.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,9 @@
+public class uesc
+{
+  public foo (Object[] v[])
+  {
+    char z = '\uuu00a0';
+    char y = '\u00au0';		// At one point we erroneously
+				// accepted this.
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/uesc.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/uesc.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/uesc.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/uesc.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+shouldfail

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/weirddecl.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/weirddecl.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/weirddecl.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/weirddecl.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,8 @@
+public class weirddecl
+{
+  // Weird but legal decl.
+  public String foo (String[] dumb[])
+  {
+    return dumb[0][0];
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/weirddecl.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/weirddecl.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/weirddecl.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/weirddecl.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+no-link

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/zeroexp.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/zeroexp.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/zeroexp.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.compile/zeroexp.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,10 @@
+public class zeroexp
+{
+  public static void main (String[] argv)
+  {
+    // gcj used to give an error about this literal.
+    float f = 0E-6F;
+    double d = 0E-9;
+    System.out.println ("" + f + " " + d);
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jacks/jacks.exp
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jacks/jacks.exp?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jacks/jacks.exp (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jacks/jacks.exp Thu Nov  8 16:56:19 2007
@@ -0,0 +1,122 @@
+# Run the Jacks test suite.
+# See http://www-124.ibm.com/developerworks/oss/cvs/jikes/~checkout~/jacks/jacks.html
+
+load_gcc_lib target-libpath.exp
+
+proc gcj_jacks_setup_xfail {ary} {
+  upvar $ary array
+  global srcdir
+
+  set fd [open $srcdir/libjava.jacks/jacks.xfail]
+  while {! [eof $fd]} {
+    set array([gets $fd]) {}
+  }
+  close $fd
+}
+
+proc gcj_jacks_write {filename} {
+  global GCJ_UNDER_TEST
+  global libgcj_jar
+  global libjava_libgcc_s_path
+  global ld_library_path
+
+  set gcjl [split $GCJ_UNDER_TEST]
+  set gcj_cmd [lindex $gcjl 0]
+  set rest [join [lreplace $gcjl 0 0]]
+  append rest " -C"
+
+  set fd [open $filename w]
+  puts $fd "set JAVAC $gcj_cmd"
+  puts $fd "set JAVA_CLASSPATH \"$libgcj_jar\""
+  puts $fd "set JAVAC_FLAGS [list $rest]"
+  puts $fd "set JAVA [list [libjava_find_gij]]"
+
+  # Without an explicit limit on the heap size, tests depending on
+  # an OutOfMemoryError (e.g. "15.9.4-runtime-creation-2") can result
+  # in a lot of unnecessary thrashing.
+  puts $fd "set JAVA_FLAGS \"-mx=64m\""
+
+  puts $fd "set JAVAC_ENCODING_FLAG --encoding="
+  puts $fd "set JAVAC_DEPRECATION_FLAG -Wdeprecated"
+  puts $fd "set tcltest::testConstraints(encoding) 1"
+  puts $fd "set tcltest::testConstraints(gcj) 1"
+  puts $fd "set tcltest::testConstraints(assert) 1"
+  # "Time-consuming JVM limitation tests".
+  # puts $fd "set tcltest::testConstraints(jvm) 1"
+  close $fd
+
+  set ld_library_path $libjava_libgcc_s_path
+  set_ld_library_path_env_vars
+}
+
+proc gcj_jacks_parse {file} {
+  if {[catch {open $file} fd]} {
+    verbose "couldn't parse Jacks output: $fd"
+    return
+  }
+
+  verbose "Reading jacks.xfail"
+  gcj_jacks_setup_xfail xfails
+
+  while {! [eof $fd]} {
+    set line [gets $fd]
+    if {[string match RESULT* $line]} {
+      set linelist [split $line]
+      set test [lindex $linelist 1]
+      if {[info exists xfails($test)]} {
+	setup_xfail "*-*-*"
+      }
+      if {[lindex $linelist 2] == "PASSED"} {
+	pass $test
+      } else {
+	fail $test
+      }
+    }
+  }
+
+  close $fd
+}
+
+proc gcj_jacks_run {} {
+  global srcdir
+
+  if {! [file isdirectory $srcdir/libjava.jacks/jacks]} {
+    # No tests.
+    verbose "Jacks tests not found"
+    return
+  }
+
+  # Jacks forces us to do this.  You can't run it from a separate
+  # tree.
+  verbose "Copying Jacks..."
+  catch {system "rm -rf jacks"}
+  catch {system "cp -r $srcdir/libjava.jacks/jacks jacks"}
+
+  set here [pwd]
+  cd jacks
+
+  verbose "Writing Jacks setup file"
+  gcj_jacks_write gcj_setup
+
+  verbose "Running Jacks..."
+  # Just ignore error exits from the jacks program.
+  # It will always error exit for us, since don't completely pass.
+  # At the moment jacks has a hardcoded call to tclsh8.3. To override this,
+  # we check here on the version and launch the script directly with the
+  # tclsh$tcl_ver.
+  set tcl_ver [info tclversion]
+  if {[package vcompare  $tcl_ver 8.3] >= 0 } {
+    if {[catch {exec tclsh$tcl_ver jacks gcj} msg]} {
+	send_log "Couldn't run jacks: $msg\n"
+	return
+    }
+    gcj_jacks_parse logging/gcj.log
+  } else {
+      send_log "No suitable tclsh found, you need at least version 8.3 or up.\n"
+      return
+  }
+
+  cd $here
+}
+
+gcj_jacks_run

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jacks/jacks.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jacks/jacks.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jacks/jacks.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jacks/jacks.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1,686 @@
+12.4.1-runtime-1
+12.4.1-runtime-2
+12.4.1-runtime-3
+12.4.1-runtime-4
+13.1-runtime-constant-1
+13.1-runtime-constant-3
+13.1-runtime-field-1
+13.1-runtime-method-6
+13.4.8-constant-runtime-1
+13.4.8-constant-runtime-2
+14-runtime-jump-1
+14-runtime-jump-2
+14.14-label-1
+14.14-label-2
+14.14-label-5
+14.14-label-8
+14.14-plain-2
+14.14-plain-5
+14.17-null-1
+14.17-null-3
+14.17-null-4
+14.17-null-5
+14.19-shadow-12
+14.19-shadow-13
+14.19-shadow-14
+14.19-shadow-15
+14.19-shadow-4
+14.19-shadow-5
+14.19-shadow-6
+14.19-shadow-7
+14.19.exception-13
+14.19.exception-14
+14.19.exception-15
+14.19.exception-16
+14.19.exception-21
+14.19.exception-22
+14.19.exception-23
+14.19.exception-24
+14.20-abrupt-10
+14.20-abrupt-14
+14.20-abrupt-2
+14.20-abrupt-6
+14.20-block-4
+14.20-block-9
+14.20-catch-15
+14.20-catch-17
+14.20-do-10
+14.20-do-11
+14.20-do-12
+14.20-do-13
+14.20-do-14
+14.20-do-15
+14.20-do-16
+14.20-do-17
+14.20-do-18
+14.20-do-19
+14.20-do-20
+14.20-do-21
+14.20-do-22
+14.20-do-23
+14.20-do-24
+14.20-do-25
+14.20-do-26
+14.20-do-27
+14.20-do-28
+14.20-do-29
+14.20-do-30
+14.20-do-31
+14.20-do-32
+14.20-do-33
+14.20-do-6
+14.20-do-9
+14.20-for-15
+14.20-for-16
+14.20-for-17
+14.20-for-18
+14.20-for-19
+14.20-for-20
+14.20-for-21
+14.20-for-22
+14.20-for-4
+14.20-for-8
+14.20-for-update-1
+14.20-if-6
+14.20-label-10
+14.20-label-11
+14.20-label-12
+14.20-label-13
+14.20-label-14
+14.20-label-15
+14.20-label-5
+14.20-label-8
+14.20-label-9
+14.20-local-2
+14.20-switch-14
+14.20-switch-17
+14.20-switch-18
+14.20-switch-19
+14.20-switch-20
+14.20-switch-21
+14.20-switch-22
+14.20-switch-23
+14.20-switch-24
+14.20-switch-8
+14.20-synchronized-3
+14.20-try-14
+14.20-try-18
+14.20-try-22
+14.20-try-27
+14.20-try-3
+14.20-try-31
+14.20-try-9
+14.20-while-12
+14.20-while-13
+14.20-while-14
+14.20-while-15
+14.20-while-16
+14.20-while-17
+14.20-while-18
+14.20-while-19
+14.20-while-4
+14.3-1
+14.3-scope-10
+14.3-scope-2
+14.3-scope-4
+14.3-scope-5
+14.3-scope-9
+14.3.1-runtime-3
+14.4.2-shadow-5
+14.4.2-shadow-6
+14.4.2-shadow-7
+14.4.2-shadow-9
+14.7-shadow-3
+15.11.1-ambiguous-2
+15.11.1-ambiguous-3
+15.11.1-explicit-constructor-3
+15.11.1-runtime-static-1
+15.11.1-runtime-static-2
+15.11.1-runtime-static-3
+15.11.1-runtime-static-4
+15.11.2-explicit-constructor-2
+15.11.2-meaning-11
+15.11.2-meaning-13
+15.11.2-meaning-14
+15.11.2-meaning-17
+15.11.2-meaning-6
+15.11.2-meaning-8
+15.11.2-meaning-9
+15.11.2-runtime-1
+15.11.2-runtime-2
+15.11.2-syntax-1
+15.12.1-syntax-1
+15.12.1-type-14
+15.12.2.1-accessibility-method-3
+15.12.2.1-accessibility-method-5
+15.12.2.1-accessibility-method-6
+15.12.2.2-ambiguous-10
+15.12.2.2-ambiguous-12
+15.12.2.2-ambiguous-14
+15.12.2.2-ambiguous-17
+15.12.2.2-ambiguous-18
+15.12.2.2-ambiguous-21
+15.12.2.2-ambiguous-25
+15.12.2.2-ambiguous-27
+15.12.2.2-ambiguous-3
+15.12.2.2-ambiguous-6
+15.12.2.2-ambiguous-9
+15.12.3-abstract-1
+15.12.3-abstract-2
+15.12.3-abstract-3
+15.12.3-explicit-constructor-10
+15.12.3-explicit-constructor-3
+15.12.3-explicit-constructor-4
+15.12.3-explicit-constructor-5
+15.12.3-explicit-constructor-7
+15.12.3-explicit-constructor-9
+15.12.3-runtime-mode-1
+15.12.3-runtime-mode-2
+15.12.3-runtime-mode-3
+15.12.3-runtime-mode-4
+15.12.3-runtime-mode-6
+15.12.4.1-runtime-static-1
+15.12.4.1-runtime-static-2
+15.12.4.1-runtime-super-1
+15.12.4.1-runtime-super-2
+15.14-runtime-3
+15.14-runtime-4
+15.15-runtime-3
+15.15-runtime-4
+15.16-semantic-5
+15.16-value-1
+15.16-value-2
+15.17-mod-3
+15.17-mod-4
+15.17.3-assoc-2
+15.17.3-double-1
+15.17.3-double-10
+15.17.3-double-11
+15.17.3-double-12
+15.17.3-double-13
+15.17.3-double-14
+15.17.3-double-2
+15.17.3-double-3
+15.17.3-double-4
+15.17.3-double-5
+15.17.3-double-6
+15.17.3-double-7
+15.17.3-double-8
+15.17.3-double-9
+15.17.3-float-1
+15.17.3-float-10
+15.17.3-float-11
+15.17.3-float-12
+15.17.3-float-13
+15.17.3-float-14
+15.17.3-float-2
+15.17.3-float-3
+15.17.3-float-4
+15.17.3-float-5
+15.17.3-float-6
+15.17.3-float-7
+15.17.3-float-8
+15.17.3-float-9
+15.18.1-double-1
+15.18.1-double-10
+15.18.1-double-11
+15.18.1-double-12
+15.18.1-double-13
+15.18.1-double-2
+15.18.1-double-3
+15.18.1-double-4
+15.18.1-double-5
+15.18.1-double-6
+15.18.1-double-7
+15.18.1-double-8
+15.18.1-double-9
+15.18.1-float-1
+15.18.1-float-10
+15.18.1-float-11
+15.18.1-float-12
+15.18.1-float-2
+15.18.1-float-3
+15.18.1-float-4
+15.18.1-float-5
+15.18.1-float-6
+15.18.1-float-7
+15.18.1-float-8
+15.18.1-float-9
+15.18.1-valid-1
+15.20-2-runtime-1
+15.25-runtime-1
+15.26.2-add-12
+15.26.2-and-10
+15.26.2-and-12
+15.26.2-div-12
+15.26.2-left-shift-12
+15.26.2-mod-12
+15.26.2-mult-12
+15.26.2-or-10
+15.26.2-or-12
+15.26.2-signed-right-shift-12
+15.26.2-sub-12
+15.26.2-unsigned-right-shift-12
+15.26.2-xor-10
+15.26.2-xor-12
+15.28-cast-simple-name-1
+15.28-cast-simple-name-2
+15.28-cast-simple-name-3
+15.28-instanceof-3
+15.28-notstring-1
+15.28-null-1
+15.28-null-3
+15.28-primitive-15
+15.28-primitive-17
+15.28-primitive-3
+15.28-qualified-name-10
+15.28-qualified-name-5
+15.28-qualified-name-6
+15.28-qualified-name-7
+15.28-qualified-name-8
+15.28-qualified-name-9
+15.28-qualified-namestr-7
+15.28-qualified-namestr-8
+15.28-qualified-namestr-9
+15.28-simple-name-6
+15.28-simple-name-8
+15.28-simple-namestr-1
+15.28-simple-namestr-2
+15.28-simple-namestr-3
+15.28-simple-namestr-4
+15.28-string-15
+15.28-string-17
+15.28-string-18
+15.28-string-2
+15.28-string-5
+15.28-string-9
+15.28-uninitialized-simple-name-3
+15.8.2-synthetic-1
+15.8.2-type-11
+15.8.2-type-12
+15.8.2-type-13
+15.8.2-type-14
+15.8.4-static-2
+15.8.5-field-expression-6
+15.8.5-method-expression-8
+15.8.5-variable-5
+15.8.5-variable-6
+15.8.5-variable-7
+15.8.5-variable-8
+15.9-runtime-numcalls-1
+15.9.1-qualified-anonymous-10
+15.9.1-qualified-anonymous-12
+15.9.1-qualified-anonymous-13
+15.9.1-qualified-anonymous-14
+15.9.1-qualified-anonymous-17
+15.9.1-qualified-anonymous-18
+15.9.1-qualified-anonymous-2
+15.9.1-qualified-anonymous-20
+15.9.1-qualified-anonymous-22
+15.9.1-qualified-anonymous-26
+15.9.1-qualified-anonymous-28
+15.9.1-qualified-anonymous-4
+15.9.1-qualified-anonymous-5
+15.9.1-qualified-concrete-12
+15.9.1-qualified-concrete-14
+15.9.1-qualified-concrete-16
+15.9.1-qualified-concrete-24
+15.9.1-qualified-concrete-4
+15.9.1-qualified-concrete-5
+15.9.1-unqualified-anonymous-12
+15.9.1-unqualified-anonymous-14
+15.9.1-unqualified-anonymous-15
+15.9.1-unqualified-anonymous-2
+15.9.1-unqualified-anonymous-23
+15.9.1-unqualified-anonymous-24
+15.9.1-unqualified-anonymous-26
+15.9.1-unqualified-anonymous-27
+15.9.1-unqualified-anonymous-4
+15.9.1-unqualified-anonymous-5
+15.9.1-unqualified-concrete-14
+15.9.1-unqualified-concrete-15
+15.9.1-unqualified-concrete-2
+15.9.1-unqualified-concrete-4
+15.9.1-unqualified-concrete-5
+15.9.4-runtime-creation-1
+15.9.4-runtime-creation-2
+15.9.4-runtime-creation-5
+15.9.5.1-exception-4
+15.9.5.1-superconstructor-7
+15.9.5.1-superconstructor-8
+16-instance-5
+16-instance-6
+16-instance-7
+16-static-1
+16-static-2
+16.1.2-definite-unassignment-fail-6
+16.1.3-definite-unassignment-fail-6
+16.1.5-not-assignable-7
+16.1.5-not-assignable-8
+16.1.7-compound-definite-unassignment-fail-6
+16.1.7-compound-definite-unassignment-fail-7
+16.2.10-definite-assign-pass-2
+16.2.10-definite-unassign-pass-1
+16.2.10-definite-unassign-pass-2
+16.2.10-definite-unassign-pass-3
+16.2.10-definite-unassign-pass-4
+16.2.10-definite-unassign-pass-5
+16.2.10-definite-unassign-pass-6
+16.2.10-definite-unassign-pass-7
+16.2.10-definite-unassign-pass-8
+16.2.11-definite-assign-pass-2
+16.2.11-definite-unassign-pass-1
+16.2.11-definite-unassign-pass-2
+16.2.11-definite-unassign-pass-3
+16.2.11-definite-unassign-pass-4
+16.2.11-definite-unassign-pass-5
+16.2.11-definite-unassign-pass-6
+16.2.11-definite-unassign-pass-7
+16.2.11-definite-unassign-pass-8
+16.2.14-definite-unassign-fail-12
+16.2.14-definite-unassign-fail-13
+16.2.14-definite-unassign-fail-5
+16.2.14-definite-unassign-fail-6
+16.2.14-definite-unassign-fail-7
+16.2.14-definite-unassign-fail-8
+16.2.3-local-class-11
+16.2.3-local-class-4
+16.2.3-local-class-5
+16.2.5-definite-unassign-pass-1
+16.2.5-definite-unassign-pass-2
+16.2.5-definite-unassign-pass-3
+16.2.8-final-3
+16.2.8-final-4
+16.2.8-unassigned-1
+16.2.8-unassigned-20
+16.2.8-unassigned-21
+16.2.8-unassigned-22
+16.2.8-unassigned-23
+16.2.8-unassigned-6
+16.2.8-unassigned-8
+16.2.8-unassigned-9
+16.2.9-definite-assign-pass-2
+16.2.9-definite-unassign-pass-1
+16.2.9-definite-unassign-pass-2
+16.2.9-definite-unassign-pass-3
+16.2.9-definite-unassign-pass-4
+16.2.9-definite-unassign-pass-5
+16.2.9-definite-unassign-pass-6
+16.2.9-definite-unassign-pass-7
+16.5-anonymous-3
+16.5-runtime-1
+16.5-runtime-2
+16.5-runtime-3
+16.5-runtime-4
+16.5-runtime-5
+16.8-constructor-8
+201-enhanced-for-final
+201-enhanced-for-int-array
+201-enhanced-for-Iterable
+201-enhanced-for-object
+201-enhanced-for-with-generics
+3.10.1-invalid-3
+3.10.1-invalid-4
+3.10.2-double-13
+3.10.2-double-14
+3.10.2-round-10
+3.10.2-round-11
+3.10.2-round-12
+3.10.2-round-7
+3.10.2-round-9
+3.2-valid-1
+4.5.4-parameter-2
+4.5.4-parameter-3
+4.5.4-static-1
+4.5.4-static-5
+4.7.10-jvms-class-18
+4.7.10-jvms-class-6
+4.7.10-jvms-class-7
+4.7.10-jvms-class-8
+4.7.10-jvms-constructor-6
+4.7.10-jvms-constructor-8
+4.7.10-jvms-field-6
+4.7.10-jvms-field-8
+4.7.10-jvms-method-6
+4.7.10-jvms-method-8
+5.1.2-btd-1
+5.1.2-btd-3
+5.1.2-btd-5
+5.1.2-btf-1
+5.1.2-btf-3
+5.1.2-btf-5
+5.1.2-std-3
+5.1.2-std-5
+5.1.2-stf-1
+5.1.2-stf-3
+5.1.2-stf-5
+6.3-1
+6.5.1-type-15
+6.5.1-type-16
+6.5.1-typeorpackage-2
+6.5.4.1-simple-10
+6.5.4.1-simple-11
+6.5.4.1-simple-6
+6.5.5.1-import-2
+6.5.5.1-import-3
+6.5.5.1-nested-14
+6.5.5.1-nested-19
+6.5.5.1-nested-20
+6.5.5.1-nested-21
+6.5.5.1-nested-23
+6.5.5.1-nested-8
+6.5.5.1-nested-9
+6.5.5.2-type-4
+6.5.5.2-type-5
+6.5.5.2-type-6
+6.5.5.2-type-7
+6.5.5.2-type-8
+6.5.6.1-explicit-constructor-2
+6.5.6.1-field-6
+6.5.6.1-local-3
+6.5.6.1-local-4
+6.5.6.2-expression-6
+6.5.6.2-type-2
+6.5.6.2-type-6
+6.5.6.2-type-8
+6.5.6.2-type-9
+6.6.1-11
+6.6.1-8
+6.6.1-array-11
+6.6.1-array-13
+6.6.1-array-14
+6.6.1-array-17
+6.6.1-array-2
+6.6.1-array-20
+6.6.1-array-22
+6.6.1-array-23
+6.6.1-array-26
+6.6.1-array-29
+6.6.1-array-3
+6.6.1-array-31
+6.6.1-array-32
+6.6.1-array-35
+6.6.1-array-5
+6.6.1-array-8
+6.6.2.1-protected-type-2
+6.6.2.2-protected-creation-3
+7.1-named-5
+7.1-named-6
+7.1-named-7
+7.4.2-2
+7.5.1-accessible-4
+7.5.1-accessible-5
+7.5.1-canonical-3
+7.5.1-duplicate-4
+7.5.1-shadow-2
+7.5.2-accessible-1
+7.5.2-accessible-3
+7.5.2-accessible-4
+7.5.2-canonical-2
+7.5.2-canonical-3
+7.5.2-duplicate-1
+7.5.2-duplicate-2
+7.5.2-duplicate-3
+7.5.2-duplicate-4
+7.6-optional-restrictions-1
+7.6-unnamed-scope-1
+7.6-unnamed-scope-2
+8.1.1.1-default-abstract-11
+8.1.1.1-default-abstract-13
+8.1.1.1-default-abstract-15
+8.1.1.1-default-abstract-19
+8.1.1.1-default-abstract-21
+8.1.1.1-default-abstract-25
+8.1.2-enclosing-10
+8.1.2-enclosing-4
+8.1.2-enclosing-5
+8.1.2-enclosing-7
+8.1.2-runtime-1
+8.1.2-static-1
+8.1.2-static-11
+8.1.2-static-16
+8.1.3-object-3
+8.3-inheritance-1
+8.3-inheritance-2
+8.3-inheritance-3
+8.3-runtime-1
+8.3.1.2-final-17
+8.3.1.2-final-19
+8.3.1.2-final-2
+8.3.1.2-final-21
+8.3.1.2-final-24
+8.3.1.2-final-27
+8.3.1.2-final-28
+8.3.1.2-final-29
+8.3.2-abrupt-3
+8.3.2-abrupt-5
+8.3.2.2-super-2
+8.3.2.3-illegal-forward-instance-1
+8.3.2.3-illegal-forward-instance-2
+8.3.2.3-illegal-forward-instance-3
+8.3.2.3-illegal-forward-instance-4
+8.3.2.3-illegal-forward-instance-5
+8.3.2.3-illegal-forward-instance-6
+8.3.2.3-illegal-forward-instance-7
+8.3.2.3-illegal-forward-instance-8
+8.3.2.3-illegal-forward-instance-9
+8.3.2.3-illegal-forward-static-1
+8.3.2.3-illegal-forward-static-10
+8.3.2.3-illegal-forward-static-2
+8.3.2.3-illegal-forward-static-3
+8.3.2.3-illegal-forward-static-4
+8.3.2.3-illegal-forward-static-5
+8.3.2.3-illegal-forward-static-6
+8.3.2.3-illegal-forward-static-7
+8.3.2.3-illegal-forward-static-8
+8.3.2.3-illegal-forward-static-9
+8.3.2.3-legal-forward-instance-11
+8.4.6-inheritance-1
+8.4.6-inheritance-2
+8.4.6.1-override-3
+8.4.6.2-hiding-3
+8.4.6.3-default-10
+8.4.6.3-default-12
+8.4.6.3-default-14
+8.4.6.3-default-4
+8.4.6.3-default-6
+8.4.6.3-modifier-10
+8.4.6.3-modifier-11
+8.4.6.3-modifier-12
+8.4.6.3-modifier-13
+8.4.6.3-modifier-8
+8.4.6.3-modifier-9
+8.4.6.3-signature-4
+8.4.6.4-abstract-1
+8.4.6.4-abstract-10
+8.4.6.4-abstract-2
+8.4.6.4-abstract-9
+8.4.6.4-multiple-3
+8.4.6.4-multiple-4
+8.4.6.4-multiple-7
+8.4.6.4-multiple-8
+8.5-inheritance-1
+8.5-inheritance-2
+8.5-inheritance-3
+8.5-inheritance-6
+8.5.2-non-static-member-usage-4
+8.5.2-non-static-member-usage-5
+8.6-abrupt-1
+8.6-abrupt-4
+8.6-checked-exception-10
+8.6-checked-exception-11
+8.6-checked-exception-12
+8.6-checked-exception-2
+8.6-checked-exception-4
+8.6-checked-exception-5
+8.6-checked-exception-6
+8.6-checked-exception-8
+8.6-complete-1
+8.6-complete-4
+8.6-complete-5
+8.7-abrupt-1
+8.7-complete-1
+8.7-complete-3
+8.8.5.1-example-1
+8.8.5.1-example-3
+8.8.5.1-qualified-1
+8.8.5.1-qualified-10
+8.8.5.1-qualified-11
+8.8.5.1-qualified-12
+8.8.5.1-qualified-13
+8.8.5.1-qualified-15
+8.8.5.1-qualified-2
+8.8.5.1-qualified-3
+8.8.5.1-qualified-4
+8.8.5.1-runtime-super-1
+8.8.7-accessible-default-constructor-inner-18
+8.8.7-accessible-default-constructor-inner-26
+8.8.7-runtime-accessible-default-1
+9.1.1-in-class-17
+9.1.1-in-class-24
+9.1.1-in-interface-16
+9.1.1-in-interface-2
+9.1.1-in-interface-3
+9.1.1-in-interface-9
+9.1.2-supertype-1
+9.2-implicit-18
+9.2-implicit-19
+9.2-implicit-2
+9.2-implicit-3
+9.2-implicit-4
+9.2-implicit-6
+9.2-implicit-7
+9.3.1-illegal-forward-1
+9.3.1-illegal-forward-2
+9.3.1-init-1
+9.4.1-conflict-2
+non-jls-argument-expansion-11
+non-jls-argument-expansion-12
+non-jls-argument-expansion-error-1
+non-jls-argument-expansion-error-2
+non-jls-argument-expansion-tokens-1
+non-jls-jsr41.2-clash-1
+non-jls-jsr41.3-runtime-2
+non-jls-jsr41.4-definite-unassignment-fail-22
+non-jls-jsr41.4-definite-unassignment-pass-10
+non-jls-jsr41.4-definite-unassignment-pass-9
+non-jls-jsr41.4-definite-unassignment-try-1
+non-jls-jsr41.4-definite-unassignment-try-2
+non-jls-jsr41.4-definite-unassignment-try-3
+non-jls-jsr41.4-definite-unassignment-try-4
+non-jls-jsr41.4-definite-unassignment-try-5
+non-jls-jsr41.4-definite-unassignment-try-6
+non-jls-jsr41.4-definite-unassignment-try-7
+non-jls-jsr41.4-definite-unassignment-try-8
+non-jls-jsr41.4-loop-1
+non-jls-jsr41.4-loop-10
+non-jls-jsr41.4-loop-11
+non-jls-jsr41.4-loop-12
+non-jls-jsr41.4-loop-13
+non-jls-jsr41.4-loop-14
+non-jls-jsr41.4-loop-15
+non-jls-jsr41.4-loop-2
+non-jls-jsr41.4-loop-3
+non-jls-jsr41.4-loop-7
+non-jls-jsr41.4-loop-8
+non-jls-jsr41.4-loop-9

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jar/jar.exp
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jar/jar.exp?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jar/jar.exp (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jar/jar.exp Thu Nov  8 16:56:19 2007
@@ -0,0 +1,67 @@
+# Tests for .jar files.
+
+# Compile a single .jar file to an executable.
+# Returns 0 on failure.
+proc gcj_jar_link {jarfile mainclass} {
+}
+
+proc gcj_jar_compile_one {jarfile mainclass} {
+  set base [file rootname [file tail $jarfile]]
+  set out [file rootname $jarfile].out
+
+  if {! [gcj_link $base $mainclass [list $jarfile]]} {
+    return
+  }
+
+  gcj_invoke $base $out {}
+}
+
+proc gcj_jar_interpret {jarfile} {
+  global INTERPRETER srcdir
+
+  set gij [libjava_find_gij]
+  # libjava_find_gij will return "" if it couldn't find the
+  # program; in this case we want to skip the test.
+  if {$INTERPRETER != "yes" || $gij == ""} {
+    untested "$jarfile execution - gij test"
+    untested "$jarfile output - gij test"
+    return
+  }
+
+  set opts(_) {}
+  set out [file rootname $jarfile].out
+  libjava_invoke $jarfile "gij test" opts $gij {} $out \
+      "" -jar $jarfile
+}
+
+proc gcj_jar_run {} {
+  global srcdir subdir env
+  foreach jar [lsort [glob -nocomplain ${srcdir}/${subdir}/*.jar]] {
+    set xff [file rootname $jar].xfail
+    set main {}
+    set interp 1
+    foreach item [libjava_read_xfail $xff] {
+      if {[string match main=* $item]} {
+	set main [string range $item 5 end]
+	break
+      } elseif {$item == "no-interpret"} {
+	set interp 0
+      }
+    }
+
+    gcj_jar_compile_one $jar $main
+    if {$interp} {
+      gcj_jar_interpret $jar
+    }
+  }
+    # When we succeed we remove all our clutter.
+    eval gcj_cleanup [glob -nocomplain -- ${main}.*] [list $main ]
+
+    # Reset CLASSPATH that we do not look into testsuite/libjava.jar for *.jar
+    # files which do not belong to the libgcj itself.
+    set env(CLASSPATH) ""
+
+    return 1
+}
+
+gcj_jar_run

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jar/simple.jar
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jar/simple.jar?rev=43913&view=auto

==============================================================================
Binary file - no diff available.

Propchange: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jar/simple.jar

------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jar/simple.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jar/simple.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jar/simple.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jar/simple.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,7 @@
+public class simple
+{
+  public static void main(String[] args)
+  {
+    System.out.println("hi");
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jar/simple.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jar/simple.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jar/simple.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jar/simple.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+hi

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jar/simple.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jar/simple.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jar/simple.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jar/simple.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+main=simple

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/PR15133.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/PR15133.c?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/PR15133.c (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/PR15133.c Thu Nov  8 16:56:19 2007
@@ -0,0 +1,9 @@
+#include <stdio.h>
+#include <jni.h>
+#include "PR15133.h"
+
+JNIEXPORT void JNICALL
+Java_PR15133_printIt (JNIEnv *env, jobject x, jint y)
+{
+  printf ("%d\n", y);
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/PR15133.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/PR15133.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/PR15133.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/PR15133.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,14 @@
+/* Test case for PR java/15133 */
+public class PR15133
+{
+  public void printIt (String dummy) { }
+
+  public native void printIt (int num);
+
+  public static void main (String[] args)
+  {
+    System.loadLibrary ("PR15133");
+
+    new PR15133( ).printIt( 1729);
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/PR15133.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/PR15133.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/PR15133.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/PR15133.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+1729

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/PR18116.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/PR18116.c?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/PR18116.c (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/PR18116.c Thu Nov  8 16:56:19 2007
@@ -0,0 +1,35 @@
+#include <stdlib.h>
+#include <assert.h>
+#include <PR18116.h>
+
+// The purpose of this test is to ensure that signatures with non-top
+// level class arguments work.
+
+static jint
+some_random_name (JNIEnv *env, jclass k, jobject v)
+{
+  return 555;
+}
+
+JNIEXPORT jint JNICALL
+JNI_OnLoad (JavaVM *vm, void *nothing)
+{
+  JNIEnv *env;
+  JNINativeMethod meth;
+  jclass k;
+  jint r;
+
+  r = (*vm)->GetEnv (vm, (void **) &env, JNI_VERSION_1_2);
+  assert (r == JNI_OK);
+  k = (*env)->FindClass (env, "PR18116");
+  assert (k != NULL);
+
+  meth.name = "doit";
+  meth.signature = "(Ljava/lang/String;)I";
+  meth.fnPtr = some_random_name;
+
+  r = (*env)->RegisterNatives (env, k, &meth, 1);
+  assert (r == JNI_OK);
+
+  return JNI_VERSION_1_2;
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/PR18116.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/PR18116.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/PR18116.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/PR18116.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,16 @@
+// PR18116.java - Test RegisterNatives with more complex signatures.
+
+public class PR18116
+{
+  static
+  {
+    System.loadLibrary ("PR18116");
+  }
+
+  public static native int doit (java.lang.String s);
+
+  public static void main (String[] args)
+  {
+    System.out.println (doit ("Hello World!"));
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/PR18116.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/PR18116.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/PR18116.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/PR18116.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+555

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/PR28178.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/PR28178.c?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/PR28178.c (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/PR28178.c Thu Nov  8 16:56:19 2007
@@ -0,0 +1,10 @@
+#include <PR28178.h>
+
+void
+Java_PR28178_m (JNIEnv *env, jclass ignore)
+{
+  (*env)->DeleteLocalRef(env, NULL);
+  (*env)->DeleteGlobalRef(env, NULL);
+}
+
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/PR28178.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/PR28178.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/PR28178.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/PR28178.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,15 @@
+// Regression test for PR 28178.
+
+public class PR28178
+{
+  static {
+    System.loadLibrary("PR28178");
+  }
+
+  public static native void m();
+
+  public static void main(String[] args)
+  {
+    m();
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/PR28178.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/PR28178.out?rev=43913&view=auto

==============================================================================
    (empty)

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/bytebuffer.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/bytebuffer.c?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/bytebuffer.c (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/bytebuffer.c Thu Nov  8 16:56:19 2007
@@ -0,0 +1,62 @@
+#include "bytebuffer.h"
+
+static void
+test_buffer (JNIEnv *env, jobject buffer, const char *name)
+{
+  void *tmp = (*env)->GetDirectBufferAddress (env, buffer);
+
+  if (tmp == NULL)
+    printf ("PASS: address of %s\n", name);
+  else
+    printf ("FAIL: address of %s\n", name);
+
+  int tmplen = (*env)->GetDirectBufferCapacity (env, buffer);
+
+  if (tmplen == -1)
+    printf ("PASS: length of %s\n", name);
+  else
+    printf ("FAIL: length of %s\n", name);
+}
+
+JNIEXPORT void JNICALL
+Java_bytebuffer_testByteBuffer (JNIEnv *env, jclass k, jobject buffer)
+{
+  test_buffer (env, buffer, "java.nio.ByteBuffer");
+}
+
+JNIEXPORT void JNICALL
+Java_bytebuffer_testCharBuffer (JNIEnv *env, jclass k, jobject buffer)
+{
+  test_buffer (env, buffer, "java.nio.CharBuffer");
+}
+
+JNIEXPORT void JNICALL
+Java_bytebuffer_testDoubleBuffer (JNIEnv *env, jclass k, jobject buffer)
+{
+  test_buffer (env, buffer, "java.nio.DoubleBuffer");
+}
+
+JNIEXPORT void JNICALL
+Java_bytebuffer_testFloatBuffer (JNIEnv *env, jclass k, jobject buffer)
+{
+  test_buffer (env, buffer, "java.nio.FloatBuffer");
+}
+
+JNIEXPORT void JNICALL
+Java_bytebuffer_testIntBuffer (JNIEnv *env, jclass k, jobject buffer)
+{
+  test_buffer (env, buffer, "java.nio.IntBuffer");
+}
+
+JNIEXPORT void JNICALL
+Java_bytebuffer_testLongBuffer (JNIEnv *env, jclass k, jobject buffer)
+{
+  test_buffer (env, buffer, "java.nio.LongBuffer");
+}
+
+JNIEXPORT void JNICALL
+Java_bytebuffer_testShortBuffer (JNIEnv *env, jclass k, jobject buffer)
+{
+  test_buffer (env, buffer, "java.nio.ShortBuffer");
+}
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/bytebuffer.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/bytebuffer.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/bytebuffer.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/bytebuffer.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,38 @@
+// Test to make sure JNI implementation catches exceptions.
+
+import java.nio.*;
+
+public class bytebuffer
+{
+  static
+  {
+    System.loadLibrary("bytebuffer");
+  }
+
+  public static native void testByteBuffer(ByteBuffer bb);
+  public static native void testCharBuffer(CharBuffer b);
+  public static native void testDoubleBuffer(DoubleBuffer b);
+  public static native void testFloatBuffer(FloatBuffer b);
+  public static native void testIntBuffer(IntBuffer b);
+  public static native void testLongBuffer(LongBuffer b);
+  public static native void testShortBuffer(ShortBuffer b);
+
+  public static void main(String[] args)
+  {
+    ByteBuffer bb = ByteBuffer.allocate(1024);
+    testByteBuffer(bb);
+    testCharBuffer(bb.asCharBuffer());
+    testDoubleBuffer(bb.asDoubleBuffer());
+    testFloatBuffer(bb.asFloatBuffer());
+    testIntBuffer(bb.asIntBuffer());
+    testLongBuffer(bb.asLongBuffer());
+    testShortBuffer(bb.asShortBuffer());
+
+    testCharBuffer(CharBuffer.allocate(1024));
+    testDoubleBuffer(DoubleBuffer.allocate(1024));
+    testFloatBuffer(FloatBuffer.allocate(1024));
+    testIntBuffer(IntBuffer.allocate(1024));
+    testLongBuffer(LongBuffer.allocate(1024));
+    testShortBuffer(ShortBuffer.allocate(1024));
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/bytebuffer.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/bytebuffer.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/bytebuffer.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/bytebuffer.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,26 @@
+PASS: address of java.nio.ByteBuffer
+PASS: length of java.nio.ByteBuffer
+PASS: address of java.nio.CharBuffer
+PASS: length of java.nio.CharBuffer
+PASS: address of java.nio.DoubleBuffer
+PASS: length of java.nio.DoubleBuffer
+PASS: address of java.nio.FloatBuffer
+PASS: length of java.nio.FloatBuffer
+PASS: address of java.nio.IntBuffer
+PASS: length of java.nio.IntBuffer
+PASS: address of java.nio.LongBuffer
+PASS: length of java.nio.LongBuffer
+PASS: address of java.nio.ShortBuffer
+PASS: length of java.nio.ShortBuffer
+PASS: address of java.nio.CharBuffer
+PASS: length of java.nio.CharBuffer
+PASS: address of java.nio.DoubleBuffer
+PASS: length of java.nio.DoubleBuffer
+PASS: address of java.nio.FloatBuffer
+PASS: length of java.nio.FloatBuffer
+PASS: address of java.nio.IntBuffer
+PASS: length of java.nio.IntBuffer
+PASS: address of java.nio.LongBuffer
+PASS: length of java.nio.LongBuffer
+PASS: address of java.nio.ShortBuffer
+PASS: length of java.nio.ShortBuffer

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/calls.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/calls.c?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/calls.c (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/calls.c Thu Nov  8 16:56:19 2007
@@ -0,0 +1,75 @@
+#include <stdio.h>
+#include <calls.h>
+
+JNIEXPORT jint JNICALL
+Java_calls_docall (JNIEnv *env, jobject _this)
+{
+  jmethodID method;
+  jclass klass, super;
+
+  jbyte b;
+  jshort s;
+  jchar c;
+  jint i;
+  jlong l;
+  jfloat f;
+  jdouble d;
+
+  jvalue val;
+
+  jint fails = 0;
+
+  klass = (*env)->GetObjectClass (env, _this);
+  super = (*env)->GetSuperclass (env, klass);
+
+  method = (*env)->GetMethodID (env, klass, "byte_f", "()B");
+  b = (*env)->CallByteMethod (env, _this, method);
+  if (b != 23)
+    ++fails;
+
+  method = (*env)->GetMethodID (env, klass, "char_f", "(I)C");
+  val.i = 10;
+  c = (*env)->CallCharMethodA (env, _this, method, &val);
+  if (c != ('a' + 10))
+    ++fails;
+
+  method = (*env)->GetMethodID (env, super, "int_f", "()I");
+  i = (*env)->CallNonvirtualIntMethod (env, _this, super, method);
+  if (i != 27)
+    ++fails;
+
+  i = (*env)->CallIntMethod (env, _this, method);
+  if (i != 1023)
+    ++fails;
+
+  method = (*env)->GetStaticMethodID (env, klass, "long_f", "(J)J");
+  l = (*env)->CallStaticLongMethod (env, klass, method, (jlong) 10);
+  if (l != 2033)
+    ++fails;
+
+  method = (*env)->GetStaticMethodID (env, klass, "longpb_f", "(BJBJBJ)J");
+  l = (*env)->CallStaticLongMethod (env, klass, method, (jbyte) 13, (jlong) 3,
+		  		   (jbyte) 13, (jlong) 3, (jbyte) 13, (jlong) 4);
+  if (l != 3033)
+    ++fails;
+
+  method = (*env)->GetMethodID (env, klass, "void_f", "()V");
+  (*env)->CallVoidMethod (env, _this, method);
+
+  method = (*env)->GetStaticMethodID (env, klass, "short_f", "()S");
+  s = (*env)->CallStaticShortMethod (env, klass, method);
+  if (s != 2)
+    ++fails;
+
+  method = (*env)->GetMethodID (env, klass, "double_f", "()D");
+  d = (*env)->CallDoubleMethod (env, _this, method);
+  if (d != -1.0)
+    ++fails;
+
+  method = (*env)->GetMethodID (env, klass, "float_f", "()F");
+  f = (*env)->CallFloatMethod (env, _this, method);
+  if (f != 1.0)
+    ++fails;
+
+  return fails;
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/calls.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/calls.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/calls.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/calls.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,72 @@
+// Test a bunch of different calls.
+
+class base
+{
+  public int int_f ()
+  {
+    return 27;
+  }
+}
+
+public class calls extends base
+{
+  static
+  {
+    System.loadLibrary ("calls");
+  }
+
+  public native int docall ();
+
+  public byte byte_f ()
+  {
+    return 23;
+  }
+
+  public char char_f (int z)
+  {
+    return (char) ('a' + z);
+  }
+
+  public int int_f ()
+  {
+    return 1023;
+  }
+
+  public static long long_f (long q)
+  {
+    return q + 2023;
+  }
+
+  public static long longpb_f (byte b1, long q1, byte b2, long q2,
+			       byte b3, long q3)
+  {
+    return q1 + q2 + q3 + 3023;
+  }
+
+  public void void_f ()
+  {
+    System.out.println ("void");
+  }
+
+  public static short short_f ()
+  {
+    return 2;
+  }
+
+  public double double_f ()
+  {
+    return -1.0;
+  }
+
+  public float float_f ()
+  {
+    return (float) 1.0;
+  }
+
+  public static void main (String[] args)
+  {
+    calls c = new calls ();
+    if (c.docall () != 0)
+      System.out.println ("fail");
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/calls.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/calls.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/calls.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/calls.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+void

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/cxxtest.cc
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/cxxtest.cc?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/cxxtest.cc (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/cxxtest.cc Thu Nov  8 16:56:19 2007
@@ -0,0 +1,24 @@
+#include <jni.h>
+#include <cxxtest.h>
+
+jobjectArray
+Java_cxxtest_fetch (JNIEnv *env, jobject _this)
+{
+  jclass cls;
+  jfieldID fid;
+  jobjectArray obj;
+
+  cls = env->GetObjectClass (_this);
+  if (! cls)
+    return 0;
+
+  fid = env->GetFieldID (cls, "F", "[Ljava/lang/Object;");
+  if (! fid)
+    return 0;
+
+  obj = reinterpret_cast<jobjectArray> (env->GetObjectField (_this, fid));
+
+  return obj;
+}
+
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/cxxtest.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/cxxtest.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/cxxtest.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/cxxtest.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,25 @@
+// Test for array field lookup.
+
+public class cxxtest
+{
+  // A field for us to look up.
+  public Object[] F = new Object[7];
+
+  public native Object[] fetch ();
+
+  public void doit ()
+  {
+    System.out.println (F == fetch ());
+  }
+
+  public static void main (String[] args)
+  {
+    cxxtest q = new cxxtest ();
+    q.doit ();
+  }
+
+  static
+  {
+    System.loadLibrary ("cxxtest");
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/cxxtest.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/cxxtest.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/cxxtest.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/cxxtest.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+true

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/directbuffer.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/directbuffer.c?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/directbuffer.c (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/directbuffer.c Thu Nov  8 16:56:19 2007
@@ -0,0 +1,75 @@
+#include <stdlib.h>
+
+#include "directbuffer.h"
+
+#define BUFFER_SIZE 1024
+
+static void *address;
+
+JNIEXPORT jobject JNICALL
+Java_directbuffer_createDirectByteBuffer (JNIEnv *env, jclass k)
+{
+  address = malloc (BUFFER_SIZE);
+  return (*env)->NewDirectByteBuffer (env, address, 1024);
+}
+
+static void
+test_buffer (JNIEnv *env, jobject buffer, const char *name, int len)
+{
+  void *tmp = (*env)->GetDirectBufferAddress (env, buffer);
+
+  if (address == tmp)
+    printf ("PASS: address of %s\n", name);
+  else
+    printf ("FAIL: address of %s\n", name);
+
+  int tmplen = (*env)->GetDirectBufferCapacity (env, buffer);
+
+  if (len == tmplen)
+    printf ("PASS: length of %s\n", name);
+  else
+    printf ("FAIL: length of %s\n", name);
+}
+
+JNIEXPORT void JNICALL
+Java_directbuffer_testDirectByteBuffer (JNIEnv *env, jclass k, jobject buffer, jint len)
+{
+  test_buffer (env, buffer, "direct java.nio.ByteBuffer", len);
+}
+
+JNIEXPORT void JNICALL
+Java_directbuffer_testCharBuffer (JNIEnv *env, jclass k, jobject buffer, jint len)
+{
+  test_buffer (env, buffer, "java.nio.CharBuffer view", len);
+}
+
+JNIEXPORT void JNICALL
+Java_directbuffer_testDoubleBuffer (JNIEnv *env, jclass k, jobject buffer, jint len)
+{
+  test_buffer (env, buffer, "java.nio.DoubleBuffer view", len);
+}
+
+JNIEXPORT void JNICALL
+Java_directbuffer_testFloatBuffer (JNIEnv *env, jclass k, jobject buffer, jint len)
+{
+  test_buffer (env, buffer, "java.nio.FloatBuffer view", len);
+}
+
+JNIEXPORT void JNICALL
+Java_directbuffer_testIntBuffer (JNIEnv *env, jclass k, jobject buffer, jint len)
+{
+  test_buffer (env, buffer, "java.nio.IntBuffer view", len);
+}
+
+JNIEXPORT void JNICALL
+Java_directbuffer_testLongBuffer (JNIEnv *env, jclass k, jobject buffer, jint len)
+{
+  test_buffer (env, buffer, "java.nio.LongBuffer view", len);
+}
+
+JNIEXPORT void JNICALL
+Java_directbuffer_testShortBuffer (JNIEnv *env, jclass k, jobject buffer, jint len)
+{
+  test_buffer (env, buffer, "java.nio.ShortBuffer view", len);
+}
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/directbuffer.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/directbuffer.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/directbuffer.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/directbuffer.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,40 @@
+// Test to make sure JNI implementation catches exceptions.
+
+import java.nio.*;
+
+public class directbuffer
+{
+  static
+  {
+    System.loadLibrary("directbuffer");
+  }
+
+  public static native ByteBuffer createDirectByteBuffer();
+  
+  public static native void testDirectByteBuffer(ByteBuffer bb, int len);
+  public static native void testCharBuffer(CharBuffer b, int len);
+  public static native void testDoubleBuffer(DoubleBuffer b, int len);
+  public static native void testFloatBuffer(FloatBuffer b, int len);
+  public static native void testIntBuffer(IntBuffer b, int len);
+  public static native void testLongBuffer(LongBuffer b, int len);
+  public static native void testShortBuffer(ShortBuffer b, int len);
+
+  public static void main(String[] args)
+  {
+    ByteBuffer bb = createDirectByteBuffer();
+    CharBuffer cb = bb.asCharBuffer();
+    DoubleBuffer db = bb.asDoubleBuffer();
+    FloatBuffer fb = bb.asFloatBuffer();
+    IntBuffer ib = bb.asIntBuffer();
+    LongBuffer lb = bb.asLongBuffer();
+    ShortBuffer sb = bb.asShortBuffer();
+
+    testDirectByteBuffer(bb, 1024);
+    testCharBuffer(cb, 512);
+    testDoubleBuffer(db, 128);
+    testFloatBuffer(fb, 256);
+    testIntBuffer(ib, 256);
+    testLongBuffer(lb, 128);
+    testShortBuffer(sb, 512);
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/directbuffer.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/directbuffer.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/directbuffer.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/directbuffer.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,14 @@
+PASS: address of direct java.nio.ByteBuffer
+PASS: length of direct java.nio.ByteBuffer
+PASS: address of java.nio.CharBuffer view
+PASS: length of java.nio.CharBuffer view
+PASS: address of java.nio.DoubleBuffer view
+PASS: length of java.nio.DoubleBuffer view
+PASS: address of java.nio.FloatBuffer view
+PASS: length of java.nio.FloatBuffer view
+PASS: address of java.nio.IntBuffer view
+PASS: length of java.nio.IntBuffer view
+PASS: address of java.nio.LongBuffer view
+PASS: length of java.nio.LongBuffer view
+PASS: address of java.nio.ShortBuffer view
+PASS: length of java.nio.ShortBuffer view

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/field.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/field.c?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/field.c (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/field.c Thu Nov  8 16:56:19 2007
@@ -0,0 +1,24 @@
+#include <jni.h>
+#include <field.h>
+
+JNIEXPORT jobjectArray JNICALL
+Java_field_fetch (JNIEnv *env, jobject this)
+{
+  jclass cls;
+  jfieldID fid;
+  jobjectArray obj;
+
+  cls = (*env)->GetObjectClass (env, this);
+  if (! cls)
+    return 0;
+
+  fid = (*env)->GetFieldID (env, cls, "F", "[Ljava/lang/Object;");
+  if (! fid)
+    return 0;
+
+  obj = (*env)->GetObjectField (env, this, fid);
+
+  return obj;
+}
+
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/field.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/field.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/field.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/field.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,25 @@
+// Test for array field lookup.
+
+public class field
+{
+  // A field for us to look up.
+  public Object[] F = new Object[7];
+
+  public native Object[] fetch ();
+
+  public void doit ()
+  {
+    System.out.println (F == fetch ());
+  }
+
+  public static void main (String[] args)
+  {
+    field q = new field ();
+    q.doit ();
+  }
+
+  static
+  {
+    System.loadLibrary ("field");
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/field.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/field.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/field.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/field.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+true

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/final_method.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/final_method.c?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/final_method.c (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/final_method.c Thu Nov  8 16:56:19 2007
@@ -0,0 +1,7 @@
+#include <final_method.h>
+
+JNIEXPORT jstring JNICALL
+Java_final_1method_meth (JNIEnv *env, jobject thisv)
+{
+  return (*env)->NewStringUTF (env, "zardoz has spoken");
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/final_method.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/final_method.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/final_method.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/final_method.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,17 @@
+// Minimal test a non-static final method.
+
+public class final_method
+{
+  static
+  {
+    System.loadLibrary ("final_method");
+  }
+
+  public final native String meth ();
+
+  public static void main (String[] args)
+  {
+    final_method fm = new final_method ();
+    System.out.println (fm.meth ());
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/final_method.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/final_method.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/final_method.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/final_method.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+zardoz has spoken

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/findclass.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/findclass.c?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/findclass.c (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/findclass.c Thu Nov  8 16:56:19 2007
@@ -0,0 +1,12 @@
+#include <stdlib.h>
+
+#include <findclass.h>
+
+JNIEXPORT jclass JNICALL
+Java_findclass_doit (JNIEnv *env, jclass klass, jstring name)
+{
+  const char *buf = (*env)->GetStringUTFChars (env, name, NULL);
+  jclass k = (*env)->FindClass (env, buf);
+  (*env)->ReleaseStringUTFChars (env, name, buf);
+  return k;
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/findclass.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/findclass.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/findclass.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/findclass.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,16 @@
+// Test FindClass part of JNI.
+
+public class findclass
+{
+  static
+  {
+    System.loadLibrary ("findclass");
+  }
+
+  public static native Class doit (String name);
+
+  public static void main (String[] args)
+  {
+    System.out.println ("" + doit ("java/lang/String"));
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/findclass.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/findclass.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/findclass.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/findclass.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+class java.lang.String

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/iface.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/iface.c?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/iface.c (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/iface.c Thu Nov  8 16:56:19 2007
@@ -0,0 +1,40 @@
+#include <stdlib.h>
+#include <stdio.h>
+#include <iface.h>
+
+void check (JNIEnv *);
+
+void check(JNIEnv *env)
+{
+  if ((*env)->ExceptionCheck(env) != JNI_FALSE)
+    {
+      fprintf(stderr, "UNEXPECTED EXCEPTION\n");
+      exit(-1);
+    }
+}
+
+void
+Java_iface_doCalls (JNIEnv *env, jobject self, jobject other)
+{
+  jclass iface_class, comparable_class;
+  jmethodID iface_meth, comparable_meth;
+  jvalue args[1];
+
+  iface_class = (*env)->FindClass(env, "iface");
+  check (env);
+  comparable_class = (*env)->FindClass (env, "mycomp");
+  check (env);
+
+  iface_meth = (*env)->GetMethodID (env, iface_class, "compareTo",
+				    "(Ljava/lang/Object;)I");
+  check (env);
+  comparable_meth = (*env)->GetMethodID (env, comparable_class, "compareTo",
+					 "(Ljava/lang/Object;)I");
+  check (env);
+
+  args[0].l = other;
+  (*env)->CallObjectMethodA (env, self, iface_meth, args);
+  check (env);
+  (*env)->CallObjectMethodA (env, self, comparable_meth, args);
+  check (env);
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/iface.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/iface.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/iface.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/iface.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,27 @@
+// JNI calls via an interface method were broken in a couple releases.
+
+interface mycomp
+{
+  int compareTo(Object x);
+}
+
+public class iface implements mycomp
+{
+  static
+  {
+    System.loadLibrary("iface");
+  }
+
+  public int compareTo (Object x)
+  {
+    System.out.println ("hi maude");
+    return 3;
+  }
+
+  public native void doCalls(Object x);
+
+  public static void main (String[] args)
+  {
+    new iface().doCalls(args);
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/iface.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/iface.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/iface.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/iface.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,2 @@
+hi maude
+hi maude

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/invocation/PR16923.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/invocation/PR16923.c?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/invocation/PR16923.c (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/invocation/PR16923.c Thu Nov  8 16:56:19 2007
@@ -0,0 +1,43 @@
+#include <assert.h>
+#include <jni.h>
+
+union env_union
+{
+  void *void_env;
+  JNIEnv *jni_env;
+};
+
+int
+main (int argc, const char** argv)
+{
+  union env_union tmp;
+  JNIEnv* env;
+  JavaVM* jvm;
+  JavaVMInitArgs vm_args;
+  JavaVMOption options[1];
+  jclass class_id;
+  jmethodID method_id;
+  jint result;
+
+  options[0].optionString = "-DPR16923=optionReceived";
+
+  vm_args.version = JNI_VERSION_1_2;
+  vm_args.ignoreUnrecognized = JNI_TRUE;
+  vm_args.options = options;
+  vm_args.nOptions = 1;
+
+  result = JNI_CreateJavaVM (&jvm, &tmp.void_env, &vm_args);
+  assert (result >= 0);
+
+  env = tmp.jni_env;
+
+  class_id = (*env)->FindClass (env, "PR16923");
+  assert (class_id);
+
+  method_id = (*env)->GetStaticMethodID (env, class_id, "printIt", "()V");
+  assert (method_id);
+
+  (*env)->CallStaticVoidMethod (env, class_id, method_id, NULL);
+
+  return 0;
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/invocation/PR16923.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/invocation/PR16923.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/invocation/PR16923.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/invocation/PR16923.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,7 @@
+public class PR16923
+{
+  public static void printIt ()
+  {
+    System.out.println (System.getProperty ("PR16923"));
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/invocation/PR16923.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/invocation/PR16923.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/invocation/PR16923.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/invocation/PR16923.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+optionReceived

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/invoke.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/invoke.c?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/invoke.c (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/invoke.c Thu Nov  8 16:56:19 2007
@@ -0,0 +1,7 @@
+#include <invoke.h>
+
+JNIEXPORT jint JNICALL
+Java_invoke_val (JNIEnv *env, jclass klass)
+{
+  return 23;
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/invoke.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/invoke.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/invoke.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/invoke.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,18 @@
+// Test to make sure the minimal invocation works.
+
+public class invoke
+{
+  public static native int val ();
+
+  static
+  {
+    System.out.println ("trying...");
+    System.loadLibrary ("invoke");
+    System.out.println ("loaded");
+  }
+
+  public static void main (String[] args)
+  {
+    System.out.println (val ());
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/invoke.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/invoke.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/invoke.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/invoke.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,3 @@
+trying...
+loaded
+23

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/jni.exp
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/jni.exp?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/jni.exp (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/jni.exp Thu Nov  8 16:56:19 2007
@@ -0,0 +1,324 @@
+# Tests for JNI code.
+
+# Compile a single C file and produce a .so file.  OPTIONS is a list
+# of options to pass to the compiler.  Returns 0 on failure, 1 on
+# success.
+proc gcj_jni_compile_c_to_so {file {options {}}} {
+  global srcdir
+  global host_triplet
+  verbose "options: $options"
+  set options_cxx $options
+  set options ""
+
+# Apple uses a different extension for shared/dynamic libraries
+# so we check against powerpc-apple-darwin and set them to
+# dylib.
+# HP-UX uses sl, so we check this too, otherwise we take so.
+
+  if { [istarget "*-*-darwin*"] } {
+      set so_extension "dylib"
+      set so_flag "-dynamiclib"
+  } elseif { [istarget "hppa*-hp-hpux*"] } {
+      set so_extension "sl"
+      set so_flag "-shared"
+  } else {
+      set so_extension "so"
+      set so_flag "-shared"
+  }
+  set filename [file tail $file]
+  set name [file rootname $filename]
+  set soname lib${name}.${so_extension}
+
+  lappend options "additional_flags=${so_flag} -fPIC"
+  # Find the generated header.
+  lappend options "additional_flags=-I. -I.."
+
+  # Ensure that the generated header has correct prototypes.
+  set cfile [file rootname $file].c
+  if { [file exists $cfile]} {
+    # This option is only valid for C sources.
+    lappend options "additional_flags=-Wmissing-prototypes"
+  }
+
+  # Find jni.h and jni_md.h.
+  lappend options "additional_flags=-I$srcdir/../include -I$srcdir/../classpath/include"
+
+  # Append C++ options
+  lappend options "additional_flags=$options_cxx"
+
+  set x [libjava_prune_warnings \
+	   [target_compile $file $soname executable $options]]
+  if {$x != ""} {
+    verbose "target_compile failed: $x" 2
+    fail "$filename compilation"
+    return 0
+  }
+
+  pass "$filename compilation"
+  return 1
+}
+
+# Build a header file from a .class file.  Return 0 on failure.
+proc gcj_jni_build_header {file} {
+  set gcjh [find_gcjh]
+  set file [file rootname $file]
+  set x [string trim [libjava_prune_warnings \
+			[lindex [local_exec "$gcjh -jni $file" "" "" 300] 1]]]
+  if {$x != ""} {
+    verbose "local_exec failed: $x" 2
+    fail "$file header generation"
+    return 0
+  }
+
+  pass "$file header generation"
+  return 1
+}
+
+# Do all the work for a single JNI test.  Return 0 on failure.
+proc gcj_jni_test_one {file} {
+  global runtests
+  global host_triplet
+  global INTERPRETER
+
+# Apple uses a different extension for shared/dynamic libraries
+# so we check against powerpc-apple-darwin and set them to
+# dylib.
+# HP-UX uses sl, so we check this too, otherwise we take so.
+
+  if { [istarget "*-*-darwin*"] } {
+      set so_extension "dylib"
+  } elseif { [istarget "hppa*-hp-hpux*"] } {
+      set so_extension "sl"
+  } else {
+      set so_extension "so"
+  }
+
+  # The base name.  We use it for several purposes.
+  set main [file rootname [file tail $file]]
+  if {! [runtest_file_p $runtests $main]} {
+    # Simply skip it.
+    return 1
+  }
+
+  if {! [bytecompile_file $file [pwd]]} {
+    fail "bytecompile $file"
+    # FIXME - should use `untested' on all remaining tests.
+    # But that is hard.
+    return 0
+  }
+  pass "bytecompile $file"
+
+  set bytefile [file rootname [file tail $file]].class
+  if {! [gcj_jni_build_header $bytefile]} {
+    # FIXME
+    return 0
+  }
+
+  set cfile [file rootname $file].c
+  set cxxflags ""
+  set cxxldlibflags {}
+  # If there is no `.c' file, assume there is a `.cc' file.
+  if {! [file exists $cfile]} {
+    set cfile [file rootname $file].cc
+
+    set cxxflaglist {}
+    foreach arg [split [libjava_find_lib libstdc++-v3/src stdc++] " "] {
+      switch -glob -- $arg {
+	"-L*" {
+	  set arg [string range $arg 2 end]
+	  lappend cxxldlibflags $arg
+	  # Strip the `.libs' directory; we link with libtool which
+	  # doesn't need it.
+	  set arg "-L[file dirname $arg]"
+	}
+      }
+      lappend cxxflaglist $arg
+      # In case the libstdc++ is not installed yet, we pass the build
+      # directory of it to the cxxflaglist.
+      lappend cxxflaglist "-L$cxxldlibflags"
+    }
+
+    # If you're building the compiler with --prefix set to a place
+    # where it's not yet installed, then the linker won't be able to
+    # find the libgcc used by libffi.dylib.  We could pass the
+    # -dylib_file option, but that's complicated, and it's much easier
+    # to just make the linker find libgcc using -L options.
+    if { [istarget "*-*-darwin*"] } {
+	lappend cxxflaglist "-shared-libgcc -lstdc++"
+    } else {
+	lappend cxxflaglist "-lstdc++"
+    }
+
+    set cxxflags [join $cxxflaglist]
+  }
+
+  if {! [gcj_jni_compile_c_to_so $cfile $cxxflags]} {
+    # FIXME
+    return 0
+  }
+
+  set args [list "additional_flags=-fjni"]
+  if {! [gcj_link $main $main $file $args]} {
+    # FIXME
+    return 0
+  }
+
+  set resultfile [file rootname $file].out
+
+  if {! [gcj_invoke $main $resultfile $cxxldlibflags]} {
+    # FIXME
+    return 0
+  }
+
+  # We purposely ignore errors here; we still want to run the other
+  # appropriate tests.
+  set errname [file rootname [file tail $file]]
+  set gij [libjava_find_gij]
+  # libjava_find_gij will return "" if it couldn't find the
+  # program; in this case we want to skip the test.
+  # If the libraries are not installed yet, we have to pass them via
+  # cxxldlibflags to libjava_invoke.
+  if {$INTERPRETER == "yes" && $gij != ""} {
+    libjava_invoke $errname "gij test" opts $gij \
+      "" $resultfile $cxxldlibflags $main
+  }
+
+  # When we succeed we remove all our clutter.
+  eval gcj_cleanup [glob -nocomplain -- ${main}.*] \
+    [list $main lib${main}.${so_extension}]
+
+  return 1
+}
+
+# Compile a single C file and produce a binary.  OPTIONS is a list of
+# options to pass to the compiler.  Returns 0 on failure, 1 on
+# success.
+proc gcj_jni_invocation_compile_c_to_binary {file {options {}}} {
+  global srcdir
+  global host_triplet
+  verbose "options: $options"
+  set options_cxx $options
+  set options ""
+
+  set filename [file tail $file]
+  set name [file rootname $filename]
+
+  # Set some darwin specific options
+  if { [istarget "*-*-darwin*"] } {
+      lappend options "additional_flags= -bind_at_load -multiply_defined suppress"
+  }
+  # Find the generated header.
+  lappend options "additional_flags=-I. -I.."
+
+  # Find jni.h and jni_md.h.
+  lappend options "additional_flags=-I$srcdir/../include -I$srcdir/../classpath/include"
+
+  # Append C++ options
+  lappend options "additional_flags=$options_cxx"
+
+  set x [libjava_prune_warnings \
+	   [target_compile $file $name executable $options]]
+  if {$x != ""} {
+    verbose "target_compile failed: $x" 2
+    fail "$filename compilation"
+    return 0
+  }
+
+  pass "$filename compilation"
+  return 1
+}
+
+# Do all the work for a single invocation API test.  Return 0 on
+# failure.
+proc gcj_jni_invocation_test_one {file} {
+  global runtests
+  global host_triplet
+  global INTERPRETER
+
+  # The base name.  We use it for several purposes.
+  set main [file rootname [file tail $file]]
+  if {! [runtest_file_p $runtests $main]} {
+    # Simply skip it.
+    return 1
+  }
+
+  if {! [bytecompile_file $file [pwd]]} {
+    fail "bytecompile $file"
+    # FIXME - should use `untested' on all remaining tests.
+    # But that is hard.
+    return 0
+  }
+  pass "bytecompile $file"
+
+  set cfile [file rootname $file].c
+  # Darwin needs -liconv linked, otherwise we get some unresolved.
+  # If you're building the compiler with --prefix set to a place
+  # where it's not yet installed, then the linker won't be able to
+  # find the libgcc used by libffi.dylib.  We could pass the
+  # -dylib_file option, but that's complicated, and it's much easier
+  # to just make the linker find libgcc using -L options.
+  # Similar logic applies to libgcj.
+  if { [istarget "*-*-darwin*"] } {
+      set cxxflags "-L../.libs -shared-libgcc -ljvm -lgcj -liconv"
+  } else {
+      global LIBJAVA
+      if [info exists LIBJAVA] {
+	  set libjava $LIBJAVA;
+      } else {
+	  set libjava [libjava_find_lib libjava gcj]
+      }
+      set cxxflags "$libjava -ljvm"
+  }
+
+  if { [istarget "*-*-solaris*"] } {
+    lappend cxxflags "-lsocket"
+  }
+
+  if {! [gcj_jni_invocation_compile_c_to_binary $cfile $cxxflags]} {
+    # FIXME
+    return 0
+  }
+
+  set resultfile [file rootname $file].out
+
+  if {! [gcj_invoke $main $resultfile ""]} {
+    # FIXME
+    return 0
+  }
+
+  # We purposely ignore errors here; we still want to run the other
+  # appropriate tests.
+  set errname [file rootname [file tail $file]]
+
+  # When we succeed we remove all our clutter.
+  eval gcj_cleanup [glob -nocomplain -- ${main}.*] \
+    [list $main]
+
+  return 1
+}
+
+# Run the JNI tests.
+proc gcj_jni_run {} {
+  global srcdir subdir
+  global build_triplet host_triplet
+
+  # For now we only test JNI on native builds.
+  if {$build_triplet == $host_triplet} {
+    catch { lsort [glob -nocomplain ${srcdir}/${subdir}/*.java] } srcfiles
+
+    foreach x $srcfiles {
+      gcj_jni_test_one $x
+    }
+
+    # Run JNI invocation API tests
+    catch { lsort [glob -nocomplain ${srcdir}/${subdir}/invocation/*.java] } srcfiles
+
+    foreach x $srcfiles {
+      gcj_jni_invocation_test_one $x
+    }
+  } else {
+    verbose "JNI tests not run in cross-compilation environment"
+  }
+}
+
+gcj_jni_run

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/jniutf.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/jniutf.c?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/jniutf.c (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/jniutf.c Thu Nov  8 16:56:19 2007
@@ -0,0 +1,10 @@
+#include <jniutf.h>
+
+JNIEXPORT void JNICALL
+Java_jniutf_printString (JNIEnv *env, jobject obj, jstring str)
+{
+  const char *cstr;
+
+  cstr = (*env)->GetStringUTFChars (env, str, NULL);
+  (*env)->ReleaseStringUTFChars (env, str, cstr);
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/jniutf.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/jniutf.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/jniutf.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/jniutf.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,16 @@
+public class jniutf
+{
+  native void printString (String str);
+
+  static
+  {
+    System.loadLibrary ("jniutf");
+  }
+
+  public static void main (String[] args)
+  {
+
+    String s1 = new String("\u3040\u3041\u3042\u3043\u3044\u3045\u3046\u3047\u3048\u3049\u304A\u304B\u304C\u304D\u304E\u304F\u3050\u3051\u3052\u3053\u3054\u3055\u3056\u3057\u3058\u3059\u305A\u305B");
+    new jniutf().printString (s1);
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/jniutf.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/jniutf.out?rev=43913&view=auto

==============================================================================
    (empty)

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/martin.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/martin.c?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/martin.c (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/martin.c Thu Nov  8 16:56:19 2007
@@ -0,0 +1,43 @@
+#include <jni.h>
+#include "martin.h"
+#include <stdio.h>
+
+JNIEXPORT void JNICALL
+Java_martin_myNative(JNIEnv* env, jobject this, jstring s)
+{
+  jclass cls;
+  jfieldID fid;
+  jobject obj;
+  jmethodID mid;
+
+  printf("From C\n");
+  fflush(stdout);
+
+  cls = (*env)->FindClass(env, "java/lang/System");
+  if (cls == 0) {
+    printf("java/lang/System lookup failed\n");
+    return;
+  }
+  fid = (*env)->GetStaticFieldID(env, cls, "out", "Ljava/io/PrintStream;");
+  if (fid == 0) {
+    printf("java/lang/System::out lookup failed\n");
+    return;
+  }
+  obj = (*env)->GetStaticObjectField(env, cls, fid);
+  if (obj == 0) {
+    printf("GetStaticObjectField call failed\n");
+    return;
+  }
+  cls = (*env)->GetObjectClass(env, obj);
+  if (cls == 0) {
+    printf("GetObjectClass(out) failed\n");
+    return;
+  }
+  mid = (*env)->GetMethodID(env, cls, "println", "(Ljava/lang/String;)V");
+  if (mid == 0) {
+    printf("println method lookup failed\n");
+    return;
+  }
+  (*env)->CallVoidMethod(env, obj, mid, s);
+}
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/martin.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/martin.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/martin.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/martin.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,21 @@
+// Test case from Martin Kahlert <martin.kahlert at infineon.com>
+
+public class martin {
+  public native void myNative(String s);
+
+  public void myJava(String s) {
+    s = s + ", Java";
+    System.out.println(s);
+  }
+
+  public static void main(String args[]) {
+    martin x = new martin();
+    x.myJava("Hello");
+    x.myNative("Hello, Java (from C)");
+    x.myJava("Goodbye");
+  }
+  
+  static {
+    System.loadLibrary("martin");
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/martin.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/martin.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/martin.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/martin.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,4 @@
+Hello, Java
+From C
+Hello, Java (from C)
+Goodbye, Java

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/noclass.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/noclass.c?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/noclass.c (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/noclass.c Thu Nov  8 16:56:19 2007
@@ -0,0 +1,9 @@
+#include <noclass.h>
+
+JNIEXPORT void JNICALL
+Java_noclass_find_1it (JNIEnv *env, jclass k)
+{
+  /* We cause an exception by asking for a class we know does not
+     exist.  */
+  k = (*env)->FindClass (env, "java/lang/Sarcophagus");
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/noclass.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/noclass.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/noclass.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/noclass.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,25 @@
+// Test to make sure JNI implementation catches exceptions.
+
+public class noclass
+{
+  static
+  {
+    System.loadLibrary ("noclass");
+  }
+
+  public static native void find_it ();
+
+  public static void main (String[] args)
+  {
+    try
+      {
+	find_it ();
+      }
+    catch (Throwable _)
+      {
+	// If find_it() causes a crash, or doesn't throw an exception,
+	// we won't be running this next line.
+	System.out.println ("Ok");
+      }
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/noclass.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/noclass.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/noclass.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/noclass.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+Ok

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/overload.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/overload.c?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/overload.c (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/overload.c Thu Nov  8 16:56:19 2007
@@ -0,0 +1,16 @@
+#include <overload.h>
+
+JNIEXPORT jint JNICALL
+Java_overload_over__I (JNIEnv *env, jclass klass, jint val)
+{
+  return val;
+}
+
+
+JNIEXPORT jint JNICALL
+Java_overload_over__II (JNIEnv *env, jclass klass, jint one, jint two)
+{
+  return one + two;
+}
+
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/overload.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/overload.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/overload.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/overload.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,18 @@
+// Test to make sure overloaded functions with long names work.
+
+public class overload
+{
+  static
+  {
+    System.loadLibrary ("overload");
+  }
+
+  public static native int over (int one);
+  public static native int over (int one, int two);
+
+  public static void main (String[] args)
+  {
+    System.out.println (over (1));
+    System.out.println (over (1, 2));
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/overload.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/overload.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/overload.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/overload.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,2 @@
+1
+3

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/pr11951.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/pr11951.c?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/pr11951.c (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/pr11951.c Thu Nov  8 16:56:19 2007
@@ -0,0 +1,16 @@
+#include <stdio.h>
+#include <pr11951.h>
+
+JNIEXPORT void JNICALL
+Java_pr11951_nmethod (JNIEnv *env, jclass myclass)
+{
+  jmethodID method;
+  jobject r;
+
+  method = (*env)->GetStaticMethodID (env, myclass, "dosomething",
+				      "()Ljava/lang/Object;");
+  r = (*env)->CallStaticObjectMethod (env, myclass, method);
+  printf ("%d\n", r == NULL);
+
+  (*env)->ExceptionClear (env);
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/pr11951.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/pr11951.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/pr11951.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/pr11951.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,18 @@
+public class pr11951
+{
+  public static Object dosomething()
+  {
+    throw new Error();
+  }
+
+  public static native void nmethod();
+
+  public static void main(String[] args)
+  {
+    nmethod();
+  }
+
+  static {
+    System.loadLibrary("pr11951");
+  }  
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/pr11951.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/pr11951.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/pr11951.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/pr11951.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+1

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/pr18278.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/pr18278.c?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/pr18278.c (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/pr18278.c Thu Nov  8 16:56:19 2007
@@ -0,0 +1,10 @@
+#include <jni.h>
+#include <stdio.h>
+
+#include "pr18278.h"
+
+jobject Java_pr18278_weakRef(JNIEnv *env, jclass cls, jobject data)
+{
+  jobject r =  (* env)->NewWeakGlobalRef(env, data);
+  return r;
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/pr18278.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/pr18278.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/pr18278.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/pr18278.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,13 @@
+public class pr18278 {
+    public pr18278() {}
+
+    public static void main(String[] args) {
+        System.loadLibrary("pr18278");
+	String bob = "Bob";
+	Object o = weakRef("Bob");
+	System.out.println(o);
+	System.out.println(bob == o);
+    }
+
+    static native Object weakRef(Object o);
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/pr18278.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/pr18278.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/pr18278.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/pr18278.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,2 @@
+Bob
+true

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/pr23739.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/pr23739.c?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/pr23739.c (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/pr23739.c Thu Nov  8 16:56:19 2007
@@ -0,0 +1,12 @@
+#include <stdio.h>
+#include "pr23739.h"
+
+JNIEXPORT void JNICALL
+Java_pr23739_checkOrder (JNIEnv *env, jclass cls, jclass clazz1, jclass clazz2)
+{
+  printf ("B extends A\n");
+  printf ("isAssignableFrom (A, B): %d\n",
+          (*env)->IsAssignableFrom (env, clazz1, clazz2));
+  printf ("isAssignableFrom (B, A): %d\n",
+          (*env)->IsAssignableFrom (env, clazz2, clazz1));
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/pr23739.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/pr23739.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/pr23739.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/pr23739.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,22 @@
+public class pr23739
+{
+  static
+  {
+    System.loadLibrary ("pr23739");
+  }
+
+  public static class A
+  {
+  }
+
+  public static class B extends A
+  {
+  }
+
+  static native void checkOrder (Class clazz1, Class clazz2);
+
+  public static void main (String[] args)
+  {
+    checkOrder (A.class, B.class);
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/pr23739.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/pr23739.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/pr23739.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/pr23739.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,3 @@
+B extends A
+isAssignableFrom (A, B): 0
+isAssignableFrom (B, A): 1

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/register.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/register.c?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/register.c (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/register.c Thu Nov  8 16:56:19 2007
@@ -0,0 +1,32 @@
+#include <stdlib.h>
+#include <assert.h>
+#include <register.h>
+
+static jint
+some_random_name (JNIEnv *env, jclass k, jint v)
+{
+  return v - 1;
+}
+
+JNIEXPORT jint JNICALL
+JNI_OnLoad (JavaVM *vm, void *nothing)
+{
+  JNIEnv *env;
+  JNINativeMethod meth;
+  jclass k;
+  jint r;
+
+  r = (*vm)->GetEnv (vm, (void **) &env, JNI_VERSION_1_2);
+  assert (r == JNI_OK);
+  k = (*env)->FindClass (env, "register");
+  assert (k != NULL);
+
+  meth.name = "doit";
+  meth.signature = "(I)I";
+  meth.fnPtr = some_random_name;
+
+  r = (*env)->RegisterNatives (env, k, &meth, 1);
+  assert (r == JNI_OK);
+
+  return JNI_VERSION_1_2;
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/register.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/register.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/register.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/register.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,16 @@
+// register.java - Test RegisterNatives.
+
+public class register
+{
+  static
+  {
+    System.loadLibrary ("register");
+  }
+
+  public static native int doit (int z);
+
+  public static void main (String[] args)
+  {
+    System.out.println (doit (24));
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/register.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/register.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/register.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/register.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+23

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/register2.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/register2.c?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/register2.c (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/register2.c Thu Nov  8 16:56:19 2007
@@ -0,0 +1,48 @@
+#include <stdlib.h>
+#include <assert.h>
+#include <register2.h>
+
+static int
+twentythree (JNIEnv *env, jclass k)
+{
+  return 23;
+}
+
+static int
+oneninetyseven (JNIEnv *env, jclass k)
+{
+  return 197;
+}
+
+JNIEXPORT jint JNICALL
+JNI_OnLoad (JavaVM *vm, void *nothing)
+{
+  JNIEnv *env;
+  JNINativeMethod meth;
+  jclass k;
+  jint r;
+
+  r = (*vm)->GetEnv (vm, (void **) &env, JNI_VERSION_1_2);
+  assert (r == JNI_OK);
+  k = (*env)->FindClass (env, "register2$I1");
+  assert (k != NULL);
+
+  meth.name = "doit";
+  meth.signature = "()I";
+  meth.fnPtr = twentythree;
+
+  r = (*env)->RegisterNatives (env, k, &meth, 1);
+  assert (r == JNI_OK);
+
+  k = (*env)->FindClass (env, "register2$I2");
+  assert (k != NULL);
+
+  meth.name = "doit";
+  meth.signature = "()I";
+  meth.fnPtr = oneninetyseven;
+
+  r = (*env)->RegisterNatives (env, k, &meth, 1);
+  assert (r == JNI_OK);
+
+  return JNI_VERSION_1_2;
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/register2.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/register2.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/register2.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/register2.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,27 @@
+// Another test of RegisterNatives.
+// We neglected to track the class name in our internal hash table.
+// This is a regression test for the fix.
+
+public class register2
+{
+  static
+  {
+    System.loadLibrary ("register2");
+  }
+
+  static class I1
+  {
+    public static native int doit ();
+  }
+
+  static class I2
+  {
+    public static native int doit ();
+  }
+
+  public static void main (String[] args)
+  {
+    System.out.println (new I1().doit());
+    System.out.println (new I2().doit());
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/register2.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/register2.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/register2.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/register2.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,2 @@
+23
+197

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/simple_int.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/simple_int.c?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/simple_int.c (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/simple_int.c Thu Nov  8 16:56:19 2007
@@ -0,0 +1,7 @@
+#include <simple_int.h>
+
+JNIEXPORT jint JNICALL
+Java_simple_1int_nat (JNIEnv *env, jclass klass, jint val)
+{
+  return 2 * val;
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/simple_int.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/simple_int.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/simple_int.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/simple_int.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,16 @@
+// Test a simple static function with an `int' argument.
+
+public class simple_int
+{
+  public static native int nat (int z);
+
+  static
+  {
+    System.loadLibrary ("simple_int");
+  }
+
+  public static void main (String[] args)
+  {
+    System.out.println (nat (23));
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/simple_int.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/simple_int.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/simple_int.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/simple_int.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+46

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/throwit.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/throwit.c?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/throwit.c (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/throwit.c Thu Nov  8 16:56:19 2007
@@ -0,0 +1,25 @@
+#include <stdlib.h>
+#include <throwit.h>
+
+JNIEXPORT void JNICALL
+Java_throwit_throwit (JNIEnv *env, jclass klass, jstring name,
+		      jboolean is_new)
+{
+  const char *buf = (*env)->GetStringUTFChars (env, name, NULL);
+  jclass k = (*env)->FindClass (env, buf);
+  (*env)->ReleaseStringUTFChars (env, name, buf);
+
+  if (k == NULL || (*env)->ExceptionCheck (env))
+    return;
+
+  if (is_new)
+    (*env)->ThrowNew (env, k, "the word is zardoz");
+  else
+    {
+      jmethodID id = (*env)->GetMethodID (env, k, "<init>",
+					  "(Ljava.lang.String;)V");
+      jstring z = (*env)->NewStringUTF (env, "zardoz is the word");
+      jobject obj = (*env)->NewObject (env, k, id, z);
+      (*env)->Throw (env, obj);
+    }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/throwit.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/throwit.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/throwit.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/throwit.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,33 @@
+// Test to see if throw works.
+
+public class throwit
+{
+  static
+  {
+    System.loadLibrary ("throwit");
+  }
+
+  public static native void throwit (String name, boolean is_new);
+
+  public static void main (String[] args)
+  {
+    try
+      {
+	throwit ("java/lang/UnknownError", false);
+      }
+    catch (Throwable x)
+      {
+	System.out.println (x.getClass ());
+	System.out.println (x.getMessage ());
+      }
+    try
+      {
+	throwit ("java/lang/Throwable", true);
+      }
+    catch (Throwable x)
+      {
+	System.out.println (x.getClass ());
+	System.out.println (x.getMessage ());
+      }
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/throwit.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/throwit.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/throwit.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/throwit.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,4 @@
+class java.lang.UnknownError
+zardoz is the word
+class java.lang.Throwable
+the word is zardoz

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/virtual.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/virtual.c?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/virtual.c (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/virtual.c Thu Nov  8 16:56:19 2007
@@ -0,0 +1,7 @@
+#include <virtual.h>
+
+JNIEXPORT jboolean JNICALL
+Java_virtual_equals (JNIEnv *env, jobject thisv, jobject other)
+{
+  return JNI_FALSE;
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/virtual.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/virtual.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/virtual.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/virtual.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,17 @@
+// Minimal test of a virtual method.
+
+public class virtual
+{
+  static
+  {
+    System.loadLibrary ("virtual");
+  }
+
+  public native boolean equals (Object obj);
+
+  public static void main (String[] args)
+  {
+    Object v = new virtual ();
+    System.out.println (v.equals (v));
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/virtual.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/virtual.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/virtual.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jni/virtual.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+false

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jvmti/events.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jvmti/events.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jvmti/events.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jvmti/events.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,12 @@
+// Test JVMTI event notifications
+
+public class events
+{
+  public static native void do_events_tests ();
+
+  public static void main (String[] args)
+  {
+    System.out.println ("JVMTI event notification tests");
+    do_events_tests ();
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jvmti/events.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jvmti/events.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jvmti/events.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jvmti/events.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,59 @@
+JVMTI event notification tests
+- enable tests -
+created JVMTI environment #0
+created JVMTI environment #1
+created JVMTI environment #2
+setting callbacks for envs
+RequestedEvents: 
+enable VM_INIT for env0, env1, env2
+RequestedEvents: VMInit,
+enable VM_DEATH for env1,env2
+RequestedEvents: VMInit,VMDeath,
+enable THREAD_END for env2
+RequestedEvents: VMInit,VMDeath,ThreadEnd,
+disposing of env1
+RequestedEvents: VMInit,VMDeath,ThreadEnd,
+disposing of env0
+RequestedEvents: VMInit,VMDeath,ThreadEnd,
+disable VMInit in env2
+RequestedEvents: VMDeath,ThreadEnd,
+clear VMDeath callback in env2
+RequestedEvents: ThreadEnd,
+sending VMInit
+sending ThreadEnd
+ThreadEndCB jni_env=0x5678 thread=0x1234
+sending VMDeath
+disposing of env2
+RequestedEvents: 
+- callback arg tests -
+RequestedEvents: VMInit,VMDeath,ThreadStart,ThreadEnd,ClassFileLoadHook,ClassLoad,ClassPrepare,VMStart,Exception,ExceptionCatch,SingleStep,FramePop,Breakpoint,FieldAccess,FieldModification,MethodEntry,MethodExit,NativeMethodBind,CompiledMethodLoad,CompiledMethodUnload,DynamicCodeGenerated,DataDumpRequest,MonitorWait,MonitorWaited,MonitorContendedEnter,MonitorContendedEntered,GarbageCollectionStart,GarbageCollectionFinish,ObjectFree,VMObjectAlloc,
+VMInitCB jni_env=0x1 thread=0x2
+VMDeathCB jni_env=0x1
+ThreadStartCB jni_env=0x1 thread=0x2
+ThreadEndCB jni_env=0x1 thread=0x2
+ClassFileLoadHookCB jni_env=0x1 class_being_redefined=0x2 loader=0x3 name=4 protection_domain=0x5 class_data_len=6 class_data=0x7 new_class_data_len=0x8 new_class_data=0x9
+ClassLoadCB jni_env=0x1 thread=0x2 klass=0x3
+ClassPrepareCB jni_env=0x1 thread=0x2 klass=0x3
+VMStartCB jni_env=0x1
+ExceptionCB jni_env=0x1 thread=0x2 method=0x3 location=0x4 exception=0x5 catch_method=0x6 catch_location=0x7
+ExceptionCatchCB jni_env=0x1 thread=0x2 method=0x3 location=0x4 exception=0x5
+SingleStepCB jni_env=0x1 thread=0x2 method=0x3 location=0x4
+FramePopCB jni_env=0x1 thread=0x2 method=0x3 was_pooped_by_exception=1
+BreakpointCB  jni_env=0x1 thread=0x2 method=0x3 location=0x4
+FieldAccessCB jni_env=0x1 thread=0x2 method=0x3 location=0x4 field_klass=0x5 object=0x6 field=0x7
+FieldModificationCB  jni_env=0x1 thread=0x2 method=0x3 location=0x4 field_klass=0x5 object=0x6 field=0x7 signature_type=8 new_value=9
+MethodEntryCB jni_env=0x1 thread=0x2 method=0x3
+MethodExitCB jni_env=0x1 thread=0x2 method=0x3 was_popped_by_exception=1 return_value=5
+NativeMethodBindCB jni_env=0x1 thread=0x2 method=0x3 address=0x4 new_address_ptr=0x5
+CompiledMethodLoadCB method=0x1 code_size=0x2 code_addr=0x3 map_length=4 map=0x5 compile_info=0x6
+CompiledMethodUnloadCB method=0x1 code_addr=0x2
+DynamicCodeGeneratedCB name=1 address=0x2 length=3
+DataDumpRequestCB
+MonitorWaitCB jni_env=0x1 thread=0x2 object=0x3 timeout=4
+MonitorWaitedCB jni_env=0x1 thread=0x2 object=0x3 timed_out=1
+MonitorContendedEnterCB jni_env=0x1 thread=0x2 object=0x3
+MonitorContendedEnteredCB jni_env=0x1 thread=0x2 object=0x3
+GarbageCollectionStartCB
+GarbageCollectionFinishCB
+ObjectFreeCB tag=1
+VMObjectAllocCB jni_env=0x1 thread=0x2 object=0x3 object_klass=0x4 size=5

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jvmti/geterrorname.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jvmti/geterrorname.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jvmti/geterrorname.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jvmti/geterrorname.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,12 @@
+// Test JVMTI GetErrorName
+
+public class geterrorname
+{
+  public static native void do_errorname_tests ();
+
+  public static void main (String[] args)
+  {
+    System.out.println ("JVMTI GetErrorName tests");
+    do_errorname_tests ();
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jvmti/geterrorname.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jvmti/geterrorname.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jvmti/geterrorname.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jvmti/geterrorname.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,49 @@
+JVMTI GetErrorName tests
+none
+null pointer
+out of memory
+access denied
+wrong phase
+internal error
+unattached thread
+invalid environment
+invalid priority
+thread not suspended
+thread suspended
+thread not alive
+class not prepared
+no more frames
+opaque frame
+duplicate
+not found
+not monitor owner
+interrupted
+unmodifiable class
+not available
+absent information
+invalid event type
+native method
+invalid thread
+invalid thread group
+invalid object
+invalid class
+invalid method ID
+invalid location
+invalid field ID
+type mismatch
+invalid slot
+invalid monitor
+invalid class format
+circular class definition
+unsupported redefinition: method added
+unsupported redefinition: schema changed
+invalid type state
+fails verification
+unsupported redefinition: hierarchy changed
+unsupported redefinition: method deleted
+unsupported version
+names do not match
+unsupported redefinition: class modifiers changed
+unsupported redefinition: method modifiers changed
+must possess capability
+illegal argument

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jvmti/jvmti.exp
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jvmti/jvmti.exp?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jvmti/jvmti.exp (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jvmti/jvmti.exp Thu Nov  8 16:56:19 2007
@@ -0,0 +1,122 @@
+# Tests for JVMTI code.
+
+# Compile a single C++ file and produce a .o file.  OPTIONS is a list
+# of options to pass to the compiler.  Returns 0 on failure, 1 on
+# success.
+proc gcj_jvmti_compile_cxx_to_o {file {options {}}} {
+  global srcdir
+  global objdir
+
+  set name [file rootname [file tail $file]]
+  set oname ${name}.o
+
+  # Find the generated header.
+  lappend options "additional_flags=-g -I. -I.."
+  # Find libgcj headers.
+  lappend options "additional_flags=-I$srcdir/.."
+  # Find jvmti.h, jvmti_md.h, jvmti-int.h, jvm.h requirements
+  lappend options "additional_flags=-I$srcdir/../include -I$srcdir/../classpath/include -I$objdir/../include -I$objdir/../../boehm-gc/include"
+
+  set x [libjava_prune_warnings \
+	   [target_compile $file $oname object $options]]
+  if {$x != ""} {
+    verbose "target_compile failed: $x" 2
+    fail "[file tail $file] compilation"
+    return 0
+  }
+
+  pass "[file tail $file] compilation"
+  return 1
+}
+
+# Build header files given name of .java file.  Return 0 on failure.
+proc gcj_jvmti_build_headers {file} {
+  set gcjh [find_gcjh]
+  set jvscan [find_jvscan]
+
+  set class_out [string trim \
+		   [libjava_prune_warnings \
+		      [lindex [local_exec "$jvscan --encoding=UTF-8 $file --list-class" "" "" 300] 1]]]
+  if {[string match "*parse error*" $class_out]} {
+    fail "$file header generation"
+    return 0
+  }
+
+  foreach file [split $class_out] {
+    set x [string trim [libjava_prune_warnings \
+			  [lindex [local_exec "$gcjh $file" "" "" 300] 1]]]
+    if {$x != ""} {
+      verbose "local_exec failed: $x" 2
+      fail "$file header generation"
+      return 0
+    }
+  }
+
+  pass "$file header generation"
+  return 1
+}
+
+# Do all the work for a single JVMTI test.  Return 0 on failure.
+proc gcj_jvmti_test_one {file} {
+  global runtests
+
+  # The base name.  We use it for several purposes.
+  set main [file rootname [file tail $file]]
+  if {! [runtest_file_p $runtests $main]} {
+    # Simply skip it.
+    return 1
+  }
+
+  if {! [bytecompile_file $file [pwd]]} {
+    fail "bytecompile $file"
+    # FIXME - should use `untested' on all remaining tests.
+    # But that is hard.
+    return 0
+  }
+  pass "bytecompile $file"
+
+  if {! [gcj_jvmti_build_headers $file]} {
+    # FIXME
+    return 0
+  }
+
+  set cfile [file join [file dirname $file] nat$main.cc]
+  if {! [gcj_jvmti_compile_cxx_to_o $cfile]} {
+    # FIXME
+    return 0
+  }
+
+  if {! [gcj_link $main $main [list $file nat$main.o]]} {
+    # FIXME
+    return 0
+  }
+
+  if {! [gcj_invoke $main [file rootname $file].out {}]} {
+    # FIXME
+    return 0
+  }
+
+  # When we succeed we remove all our clutter.
+  eval gcj_cleanup [glob -nocomplain -- ${main}.*] [list $main nat$main.o]
+
+  return 1
+}
+
+# Run the JVMTI tests.
+proc gcj_jvmti_run {} {
+  global srcdir subdir
+  global build_triplet host_triplet
+
+  # For now we only test JVMTI on native builds.
+  if {$build_triplet == $host_triplet} {
+    catch { lsort [glob -nocomplain ${srcdir}/${subdir}/*.java] } srcfiles
+
+    foreach x $srcfiles {
+      gcj_jvmti_test_one $x
+    }
+  } else {
+    verbose "JVMTI tests not run in cross-compilation environment"
+  }
+}
+
+gcj_jvmti_run

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jvmti/natevents.cc
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jvmti/natevents.cc?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jvmti/natevents.cc (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jvmti/natevents.cc Thu Nov  8 16:56:19 2007
@@ -0,0 +1,578 @@
+#include <gcj/cni.h>
+
+#include <jvm.h>
+#include <jvmti.h>
+#include <stdio.h>
+
+#include "jvmti-int.h"
+#include "events.h"
+
+void
+print_events ()
+{
+#define DO(X)					\
+  do						\
+    {						\
+      if (JVMTI_REQUESTED_EVENT (X))		\
+	printf (#X ",");			\
+    }						\
+  while (0)
+
+  printf ("RequestedEvents: ");
+  DO (VMInit);
+  DO (VMDeath);
+  DO (ThreadStart);
+  DO (ThreadEnd);
+  DO (ClassFileLoadHook);
+  DO (ClassLoad);
+  DO (ClassPrepare);
+  DO (VMStart);
+  DO (Exception);
+  DO (ExceptionCatch);
+  DO (SingleStep);
+  DO (FramePop);
+  DO (Breakpoint);
+  DO (FieldAccess);
+  DO (FieldModification);
+  DO (MethodEntry);
+  DO (MethodExit);
+  DO (NativeMethodBind);
+  DO (CompiledMethodLoad);
+  DO (CompiledMethodUnload);
+  DO (DynamicCodeGenerated);
+  DO (DataDumpRequest);
+  DO (MonitorWait);
+  DO (MonitorWaited);
+  DO (MonitorContendedEnter);
+  DO (MonitorContendedEntered);
+  DO (GarbageCollectionStart);
+  DO (GarbageCollectionFinish);
+  DO (ObjectFree);
+  DO (VMObjectAlloc);
+  printf ("\n");
+#undef DO
+}
+
+static void
+VMInitCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread)
+{
+  printf ("VMInitCB jni_env=%#llx thread=%#llx\n",
+	  (unsigned long long) jni_env, (unsigned long long) thread);
+}
+
+static void
+VMDeathCB (jvmtiEnv *env, JNIEnv *jni_env)
+{
+  printf ("VMDeathCB jni_env=%#llx\n", (unsigned long long) jni_env);
+}
+
+static void
+ThreadStartCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread)
+{
+  printf ("ThreadStartCB jni_env=%#llx thread=%#llx\n",
+	  (unsigned long long) jni_env, (unsigned long long) thread);
+}
+
+static void
+ThreadEndCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread)
+{
+  printf ("ThreadEndCB jni_env=%#llx thread=%#llx\n",
+	  (unsigned long long) jni_env, (unsigned long long) thread);
+}
+
+static void
+ClassFileLoadHookCB (jvmtiEnv *env, JNIEnv *jni_env,
+		     jclass class_being_redefined, jobject loader,
+		     const char *name, jobject protection_domain,
+		     jint class_data_len, const unsigned char *class_data,
+		     jint *new_class_data_len, unsigned char **new_class_data)
+{
+  printf ("ClassFileLoadHookCB jni_env=%#llx class_being_redefined=%#llx"
+	  " loader=%#llx", (unsigned long long) jni_env, (unsigned long long)
+	  class_being_redefined, (unsigned long long) loader);
+  printf (" name=%s protection_domain=%#llx class_data_len=%d class_data=%#llx",
+	  name, (unsigned long long) protection_domain, (int) class_data_len,
+	  (unsigned long long) class_data);
+  printf (" new_class_data_len=%#llx new_class_data=%#llx\n",
+	  (unsigned long long) new_class_data_len, (unsigned long long)
+	  new_class_data);
+}
+
+static void
+ClassLoadCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread, jclass klass)
+{
+  printf ("ClassLoadCB jni_env=%#llx thread=%#llx klass=%#llx\n",
+	  (unsigned long long) jni_env, (unsigned long long) thread,
+	  (unsigned long long) klass);
+}
+
+static void
+ClassPrepareCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread, jclass klass)
+{
+  printf ("ClassPrepareCB jni_env=%#llx thread=%#llx klass=%#llx\n",
+	  (unsigned long long)jni_env, (unsigned long long) thread,
+	  (unsigned long long) klass);
+}
+
+static void
+VMStartCB (jvmtiEnv *env, JNIEnv *jni_env)
+{
+  printf ("VMStartCB jni_env=%#llx\n", (unsigned long long) jni_env);
+}
+
+static void
+ExceptionCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread, jmethodID method,
+	     jlocation location, jobject exception, jmethodID catch_method,
+	     jlocation catch_location)
+{
+  printf ("ExceptionCB jni_env=%#llx thread=%#llx method=%#llx location=%#llx",
+	  (unsigned long long) jni_env, (unsigned long long) thread,
+	  (unsigned long long) method, (unsigned long long) location);
+  printf (" exception=%#llx catch_method=%#llx catch_location=%#llx\n",
+	  (unsigned long long) exception, (unsigned long long) catch_method,
+	  (unsigned long long) catch_location);
+}
+
+static void
+ExceptionCatchCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread,
+		  jmethodID method, jlocation location, jobject exception)
+{
+  printf ("ExceptionCatchCB jni_env=%#llx thread=%#llx method=%#llx"
+	  " location=%#llx",
+	  (unsigned long long) jni_env, (unsigned long long) thread,
+	  (unsigned long long) method, (unsigned long long) location);
+  printf (" exception=%#llx\n", (unsigned long long) exception);
+}
+
+static void
+SingleStepCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread, jmethodID method,
+	      jlocation location)
+{
+  printf ("SingleStepCB jni_env=%#llx thread=%#llx method=%#llx"
+	  " location=%#llx\n",
+	  (unsigned long long) jni_env, (unsigned long long) thread,
+	  (unsigned long long) method, (unsigned long long) location);
+}
+
+static void
+FramePopCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread, jmethodID method,
+	    jboolean was_popped_by_exception)
+{
+  printf ("FramePopCB jni_env=%#llx thread=%#llx method=%#llx",
+	  (unsigned long long) jni_env, (unsigned long long) thread,
+	  (unsigned long long) method);
+  printf (" was_pooped_by_exception=%d\n", (was_popped_by_exception ?
+					    1 : 0));
+}
+
+static void
+BreakpointCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread, jmethodID method,
+	      jlocation location)
+{
+  printf ("BreakpointCB  jni_env=%#llx thread=%#llx method=%#llx"
+	  " location=%#llx\n", (unsigned long long) jni_env,
+	  (unsigned long long) thread, (unsigned long long) method,
+	  (unsigned long long) location);
+}
+
+static void
+FieldAccessCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread,
+	       jmethodID method, jlocation location, jclass field_klass,
+	       jobject object, jfieldID field)
+{
+  printf ("FieldAccessCB jni_env=%#llx thread=%#llx method=%#llx"
+	  " location=%#llx", (unsigned long long) jni_env, (unsigned long long)
+	  thread, (unsigned long long) method, (unsigned long long) location);
+  printf (" field_klass=%#llx object=%#llx field=%#llx\n", (unsigned long long)
+	  field_klass, (unsigned long long) object, (unsigned long long) field);
+}
+
+static void
+FieldModificationCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread,
+		     jmethodID method, jlocation location, jclass field_klass,
+		     jobject object, jfieldID field, char signature_type,
+		     jvalue new_value)
+
+{
+  printf ("FieldModificationCB  jni_env=%#llx thread=%#llx method=%#llx"
+	  " location=%#llx", (unsigned long long) jni_env, (unsigned long long)
+	  thread, (unsigned long long) method, (unsigned long long) location);
+  printf (" field_klass=%#llx object=%#llx field=%#llx signature_type=%c",
+	  (unsigned long long) field_klass, (unsigned long long) object,
+	  (unsigned long long) field, signature_type);
+  printf (" new_value=%d\n", (int) new_value.i);
+}
+
+static void
+MethodEntryCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread,
+	       jmethodID method)
+{
+  printf ("MethodEntryCB jni_env=%#llx thread=%#llx method=%#llx\n",
+	  (unsigned long long) jni_env, (unsigned long long) thread,
+	  (unsigned long long) method);
+}
+
+static void
+MethodExitCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread,
+	      jmethodID method, jboolean was_popped_by_exception,
+	      jvalue return_value)
+{
+  printf ("MethodExitCB jni_env=%#llx thread=%#llx method=%#llx",
+	  (unsigned long long) jni_env, (unsigned long long) thread,
+	  (unsigned long long) method);
+  printf (" was_popped_by_exception=%d return_value=%d\n",
+	  (was_popped_by_exception) ? 1 : 0, (int) return_value.i);
+}
+
+static void
+NativeMethodBindCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread,
+		    jmethodID method, void *address, void **new_address_ptr)
+{
+  printf ("NativeMethodBindCB jni_env=%#llx thread=%#llx method=%#llx",
+	  (unsigned long long) jni_env, (unsigned long long) thread,
+	  (unsigned long long) method);
+  printf (" address=%#llx new_address_ptr=%#llx\n", (unsigned long long)
+	  address, (unsigned long long) new_address_ptr);
+}
+
+static void
+CompiledMethodLoadCB (jvmtiEnv *env, jmethodID method, jint code_size,
+		      const void *code_addr, jint map_length,
+		      const jvmtiAddrLocationMap *map,
+		      const void *compile_info)
+{
+  printf ("CompiledMethodLoadCB method=%#llx code_size=%#llx code_addr=%#llx",
+	  (unsigned long long) method, (unsigned long long) code_size,
+	  (unsigned long long) code_addr);
+  printf (" map_length=%d map=%#llx compile_info=%#llx\n", (int) map_length,
+	  (unsigned long long) map, (unsigned long long) compile_info);
+}
+
+static void
+CompiledMethodUnloadCB (jvmtiEnv *env, jmethodID method, const void *code_addr)
+{
+  printf ("CompiledMethodUnloadCB method=%#llx code_addr=%#llx\n",
+	  (unsigned long long) method, (unsigned long long) code_addr);
+}
+
+static void
+DynamicCodeGeneratedCB (jvmtiEnv *env, const char *name, const void *address,
+			jint length)
+{
+  printf ("DynamicCodeGeneratedCB name=%s address=%#llx length=%d\n", name,
+	  (unsigned long long) address, (int) length);
+}
+
+static void
+DataDumpRequestCB (jvmtiEnv *env)
+{
+  printf ("DataDumpRequestCB\n");
+}
+
+static void
+MonitorWaitCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread, jobject object,
+	       jlong timeout)
+{
+  printf ("MonitorWaitCB jni_env=%#llx thread=%#llx object=%#llx timeout=%ld\n",
+	  (unsigned long long) jni_env, (unsigned long long) thread,
+	  (unsigned long long) object, (long) timeout);
+}
+
+static void
+MonitorWaitedCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread,
+		 jobject object, jboolean timed_out)
+{
+  printf ("MonitorWaitedCB jni_env=%#llx thread=%#llx object=%#llx"
+	  " timed_out=%d\n", (unsigned long long) jni_env, (unsigned long long)
+	  thread, (unsigned long long) object, (timed_out) ? 1 : 0);
+}
+
+static void
+MonitorContendedEnterCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread,
+			 jobject object)
+{
+  printf ("MonitorContendedEnterCB jni_env=%#llx thread=%#llx object=%#llx\n",
+	  (unsigned long long) jni_env, (unsigned long long) thread,
+	  (unsigned long long) object);
+}
+
+static void
+MonitorContendedEnteredCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread,
+			   jobject object)
+{
+  printf ("MonitorContendedEnteredCB jni_env=%#llx thread=%#llx object=%#llx\n",
+	  (unsigned long long) jni_env, (unsigned long long) thread,
+	  (unsigned long long) object);
+}
+
+static void
+GarbageCollectionStartCB (jvmtiEnv *env)
+{
+  printf ("GarbageCollectionStartCB\n");
+}
+
+static void
+GarbageCollectionFinishCB (jvmtiEnv *env)
+{
+  printf ("GarbageCollectionFinishCB\n");
+}
+
+static void
+ObjectFreeCB (jvmtiEnv *env, jlong tag)
+{
+  printf ("ObjectFreeCB tag=%ld\n", (long) tag);
+}
+
+static void
+VMObjectAllocCB (jvmtiEnv *env, JNIEnv *jni_env, jthread thread,
+		 jobject object, jclass object_klass, jlong size)
+{
+  printf ("VMObjectAllocCB jni_env=%#llx thread=%#llx object=%#llx",
+	  (unsigned long long) jni_env, (unsigned long long) thread,
+	  (unsigned long long) object);
+  printf (" object_klass=%#llx size=%ld\n", (unsigned long long) object_klass,
+	  (long) size);
+}
+
+static void
+do_enable_tests ()
+{
+  printf ("- enable tests -\n");
+  JavaVM *vm = _Jv_GetJavaVM ();
+  jvmtiEnv *env[3];
+  int i;
+  for (i = 0; i < 3; ++i)
+    {
+      vm->GetEnv (reinterpret_cast<void **> (&env[i]), JVMTI_VERSION_1_0);
+      printf ("created JVMTI environment #%d\n", i);
+    }
+
+  jvmtiEventCallbacks callbacks;
+  memset (&callbacks, 0, sizeof (jvmtiEventCallbacks));
+
+  printf ("setting callbacks for envs\n");
+  callbacks.VMInit = VMInitCB;
+  env[0]->SetEventCallbacks (&callbacks, sizeof (callbacks));
+  callbacks.VMDeath = VMDeathCB;
+  env[1]->SetEventCallbacks (&callbacks, sizeof (callbacks));
+  callbacks.ThreadEnd = ThreadEndCB;
+  env[2]->SetEventCallbacks (&callbacks, sizeof (callbacks));
+  print_events ();
+
+  printf ("enable VM_INIT for env0, env1, env2\n");
+  env[0]->SetEventNotificationMode (JVMTI_ENABLE, JVMTI_EVENT_VM_INIT, NULL);
+  env[1]->SetEventNotificationMode (JVMTI_ENABLE, JVMTI_EVENT_VM_INIT, NULL);
+  env[2]->SetEventNotificationMode (JVMTI_ENABLE, JVMTI_EVENT_VM_INIT, NULL);
+  print_events ();
+
+  printf ("enable VM_DEATH for env1,env2\n");
+  env[1]->SetEventNotificationMode (JVMTI_ENABLE, JVMTI_EVENT_VM_DEATH, NULL);
+  env[2]->SetEventNotificationMode (JVMTI_ENABLE, JVMTI_EVENT_VM_DEATH, NULL);
+  print_events ();
+
+  /* Used to use a non-NULL event thread, but that causes problems
+     when SetEventNotificationMode tries to validate the thread. */
+  printf ("enable THREAD_END for env2\n");
+  env[2]->SetEventNotificationMode (JVMTI_ENABLE, JVMTI_EVENT_THREAD_END,
+				    NULL);
+  print_events ();
+
+  printf ("disposing of env1\n");
+  env[1]->DisposeEnvironment ();
+  print_events ();
+
+  printf ("disposing of env0\n");
+  env[0]->DisposeEnvironment ();
+  print_events ();
+
+  printf ("disable VMInit in env2\n");
+  env[2]->SetEventNotificationMode (JVMTI_DISABLE, JVMTI_EVENT_VM_INIT, NULL);
+  print_events ();
+
+  printf ("clear VMDeath callback in env2\n");
+  callbacks.VMDeath = NULL;
+  env[2]->SetEventCallbacks (&callbacks, sizeof (callbacks));
+  print_events ();
+
+  printf ("sending VMInit\n");
+  _Jv_JVMTI_PostEvent (JVMTI_EVENT_VM_INIT, (jthread) 0x1234,
+		       (JNIEnv *) 0x5678);
+
+  printf ("sending ThreadEnd\n");
+  _Jv_JVMTI_PostEvent (JVMTI_EVENT_THREAD_END, (jthread) 0x1234,
+		       (JNIEnv *) 0x5678);
+
+  /* See comment above re: SetEventNotificationMode and validity
+     checking
+  printf ("sending ThreadEnd (no match)\n");
+  _Jv_JVMTI_PostEvent (JVMTI_EVENT_THREAD_END, (jthread) 0x4321,
+		       (JNIEnv *) 0x5678);
+  */
+
+  printf ("sending VMDeath\n");
+  _Jv_JVMTI_PostEvent (JVMTI_EVENT_VM_DEATH, (jthread) NULL,
+		       (JNIEnv *) 0x5678);
+
+  printf ("disposing of env2\n");
+  env[2]->DisposeEnvironment ();
+  print_events ();
+}
+
+static void
+do_callback_arg_tests ()
+{
+  printf ("- callback arg tests -\n");
+  JavaVM *vm = _Jv_GetJavaVM ();
+  jvmtiEnv *env;
+  vm->GetEnv (reinterpret_cast<void **> (&env), JVMTI_VERSION_1_0);
+
+  // Define all the callbacks
+#define DEFINE(Event) callbacks.Event = Event ## CB;
+  jvmtiEventCallbacks callbacks;
+  DEFINE(VMInit);
+  DEFINE(VMDeath);
+  DEFINE(ThreadStart);
+  DEFINE(ThreadEnd);
+  DEFINE(ClassFileLoadHook);
+  DEFINE(ClassLoad);
+  DEFINE(ClassPrepare);
+  DEFINE(VMStart);
+  DEFINE(Exception);
+  DEFINE(ExceptionCatch);
+  DEFINE(SingleStep);
+  DEFINE(FramePop);
+  DEFINE(Breakpoint);
+  DEFINE(FieldAccess);
+  DEFINE(FieldModification);
+  DEFINE(MethodEntry);
+  DEFINE(MethodExit);
+  DEFINE(NativeMethodBind);
+  DEFINE(CompiledMethodLoad);
+  DEFINE(CompiledMethodUnload);
+  DEFINE(DynamicCodeGenerated);
+  DEFINE(DataDumpRequest);
+  DEFINE(MonitorWait);
+  DEFINE(MonitorWaited);
+  DEFINE(MonitorContendedEnter);
+  DEFINE(MonitorContendedEntered);
+  DEFINE(GarbageCollectionStart);
+  DEFINE(GarbageCollectionFinish);
+  DEFINE(ObjectFree);
+  DEFINE(VMObjectAlloc);
+#undef DEFINE
+  env->SetEventCallbacks (&callbacks, sizeof (callbacks));
+
+  // Enable all the callbacks
+#define ENABLE(Event)							\
+  env->SetEventNotificationMode (JVMTI_ENABLE, JVMTI_EVENT_ ## Event, NULL)
+  ENABLE (VM_INIT);
+  ENABLE (VM_DEATH);
+  ENABLE (THREAD_START);
+  ENABLE (THREAD_END);
+  ENABLE (CLASS_FILE_LOAD_HOOK);
+  ENABLE (CLASS_LOAD);
+  ENABLE (CLASS_PREPARE);
+  ENABLE (VM_START);
+  ENABLE (EXCEPTION);
+  ENABLE (EXCEPTION_CATCH);
+  ENABLE (SINGLE_STEP);
+  ENABLE (FRAME_POP);
+  ENABLE (BREAKPOINT);
+  ENABLE (FIELD_ACCESS);
+  ENABLE (FIELD_MODIFICATION);
+  ENABLE (METHOD_ENTRY);
+  ENABLE (METHOD_EXIT);
+  ENABLE (NATIVE_METHOD_BIND);
+  ENABLE (COMPILED_METHOD_LOAD);
+  ENABLE (COMPILED_METHOD_UNLOAD);
+  ENABLE (DYNAMIC_CODE_GENERATED);
+  ENABLE (DATA_DUMP_REQUEST);
+  ENABLE (MONITOR_WAIT);
+  ENABLE (MONITOR_WAITED);
+  ENABLE (MONITOR_CONTENDED_ENTER);
+  ENABLE (MONITOR_CONTENDED_ENTERED);
+  ENABLE (GARBAGE_COLLECTION_START);
+  ENABLE (GARBAGE_COLLECTION_FINISH);
+  ENABLE (OBJECT_FREE);
+  ENABLE (VM_OBJECT_ALLOC);
+
+  // All events should now be enabled.
+  print_events ();
+
+  _Jv_JVMTI_PostEvent (JVMTI_EVENT_VM_INIT, (jthread) 0x2, (JNIEnv *) 0x1);
+  _Jv_JVMTI_PostEvent (JVMTI_EVENT_VM_DEATH, (jthread) 0x2, (JNIEnv *) 0x1);
+  _Jv_JVMTI_PostEvent (JVMTI_EVENT_THREAD_START, (jthread) 0x2,
+		       (JNIEnv *) 0x1);
+  _Jv_JVMTI_PostEvent (JVMTI_EVENT_THREAD_END, (jthread) 0x2,
+		       (JNIEnv *) 0x1);
+  _Jv_JVMTI_PostEvent (JVMTI_EVENT_CLASS_FILE_LOAD_HOOK, (jthread) 0xb00,
+		       (JNIEnv *) 0x1, (jclass) 0x2, (jobject) 0x3,
+		       "4", (jobject) 0x5, (jint) 6,
+		       (const unsigned char *) 0x7, (jint *) 0x8,
+		       (unsigned char **) 0x9);
+  _Jv_JVMTI_PostEvent (JVMTI_EVENT_CLASS_LOAD, (jthread) 0x2, (JNIEnv *) 0x1,
+		       (jclass) 0x3);
+  _Jv_JVMTI_PostEvent (JVMTI_EVENT_CLASS_PREPARE, (jthread) 0x2,
+		       (JNIEnv *) 0x1, (jclass) 0x3);
+  _Jv_JVMTI_PostEvent (JVMTI_EVENT_VM_START, (jthread) 0xb00, (JNIEnv *) 0x1);
+  _Jv_JVMTI_PostEvent (JVMTI_EVENT_EXCEPTION, (jthread) 0x2, (JNIEnv *) 0x1,
+		       (jmethodID) 0x3, (jlocation) 0x4, (jobject) 0x5,
+		       (jmethodID) 0x6, (jlocation) 0x7);
+  _Jv_JVMTI_PostEvent (JVMTI_EVENT_EXCEPTION_CATCH, (jthread) 0x2,
+		       (JNIEnv *) 0x1, (jmethodID) 0x3, (jlocation) 0x4,
+		       (jobject) 0x5);
+  _Jv_JVMTI_PostEvent (JVMTI_EVENT_SINGLE_STEP, (jthread) 0x2, (JNIEnv *) 0x1,
+		       (jmethodID) 0x3, (jlocation) 0x4);
+  _Jv_JVMTI_PostEvent (JVMTI_EVENT_FRAME_POP, (jthread) 0x2, (JNIEnv *) 0x1,
+		       (jmethodID) 0x3, 4);
+  _Jv_JVMTI_PostEvent (JVMTI_EVENT_BREAKPOINT, (jthread) 0x2, (JNIEnv *) 0x1,
+		       (jmethodID) 0x3, (jlocation) 0x4);
+  _Jv_JVMTI_PostEvent (JVMTI_EVENT_FIELD_ACCESS, (jthread) 0x2,
+		       (JNIEnv *) 0x1, (jmethodID) 0x3, (jlocation) 0x4,
+		       (jclass) 0x5, (jobject) 0x6, (jfieldID) 0x7);
+  jvalue value;
+  value.l = (jobject) 0x9;
+  _Jv_JVMTI_PostEvent (JVMTI_EVENT_FIELD_MODIFICATION, (jthread) 0x2,
+		       (JNIEnv *) 0x1, (jmethodID) 0x3, (jlocation) 0x4,
+		       (jclass) 0x5, (jobject) 0x6, (jfieldID) 0x7,
+		       (int) '8', value);
+  _Jv_JVMTI_PostEvent (JVMTI_EVENT_METHOD_ENTRY, (jthread) 0x2,
+		       (JNIEnv *) 0x1, (jmethodID) 0x3);
+  jvalue value2;
+  value2.i = 5;
+  _Jv_JVMTI_PostEvent (JVMTI_EVENT_METHOD_EXIT, (jthread) 0x2,
+		       (JNIEnv *) 0x1, (jmethodID) 0x3, 4, value2);
+  _Jv_JVMTI_PostEvent (JVMTI_EVENT_NATIVE_METHOD_BIND, (jthread) 0x2,
+		       (JNIEnv *) 0x1, (jmethodID) 0x3, (void *) 0x4,
+		       (void **) 0x5);
+  _Jv_JVMTI_PostEvent (JVMTI_EVENT_COMPILED_METHOD_LOAD, (jthread) 0xb00,
+		       (jmethodID) 0x1, (jint) 2, (const void *) 0x3,
+		       (jint) 4, (const jvmtiAddrLocationMap *) 0x5,
+		       (const void *) 0x6);
+  _Jv_JVMTI_PostEvent (JVMTI_EVENT_COMPILED_METHOD_UNLOAD, (jthread) 0xb00,
+		       (jmethodID) 0x1, (const void *) 0x2);
+  _Jv_JVMTI_PostEvent (JVMTI_EVENT_DYNAMIC_CODE_GENERATED, (jthread) 0xb00,
+		       "1", (const void *) 0x2, (jint) 3);
+  _Jv_JVMTI_PostEvent (JVMTI_EVENT_DATA_DUMP_REQUEST, (jthread) 0xb00);
+  _Jv_JVMTI_PostEvent (JVMTI_EVENT_MONITOR_WAIT, (jthread) 0x2,
+		       (JNIEnv *) 0x1, (jobject) 0x3, (jlong) 4);
+  _Jv_JVMTI_PostEvent (JVMTI_EVENT_MONITOR_WAITED, (jthread) 0x2,
+		       (JNIEnv *) 0x1, (jobject) 0x3, (int) 4);
+  _Jv_JVMTI_PostEvent (JVMTI_EVENT_MONITOR_CONTENDED_ENTER, (jthread) 0x2,
+		       (JNIEnv *) 0x1, (jobject) 0x3);
+  _Jv_JVMTI_PostEvent (JVMTI_EVENT_MONITOR_CONTENDED_ENTERED, (jthread) 0x2,
+		       (JNIEnv *) 0x1, (jobject) 0x3);
+  _Jv_JVMTI_PostEvent (JVMTI_EVENT_GARBAGE_COLLECTION_START, (jthread) 0xb00);
+  _Jv_JVMTI_PostEvent (JVMTI_EVENT_GARBAGE_COLLECTION_FINISH, (jthread) 0xb00);
+  _Jv_JVMTI_PostEvent (JVMTI_EVENT_OBJECT_FREE, (jthread) 0xb00, (jlong) 1);
+  _Jv_JVMTI_PostEvent (JVMTI_EVENT_VM_OBJECT_ALLOC, (jthread) 0x2,
+		       (JNIEnv *) 0x1, (jobject) 0x3, (jclass) 0x4,
+		       (jlong) 5);
+}
+
+void
+events::do_events_tests ()
+{
+  do_enable_tests ();
+  do_callback_arg_tests ();
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jvmti/natgeterrorname.cc
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jvmti/natgeterrorname.cc?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jvmti/natgeterrorname.cc (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.jvmti/natgeterrorname.cc Thu Nov  8 16:56:19 2007
@@ -0,0 +1,76 @@
+#include <gcj/cni.h>
+
+#include <jvm.h>
+#include <jvmti.h>
+#include <stdio.h>
+
+#include "jvmti-int.h"
+#include "geterrorname.h"
+
+static void
+get_error (jvmtiEnv *env, jvmtiError err)
+{
+  char *s;
+  env->GetErrorName (err, &s);
+  printf ("%s\n", s);
+  env->Deallocate (reinterpret_cast<unsigned char *> (s));
+}
+
+void
+geterrorname::do_errorname_tests ()
+{
+  jvmtiEnv *env;
+  JavaVM *vm = _Jv_GetJavaVM ();
+  vm->GetEnv (reinterpret_cast<void **> (&env), JVMTI_VERSION_1_0);
+
+  get_error (env, JVMTI_ERROR_NONE);
+  get_error (env, JVMTI_ERROR_NULL_POINTER);
+  get_error (env, JVMTI_ERROR_OUT_OF_MEMORY);
+  get_error (env, JVMTI_ERROR_ACCESS_DENIED);
+  get_error (env, JVMTI_ERROR_WRONG_PHASE);
+  get_error (env, JVMTI_ERROR_INTERNAL);
+  get_error (env, JVMTI_ERROR_UNATTACHED_THREAD);
+  get_error (env, JVMTI_ERROR_INVALID_ENVIRONMENT);
+  get_error (env, JVMTI_ERROR_INVALID_PRIORITY);
+  get_error (env, JVMTI_ERROR_THREAD_NOT_SUSPENDED);
+  get_error (env, JVMTI_ERROR_THREAD_SUSPENDED);
+  get_error (env, JVMTI_ERROR_THREAD_NOT_ALIVE);
+  get_error (env, JVMTI_ERROR_CLASS_NOT_PREPARED);
+  get_error (env, JVMTI_ERROR_NO_MORE_FRAMES);
+  get_error (env, JVMTI_ERROR_OPAQUE_FRAME);
+  get_error (env, JVMTI_ERROR_DUPLICATE);
+  get_error (env, JVMTI_ERROR_NOT_FOUND);
+  get_error (env, JVMTI_ERROR_NOT_MONITOR_OWNER);
+  get_error (env, JVMTI_ERROR_INTERRUPT);
+  get_error (env, JVMTI_ERROR_UNMODIFIABLE_CLASS);
+  get_error (env, JVMTI_ERROR_NOT_AVAILABLE);
+  get_error (env, JVMTI_ERROR_ABSENT_INFORMATION);
+  get_error (env, JVMTI_ERROR_INVALID_EVENT_TYPE);
+  get_error (env, JVMTI_ERROR_NATIVE_METHOD);
+  get_error (env, JVMTI_ERROR_INVALID_THREAD);
+  get_error (env, JVMTI_ERROR_INVALID_THREAD_GROUP);
+  get_error (env, JVMTI_ERROR_INVALID_OBJECT);
+  get_error (env, JVMTI_ERROR_INVALID_CLASS);
+  get_error (env, JVMTI_ERROR_INVALID_METHODID);
+  get_error (env, JVMTI_ERROR_INVALID_LOCATION);
+  get_error (env, JVMTI_ERROR_INVALID_FIELDID);
+  get_error (env, JVMTI_ERROR_TYPE_MISMATCH);
+  get_error (env, JVMTI_ERROR_INVALID_SLOT);
+  get_error (env, JVMTI_ERROR_INVALID_MONITOR);
+  get_error (env, JVMTI_ERROR_INVALID_CLASS_FORMAT);
+  get_error (env, JVMTI_ERROR_CIRCULAR_CLASS_DEFINITION);
+  get_error (env, JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_ADDED);
+  get_error (env, JVMTI_ERROR_UNSUPPORTED_REDEFINITION_SCHEMA_CHANGED);
+  get_error (env, JVMTI_ERROR_INVALID_TYPESTATE);
+  get_error (env, JVMTI_ERROR_FAILS_VERIFICATION);
+  get_error (env, JVMTI_ERROR_UNSUPPORTED_REDEFINITION_HIERARCHY_CHANGED);
+  get_error (env, JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_DELETED);
+  get_error (env, JVMTI_ERROR_UNSUPPORTED_VERSION);
+  get_error (env, JVMTI_ERROR_NAMES_DONT_MATCH);
+  get_error (env,
+	     JVMTI_ERROR_UNSUPPORTED_REDEFINITION_CLASS_MODIFIERS_CHANGED);
+  get_error (env,
+	     JVMTI_ERROR_UNSUPPORTED_REDEFINITION_METHOD_MODIFIERS_CHANGED);
+  get_error (env, JVMTI_ERROR_MUST_POSSESS_CAPABILITY);
+  get_error (env, JVMTI_ERROR_ILLEGAL_ARGUMENT);
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/ArrayStore.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/ArrayStore.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/ArrayStore.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/ArrayStore.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,52 @@
+public class ArrayStore
+{
+  public static void main(String[] args)
+  {
+    ArrayStore s = new ArrayStore();
+
+    /* Check that bounds check takes precedence over array store check. */
+    try 
+    {
+      s.a(new String[1]);
+    }
+    catch (Exception x)
+    {
+      System.out.println (x.getClass().getName());
+    }
+
+    try 
+    {
+      s.a(new String[2]);
+    }
+    catch (Exception x)
+    {
+      System.out.println (x.getClass().getName());
+    }
+
+    /* Check that += operator on String[] element works and throws bounds 
+       exception. */
+    try 
+    {
+      s.b(new String[1]);
+    }
+    catch (Exception x)
+    {
+      System.out.println (x.getClass().getName());
+    }
+
+    String[] sb = new String[2];
+    sb[1] = "foo";
+    s.b(sb);
+    System.out.println (sb[1]);
+  }
+
+  void a(Object[] oa)
+  {
+    oa[1] = new Integer(2);
+  }
+
+  void b(String[] sa)
+  {
+    sa[1] += "bar";
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/ArrayStore.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/ArrayStore.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/ArrayStore.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/ArrayStore.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,4 @@
+java.lang.ArrayIndexOutOfBoundsException
+java.lang.ArrayStoreException
+java.lang.ArrayIndexOutOfBoundsException
+foobar

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/ArrayStore.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/ArrayStore.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/ArrayStore.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/ArrayStore.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+xfail-byte-output

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/ArrayStore2.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/ArrayStore2.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/ArrayStore2.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/ArrayStore2.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,31 @@
+public class ArrayStore2
+{
+  public static void main(String[] args)
+  {
+    new ArrayStore2().a(new Object[2], 3);
+  }
+
+  void a(Object[] oa, int i)
+  {
+    try
+    {
+      oa[index()] = obj();
+    }
+    catch (Exception x)
+    {
+      System.out.println (x.getClass().getName());
+    }
+  }
+
+  int index()
+  {
+    System.out.println ("index");
+    return 3;
+  }
+
+  Object obj()
+  {
+    System.out.println ("rhs");
+    return new Object();
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/ArrayStore2.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/ArrayStore2.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/ArrayStore2.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/ArrayStore2.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,3 @@
+index
+rhs
+java.lang.ArrayIndexOutOfBoundsException

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/ArrayStore2.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/ArrayStore2.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/ArrayStore2.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/ArrayStore2.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+xfail-source-output

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Array_1.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Array_1.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Array_1.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Array_1.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,18 @@
+// Test of array stuff.  Technically this probably isn't in java.lang.
+
+public class Array_1
+{
+  public static void main (String[] args)
+  {
+    int x[][] = { { 1, 2}, null };
+
+    System.out.println(Cloneable.class.isInstance(x));
+
+    // This example is from the Java Spec book.
+    int y[][] = (int[][]) x.clone();
+    System.out.println(x == y);
+    System.out.println(x[0] == y[0] && x[1] == y[1]);
+
+    System.out.println(x.getClass().getSuperclass());
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Array_1.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Array_1.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Array_1.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Array_1.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,4 @@
+true
+false
+true
+class java.lang.Object

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Array_2.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Array_2.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Array_2.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Array_2.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,14 @@
+// Test to make sure multidimensional arrays work.
+// From Bryce McKinlay
+
+public class Array_2
+{
+  static final int a = 10, b = 15;
+
+  public static void main(String args[])
+  {
+    int[][] foo = new int [a][b];
+    System.out.println(foo.length);
+    System.out.println(foo[a-1].length);
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Array_2.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Array_2.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Array_2.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Array_2.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,2 @@
+10
+15

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Array_3.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Array_3.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Array_3.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Array_3.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,91 @@
+// Test to make sure null arrays throw the right execption
+
+public class Array_3
+{
+  static Object foo ()
+  {
+    return null;
+  }
+
+  static int[] bar ()
+  {
+    return null;
+  }
+
+  static int baz ()
+  {
+    int[] x = (int[])null;
+    int nn = x.length;
+    return 5;
+  }
+
+  public static void main(String args[])
+  {
+    boolean ok = false;
+    int nn = 0;
+
+    try
+      {
+	int[] x = (int[])foo();
+	nn = x.length;
+      }
+    catch (NullPointerException _)
+      {
+	ok = true;
+      }
+    if (!ok)
+      throw new RuntimeException("test failed:1");
+
+    ok = false;
+    try
+      {
+	int[] x = bar();
+	nn = x.length;
+      }
+    catch (NullPointerException _)
+      {
+	ok = true;
+      }
+    if (!ok)
+      throw new RuntimeException("test failed:2");
+
+    ok = false;
+    try
+      {
+	int[] x = bar();
+	nn = x[0];
+      }
+    catch (NullPointerException _)
+      {
+	ok = true;
+      }
+
+    if (!ok || nn != 0)
+      throw new RuntimeException("test failed:3");
+
+    ok = false;
+    try
+      {
+	int[] x = (int[])null;
+	nn = x.length;
+      }
+    catch (NullPointerException _)
+      {
+	ok = true;
+      }
+    if (!ok)
+      throw new RuntimeException("test failed:4");
+
+    ok = false;
+    try
+      {
+	nn = baz ();
+      }
+    catch (NullPointerException _)
+      {
+	ok = true;
+      }
+    if (!ok)
+      throw new RuntimeException("test failed:5");
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Array_3.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Array_3.out?rev=43913&view=auto

==============================================================================
    (empty)

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Class_1.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Class_1.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Class_1.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Class_1.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,46 @@
+class C {}
+class D extends C implements I {}
+interface I {}
+interface J extends I {}
+
+public class Class_1
+{
+  static void printIsAssignableFrom(Class a, Class b, boolean c)
+    {
+      // The field 'c' can be viewed to see the expected value.
+      System.out.println(a.isAssignableFrom(b));
+    }
+
+  public static void main (String arg[])
+  {
+    System.out.println("Testing class `Class_1'...");
+    printIsAssignableFrom(C.class, Object.class, false);
+    printIsAssignableFrom(C.class, C.class, true);
+    printIsAssignableFrom(C.class, D.class, true);
+    printIsAssignableFrom(D.class, C.class, false);
+
+    printIsAssignableFrom(Object.class, int[].class, true);
+    printIsAssignableFrom(int[].class, int[].class, true);
+    printIsAssignableFrom(C[].class, D.class, false);
+    printIsAssignableFrom(C[].class, D[].class, true);
+    printIsAssignableFrom(C[].class, C[][].class, false);
+
+    printIsAssignableFrom(Object.class, I.class, true);
+    printIsAssignableFrom(I.class, I.class, true);
+    printIsAssignableFrom(D.class, I.class, false);
+    printIsAssignableFrom(I.class, D.class, true);
+
+    printIsAssignableFrom(D.class, J.class, false);
+    printIsAssignableFrom(J.class, D.class, false);
+
+    printIsAssignableFrom(I.class, J.class, true);
+    printIsAssignableFrom(J.class, J.class, true);
+    printIsAssignableFrom(J.class, I.class, false);
+
+    // Returns true iff both Class objects are equal.
+    printIsAssignableFrom(long.class, long.class, true);
+
+    // Does not work for primitive types in general.
+    printIsAssignableFrom(long.class, int.class, false);
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Class_1.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Class_1.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Class_1.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Class_1.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,21 @@
+Testing class `Class_1'...
+false
+true
+true
+false
+true
+true
+false
+true
+false
+true
+true
+false
+true
+false
+false
+true
+true
+false
+true
+false

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/CompareNaN.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/CompareNaN.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/CompareNaN.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/CompareNaN.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,15 @@
+/*
+ * JLS 4.2.3 specifies that (x op y) must be false if either x or y
+ * is NaN and op is one of <, >, <=, >=, or ==.
+ *
+ * Some targets may need specific options wired into libgcj.spec
+ * to pass this test.  For example, alpha-linux requires -mieee
+ * to prevent an unrecoverable fp trap.
+ */
+
+public class CompareNaN {
+  public static void main(String[] args) {
+    double x = Double.NaN;
+    System.out.println(x == x);
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/CompareNaN.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/CompareNaN.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/CompareNaN.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/CompareNaN.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+false

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Divide_1.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Divide_1.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Divide_1.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Divide_1.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,203 @@
+public class Divide_1
+{
+  static int b = Integer.parseInt ("-1");  
+  int b1 = Integer.parseInt ("-1");  
+  static int zero = Integer.parseInt ("0");
+
+  void probe_1 ()
+  {
+     try {
+      int a = Integer.parseInt ("-80000000", 16);
+      int c = a/b;
+      System.out.println (c);
+    } catch (Exception _) {
+      System.out.println (_);
+    }
+  
+    try {
+      int a = Integer.parseInt ("-80000000", 16);
+      int c = a/-1;
+      System.out.println (c);
+    } catch (Exception _) {
+      System.out.println (_);
+    }
+ 
+    try {
+      int a = Integer.parseInt ("-80000000", 16);
+      int c = a%b;
+      System.out.println (c);
+    } catch (Exception _) {
+      System.out.println (_);
+    }
+ 
+    try {
+      int a = Integer.parseInt ("-80000000", 16);
+      int c = a%b1;
+      System.out.println (c);
+    } catch (Exception _) {
+      System.out.println (_);
+    }
+ 
+    try {
+      int a = Integer.parseInt ("-80000000", 16);
+      int c = a%-1;
+      System.out.println (c);
+    } catch (Exception _) {
+      System.out.println (_);
+    }
+ 
+    try {
+      int a = Integer.parseInt ("8000", 16);
+      int b = Integer.parseInt ("0", 16);
+      int c = a/b;
+      System.out.println (c);
+    } catch (Exception _) {
+      System.out.println (_);
+    }
+ 
+    try {
+      int a = Integer.parseInt ("8000", 16);
+      int b = Integer.parseInt ("0", 16);
+      int c = a%b;
+      System.out.println (c);
+    } catch (Exception _) {
+      System.out.println (_);
+    }
+ 
+   try {
+      long a = Long.parseLong ("-8000000000000000", 16);
+      long c = a/b;
+      System.out.println (c);
+    } catch (Exception _) {
+      System.out.println (_);
+    }
+ 
+    try {
+      long a = Long.parseLong ("-8000000000000000", 16);
+      long c = a%b;
+      System.out.println (c);
+    } catch (Exception _) {
+      System.out.println (_);
+    }
+
+    try {
+      long a = Long.parseLong ("8000", 16);
+      long b = Long.parseLong ("0", 16);
+      long c = a/b;
+      System.out.println (c);
+    } catch (Exception _) {
+      System.out.println (_);
+    }
+ 
+    try {
+      long a = Long.parseLong ("8000", 16);
+      long b = Long.parseLong ("0", 16);
+      long c = a%b;
+      System.out.println (c);
+    } catch (Exception _) {
+      System.out.println (_);
+    }
+  }
+
+  void probe_2 ()
+  {
+    try {
+      int a = -0x80000000;
+      int c = a/b;
+      System.out.println (c);
+    } catch (Exception _) {
+      System.out.println (_);
+    }
+  
+    try {
+      int a = -0x80000000;
+      int c = a/-1;
+      System.out.println (c);
+    } catch (Exception _) {
+      System.out.println (_);
+    }
+ 
+    try {
+      int a = -0x80000000;
+      int c = a%b;
+      System.out.println (c);
+    } catch (Exception _) {
+      System.out.println (_);
+    }
+ 
+    try {
+      int a = -0x80000000;
+      int c = a%b1;
+      System.out.println (c);
+    } catch (Exception _) {
+      System.out.println (_);
+    }
+ 
+    try {
+      int a = -0x80000000;
+      int c = a%-1;
+      System.out.println (c);
+    } catch (Exception _) {
+      System.out.println (_);
+    }
+ 
+    try {
+      int a = 0x8000;
+      int b = 0;
+      int c = a/b;
+      System.out.println (c);
+    } catch (Exception _) {
+      System.out.println (_);
+    }
+ 
+    try {
+      int a = 0x8000;
+      int b = 0;
+      int c = a%b;
+      System.out.println (c);
+    } catch (Exception _) {
+      System.out.println (_);
+    }
+ 
+    try {
+      long a = -0x7fffffffffffffffL - 1;
+      long c = a/b;
+      System.out.println (c);
+    } catch (Exception _) {
+      System.out.println (_);
+    }
+ 
+    try {
+      long a = -0x7fffffffffffffffL - 1;
+      long c = a%b;
+      System.out.println (c);
+    } catch (Exception _) {
+      System.out.println (_);
+    }
+
+    try {
+      long a = 0x8000;
+      long b = 0;
+      long c = a/b;
+      System.out.println (c);
+    } catch (Exception _) {
+      System.out.println (_);
+    }
+ 
+    try {
+      long a = 0x8000;
+      long b = 0;
+      long c = a%b;
+      System.out.println (c);
+    } catch (Exception _) {
+      System.out.println (_);
+    }
+  }
+ 
+  public static void main (String[] args) 
+  {
+    Divide_1 d = new Divide_1 ();
+    d.probe_1 ();
+    d.probe_2 ();
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Divide_1.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Divide_1.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Divide_1.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Divide_1.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,22 @@
+-2147483648
+-2147483648
+0
+0
+0
+java.lang.ArithmeticException: / by zero
+java.lang.ArithmeticException: / by zero
+-9223372036854775808
+0
+java.lang.ArithmeticException: / by zero
+java.lang.ArithmeticException: / by zero
+-2147483648
+-2147483648
+0
+0
+0
+java.lang.ArithmeticException: / by zero
+java.lang.ArithmeticException: / by zero
+-9223372036854775808
+0
+java.lang.ArithmeticException: / by zero
+java.lang.ArithmeticException: / by zero

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/EvaluationOrder.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/EvaluationOrder.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/EvaluationOrder.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/EvaluationOrder.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,22 @@
+public class EvaluationOrder
+ {
+     private static int first (int x, int y)
+     {
+         return x;
+     }
+
+     public static void main (String[] args)
+     {
+         int l = args.length;
+
+         /* This should print:
+ 0
+ 0
+ 1
+         */
+         System.out.println (l);
+         System.out.println (first (l, ++l));
+         System.out.println (l);
+     }
+ }
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/EvaluationOrder.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/EvaluationOrder.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/EvaluationOrder.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/EvaluationOrder.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,3 @@
+0
+0
+1

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/ExtraClassLoader.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/ExtraClassLoader.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/ExtraClassLoader.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/ExtraClassLoader.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,36 @@
+// PR java/18036
+
+public class ExtraClassLoader extends ClassLoader
+{
+  public static void main(String args[]) throws Exception
+  {
+    ClassLoader loader = new ExtraClassLoader();
+    Class c = Class.forName("C", false, loader);
+    Object o = c.newInstance();
+    System.out.println(o.getClass() == c);
+    System.out.println(c.getClassLoader() == loader);
+  }
+
+  public Class findClass(String name) throws ClassNotFoundException
+  {
+    return defineClass("C", Cbytes, 0, Cbytes.length);
+  }
+
+ /*
+  * Generated by compiling the following program with gcj -C C.java:
+  *
+  * public class C
+  * {
+  *   public C() throws ClassNotFoundException
+  *   {
+  *     System.out.println(getClass() == Class.forName("C"));
+  *   }
+  * }
+  *
+  * And then processing the byte code as follows:
+  * od -w1000 -An -td1 C.class | sed "s/\ \+/,/g"
+  */
+  private static byte[] Cbytes = new byte[] {
+-54,-2,-70,-66,0,3,0,45,0,39,1,0,1,67,7,0,1,1,0,16,106,97,118,97,47,108,97,110,103,47,79,98,106,101,99,116,7,0,3,1,0,6,60,105,110,105,116,62,1,0,3,40,41,86,1,0,4,67,111,100,101,12,0,5,0,6,10,0,4,0,8,1,0,16,106,97,118,97,47,108,97,110,103,47,83,121,115,116,101,109,7,0,10,1,0,3,111,117,116,1,0,21,76,106,97,118,97,47,105,111,47,80,114,105,110,116,83,116,114,101,97,109,59,12,0,12,0,13,9,0,11,0,14,1,0,8,103,101,116,67,108,97,115,115,1,0,19,40,41,76,106,97,118,97,47,108,97,110,103,47,67,108,97,115,115,59,12,0,16,0,17,10,0,4,0,18,8,0,1,1,0,15,106,97,118,97,47,108,97,110,103,47,67,108,97,115,115,7,0,21,1,0,7,102,111,114,78,97,109,101,1,0,37,40,76,106,97,118,97,47,108,97,110,103,47,83,116,114,105,110,103,59,41,76,106,97,118,97,47,108,97,110,103,47,67,108,97,115,115,59,12,0,23,0,24,10,0,22,0,25,1,0,19,106,97,118,97,47,105,111,47,80,114,105,110,116,83,116,114,101,97,109,7,0,27,1,0,7,112,114,105,110,116,108,110,1,0,4,40,90,41,86,12,0,29,0,30,10,0,28,0,31,1,0,15,76,105,110,101,78,117,10!
 9,98,101,114,84,97,98,108,101,1,0,10,69,120,99,101,112,116,105,111,110,115,1,0,32,106,97,118,97,47,108,97,110,103,47,67,108,97,115,115,78,111,116,70,111,117,110,100,69,120,99,101,112,116,105,111,110,7,0,35,1,0,10,83,111,117,114,99,101,70,105,108,101,1,0,6,67,46,106,97,118,97,0,33,0,2,0,4,0,0,0,0,0,1,0,1,0,5,0,6,0,2,0,7,0,0,0,52,0,3,0,1,0,0,0,28,42,-73,0,9,-78,0,15,42,-74,0,19,18,20,-72,0,26,-90,0,7,4,-89,0,4,3,-74,0,32,-79,0,0,0,1,0,33,0,0,0,6,0,1,0,4,0,5,0,34,0,0,0,4,0,1,0,36,0,1,0,37,0,0,0,2,0,38
+  };
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/ExtraClassLoader.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/ExtraClassLoader.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/ExtraClassLoader.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/ExtraClassLoader.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,3 @@
+true
+true
+true

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/FileHandleGcTest.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/FileHandleGcTest.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/FileHandleGcTest.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/FileHandleGcTest.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,24 @@
+// Make sure that file handles are garbage collected.
+import java.io.*;
+public class FileHandleGcTest
+{
+  static void kill () throws FileNotFoundException
+  {
+    for (int i = 0; i < 65536; i++)
+      {
+	FileInputStream f = new FileInputStream ("/dev/null");
+      }
+  }
+
+  public static void
+  main (String argv [])
+  {
+    try
+      {
+	kill ();
+      }
+    catch (FileNotFoundException _)
+      {
+      }
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/FileHandleGcTest.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/FileHandleGcTest.out?rev=43913&view=auto

==============================================================================
    (empty)

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Final.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Final.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Final.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Final.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,20 @@
+public final class Final
+{
+  public static void main(String args[])
+    {
+      Final f = null;
+      try
+        {
+          f.doSomething();
+        }
+      catch (NullPointerException x)
+        {
+          System.out.println("NullPointerException - ok");
+        }
+    }
+
+  void doSomething()
+    {
+      System.out.println("This should not happen");
+    }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Final.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Final.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Final.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Final.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+NullPointerException - ok

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Float_1.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Float_1.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Float_1.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Float_1.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,52 @@
+/* 
+
+Date: 25 Aug 1998 16:04:00 -0000
+From: Andrew Haley <aph at pasanda.cygnus.co.uk>
+To: java-project at cygnus.com
+Subject: Help: vtable problem?
+
+My little program:
+
+-----------------------------------------------------------------------
+import java.lang.*;
+
+  public class widget
+  {
+    public static void main (String argv[])
+    {
+      int test = Float.floatToIntBits((float)2.0);
+      String s = Integer.toHexString(test);
+      
+      System.out.print (s+"\n");
+    }
+
+  }
+-----------------------------------------------------------------------
+prints out
+
+40000000
+
+with Sun's interpreter, but prints out
+
+true
+
+when compiled with gcj; PrintStream dispatches a string arg as a
+boolean rather than as a String.  I've tried to rebuild everything.
+
+?
+
+Thanks,
+Andrew.
+
+*/
+
+public class Float_1
+{
+  public static void main (String argv[])
+    {
+      int test = Float.floatToIntBits((float)2.0);
+      String s = Integer.toHexString(test);
+      
+      System.out.print (s+"\n");
+    }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Float_1.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Float_1.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Float_1.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Float_1.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+40000000

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Float_2.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Float_2.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Float_2.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Float_2.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,138 @@
+// Test floating-point to integer conversion.  We do this twice, once
+// with literal conversions that can be optimized away and once using
+// a static field that can't.
+
+public class Float_2
+{
+  public static double zero = 0.0;
+
+  public static void main (String argv[])
+  {
+    {
+      int itest = (int)(float)(0.0/0.0);
+      if (itest != 0)
+	System.err.println ("literal inf error 1: " + itest);	
+    }
+    {
+      int itest = (int)(0.0/0.0);
+      if (itest != 0)
+	System.err.println ("literal inf error 2" + itest);	
+    }
+    {
+      long ltest = (long)(0.0/0.0);
+      if (ltest != 0)
+	System.err.println ("literal inf error 3" + ltest);	
+    }
+    {
+      long ltest = (long)(float)(0.0/0.0);
+      if (ltest != 0)
+	System.err.println ("literal inf error 4" + ltest);	
+    }
+      
+    {
+      int itest = (int)(float)(1.0/0.0);
+      if (itest != Integer.MAX_VALUE)
+	System.err.println ("literal max error 1: " + itest);	
+    }
+    {
+      int itest = (int)(1.0/0.0);
+      if (itest != Integer.MAX_VALUE)
+	System.err.println ("literal max error 2" + itest);	
+    }
+    {
+      long ltest = (long)(1.0/0.0);
+      if (ltest != Long.MAX_VALUE)
+	System.err.println ("literal max error 3" + ltest);	
+    }
+    {
+      long ltest = (long)(float)(1.0/0.0);
+      if (ltest != Long.MAX_VALUE)
+	System.err.println ("literal max error 4" + ltest);	
+    }
+      
+    {
+      int itest = (int)(float)(-1.0/0.0);
+      if (itest != Integer.MIN_VALUE)
+	System.err.println ("literal min error 1: " + itest);	
+    }
+    {
+      int itest = (int)(-1.0/0.0);
+      if (itest != Integer.MIN_VALUE)
+	System.err.println ("literal min error 2" + itest);	
+    }
+    {
+      long ltest = (long)(-1.0/0.0);
+      if (ltest != Long.MIN_VALUE)
+	System.err.println ("literal min error 3" + ltest);	
+    }
+    {
+      long ltest = (long)(float)(-1.0/0.0);
+      if (ltest != Long.MIN_VALUE)
+	System.err.println ("literal min error 4" + ltest);	
+    }
+      
+    {
+      int itest = (int)(float)(zero/zero);
+      if (itest != 0)
+	System.err.println ("calc inf error 1: " + itest);	
+    }
+    {
+      int itest = (int)(zero/zero);
+      if (itest != 0)
+	System.err.println ("calc inf error 2" + itest);	
+    }
+    {
+      long ltest = (long)(zero/zero);
+      if (ltest != 0)
+	System.err.println ("calc inf error 3" + ltest);	
+    }
+    {
+      long ltest = (long)(float)(zero/zero);
+      if (ltest != 0)
+	System.err.println ("calc inf error 4" + ltest);	
+    }
+      
+    {
+      int itest = (int)(float)(1.0/zero);
+      if (itest != Integer.MAX_VALUE)
+	System.err.println ("calc max error 1: " + itest);	
+    }
+    {
+      int itest = (int)(1.0/zero);
+      if (itest != Integer.MAX_VALUE)
+	System.err.println ("calc max error 2" + itest);	
+    }
+    {
+      long ltest = (long)(1.0/zero);
+      if (ltest != Long.MAX_VALUE)
+	System.err.println ("calc max error 3" + ltest);	
+    }
+    {
+      long ltest = (long)(float)(1.0/zero);
+      if (ltest != Long.MAX_VALUE)
+	System.err.println ("calc max error 4" + ltest);	
+    }
+      
+    {
+      int itest = (int)(float)(-1.0/zero);
+      if (itest != Integer.MIN_VALUE)
+	System.err.println ("calc min error 1: " + itest);	
+    }
+    {
+      int itest = (int)(-1.0/zero);
+      if (itest != Integer.MIN_VALUE)
+	System.err.println ("calc min error 2" + itest);	
+    }
+    {
+      long ltest = (long)(-1.0/zero);
+      if (ltest != Long.MIN_VALUE)
+	System.err.println ("calc min error 3" + ltest);	
+    }
+    {
+      long ltest = (long)(float)(-1.0/zero);
+      if (ltest != Long.MIN_VALUE)
+	System.err.println ("calc min error 4" + ltest);	
+    }
+      
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Float_2.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Float_2.out?rev=43913&view=auto

==============================================================================
    (empty)

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/G19990301_01.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/G19990301_01.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/G19990301_01.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/G19990301_01.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,12 @@
+public class G19990301_01 {
+  public static void main(String args[]) {
+    foo pd = new foo();
+    System.out.println ("Pass 1");
+    pd.s = "test";
+    System.out.println ("Pass 2");
+  }
+}
+class foo {
+  static String s = "test";
+}
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/G19990301_01.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/G19990301_01.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/G19990301_01.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/G19990301_01.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,2 @@
+Pass 1
+Pass 2

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/G19990302_02.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/G19990302_02.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/G19990302_02.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/G19990302_02.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,15 @@
+public class G19990302_02 {
+  public static void main(String args[]) {
+    try {
+      Object[] arrayObj = new String[3];
+      String[] arrayStr = new String[3];
+      System.out.println ("Pass 1");
+      arrayObj[0] = arrayStr; // String object <-- String array object
+      System.out.println ("Pass 2");
+    } catch (ArrayStoreException e) {
+      System.out.println ("ArrayStoreException");
+    }
+    System.out.println ("Pass 3");
+  }
+}
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/G19990302_02.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/G19990302_02.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/G19990302_02.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/G19990302_02.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,3 @@
+Pass 1
+ArrayStoreException
+Pass 3

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/G19990303_01.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/G19990303_01.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/G19990303_01.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/G19990303_01.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,19 @@
+public class G19990303_01
+{
+  public static void main (String[] args)
+  {
+    try
+      {
+	Object[] ar = new String[3];
+	String[] as = new String[3];
+	System.out.println("1");
+	ar[0] = as;
+	System.out.println("2");
+      }
+    catch (Exception _)
+      {
+	System.out.println("X");
+      }
+    System.out.println("3");
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/G19990303_01.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/G19990303_01.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/G19990303_01.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/G19990303_01.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,3 @@
+1
+X
+3

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/G19990303_02.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/G19990303_02.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/G19990303_02.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/G19990303_02.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,19 @@
+public class G19990303_02
+{
+  public static void main (String[] args)
+  {
+    int i = -1;
+    try
+      {
+	System.out.println ("Pass 1");
+	int[][][] arrayInt = new int[i][1][1];
+	int ii = arrayInt[i - 1][0][0];
+	System.out.println ("Pass 2");
+      }
+    catch (NegativeArraySizeException e)
+      {
+	System.out.println ("Pass NegativeArraySizeException");
+      }
+    System.out.println ("Pass 3");
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/G19990303_02.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/G19990303_02.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/G19990303_02.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/G19990303_02.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,3 @@
+Pass 1
+Pass NegativeArraySizeException
+Pass 3

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/G19990304_01.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/G19990304_01.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/G19990304_01.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/G19990304_01.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,18 @@
+public class G19990304_01
+{
+  public static void main (String[] args)
+  {
+    Object[] arrayObj = new String[3];
+    String[] arrayStr = new String[3];
+    try
+      {
+	System.out.println ("pass 1");
+	arrayObj[0] = arrayStr;
+      }
+    catch (RuntimeException e)
+      {
+	System.out.println ("RuntimeException");
+      }
+    System.out.println ("pass 2");
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/G19990304_01.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/G19990304_01.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/G19990304_01.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/G19990304_01.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,3 @@
+pass 1
+RuntimeException
+pass 2

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/G19990310_01.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/G19990310_01.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/G19990310_01.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/G19990310_01.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,21 @@
+public class G19990310_01
+{
+  public static void main (String[] args)
+  {
+    int i = 0;
+    try
+      {
+	System.out.println ("pass 1");
+	i++;
+      }
+    finally
+      {
+	System.out.println ("pass 2");
+	i++;
+      }
+    if (i == 2)
+      System.out.println ("OK");
+    else
+      System.out.println ("NG i = " + i);
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/G19990310_01.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/G19990310_01.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/G19990310_01.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/G19990310_01.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,3 @@
+pass 1
+pass 2
+OK

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/II.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/II.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/II.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/II.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,16 @@
+public class II {
+  {
+    System.out.println("ii");
+  }
+  public II()
+  {
+  }
+  public II(int x)
+  {
+    this();
+  }
+  public static void main(String[] args)
+  {
+    new II(0);
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/II.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/II.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/II.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/II.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+ii

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/InterfaceDispatch.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/InterfaceDispatch.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/InterfaceDispatch.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/InterfaceDispatch.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,403 @@
+/* Test interface dispatch, type checking (instanceof), and casting. */
+
+interface IA
+{
+  String a();
+}
+
+interface IB extends IA
+{
+  String b();
+}
+
+interface IC extends IB
+{
+  void c();
+  int d();
+  IB e(int i);
+}
+
+interface ID
+{
+  String z();
+  String a();  
+}
+
+class CA
+{
+  String a()
+  {
+    return "CA a()";
+  }
+}
+
+class CB implements IB
+{
+  public String a()
+  {
+    return "CB a()";
+  }
+  
+  public String b()
+  {
+    return "CB b()";  
+  }
+}
+
+class CC extends CB
+{
+  public int d()
+  {
+    return 99;
+  }
+}
+
+class CD extends CC implements IC
+{
+  public String a()
+  {
+    return "CD a()";
+  }
+  
+  public void c()
+  {
+    System.out.println("CD c()");
+  }
+  
+  public int d()
+  {
+    return 6;
+  }
+  
+  public IB e(int i)
+  {
+    if (i == 1)
+      return new CB();
+    else
+      return new CD();
+  }
+}
+
+class CE extends CB implements IB, ID
+{
+  public String a()
+  {
+    return ("CE a()");
+  }
+  
+  public String b()
+  {
+    return ("CE b()");
+  }
+    
+  public String z()
+  {
+    return("CE z()");  
+  }
+}
+
+
+public class InterfaceDispatch
+{
+  public static void main(String args[])
+  {
+    new InterfaceDispatch();
+  }
+  
+  public InterfaceDispatch()
+  {
+    /* _Jv_InstanceOf */
+    
+    /* Object instanceof CLASS */
+    Object obj = new CA();
+    
+    if (obj instanceof CA)
+      {
+        System.out.println ("ok 1");
+      }
+    else
+      {
+        System.out.println ("FAIL 1");
+      }
+
+    obj = new CD();
+    
+    if (!(obj instanceof CA))
+      {
+        System.out.println ("ok 2a");
+      }
+    else
+      {
+        System.out.println ("FAIL 2a");
+      }
+
+    if (obj instanceof CB)
+      {
+        System.out.println ("ok 2b");
+      }
+    else
+      {
+        System.out.println ("FAIL 2b");
+      }
+
+    
+    /* Object instanceof INTERFACE */
+    obj = new CB();
+    
+    if (!(obj instanceof IC))
+      {
+        System.out.println("ok 3");
+      }
+    else
+      {
+        System.out.println ("FAIL 3");
+      }
+    
+    if (obj instanceof IB)
+      {
+        System.out.println("ok 4");
+      }
+    else
+      {
+        System.out.println ("FAIL 4");
+      }
+    
+    /* InterfaceRef instanceof INTERFACE */
+    
+    IA ia = new CB();
+    
+    if (ia instanceof IB)
+      {
+        System.out.println("ok 5");
+      }
+    else
+      {
+        System.out.println ("FAIL 5");
+      }
+    
+    
+    if (!(ia instanceof IC))
+      {
+        System.out.println("ok 6");
+      }
+    else
+      {
+        System.out.println ("FAIL 6");
+      }
+      
+    /* InterfaceRef instanceof CLASS */
+    
+    if (ia instanceof CB)
+      {
+        System.out.println("ok 7");
+      }
+    else
+      {
+        System.out.println ("FAIL 7");
+      }
+      
+    
+    if (!(ia instanceof CD))
+      {
+        System.out.println("ok 8");
+      }
+    else
+      {
+        System.out.println ("FAIL 8");
+      }    
+    
+    
+    /* _Jv_CheckCast */
+    Object obj_ca = new CA();
+    Object obj_cc = new CC();    
+    
+    IA ia2;
+    
+    try
+      {
+        ia2 = (IA) obj_cc;
+        System.out.println("ok 9");
+      }
+    catch (ClassCastException x)
+      {
+        System.out.println("FAIL 9");
+      }
+    
+    CD cd;
+    
+    try
+      {
+        cd = (CD) obj_ca;
+        System.out.println("FAIL 10");
+      }
+    catch (ClassCastException x)
+      {
+        System.out.println("ok 10");
+      }
+    
+    IA ia3;
+    
+    try
+      {
+        ia3 = (IB) obj_ca;
+        System.out.println("FAIL 11");
+      }
+    catch (ClassCastException x)
+      {
+        System.out.println("ok 11");
+      }
+      
+    /* _Jv_LookupInterfaceMethod */
+    Object obj_cb = new CB();
+    
+    IB ib = (IB) obj_cb;
+    ib.b();
+    if (ib.a().equalsIgnoreCase("CB a()"))
+      System.out.println("ok 12");
+    else
+      System.out.println("FAIL 12");
+      
+    IC ic = new CD();
+    if (ic.a().equalsIgnoreCase("CD a()"))
+      System.out.println("ok 13");
+    else
+      System.out.println("FAIL 13");
+          
+    if (ic.d() == 6)
+      System.out.println("ok 14");
+    else
+      System.out.println("FAIL 14");
+      
+    Object ce = new CE();
+    
+    ib = (IB) ce;
+    ID id = (ID) ce;
+    
+    if (ib.b().equals("CE b()") && id.a().equals("CE a()"))
+      System.out.println("ok 15");
+    else
+      System.out.println("FAIL 15");
+    
+    String t = ((ID)ce).z();
+    
+    if (t.equalsIgnoreCase("CE z()"))
+      System.out.println("ok 16");
+    else
+      System.out.println("FAIL 16");
+      
+    /* Array types */
+    
+    Object[] obj_a = new CC[10];
+    try
+      {
+        CB[] ca_a = (CB[]) obj_a;
+        System.out.println("ok 17");
+      }
+    catch (ClassCastException x)
+      {
+        System.out.println("FAIL 17");
+      }
+    
+    if (obj_a instanceof IB[])
+      {
+        System.out.println("ok 18");      
+      }
+    else
+      {
+        System.out.println("FAIL 18");      
+      }
+    
+    IB[] ib_a = new CD[5];
+    try 
+      {
+        CD[] cd_a = (CD[]) ib_a;
+        System.out.println("ok 19");
+      }
+    catch (ClassCastException x)
+      {
+        System.out.println("FAIL 19");
+      }
+      
+    CA[] ca_a;
+
+    try 
+      {
+        ca_a = (CA[]) ib_a;
+        System.out.println("FAIL 20");
+      }
+    catch (ClassCastException x)
+      {
+        System.out.println("ok 20");
+      }
+
+    
+    /* Primitive types */
+    
+    short[] short_a = new short[100];
+    
+    try
+      {
+        obj = short_a;
+        System.out.println("ok 21");
+      }
+    catch (ClassCastException x)
+      {
+        System.out.println("FAIL 21");      
+      }
+
+    try
+      {
+        short[] short_b = (short[]) obj;
+        System.out.println("ok 22");
+      }
+    catch (ClassCastException x)
+      {
+        System.out.println("FAIL 22");      
+      }
+
+    int[] short_b;
+
+    try
+      {
+        short_b = (int[]) obj;
+        System.out.println("FAIL 23");
+      }
+    catch (ClassCastException x)
+      {
+        System.out.println("ok 23");      
+      }
+
+    Object obj1 = new int[25];
+    
+    if (obj1 instanceof short[])
+      {
+        System.out.println("FAIL 24");      
+      }
+    else
+      {
+        System.out.println("ok 24");
+      }
+    
+    if (obj1 instanceof int[])
+      {
+        System.out.println("ok 25");
+      }
+    else
+      {
+        System.out.println("FAIL 25");
+      }
+      
+    /* null assignment */
+    
+    CA obj_ca2 = null;
+    
+    if (obj_ca2 instanceof CA)
+      {
+        System.out.println("FAIL 26");        
+      }
+    else
+      {
+        System.out.println("ok 26");
+      }
+  }  
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/InterfaceDispatch.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/InterfaceDispatch.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/InterfaceDispatch.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/InterfaceDispatch.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,27 @@
+ok 1
+ok 2a
+ok 2b
+ok 3
+ok 4
+ok 5
+ok 6
+ok 7
+ok 8
+ok 9
+ok 10
+ok 11
+ok 12
+ok 13
+ok 14
+ok 15
+ok 16
+ok 17
+ok 18
+ok 19
+ok 20
+ok 21
+ok 22
+ok 23
+ok 24
+ok 25
+ok 26

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/InvokeInterface.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/InvokeInterface.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/InvokeInterface.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/InvokeInterface.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,55 @@
+import java.lang.reflect.*;
+
+interface one
+{
+  int n(int N);
+}
+
+interface two
+{
+  int nn(int N);
+}
+
+interface three
+{
+  int nnn(int N);
+}
+
+class arse implements one, two
+{
+  public int n(int N) { return N; }
+  public int nn(int N) { return N*2; }
+}
+
+class arsey implements two, one, three
+{
+  public int n(int N) { return N*4; }
+  public int nn(int N) { return N*8; }
+  public int nnn(int N) { return N*16; }
+}
+
+public class InvokeInterface extends arse
+{
+  int f ()
+  {
+	return flunk.nn(1);
+  }
+  static two flunk = new arse();
+  static three flunkey = new arsey();
+  public static void main(String[] s) throws Throwable
+  {
+	Class[] argtypes = {Integer.TYPE};
+	Method m = two.class.getMethod("nn", argtypes);
+	Object[] args = {new Integer(1)};
+	System.out.println(flunk.nn(1));
+	System.out.println(m.invoke(new arse(), args));
+	m = arse.class.getMethod("nn", argtypes);
+	System.out.println(m.invoke(new arse(), args));
+	m = two.class.getMethod("nn", argtypes);
+	System.out.println(m.invoke(new arsey(), args));
+	m = three.class.getMethod("nnn", argtypes);
+	System.out.println(m.invoke(new arsey(), args));	
+	m = arsey.class.getMethod("nnn", argtypes);
+	System.out.println(m.invoke(new arsey(), args));	
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/InvokeInterface.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/InvokeInterface.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/InvokeInterface.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/InvokeInterface.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,6 @@
+2
+2
+2
+8
+16
+16

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/InvokeReturn.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/InvokeReturn.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/InvokeReturn.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/InvokeReturn.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,80 @@
+import java.lang.reflect.Method;
+
+// Test return values of Method.invoke.
+public class InvokeReturn {
+  public boolean bTrue() {
+    return true;
+  }
+
+  public boolean bFalse() {
+    return false;
+  }
+
+  public char cc() {
+    return 'c';
+  }
+
+  public short s5() {
+    return (short)5;
+  }
+
+  public int i6() {
+    return 6;
+  }
+
+  public long l7() {
+    return (long)7;
+  }
+
+  public float f8() {
+    return (float)8.0;
+  }
+
+  public double d9() {
+    return 9.0;
+  }
+
+  public static void main(String[] args) {
+    try {
+      Object o = new InvokeReturn();
+      Method m;
+
+      // test boolean result
+      m = o.getClass().getDeclaredMethod("bTrue", new Class[0]);
+      System.out.println(m.invoke(o, new Object[0]));
+
+      m = o.getClass().getDeclaredMethod("bFalse", new Class[0]);
+      System.out.println(m.invoke(o, new Object[0]));
+
+      // test char result
+      m = o.getClass().getDeclaredMethod("cc", new Class[0]);
+      System.out.println(m.invoke(o, new Object[0]));
+
+      // test short result
+      m = o.getClass().getDeclaredMethod("s5", new Class[0]);
+      System.out.println(m.invoke(o, new Object[0]));
+
+      // test int result
+      m = o.getClass().getDeclaredMethod("i6", new Class[0]);
+      System.out.println(m.invoke(o, new Object[0]));
+
+      // test long result
+      m = o.getClass().getDeclaredMethod("l7", new Class[0]);
+      System.out.println(m.invoke(o, new Object[0]));
+
+      // test float result
+      m = o.getClass().getDeclaredMethod("f8", new Class[0]);
+      System.out.println(m.invoke(o, new Object[0]));
+
+      // test double result
+      m = o.getClass().getDeclaredMethod("d9", new Class[0]);
+      System.out.println(m.invoke(o, new Object[0]));
+    } catch (UnsupportedOperationException e) {
+      // We get this on targets which don't support reflection (no
+      // libffi port yet).  We might as well fake PASSes. 
+      System.out.println("true\nfalse\nc\n5\n6\n7\n8.0\n9.0");
+    } catch (Throwable t) {
+      t.printStackTrace();
+    }
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/InvokeReturn.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/InvokeReturn.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/InvokeReturn.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/InvokeReturn.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,8 @@
+true
+false
+c
+5
+6
+7
+8.0
+9.0

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Invoke_1.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Invoke_1.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Invoke_1.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Invoke_1.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,27 @@
+// Test of failing method invocation.
+
+public class Invoke_1
+{
+  public void call_me ()
+    {
+      System.out.println ("no");
+    }
+
+  public static Invoke_1 get_i ()
+    {
+      return null;
+    }
+
+  public static void main (String[] args)
+    {
+      Invoke_1 i = get_i ();
+      try
+	{
+	  i.call_me ();
+	}
+      catch (NullPointerException ok)
+	{
+	  System.out.println ("ok");
+	}
+    }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Invoke_1.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Invoke_1.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Invoke_1.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Invoke_1.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+ok

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Invoke_2.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Invoke_2.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Invoke_2.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Invoke_2.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,20 @@
+public class Invoke_2
+{
+  static int s;
+  
+  public static void foo (int a, int b)
+  {
+    System.out.println(a + " " + b);
+  }
+
+  public static void main(String[] args) {
+    foo (bar(), s);
+  }
+
+  public static int bar() 
+  {
+    s = 33;
+    return 99;
+  }
+}
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Invoke_2.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Invoke_2.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Invoke_2.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Invoke_2.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+99 33

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/KeepInline.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/KeepInline.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/KeepInline.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/KeepInline.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,18 @@
+// Demonstrate that private methods can be reflected even if they are
+// not referenced at compile-time (i.e. -fkeep-inline-functions works).
+import java.lang.reflect.Method;
+public class KeepInline {
+  private void example() {
+    System.out.println("example");
+  }
+  public static void main(String[] args) {
+    try {
+      KeepInline pr = new KeepInline();
+      Method[] meths = pr.getClass().getDeclaredMethods();
+      for (int n = 0; n < meths.length; n++)
+        System.out.println(meths[n]);
+    } catch (Throwable t) {
+      t.printStackTrace();
+    }
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/KeepInline.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/KeepInline.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/KeepInline.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/KeepInline.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,2 @@
+private void KeepInline.example()
+public static void KeepInline.main(java.lang.String[])

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/LargeFile.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/LargeFile.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/LargeFile.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/LargeFile.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,36 @@
+/* Test to ensure files >= 2^31 bytes are supported. */
+
+import java.io.*;
+
+public class LargeFile
+{
+  public static void main(String[] args) throws IOException
+  {
+    File file = new File("LargeFile.tmp");
+
+    try
+      {
+	RandomAccessFile rfile = new RandomAccessFile(file, "rw");
+
+	long pos = (long) Math.pow(2, 31);
+
+	rfile.seek(pos);
+	rfile.write('O');
+	rfile.write('K');
+	rfile.close();
+
+	// Re-open, read byte back using FileInputStream and clean up.
+
+	FileInputStream fis = new FileInputStream(file);
+	fis.skip(pos);
+	System.out.print((char) fis.read());
+	System.out.println((char) fis.read());
+	fis.close();
+      }
+    finally
+      {
+        if (file.exists())
+	  file.delete();
+      }
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/LargeFile.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/LargeFile.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/LargeFile.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/LargeFile.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+OK

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/MathBuiltin.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/MathBuiltin.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/MathBuiltin.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/MathBuiltin.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,91 @@
+class MathBuiltin
+{
+  static double abs(double x)
+  {
+    return Math.abs(x);
+  }
+
+  static double acos(double x)
+  {
+    return Math.acos(x);
+  }
+
+  static double asin(double x)
+  {
+    return Math.asin(x);
+  }
+
+  static double atan(double x)
+  {
+    return Math.atan(x);
+  }
+
+  static double atan2(double x, double y)
+  {
+    return Math.atan2(x,y);
+  }
+
+  static double ceil(double x)
+  {
+    return Math.ceil(x);
+  }
+
+  static double cos(double x)
+  {
+    return Math.cos(x);
+  }
+
+  static double exp(double x)
+  {
+    return Math.exp(x);
+  }
+
+  static double floor(double x)
+  {
+    return Math.floor(x);
+  }
+
+  static double log(double x)
+  {
+    return Math.log(x);
+  }
+
+  static double max(double x, double y)
+  {
+    return Math.max(x,y);
+  }
+
+  static double min(double x, double y)
+  {
+    return Math.min(x,y);
+  }
+
+  static double pow(double x, double y)
+  {
+    return Math.pow(x,y);
+  }
+
+  static double sin(double x)
+  {
+    return Math.sin(x);
+  }
+
+  static double sqrt(double x)
+  {
+    return Math.sqrt(x);
+  }
+
+  static double tan(double x)
+  {
+    return Math.tan(x);
+  }
+
+  public static void main(String argv[])
+  {
+    double sum = abs (1.0) + acos (1.0) + asin (1.0) + atan (1.0)
+		 + atan2 (1.0, 1.0) + ceil (1.0) + cos (1.0) + exp (1.0)
+		 + floor (1.0) + log(1.0) + max(1.0, 1.0) + min (1.0, 1.0)
+		 + pow (1.0, 1.0) + sin (1.0) + sqrt(1.0) + tan(1.0);
+  }
+}
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/MathBuiltin.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/MathBuiltin.out?rev=43913&view=auto

==============================================================================
    (empty)

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Matrix4f.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Matrix4f.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Matrix4f.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Matrix4f.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,129 @@
+/*
+* Instance initializers are now turned into a new function instinit$ and called
+* from the ctor. SAVE_EXPRs can't be easily shared.
+*
+* Contributed by Adam King <aking at dreammechanics.com>
+*
+*/
+
+public class Matrix4f
+{
+        public float m00;
+        public float m01;
+        public float m02;
+        public float m03;
+        public float m10;
+        public float m11;
+        public float m12;
+        public float m13;
+        public float m20;
+        public float m21;
+        public float m22;
+        public float m23;
+        public float m30;
+        public float m31;
+        public float m32;
+        public float m33;
+
+        private float scale;
+
+        static boolean initialized;
+        static Matrix4f xmat;
+        static Matrix4f ymat;
+        static Matrix4f zmat;
+        static Matrix4f tempMatrix1;
+        static Matrix4f tempMatrix2;
+
+        {
+                if( !initialized )
+                {
+		    System.out.println ("not initialized");
+                        initialized = true;
+                        xmat = new Matrix4f();
+                        ymat = new Matrix4f();
+                        zmat = new Matrix4f();
+                        tempMatrix1 = new Matrix4f();
+                        tempMatrix2 = new Matrix4f();
+                }
+		else { System.out.println ("initialized"); }
+		    
+        }
+
+        public Matrix4f()
+        {
+                m00 = 1;
+                m01 = 0;
+                m02 = 0;
+                m03 = 0;
+                m10 = 0;
+                m11 = 1;
+                m12 = 0;
+                m13 = 0;
+                m20 = 0;
+                m21 = 0;
+                m22 = 1;
+                m23 = 0;
+                m30 = 0;
+                m31 = 0;
+                m32 = 0;
+                m33 = 1;
+        }
+
+        public Matrix4f( float v[] )
+        {
+                m00 = v[0];
+                m01 = v[1];
+                m02 = v[2];
+                m03 = v[3];
+                m10 = v[4];
+                m11 = v[5];
+                m12 = v[6];
+                m13 = v[7];
+                m20 = v[8];
+                m21 = v[9];
+                m22 = v[10];
+                m23 = v[11];
+                m30 = v[12];
+                m31 = v[13];
+                m32 = v[14];
+                m33 = v[15];
+        }
+
+        public Matrix4f( float m00, float m01, float m02, float m03,
+                float m10, float m11, float m12, float m13, 
+                float m20, float m21, float m22, float m23, 
+                float m30, float m31, float m32, float m33 )
+        {
+                this.m00 = m00;
+                this.m01 = m01;
+                this.m02 = m02;
+                this.m03 = m03;
+                this.m10 = m10;
+                this.m11 = m11;
+                this.m12 = m12;
+                this.m13 = m13;
+                this.m20 = m20;
+                this.m21 = m21;
+                this.m22 = m22;
+                this.m23 = m23;
+                this.m30 = m30;
+                this.m31 = m31;
+                this.m32 = m32;
+                this.m33 = m33;
+        }
+
+        public static void main( String[] args )
+        {
+	    System.out.println( "Test main..." );
+	    new Matrix4f ();
+	    new Matrix4f (0,0,0,0,
+			  0,0,0,0,
+			  0,0,0,0,
+			  0,0,0,0);
+	    new Matrix4f (new float [] {0,0,0,0,
+					0,0,0,0,
+					0,0,0,0,
+					0,0,0,0});
+        }
+}
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Matrix4f.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Matrix4f.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Matrix4f.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Matrix4f.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,9 @@
+Test main...
+not initialized
+initialized
+initialized
+initialized
+initialized
+initialized
+initialized
+initialized

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/N19990310_02.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/N19990310_02.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/N19990310_02.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/N19990310_02.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,22 @@
+/*--------------------------------------------------------------------------*/
+/* Name       : N19990310_02                                                */
+/*            :                                                             */
+/* Cause      : Array value calculation in for,while,do while loop is not   */
+/*            : correct                                                     */
+/*            :                                                             */
+/* Message    : NG:[3]-->[2]                                                */
+/*--------------------------------------------------------------------------*/
+
+public class N19990310_02 {
+	public static void main(String[] args) {
+		int y[] = {2};
+		for ( int i = 0; i < 1; i++ ) {
+			y[i] += 1;
+			if ( y[i] != 3 ) {
+				System.out.println("NG:[3]-->[" +y[i]+ "]");
+			}
+			else
+			  System.out.println("OK");
+		}
+	}
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/N19990310_02.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/N19990310_02.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/N19990310_02.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/N19990310_02.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+OK

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/N19990310_3.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/N19990310_3.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/N19990310_3.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/N19990310_3.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,24 @@
+/*--------------------------------------------------------------------------*/
+/* Name       : N19990310_3                                                 */
+/*            :                                                             */
+/* Cause      : Evaluation order miss, when make integer array.             */
+/*            :                                                             */
+/* Message    : NG:[4]-->[1]                                                */
+/*--------------------------------------------------------------------------*/
+
+public class N19990310_3 {
+	public static void main(String[] args) {
+
+		int x = 4; 
+
+		int ary[][] = new int[x][x=1];
+
+		if ( ary.length == 4 ) {
+			System.out.println("OK");
+		} else {
+			System.out.println("NG:[4]-->[" +ary.length+ "]");
+		}
+	}
+}
+
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/N19990310_3.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/N19990310_3.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/N19990310_3.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/N19990310_3.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+OK

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/N19990310_4.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/N19990310_4.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/N19990310_4.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/N19990310_4.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,27 @@
+/*--------------------------------------------------------------------------*/
+/* Name       : N19990310_4.java                                            */
+/*            :                                                             */
+/* Cause      : assignment operator makes error in char,byte,short variable */
+/*            :                                                             */
+/* Message    : In class `N19990310_4':                                     */
+/*            : In method `main(java.lang.String[])':                       */
+/*            : Incompatible type for `='. Explicit cast needed to convert `*/
+/*            : `int' to `char'.                                            */
+/*            :                 x += (x = 3);                               */
+/*            :                   ^                                         */
+/*            : 1 error                                                     */
+/*--------------------------------------------------------------------------*/
+
+public class N19990310_4 {
+	public static void main(String[] args) {
+		char x = 9;
+
+		x += (x = 3);
+		if ( x == 12 ) {
+			System.out.println("OK");
+		} else {
+			System.out.println("NG");
+		}
+	}
+}
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/N19990310_4.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/N19990310_4.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/N19990310_4.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/N19990310_4.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+OK

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/N19990310_5.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/N19990310_5.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/N19990310_5.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/N19990310_5.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,29 @@
+/*--------------------------------------------------------------------------*/
+/* Name       : N19990310_5.java                                            */
+/*            :                                                             */
+/* Cause      : A assignment operator makes error in char,byte,short array  */
+/*            : element                                                     */
+/*            :                                                             */
+/* Message    : In class `N19990310_5':                                     */
+/*            : In method `main(java.lang.String[])':                       */
+/*            : Incompatible type for `='. Explicit cast needed to convert `*/
+/*            : `int' to `char'.                                            */
+/*            :                 a[0] += (a[0] = 3);                         */
+/*            :                      ^                                      */
+/*            : 1 error                                                     */
+/*--------------------------------------------------------------------------*/
+
+public class N19990310_5 {
+	public static void main(String[] args) {
+		char[] a = {9};
+		a[0] += (a[0] = 3);
+
+		if ( a[0] == 12 ) {
+			System.out.println("OK");
+		} else {
+			System.out.println("NG");
+		}
+	}
+}
+
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/N19990310_5.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/N19990310_5.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/N19990310_5.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/N19990310_5.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+OK

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Overflow.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Overflow.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Overflow.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Overflow.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,16 @@
+class Overflow
+{
+  static int test(int x)
+  {
+    return (2*x)/2;
+  }
+
+  public static void main(String argv[])
+  {
+    int x = Integer.MAX_VALUE;
+
+    if (test(x) == x)
+      throw new RuntimeException ();
+  }
+}
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Overflow.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Overflow.out?rev=43913&view=auto

==============================================================================
    (empty)

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR12350.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR12350.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR12350.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR12350.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,20 @@
+public class PR12350
+{
+    static public void main (String[] ignored) throws Throwable
+    {
+	StringBuffer b = new StringBuffer ("Good string.  More than 16 chars.");
+
+	// Should cause sharing.
+	String s = b.toString();
+
+	// Take a char by char unshared copy of s.
+	String t = new String (s.toCharArray());
+
+	b.substring (0, 4);	// BUG: Clears shared flag.
+	b.replace (0, 4, "Bad "); // Modifies shared data.
+
+	System.out.println (s);
+	assert s.equals (t);
+    }
+
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR12350.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR12350.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR12350.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR12350.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+Good string.  More than 16 chars.

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR12416.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR12416.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR12416.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR12416.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,22 @@
+interface A
+{
+    int a = 0;
+}
+interface B extends A
+{
+}
+interface C extends A
+{
+}
+
+public class PR12416 implements B, C
+{
+    static public void main (String[] unused)
+    {
+	java.lang.reflect.Field[] fields = PR12416.class.getFields();
+
+	for (int i = 0; i != fields.length; ++i) {
+	    System.out.println (fields[i]);
+	}
+    }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR12416.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR12416.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR12416.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR12416.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+public static final int A.a

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR12656.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR12656.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR12656.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR12656.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,11 @@
+class PR12656_base
+{
+  public static void main(String[] args)
+  {
+    System.out.println("Maude");
+  }
+}
+
+public class PR12656 extends PR12656_base
+{
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR12656.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR12656.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR12656.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR12656.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+Maude

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR12915.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR12915.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR12915.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR12915.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,6 @@
+public class PR12915 {
+  public static void main(String[] args)
+  {
+    System.out.println(((String) null) + "");
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR12915.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR12915.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR12915.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR12915.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+null

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR141.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR141.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR141.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR141.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,41 @@
+import java.io.IOException;
+import java.io.StreamTokenizer;
+import java.io.StringReader;
+
+public class PR141 {
+  public static void test(String str) throws IOException {
+    StringReader reader = new StringReader(str);
+    StreamTokenizer st = new StreamTokenizer(reader);
+    int t = 0;
+    
+    do {
+      t = st.nextToken();
+      
+      switch (t) {
+      case StreamTokenizer.TT_WORD:
+	System.out.println("[TT_WORD]: " + st.sval);
+	break;
+      case StreamTokenizer.TT_NUMBER:
+	System.out.println("[TT_NUMBER]: " + st.nval);
+	break;
+      case StreamTokenizer.TT_EOL:
+	System.out.println("[TT_EOL]");
+	break;
+      case StreamTokenizer.TT_EOF:
+	System.out.println("[TT_EOF]");
+	break;
+      default:
+	System.out.println((char)t);
+	break;
+      }
+    } while (t != StreamTokenizer.TT_EOF);
+  }
+  
+  public static void main(String[] args) {
+    try {
+      test("(a).(b)");
+    } catch (Throwable t) {
+      t.printStackTrace();
+    }
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR141.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR141.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR141.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR141.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,8 @@
+(
+[TT_WORD]: a
+)
+[TT_NUMBER]: 0.0
+(
+[TT_WORD]: b
+)
+[TT_EOF]

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR160.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR160.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR160.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR160.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,34 @@
+public class PR160
+{
+  static final int len = 100;
+  
+  public static void main(String args[])
+  {
+    
+    double[] a = new double[len];
+    double[] b = new double[len];
+    
+    for (int i = 0; i < len ; i++)
+      {
+	a[i] = 0.65;
+      }
+    
+    System.arraycopy(a, 0, b, 0, len);
+    
+    boolean errors = false;
+    
+    for (int i = 0; i < len ; i++)
+      {
+	if (a[i] != b[i])
+	  {
+	    System.out.println("ERROR! " + a[i] + " != " 
+			       + b[i] + " at index " + i);
+	    errors = true;
+	  }
+      }
+    
+    if (!errors)
+      System.out.println("ok");
+    
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR160.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR160.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR160.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR160.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+ok

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR162.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR162.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR162.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR162.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,29 @@
+interface I
+{
+  int i = 1, ii = PR162.out ("ii", 2);
+}
+
+interface J extends I
+{
+  int j = PR162.out ("j", 3), jj = PR162.out ("jj", 4);
+}
+
+interface K extends J
+{
+  int k = PR162.out ("k", 5);
+}
+
+public class PR162
+{
+  public static void main (String[] args)
+  {
+    System.out.println (J.i);
+    System.out.println (K.j);
+  }
+
+  public static int out (String s, int i)
+  {
+    System.out.println (s + "=" + i);
+    return i;
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR162.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR162.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR162.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR162.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,4 @@
+1
+j=3
+jj=4
+3

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR16867.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR16867.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR16867.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR16867.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,17 @@
+/* SSA-DCE was removing the initialization of the temporary object
+   in getFoo because it wasn't realizing that the pointer was needed
+   outside of it.  */
+
+public class PR16867
+{
+  public static Object[] getFoo()
+  {
+    return new Object[] {"OK"};
+  }
+
+  public static void main(String[] args)
+  {
+    Object[] a = getFoo();
+    System.out.println(a[0]);
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR16867.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR16867.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR16867.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR16867.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+OK

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR18699.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR18699.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR18699.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR18699.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,36 @@
+// Test for thread-local allocation problems.
+
+import java.util.HashMap;
+import java.util.Observable;
+import java.util.Observer;
+
+class PR18699 extends Observable implements Runnable, Observer {
+
+  public static void main(String[] args) throws InterruptedException {
+    PR18699 PR18699_1 = new PR18699();
+    PR18699 PR18699_2 = new PR18699();
+    PR18699_1.addObserver(PR18699_2);
+    PR18699_2.addObserver(PR18699_1);
+    new Thread(PR18699_1).start();
+    new Thread(PR18699_2).start();
+  }
+
+  public void run() {
+    int c = 0;
+    String s = "";
+    while (++c < 50) {
+      this.setChanged();
+      s = "";
+      for (int i = 0; i < 200; i++)
+        s += String.valueOf(i);
+      this.notifyObservers(s);
+    }
+  }
+
+  HashMap map = new HashMap();
+  
+  public void update(Observable o, Object obj) 
+  {
+    map.put(o, obj);
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR18699.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR18699.out?rev=43913&view=auto

==============================================================================
    (empty)

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR19870.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR19870.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR19870.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR19870.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,44 @@
+// PR19870: Test static field access across nested class boundaries.
+//
+public class PR19870
+{
+  private static int x = 123;
+
+  static class Foo
+  {
+    private static int junk = 1000;
+
+    static void snafu( )
+    {
+      System.out.println( x);
+      x = 456;
+      System.out.println( PR19870.x);
+      PR19870.x = 789;
+      System.out.println( PR19870.x);
+
+      System.out.println( Bar.junk);
+    }
+  }
+
+  static class Bar
+  {
+    private static int junk = 1984;
+
+    static void snafu( )
+    {
+      System.out.println( Foo.junk);
+      Foo.junk = 2000;
+      System.out.println( Foo.junk);
+    }
+  }
+
+  public static void main( String[] args)
+  {
+    Foo.snafu( );
+    Bar.snafu( );
+
+    System.out.println( Foo.junk);
+    Foo.junk = 3000;
+    System.out.println( Foo.junk);
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR19870.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR19870.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR19870.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR19870.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,8 @@
+123
+456
+789
+1984
+1000
+2000
+2000
+3000

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR19870_2.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR19870_2.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR19870_2.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR19870_2.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,39 @@
+// PR19870: Test synthetic accessor generation for private static methods
+// accessed across nested class boundaries.
+public class PR19870_2
+{
+  static class A
+  {
+    private static void foo( )
+    {
+      System.out.println( "1");
+    }
+
+    private static void bar( int x)
+    {
+      System.out.println( x);
+      snafu( );
+      PR19870_2.snafu( );
+    }
+  }
+
+  static class B
+  {
+    private static void foo( )
+    {
+      A.foo( );
+    }
+  }
+
+  private static void snafu( )
+  {
+    System.out.println( "3");
+  }
+
+  public static void main( String[] args)
+  {
+    A.foo( );
+    A.bar( 2);
+    B.foo( );
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR19870_2.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR19870_2.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR19870_2.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR19870_2.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,5 @@
+1
+2
+3
+3
+1

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR19921.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR19921.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR19921.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR19921.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,11 @@
+interface I {
+    void f(Object x);
+}
+
+class PR19921 {
+    static void g(I i) {
+      // gcj used to create invalid bytecode for this.
+      i.f(new Object[1][1]);
+    }
+  public static void main(String[] args) { }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR19921.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR19921.out?rev=43913&view=auto

==============================================================================
    (empty)

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR20056.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR20056.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR20056.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR20056.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,13 @@
+public class PR20056 {
+  int x;
+  PR20056(int x) {}
+  PR20056(PR20056 f) {
+    // The verifier rejected the generated code in this case.
+    this(f.x = 0);
+  }
+
+  public static void main(String[] args)
+  {
+    System.out.println("maude");
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR20056.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR20056.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR20056.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR20056.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+maude

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR218.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR218.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR218.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR218.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,28 @@
+// Bug in gcj 20000427: Java executables can abort trying to access a null 
+// pointer in a leaf function.
+
+public class PR218
+{
+  private int i = 5;
+  
+  public static void main(String[] args)
+  {
+    try
+    {
+      new PR218().foo(null);
+    }
+    catch (NullPointerException x)
+    {
+      System.out.println(x);
+    }
+  }
+  
+  void foo(PR218 e)
+  {
+    e.i += 4;
+  };
+}
+
+// Expected output:
+//
+// java.lang.NullPointerException

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR218.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR218.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR218.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR218.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+java.lang.NullPointerException

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR242.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR242.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR242.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR242.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,36 @@
+class Base
+{
+  int someNum()
+  {
+    System.out.println ("ok");
+    return 0;
+  }
+}
+
+public class PR242 extends Base
+{
+  public static void main(String args[])
+  {
+    new PR242();
+  }
+  
+  PR242()
+  {
+    new Inner().a();
+  }
+     
+  class Inner
+  {
+    public int dummy()
+    {
+      System.out.println ("wrong method called!!");
+      return -1;
+    }
+  
+    public void a()
+    {
+      System.out.println ("...");
+      System.out.println (someNum());    
+    }
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR242.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR242.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR242.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR242.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,3 @@
+...
+ok
+0

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR25535.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR25535.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR25535.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR25535.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,5 @@
+public class PR25535 {
+     public static void main(String[] args) {
+         System.out.println(javax.rmi.CORBA.Stub.class);
+     }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR25535.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR25535.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR25535.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR25535.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+class javax.rmi.CORBA.Stub

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR260.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR260.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR260.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR260.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,15 @@
+class A
+{
+  static
+  {
+    System.out.println ("A initialized");
+  }
+}
+
+public class PR260
+{
+  public static void main(String args[])
+  {
+    Class klass = A.class;
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR260.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR260.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR260.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR260.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+A initialized

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR26858.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR26858.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR26858.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR26858.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,2075 @@
+public class PR26858
+{
+  public long f0000; public long f0001; public long f0002; public long f0003;
+  public long f0004; public long f0005; public long f0006; public long f0007;
+  public long f0008; public long f0009; public long f0010; public long f0011;
+  public long f0012; public long f0013; public long f0014; public long f0015;
+  public long f0016; public long f0017; public long f0018; public long f0019;
+  public long f0020; public long f0021; public long f0022; public long f0023;
+  public long f0024; public long f0025; public long f0026; public long f0027;
+  public long f0028; public long f0029; public long f0030; public long f0031;
+  public long f0032; public long f0033; public long f0034; public long f0035;
+  public long f0036; public long f0037; public long f0038; public long f0039;
+  public long f0040; public long f0041; public long f0042; public long f0043;
+  public long f0044; public long f0045; public long f0046; public long f0047;
+  public long f0048; public long f0049; public long f0050; public long f0051;
+  public long f0052; public long f0053; public long f0054; public long f0055;
+  public long f0056; public long f0057; public long f0058; public long f0059;
+  public long f0060; public long f0061; public long f0062; public long f0063;
+  public long f0064; public long f0065; public long f0066; public long f0067;
+  public long f0068; public long f0069; public long f0070; public long f0071;
+  public long f0072; public long f0073; public long f0074; public long f0075;
+  public long f0076; public long f0077; public long f0078; public long f0079;
+  public long f0080; public long f0081; public long f0082; public long f0083;
+  public long f0084; public long f0085; public long f0086; public long f0087;
+  public long f0088; public long f0089; public long f0090; public long f0091;
+  public long f0092; public long f0093; public long f0094; public long f0095;
+  public long f0096; public long f0097; public long f0098; public long f0099;
+  public long f0100; public long f0101; public long f0102; public long f0103;
+  public long f0104; public long f0105; public long f0106; public long f0107;
+  public long f0108; public long f0109; public long f0110; public long f0111;
+  public long f0112; public long f0113; public long f0114; public long f0115;
+  public long f0116; public long f0117; public long f0118; public long f0119;
+  public long f0120; public long f0121; public long f0122; public long f0123;
+  public long f0124; public long f0125; public long f0126; public long f0127;
+  public long f0128; public long f0129; public long f0130; public long f0131;
+  public long f0132; public long f0133; public long f0134; public long f0135;
+  public long f0136; public long f0137; public long f0138; public long f0139;
+  public long f0140; public long f0141; public long f0142; public long f0143;
+  public long f0144; public long f0145; public long f0146; public long f0147;
+  public long f0148; public long f0149; public long f0150; public long f0151;
+  public long f0152; public long f0153; public long f0154; public long f0155;
+  public long f0156; public long f0157; public long f0158; public long f0159;
+  public long f0160; public long f0161; public long f0162; public long f0163;
+  public long f0164; public long f0165; public long f0166; public long f0167;
+  public long f0168; public long f0169; public long f0170; public long f0171;
+  public long f0172; public long f0173; public long f0174; public long f0175;
+  public long f0176; public long f0177; public long f0178; public long f0179;
+  public long f0180; public long f0181; public long f0182; public long f0183;
+  public long f0184; public long f0185; public long f0186; public long f0187;
+  public long f0188; public long f0189; public long f0190; public long f0191;
+  public long f0192; public long f0193; public long f0194; public long f0195;
+  public long f0196; public long f0197; public long f0198; public long f0199;
+  public long f0200; public long f0201; public long f0202; public long f0203;
+  public long f0204; public long f0205; public long f0206; public long f0207;
+  public long f0208; public long f0209; public long f0210; public long f0211;
+  public long f0212; public long f0213; public long f0214; public long f0215;
+  public long f0216; public long f0217; public long f0218; public long f0219;
+  public long f0220; public long f0221; public long f0222; public long f0223;
+  public long f0224; public long f0225; public long f0226; public long f0227;
+  public long f0228; public long f0229; public long f0230; public long f0231;
+  public long f0232; public long f0233; public long f0234; public long f0235;
+  public long f0236; public long f0237; public long f0238; public long f0239;
+  public long f0240; public long f0241; public long f0242; public long f0243;
+  public long f0244; public long f0245; public long f0246; public long f0247;
+  public long f0248; public long f0249; public long f0250; public long f0251;
+  public long f0252; public long f0253; public long f0254; public long f0255;
+  public long f0256; public long f0257; public long f0258; public long f0259;
+  public long f0260; public long f0261; public long f0262; public long f0263;
+  public long f0264; public long f0265; public long f0266; public long f0267;
+  public long f0268; public long f0269; public long f0270; public long f0271;
+  public long f0272; public long f0273; public long f0274; public long f0275;
+  public long f0276; public long f0277; public long f0278; public long f0279;
+  public long f0280; public long f0281; public long f0282; public long f0283;
+  public long f0284; public long f0285; public long f0286; public long f0287;
+  public long f0288; public long f0289; public long f0290; public long f0291;
+  public long f0292; public long f0293; public long f0294; public long f0295;
+  public long f0296; public long f0297; public long f0298; public long f0299;
+  public long f0300; public long f0301; public long f0302; public long f0303;
+  public long f0304; public long f0305; public long f0306; public long f0307;
+  public long f0308; public long f0309; public long f0310; public long f0311;
+  public long f0312; public long f0313; public long f0314; public long f0315;
+  public long f0316; public long f0317; public long f0318; public long f0319;
+  public long f0320; public long f0321; public long f0322; public long f0323;
+  public long f0324; public long f0325; public long f0326; public long f0327;
+  public long f0328; public long f0329; public long f0330; public long f0331;
+  public long f0332; public long f0333; public long f0334; public long f0335;
+  public long f0336; public long f0337; public long f0338; public long f0339;
+  public long f0340; public long f0341; public long f0342; public long f0343;
+  public long f0344; public long f0345; public long f0346; public long f0347;
+  public long f0348; public long f0349; public long f0350; public long f0351;
+  public long f0352; public long f0353; public long f0354; public long f0355;
+  public long f0356; public long f0357; public long f0358; public long f0359;
+  public long f0360; public long f0361; public long f0362; public long f0363;
+  public long f0364; public long f0365; public long f0366; public long f0367;
+  public long f0368; public long f0369; public long f0370; public long f0371;
+  public long f0372; public long f0373; public long f0374; public long f0375;
+  public long f0376; public long f0377; public long f0378; public long f0379;
+  public long f0380; public long f0381; public long f0382; public long f0383;
+  public long f0384; public long f0385; public long f0386; public long f0387;
+  public long f0388; public long f0389; public long f0390; public long f0391;
+  public long f0392; public long f0393; public long f0394; public long f0395;
+  public long f0396; public long f0397; public long f0398; public long f0399;
+  public long f0400; public long f0401; public long f0402; public long f0403;
+  public long f0404; public long f0405; public long f0406; public long f0407;
+  public long f0408; public long f0409; public long f0410; public long f0411;
+  public long f0412; public long f0413; public long f0414; public long f0415;
+  public long f0416; public long f0417; public long f0418; public long f0419;
+  public long f0420; public long f0421; public long f0422; public long f0423;
+  public long f0424; public long f0425; public long f0426; public long f0427;
+  public long f0428; public long f0429; public long f0430; public long f0431;
+  public long f0432; public long f0433; public long f0434; public long f0435;
+  public long f0436; public long f0437; public long f0438; public long f0439;
+  public long f0440; public long f0441; public long f0442; public long f0443;
+  public long f0444; public long f0445; public long f0446; public long f0447;
+  public long f0448; public long f0449; public long f0450; public long f0451;
+  public long f0452; public long f0453; public long f0454; public long f0455;
+  public long f0456; public long f0457; public long f0458; public long f0459;
+  public long f0460; public long f0461; public long f0462; public long f0463;
+  public long f0464; public long f0465; public long f0466; public long f0467;
+  public long f0468; public long f0469; public long f0470; public long f0471;
+  public long f0472; public long f0473; public long f0474; public long f0475;
+  public long f0476; public long f0477; public long f0478; public long f0479;
+  public long f0480; public long f0481; public long f0482; public long f0483;
+  public long f0484; public long f0485; public long f0486; public long f0487;
+  public long f0488; public long f0489; public long f0490; public long f0491;
+  public long f0492; public long f0493; public long f0494; public long f0495;
+  public long f0496; public long f0497; public long f0498; public long f0499;
+  public long f0500; public long f0501; public long f0502; public long f0503;
+  public long f0504; public long f0505; public long f0506; public long f0507;
+  public long f0508; public long f0509; public long f0510; public long f0511;
+  public long f0512; public long f0513; public long f0514; public long f0515;
+  public long f0516; public long f0517; public long f0518; public long f0519;
+  public long f0520; public long f0521; public long f0522; public long f0523;
+  public long f0524; public long f0525; public long f0526; public long f0527;
+  public long f0528; public long f0529; public long f0530; public long f0531;
+  public long f0532; public long f0533; public long f0534; public long f0535;
+  public long f0536; public long f0537; public long f0538; public long f0539;
+  public long f0540; public long f0541; public long f0542; public long f0543;
+  public long f0544; public long f0545; public long f0546; public long f0547;
+  public long f0548; public long f0549; public long f0550; public long f0551;
+  public long f0552; public long f0553; public long f0554; public long f0555;
+  public long f0556; public long f0557; public long f0558; public long f0559;
+  public long f0560; public long f0561; public long f0562; public long f0563;
+  public long f0564; public long f0565; public long f0566; public long f0567;
+  public long f0568; public long f0569; public long f0570; public long f0571;
+  public long f0572; public long f0573; public long f0574; public long f0575;
+  public long f0576; public long f0577; public long f0578; public long f0579;
+  public long f0580; public long f0581; public long f0582; public long f0583;
+  public long f0584; public long f0585; public long f0586; public long f0587;
+  public long f0588; public long f0589; public long f0590; public long f0591;
+  public long f0592; public long f0593; public long f0594; public long f0595;
+  public long f0596; public long f0597; public long f0598; public long f0599;
+  public long f0600; public long f0601; public long f0602; public long f0603;
+  public long f0604; public long f0605; public long f0606; public long f0607;
+  public long f0608; public long f0609; public long f0610; public long f0611;
+  public long f0612; public long f0613; public long f0614; public long f0615;
+  public long f0616; public long f0617; public long f0618; public long f0619;
+  public long f0620; public long f0621; public long f0622; public long f0623;
+  public long f0624; public long f0625; public long f0626; public long f0627;
+  public long f0628; public long f0629; public long f0630; public long f0631;
+  public long f0632; public long f0633; public long f0634; public long f0635;
+  public long f0636; public long f0637; public long f0638; public long f0639;
+  public long f0640; public long f0641; public long f0642; public long f0643;
+  public long f0644; public long f0645; public long f0646; public long f0647;
+  public long f0648; public long f0649; public long f0650; public long f0651;
+  public long f0652; public long f0653; public long f0654; public long f0655;
+  public long f0656; public long f0657; public long f0658; public long f0659;
+  public long f0660; public long f0661; public long f0662; public long f0663;
+  public long f0664; public long f0665; public long f0666; public long f0667;
+  public long f0668; public long f0669; public long f0670; public long f0671;
+  public long f0672; public long f0673; public long f0674; public long f0675;
+  public long f0676; public long f0677; public long f0678; public long f0679;
+  public long f0680; public long f0681; public long f0682; public long f0683;
+  public long f0684; public long f0685; public long f0686; public long f0687;
+  public long f0688; public long f0689; public long f0690; public long f0691;
+  public long f0692; public long f0693; public long f0694; public long f0695;
+  public long f0696; public long f0697; public long f0698; public long f0699;
+  public long f0700; public long f0701; public long f0702; public long f0703;
+  public long f0704; public long f0705; public long f0706; public long f0707;
+  public long f0708; public long f0709; public long f0710; public long f0711;
+  public long f0712; public long f0713; public long f0714; public long f0715;
+  public long f0716; public long f0717; public long f0718; public long f0719;
+  public long f0720; public long f0721; public long f0722; public long f0723;
+  public long f0724; public long f0725; public long f0726; public long f0727;
+  public long f0728; public long f0729; public long f0730; public long f0731;
+  public long f0732; public long f0733; public long f0734; public long f0735;
+  public long f0736; public long f0737; public long f0738; public long f0739;
+  public long f0740; public long f0741; public long f0742; public long f0743;
+  public long f0744; public long f0745; public long f0746; public long f0747;
+  public long f0748; public long f0749; public long f0750; public long f0751;
+  public long f0752; public long f0753; public long f0754; public long f0755;
+  public long f0756; public long f0757; public long f0758; public long f0759;
+  public long f0760; public long f0761; public long f0762; public long f0763;
+  public long f0764; public long f0765; public long f0766; public long f0767;
+  public long f0768; public long f0769; public long f0770; public long f0771;
+  public long f0772; public long f0773; public long f0774; public long f0775;
+  public long f0776; public long f0777; public long f0778; public long f0779;
+  public long f0780; public long f0781; public long f0782; public long f0783;
+  public long f0784; public long f0785; public long f0786; public long f0787;
+  public long f0788; public long f0789; public long f0790; public long f0791;
+  public long f0792; public long f0793; public long f0794; public long f0795;
+  public long f0796; public long f0797; public long f0798; public long f0799;
+  public long f0800; public long f0801; public long f0802; public long f0803;
+  public long f0804; public long f0805; public long f0806; public long f0807;
+  public long f0808; public long f0809; public long f0810; public long f0811;
+  public long f0812; public long f0813; public long f0814; public long f0815;
+  public long f0816; public long f0817; public long f0818; public long f0819;
+  public long f0820; public long f0821; public long f0822; public long f0823;
+  public long f0824; public long f0825; public long f0826; public long f0827;
+  public long f0828; public long f0829; public long f0830; public long f0831;
+  public long f0832; public long f0833; public long f0834; public long f0835;
+  public long f0836; public long f0837; public long f0838; public long f0839;
+  public long f0840; public long f0841; public long f0842; public long f0843;
+  public long f0844; public long f0845; public long f0846; public long f0847;
+  public long f0848; public long f0849; public long f0850; public long f0851;
+  public long f0852; public long f0853; public long f0854; public long f0855;
+  public long f0856; public long f0857; public long f0858; public long f0859;
+  public long f0860; public long f0861; public long f0862; public long f0863;
+  public long f0864; public long f0865; public long f0866; public long f0867;
+  public long f0868; public long f0869; public long f0870; public long f0871;
+  public long f0872; public long f0873; public long f0874; public long f0875;
+  public long f0876; public long f0877; public long f0878; public long f0879;
+  public long f0880; public long f0881; public long f0882; public long f0883;
+  public long f0884; public long f0885; public long f0886; public long f0887;
+  public long f0888; public long f0889; public long f0890; public long f0891;
+  public long f0892; public long f0893; public long f0894; public long f0895;
+  public long f0896; public long f0897; public long f0898; public long f0899;
+  public long f0900; public long f0901; public long f0902; public long f0903;
+  public long f0904; public long f0905; public long f0906; public long f0907;
+  public long f0908; public long f0909; public long f0910; public long f0911;
+  public long f0912; public long f0913; public long f0914; public long f0915;
+  public long f0916; public long f0917; public long f0918; public long f0919;
+  public long f0920; public long f0921; public long f0922; public long f0923;
+  public long f0924; public long f0925; public long f0926; public long f0927;
+  public long f0928; public long f0929; public long f0930; public long f0931;
+  public long f0932; public long f0933; public long f0934; public long f0935;
+  public long f0936; public long f0937; public long f0938; public long f0939;
+  public long f0940; public long f0941; public long f0942; public long f0943;
+  public long f0944; public long f0945; public long f0946; public long f0947;
+  public long f0948; public long f0949; public long f0950; public long f0951;
+  public long f0952; public long f0953; public long f0954; public long f0955;
+  public long f0956; public long f0957; public long f0958; public long f0959;
+  public long f0960; public long f0961; public long f0962; public long f0963;
+  public long f0964; public long f0965; public long f0966; public long f0967;
+  public long f0968; public long f0969; public long f0970; public long f0971;
+  public long f0972; public long f0973; public long f0974; public long f0975;
+  public long f0976; public long f0977; public long f0978; public long f0979;
+  public long f0980; public long f0981; public long f0982; public long f0983;
+  public long f0984; public long f0985; public long f0986; public long f0987;
+  public long f0988; public long f0989; public long f0990; public long f0991;
+  public long f0992; public long f0993; public long f0994; public long f0995;
+  public long f0996; public long f0997; public long f0998; public long f0999;
+  public long f1000; public long f1001; public long f1002; public long f1003;
+  public long f1004; public long f1005; public long f1006; public long f1007;
+  public long f1008; public long f1009; public long f1010; public long f1011;
+  public long f1012; public long f1013; public long f1014; public long f1015;
+  public long f1016; public long f1017; public long f1018; public long f1019;
+  public long f1020; public long f1021; public long f1022; public long f1023;
+  public long f1024; public long f1025; public long f1026; public long f1027;
+  public long f1028; public long f1029; public long f1030; public long f1031;
+  public long f1032; public long f1033; public long f1034; public long f1035;
+  public long f1036; public long f1037; public long f1038; public long f1039;
+  public long f1040; public long f1041; public long f1042; public long f1043;
+  public long f1044; public long f1045; public long f1046; public long f1047;
+  public long f1048; public long f1049; public long f1050; public long f1051;
+  public long f1052; public long f1053; public long f1054; public long f1055;
+  public long f1056; public long f1057; public long f1058; public long f1059;
+  public long f1060; public long f1061; public long f1062; public long f1063;
+  public long f1064; public long f1065; public long f1066; public long f1067;
+  public long f1068; public long f1069; public long f1070; public long f1071;
+  public long f1072; public long f1073; public long f1074; public long f1075;
+  public long f1076; public long f1077; public long f1078; public long f1079;
+  public long f1080; public long f1081; public long f1082; public long f1083;
+  public long f1084; public long f1085; public long f1086; public long f1087;
+  public long f1088; public long f1089; public long f1090; public long f1091;
+  public long f1092; public long f1093; public long f1094; public long f1095;
+  public long f1096; public long f1097; public long f1098; public long f1099;
+  public long f1100; public long f1101; public long f1102; public long f1103;
+  public long f1104; public long f1105; public long f1106; public long f1107;
+  public long f1108; public long f1109; public long f1110; public long f1111;
+  public long f1112; public long f1113; public long f1114; public long f1115;
+  public long f1116; public long f1117; public long f1118; public long f1119;
+  public long f1120; public long f1121; public long f1122; public long f1123;
+  public long f1124; public long f1125; public long f1126; public long f1127;
+  public long f1128; public long f1129; public long f1130; public long f1131;
+  public long f1132; public long f1133; public long f1134; public long f1135;
+  public long f1136; public long f1137; public long f1138; public long f1139;
+  public long f1140; public long f1141; public long f1142; public long f1143;
+  public long f1144; public long f1145; public long f1146; public long f1147;
+  public long f1148; public long f1149; public long f1150; public long f1151;
+  public long f1152; public long f1153; public long f1154; public long f1155;
+  public long f1156; public long f1157; public long f1158; public long f1159;
+  public long f1160; public long f1161; public long f1162; public long f1163;
+  public long f1164; public long f1165; public long f1166; public long f1167;
+  public long f1168; public long f1169; public long f1170; public long f1171;
+  public long f1172; public long f1173; public long f1174; public long f1175;
+  public long f1176; public long f1177; public long f1178; public long f1179;
+  public long f1180; public long f1181; public long f1182; public long f1183;
+  public long f1184; public long f1185; public long f1186; public long f1187;
+  public long f1188; public long f1189; public long f1190; public long f1191;
+  public long f1192; public long f1193; public long f1194; public long f1195;
+  public long f1196; public long f1197; public long f1198; public long f1199;
+  public long f1200; public long f1201; public long f1202; public long f1203;
+  public long f1204; public long f1205; public long f1206; public long f1207;
+  public long f1208; public long f1209; public long f1210; public long f1211;
+  public long f1212; public long f1213; public long f1214; public long f1215;
+  public long f1216; public long f1217; public long f1218; public long f1219;
+  public long f1220; public long f1221; public long f1222; public long f1223;
+  public long f1224; public long f1225; public long f1226; public long f1227;
+  public long f1228; public long f1229; public long f1230; public long f1231;
+  public long f1232; public long f1233; public long f1234; public long f1235;
+  public long f1236; public long f1237; public long f1238; public long f1239;
+  public long f1240; public long f1241; public long f1242; public long f1243;
+  public long f1244; public long f1245; public long f1246; public long f1247;
+  public long f1248; public long f1249; public long f1250; public long f1251;
+  public long f1252; public long f1253; public long f1254; public long f1255;
+  public long f1256; public long f1257; public long f1258; public long f1259;
+  public long f1260; public long f1261; public long f1262; public long f1263;
+  public long f1264; public long f1265; public long f1266; public long f1267;
+  public long f1268; public long f1269; public long f1270; public long f1271;
+  public long f1272; public long f1273; public long f1274; public long f1275;
+  public long f1276; public long f1277; public long f1278; public long f1279;
+  public long f1280; public long f1281; public long f1282; public long f1283;
+  public long f1284; public long f1285; public long f1286; public long f1287;
+  public long f1288; public long f1289; public long f1290; public long f1291;
+  public long f1292; public long f1293; public long f1294; public long f1295;
+  public long f1296; public long f1297; public long f1298; public long f1299;
+  public long f1300; public long f1301; public long f1302; public long f1303;
+  public long f1304; public long f1305; public long f1306; public long f1307;
+  public long f1308; public long f1309; public long f1310; public long f1311;
+  public long f1312; public long f1313; public long f1314; public long f1315;
+  public long f1316; public long f1317; public long f1318; public long f1319;
+  public long f1320; public long f1321; public long f1322; public long f1323;
+  public long f1324; public long f1325; public long f1326; public long f1327;
+  public long f1328; public long f1329; public long f1330; public long f1331;
+  public long f1332; public long f1333; public long f1334; public long f1335;
+  public long f1336; public long f1337; public long f1338; public long f1339;
+  public long f1340; public long f1341; public long f1342; public long f1343;
+  public long f1344; public long f1345; public long f1346; public long f1347;
+  public long f1348; public long f1349; public long f1350; public long f1351;
+  public long f1352; public long f1353; public long f1354; public long f1355;
+  public long f1356; public long f1357; public long f1358; public long f1359;
+  public long f1360; public long f1361; public long f1362; public long f1363;
+  public long f1364; public long f1365; public long f1366; public long f1367;
+  public long f1368; public long f1369; public long f1370; public long f1371;
+  public long f1372; public long f1373; public long f1374; public long f1375;
+  public long f1376; public long f1377; public long f1378; public long f1379;
+  public long f1380; public long f1381; public long f1382; public long f1383;
+  public long f1384; public long f1385; public long f1386; public long f1387;
+  public long f1388; public long f1389; public long f1390; public long f1391;
+  public long f1392; public long f1393; public long f1394; public long f1395;
+  public long f1396; public long f1397; public long f1398; public long f1399;
+  public long f1400; public long f1401; public long f1402; public long f1403;
+  public long f1404; public long f1405; public long f1406; public long f1407;
+  public long f1408; public long f1409; public long f1410; public long f1411;
+  public long f1412; public long f1413; public long f1414; public long f1415;
+  public long f1416; public long f1417; public long f1418; public long f1419;
+  public long f1420; public long f1421; public long f1422; public long f1423;
+  public long f1424; public long f1425; public long f1426; public long f1427;
+  public long f1428; public long f1429; public long f1430; public long f1431;
+  public long f1432; public long f1433; public long f1434; public long f1435;
+  public long f1436; public long f1437; public long f1438; public long f1439;
+  public long f1440; public long f1441; public long f1442; public long f1443;
+  public long f1444; public long f1445; public long f1446; public long f1447;
+  public long f1448; public long f1449; public long f1450; public long f1451;
+  public long f1452; public long f1453; public long f1454; public long f1455;
+  public long f1456; public long f1457; public long f1458; public long f1459;
+  public long f1460; public long f1461; public long f1462; public long f1463;
+  public long f1464; public long f1465; public long f1466; public long f1467;
+  public long f1468; public long f1469; public long f1470; public long f1471;
+  public long f1472; public long f1473; public long f1474; public long f1475;
+  public long f1476; public long f1477; public long f1478; public long f1479;
+  public long f1480; public long f1481; public long f1482; public long f1483;
+  public long f1484; public long f1485; public long f1486; public long f1487;
+  public long f1488; public long f1489; public long f1490; public long f1491;
+  public long f1492; public long f1493; public long f1494; public long f1495;
+  public long f1496; public long f1497; public long f1498; public long f1499;
+  public long f1500; public long f1501; public long f1502; public long f1503;
+  public long f1504; public long f1505; public long f1506; public long f1507;
+  public long f1508; public long f1509; public long f1510; public long f1511;
+  public long f1512; public long f1513; public long f1514; public long f1515;
+  public long f1516; public long f1517; public long f1518; public long f1519;
+  public long f1520; public long f1521; public long f1522; public long f1523;
+  public long f1524; public long f1525; public long f1526; public long f1527;
+  public long f1528; public long f1529; public long f1530; public long f1531;
+  public long f1532; public long f1533; public long f1534; public long f1535;
+  public long f1536; public long f1537; public long f1538; public long f1539;
+  public long f1540; public long f1541; public long f1542; public long f1543;
+  public long f1544; public long f1545; public long f1546; public long f1547;
+  public long f1548; public long f1549; public long f1550; public long f1551;
+  public long f1552; public long f1553; public long f1554; public long f1555;
+  public long f1556; public long f1557; public long f1558; public long f1559;
+  public long f1560; public long f1561; public long f1562; public long f1563;
+  public long f1564; public long f1565; public long f1566; public long f1567;
+  public long f1568; public long f1569; public long f1570; public long f1571;
+  public long f1572; public long f1573; public long f1574; public long f1575;
+  public long f1576; public long f1577; public long f1578; public long f1579;
+  public long f1580; public long f1581; public long f1582; public long f1583;
+  public long f1584; public long f1585; public long f1586; public long f1587;
+  public long f1588; public long f1589; public long f1590; public long f1591;
+  public long f1592; public long f1593; public long f1594; public long f1595;
+  public long f1596; public long f1597; public long f1598; public long f1599;
+  public long f1600; public long f1601; public long f1602; public long f1603;
+  public long f1604; public long f1605; public long f1606; public long f1607;
+  public long f1608; public long f1609; public long f1610; public long f1611;
+  public long f1612; public long f1613; public long f1614; public long f1615;
+  public long f1616; public long f1617; public long f1618; public long f1619;
+  public long f1620; public long f1621; public long f1622; public long f1623;
+  public long f1624; public long f1625; public long f1626; public long f1627;
+  public long f1628; public long f1629; public long f1630; public long f1631;
+  public long f1632; public long f1633; public long f1634; public long f1635;
+  public long f1636; public long f1637; public long f1638; public long f1639;
+  public long f1640; public long f1641; public long f1642; public long f1643;
+  public long f1644; public long f1645; public long f1646; public long f1647;
+  public long f1648; public long f1649; public long f1650; public long f1651;
+  public long f1652; public long f1653; public long f1654; public long f1655;
+  public long f1656; public long f1657; public long f1658; public long f1659;
+  public long f1660; public long f1661; public long f1662; public long f1663;
+  public long f1664; public long f1665; public long f1666; public long f1667;
+  public long f1668; public long f1669; public long f1670; public long f1671;
+  public long f1672; public long f1673; public long f1674; public long f1675;
+  public long f1676; public long f1677; public long f1678; public long f1679;
+  public long f1680; public long f1681; public long f1682; public long f1683;
+  public long f1684; public long f1685; public long f1686; public long f1687;
+  public long f1688; public long f1689; public long f1690; public long f1691;
+  public long f1692; public long f1693; public long f1694; public long f1695;
+  public long f1696; public long f1697; public long f1698; public long f1699;
+  public long f1700; public long f1701; public long f1702; public long f1703;
+  public long f1704; public long f1705; public long f1706; public long f1707;
+  public long f1708; public long f1709; public long f1710; public long f1711;
+  public long f1712; public long f1713; public long f1714; public long f1715;
+  public long f1716; public long f1717; public long f1718; public long f1719;
+  public long f1720; public long f1721; public long f1722; public long f1723;
+  public long f1724; public long f1725; public long f1726; public long f1727;
+  public long f1728; public long f1729; public long f1730; public long f1731;
+  public long f1732; public long f1733; public long f1734; public long f1735;
+  public long f1736; public long f1737; public long f1738; public long f1739;
+  public long f1740; public long f1741; public long f1742; public long f1743;
+  public long f1744; public long f1745; public long f1746; public long f1747;
+  public long f1748; public long f1749; public long f1750; public long f1751;
+  public long f1752; public long f1753; public long f1754; public long f1755;
+  public long f1756; public long f1757; public long f1758; public long f1759;
+  public long f1760; public long f1761; public long f1762; public long f1763;
+  public long f1764; public long f1765; public long f1766; public long f1767;
+  public long f1768; public long f1769; public long f1770; public long f1771;
+  public long f1772; public long f1773; public long f1774; public long f1775;
+  public long f1776; public long f1777; public long f1778; public long f1779;
+  public long f1780; public long f1781; public long f1782; public long f1783;
+  public long f1784; public long f1785; public long f1786; public long f1787;
+  public long f1788; public long f1789; public long f1790; public long f1791;
+  public long f1792; public long f1793; public long f1794; public long f1795;
+  public long f1796; public long f1797; public long f1798; public long f1799;
+  public long f1800; public long f1801; public long f1802; public long f1803;
+  public long f1804; public long f1805; public long f1806; public long f1807;
+  public long f1808; public long f1809; public long f1810; public long f1811;
+  public long f1812; public long f1813; public long f1814; public long f1815;
+  public long f1816; public long f1817; public long f1818; public long f1819;
+  public long f1820; public long f1821; public long f1822; public long f1823;
+  public long f1824; public long f1825; public long f1826; public long f1827;
+  public long f1828; public long f1829; public long f1830; public long f1831;
+  public long f1832; public long f1833; public long f1834; public long f1835;
+  public long f1836; public long f1837; public long f1838; public long f1839;
+  public long f1840; public long f1841; public long f1842; public long f1843;
+  public long f1844; public long f1845; public long f1846; public long f1847;
+  public long f1848; public long f1849; public long f1850; public long f1851;
+  public long f1852; public long f1853; public long f1854; public long f1855;
+  public long f1856; public long f1857; public long f1858; public long f1859;
+  public long f1860; public long f1861; public long f1862; public long f1863;
+  public long f1864; public long f1865; public long f1866; public long f1867;
+  public long f1868; public long f1869; public long f1870; public long f1871;
+  public long f1872; public long f1873; public long f1874; public long f1875;
+  public long f1876; public long f1877; public long f1878; public long f1879;
+  public long f1880; public long f1881; public long f1882; public long f1883;
+  public long f1884; public long f1885; public long f1886; public long f1887;
+  public long f1888; public long f1889; public long f1890; public long f1891;
+  public long f1892; public long f1893; public long f1894; public long f1895;
+  public long f1896; public long f1897; public long f1898; public long f1899;
+  public long f1900; public long f1901; public long f1902; public long f1903;
+  public long f1904; public long f1905; public long f1906; public long f1907;
+  public long f1908; public long f1909; public long f1910; public long f1911;
+  public long f1912; public long f1913; public long f1914; public long f1915;
+  public long f1916; public long f1917; public long f1918; public long f1919;
+  public long f1920; public long f1921; public long f1922; public long f1923;
+  public long f1924; public long f1925; public long f1926; public long f1927;
+  public long f1928; public long f1929; public long f1930; public long f1931;
+  public long f1932; public long f1933; public long f1934; public long f1935;
+  public long f1936; public long f1937; public long f1938; public long f1939;
+  public long f1940; public long f1941; public long f1942; public long f1943;
+  public long f1944; public long f1945; public long f1946; public long f1947;
+  public long f1948; public long f1949; public long f1950; public long f1951;
+  public long f1952; public long f1953; public long f1954; public long f1955;
+  public long f1956; public long f1957; public long f1958; public long f1959;
+  public long f1960; public long f1961; public long f1962; public long f1963;
+  public long f1964; public long f1965; public long f1966; public long f1967;
+  public long f1968; public long f1969; public long f1970; public long f1971;
+  public long f1972; public long f1973; public long f1974; public long f1975;
+  public long f1976; public long f1977; public long f1978; public long f1979;
+  public long f1980; public long f1981; public long f1982; public long f1983;
+  public long f1984; public long f1985; public long f1986; public long f1987;
+  public long f1988; public long f1989; public long f1990; public long f1991;
+  public long f1992; public long f1993; public long f1994; public long f1995;
+  public long f1996; public long f1997; public long f1998; public long f1999;
+  public long f2000; public long f2001; public long f2002; public long f2003;
+  public long f2004; public long f2005; public long f2006; public long f2007;
+  public long f2008; public long f2009; public long f2010; public long f2011;
+  public long f2012; public long f2013; public long f2014; public long f2015;
+  public long f2016; public long f2017; public long f2018; public long f2019;
+  public long f2020; public long f2021; public long f2022; public long f2023;
+  public long f2024; public long f2025; public long f2026; public long f2027;
+  public long f2028; public long f2029; public long f2030; public long f2031;
+  public long f2032; public long f2033; public long f2034; public long f2035;
+  public long f2036; public long f2037; public long f2038; public long f2039;
+  public long f2040; public long f2041; public long f2042; public long f2043;
+  public long f2044; public long f2045; public long f2046; public long f2047;
+  public long f2048; public long f2049; public long f2050; public long f2051;
+  public long f2052; public long f2053; public long f2054; public long f2055;
+  public long f2056; public long f2057; public long f2058; public long f2059;
+  public long f2060; public long f2061; public long f2062; public long f2063;
+  public long f2064; public long f2065; public long f2066; public long f2067;
+  public long f2068; public long f2069; public long f2070; public long f2071;
+  public long f2072; public long f2073; public long f2074; public long f2075;
+  public long f2076; public long f2077; public long f2078; public long f2079;
+  public long f2080; public long f2081; public long f2082; public long f2083;
+  public long f2084; public long f2085; public long f2086; public long f2087;
+  public long f2088; public long f2089; public long f2090; public long f2091;
+  public long f2092; public long f2093; public long f2094; public long f2095;
+  public long f2096; public long f2097; public long f2098; public long f2099;
+  public long f2100; public long f2101; public long f2102; public long f2103;
+  public long f2104; public long f2105; public long f2106; public long f2107;
+  public long f2108; public long f2109; public long f2110; public long f2111;
+  public long f2112; public long f2113; public long f2114; public long f2115;
+  public long f2116; public long f2117; public long f2118; public long f2119;
+  public long f2120; public long f2121; public long f2122; public long f2123;
+  public long f2124; public long f2125; public long f2126; public long f2127;
+  public long f2128; public long f2129; public long f2130; public long f2131;
+  public long f2132; public long f2133; public long f2134; public long f2135;
+  public long f2136; public long f2137; public long f2138; public long f2139;
+  public long f2140; public long f2141; public long f2142; public long f2143;
+  public long f2144; public long f2145; public long f2146; public long f2147;
+  public long f2148; public long f2149; public long f2150; public long f2151;
+  public long f2152; public long f2153; public long f2154; public long f2155;
+  public long f2156; public long f2157; public long f2158; public long f2159;
+  public long f2160; public long f2161; public long f2162; public long f2163;
+  public long f2164; public long f2165; public long f2166; public long f2167;
+  public long f2168; public long f2169; public long f2170; public long f2171;
+  public long f2172; public long f2173; public long f2174; public long f2175;
+  public long f2176; public long f2177; public long f2178; public long f2179;
+  public long f2180; public long f2181; public long f2182; public long f2183;
+  public long f2184; public long f2185; public long f2186; public long f2187;
+  public long f2188; public long f2189; public long f2190; public long f2191;
+  public long f2192; public long f2193; public long f2194; public long f2195;
+  public long f2196; public long f2197; public long f2198; public long f2199;
+  public long f2200; public long f2201; public long f2202; public long f2203;
+  public long f2204; public long f2205; public long f2206; public long f2207;
+  public long f2208; public long f2209; public long f2210; public long f2211;
+  public long f2212; public long f2213; public long f2214; public long f2215;
+  public long f2216; public long f2217; public long f2218; public long f2219;
+  public long f2220; public long f2221; public long f2222; public long f2223;
+  public long f2224; public long f2225; public long f2226; public long f2227;
+  public long f2228; public long f2229; public long f2230; public long f2231;
+  public long f2232; public long f2233; public long f2234; public long f2235;
+  public long f2236; public long f2237; public long f2238; public long f2239;
+  public long f2240; public long f2241; public long f2242; public long f2243;
+  public long f2244; public long f2245; public long f2246; public long f2247;
+  public long f2248; public long f2249; public long f2250; public long f2251;
+  public long f2252; public long f2253; public long f2254; public long f2255;
+  public long f2256; public long f2257; public long f2258; public long f2259;
+  public long f2260; public long f2261; public long f2262; public long f2263;
+  public long f2264; public long f2265; public long f2266; public long f2267;
+  public long f2268; public long f2269; public long f2270; public long f2271;
+  public long f2272; public long f2273; public long f2274; public long f2275;
+  public long f2276; public long f2277; public long f2278; public long f2279;
+  public long f2280; public long f2281; public long f2282; public long f2283;
+  public long f2284; public long f2285; public long f2286; public long f2287;
+  public long f2288; public long f2289; public long f2290; public long f2291;
+  public long f2292; public long f2293; public long f2294; public long f2295;
+  public long f2296; public long f2297; public long f2298; public long f2299;
+  public long f2300; public long f2301; public long f2302; public long f2303;
+  public long f2304; public long f2305; public long f2306; public long f2307;
+  public long f2308; public long f2309; public long f2310; public long f2311;
+  public long f2312; public long f2313; public long f2314; public long f2315;
+  public long f2316; public long f2317; public long f2318; public long f2319;
+  public long f2320; public long f2321; public long f2322; public long f2323;
+  public long f2324; public long f2325; public long f2326; public long f2327;
+  public long f2328; public long f2329; public long f2330; public long f2331;
+  public long f2332; public long f2333; public long f2334; public long f2335;
+  public long f2336; public long f2337; public long f2338; public long f2339;
+  public long f2340; public long f2341; public long f2342; public long f2343;
+  public long f2344; public long f2345; public long f2346; public long f2347;
+  public long f2348; public long f2349; public long f2350; public long f2351;
+  public long f2352; public long f2353; public long f2354; public long f2355;
+  public long f2356; public long f2357; public long f2358; public long f2359;
+  public long f2360; public long f2361; public long f2362; public long f2363;
+  public long f2364; public long f2365; public long f2366; public long f2367;
+  public long f2368; public long f2369; public long f2370; public long f2371;
+  public long f2372; public long f2373; public long f2374; public long f2375;
+  public long f2376; public long f2377; public long f2378; public long f2379;
+  public long f2380; public long f2381; public long f2382; public long f2383;
+  public long f2384; public long f2385; public long f2386; public long f2387;
+  public long f2388; public long f2389; public long f2390; public long f2391;
+  public long f2392; public long f2393; public long f2394; public long f2395;
+  public long f2396; public long f2397; public long f2398; public long f2399;
+  public long f2400; public long f2401; public long f2402; public long f2403;
+  public long f2404; public long f2405; public long f2406; public long f2407;
+  public long f2408; public long f2409; public long f2410; public long f2411;
+  public long f2412; public long f2413; public long f2414; public long f2415;
+  public long f2416; public long f2417; public long f2418; public long f2419;
+  public long f2420; public long f2421; public long f2422; public long f2423;
+  public long f2424; public long f2425; public long f2426; public long f2427;
+  public long f2428; public long f2429; public long f2430; public long f2431;
+  public long f2432; public long f2433; public long f2434; public long f2435;
+  public long f2436; public long f2437; public long f2438; public long f2439;
+  public long f2440; public long f2441; public long f2442; public long f2443;
+  public long f2444; public long f2445; public long f2446; public long f2447;
+  public long f2448; public long f2449; public long f2450; public long f2451;
+  public long f2452; public long f2453; public long f2454; public long f2455;
+  public long f2456; public long f2457; public long f2458; public long f2459;
+  public long f2460; public long f2461; public long f2462; public long f2463;
+  public long f2464; public long f2465; public long f2466; public long f2467;
+  public long f2468; public long f2469; public long f2470; public long f2471;
+  public long f2472; public long f2473; public long f2474; public long f2475;
+  public long f2476; public long f2477; public long f2478; public long f2479;
+  public long f2480; public long f2481; public long f2482; public long f2483;
+  public long f2484; public long f2485; public long f2486; public long f2487;
+  public long f2488; public long f2489; public long f2490; public long f2491;
+  public long f2492; public long f2493; public long f2494; public long f2495;
+  public long f2496; public long f2497; public long f2498; public long f2499;
+  public long f2500; public long f2501; public long f2502; public long f2503;
+  public long f2504; public long f2505; public long f2506; public long f2507;
+  public long f2508; public long f2509; public long f2510; public long f2511;
+  public long f2512; public long f2513; public long f2514; public long f2515;
+  public long f2516; public long f2517; public long f2518; public long f2519;
+  public long f2520; public long f2521; public long f2522; public long f2523;
+  public long f2524; public long f2525; public long f2526; public long f2527;
+  public long f2528; public long f2529; public long f2530; public long f2531;
+  public long f2532; public long f2533; public long f2534; public long f2535;
+  public long f2536; public long f2537; public long f2538; public long f2539;
+  public long f2540; public long f2541; public long f2542; public long f2543;
+  public long f2544; public long f2545; public long f2546; public long f2547;
+  public long f2548; public long f2549; public long f2550; public long f2551;
+  public long f2552; public long f2553; public long f2554; public long f2555;
+  public long f2556; public long f2557; public long f2558; public long f2559;
+  public long f2560; public long f2561; public long f2562; public long f2563;
+  public long f2564; public long f2565; public long f2566; public long f2567;
+  public long f2568; public long f2569; public long f2570; public long f2571;
+  public long f2572; public long f2573; public long f2574; public long f2575;
+  public long f2576; public long f2577; public long f2578; public long f2579;
+  public long f2580; public long f2581; public long f2582; public long f2583;
+  public long f2584; public long f2585; public long f2586; public long f2587;
+  public long f2588; public long f2589; public long f2590; public long f2591;
+  public long f2592; public long f2593; public long f2594; public long f2595;
+  public long f2596; public long f2597; public long f2598; public long f2599;
+  public long f2600; public long f2601; public long f2602; public long f2603;
+  public long f2604; public long f2605; public long f2606; public long f2607;
+  public long f2608; public long f2609; public long f2610; public long f2611;
+  public long f2612; public long f2613; public long f2614; public long f2615;
+  public long f2616; public long f2617; public long f2618; public long f2619;
+  public long f2620; public long f2621; public long f2622; public long f2623;
+  public long f2624; public long f2625; public long f2626; public long f2627;
+  public long f2628; public long f2629; public long f2630; public long f2631;
+  public long f2632; public long f2633; public long f2634; public long f2635;
+  public long f2636; public long f2637; public long f2638; public long f2639;
+  public long f2640; public long f2641; public long f2642; public long f2643;
+  public long f2644; public long f2645; public long f2646; public long f2647;
+  public long f2648; public long f2649; public long f2650; public long f2651;
+  public long f2652; public long f2653; public long f2654; public long f2655;
+  public long f2656; public long f2657; public long f2658; public long f2659;
+  public long f2660; public long f2661; public long f2662; public long f2663;
+  public long f2664; public long f2665; public long f2666; public long f2667;
+  public long f2668; public long f2669; public long f2670; public long f2671;
+  public long f2672; public long f2673; public long f2674; public long f2675;
+  public long f2676; public long f2677; public long f2678; public long f2679;
+  public long f2680; public long f2681; public long f2682; public long f2683;
+  public long f2684; public long f2685; public long f2686; public long f2687;
+  public long f2688; public long f2689; public long f2690; public long f2691;
+  public long f2692; public long f2693; public long f2694; public long f2695;
+  public long f2696; public long f2697; public long f2698; public long f2699;
+  public long f2700; public long f2701; public long f2702; public long f2703;
+  public long f2704; public long f2705; public long f2706; public long f2707;
+  public long f2708; public long f2709; public long f2710; public long f2711;
+  public long f2712; public long f2713; public long f2714; public long f2715;
+  public long f2716; public long f2717; public long f2718; public long f2719;
+  public long f2720; public long f2721; public long f2722; public long f2723;
+  public long f2724; public long f2725; public long f2726; public long f2727;
+  public long f2728; public long f2729; public long f2730; public long f2731;
+  public long f2732; public long f2733; public long f2734; public long f2735;
+  public long f2736; public long f2737; public long f2738; public long f2739;
+  public long f2740; public long f2741; public long f2742; public long f2743;
+  public long f2744; public long f2745; public long f2746; public long f2747;
+  public long f2748; public long f2749; public long f2750; public long f2751;
+  public long f2752; public long f2753; public long f2754; public long f2755;
+  public long f2756; public long f2757; public long f2758; public long f2759;
+  public long f2760; public long f2761; public long f2762; public long f2763;
+  public long f2764; public long f2765; public long f2766; public long f2767;
+  public long f2768; public long f2769; public long f2770; public long f2771;
+  public long f2772; public long f2773; public long f2774; public long f2775;
+  public long f2776; public long f2777; public long f2778; public long f2779;
+  public long f2780; public long f2781; public long f2782; public long f2783;
+  public long f2784; public long f2785; public long f2786; public long f2787;
+  public long f2788; public long f2789; public long f2790; public long f2791;
+  public long f2792; public long f2793; public long f2794; public long f2795;
+  public long f2796; public long f2797; public long f2798; public long f2799;
+  public long f2800; public long f2801; public long f2802; public long f2803;
+  public long f2804; public long f2805; public long f2806; public long f2807;
+  public long f2808; public long f2809; public long f2810; public long f2811;
+  public long f2812; public long f2813; public long f2814; public long f2815;
+  public long f2816; public long f2817; public long f2818; public long f2819;
+  public long f2820; public long f2821; public long f2822; public long f2823;
+  public long f2824; public long f2825; public long f2826; public long f2827;
+  public long f2828; public long f2829; public long f2830; public long f2831;
+  public long f2832; public long f2833; public long f2834; public long f2835;
+  public long f2836; public long f2837; public long f2838; public long f2839;
+  public long f2840; public long f2841; public long f2842; public long f2843;
+  public long f2844; public long f2845; public long f2846; public long f2847;
+  public long f2848; public long f2849; public long f2850; public long f2851;
+  public long f2852; public long f2853; public long f2854; public long f2855;
+  public long f2856; public long f2857; public long f2858; public long f2859;
+  public long f2860; public long f2861; public long f2862; public long f2863;
+  public long f2864; public long f2865; public long f2866; public long f2867;
+  public long f2868; public long f2869; public long f2870; public long f2871;
+  public long f2872; public long f2873; public long f2874; public long f2875;
+  public long f2876; public long f2877; public long f2878; public long f2879;
+  public long f2880; public long f2881; public long f2882; public long f2883;
+  public long f2884; public long f2885; public long f2886; public long f2887;
+  public long f2888; public long f2889; public long f2890; public long f2891;
+  public long f2892; public long f2893; public long f2894; public long f2895;
+  public long f2896; public long f2897; public long f2898; public long f2899;
+  public long f2900; public long f2901; public long f2902; public long f2903;
+  public long f2904; public long f2905; public long f2906; public long f2907;
+  public long f2908; public long f2909; public long f2910; public long f2911;
+  public long f2912; public long f2913; public long f2914; public long f2915;
+  public long f2916; public long f2917; public long f2918; public long f2919;
+  public long f2920; public long f2921; public long f2922; public long f2923;
+  public long f2924; public long f2925; public long f2926; public long f2927;
+  public long f2928; public long f2929; public long f2930; public long f2931;
+  public long f2932; public long f2933; public long f2934; public long f2935;
+  public long f2936; public long f2937; public long f2938; public long f2939;
+  public long f2940; public long f2941; public long f2942; public long f2943;
+  public long f2944; public long f2945; public long f2946; public long f2947;
+  public long f2948; public long f2949; public long f2950; public long f2951;
+  public long f2952; public long f2953; public long f2954; public long f2955;
+  public long f2956; public long f2957; public long f2958; public long f2959;
+  public long f2960; public long f2961; public long f2962; public long f2963;
+  public long f2964; public long f2965; public long f2966; public long f2967;
+  public long f2968; public long f2969; public long f2970; public long f2971;
+  public long f2972; public long f2973; public long f2974; public long f2975;
+  public long f2976; public long f2977; public long f2978; public long f2979;
+  public long f2980; public long f2981; public long f2982; public long f2983;
+  public long f2984; public long f2985; public long f2986; public long f2987;
+  public long f2988; public long f2989; public long f2990; public long f2991;
+  public long f2992; public long f2993; public long f2994; public long f2995;
+  public long f2996; public long f2997; public long f2998; public long f2999;
+  public long f3000; public long f3001; public long f3002; public long f3003;
+  public long f3004; public long f3005; public long f3006; public long f3007;
+  public long f3008; public long f3009; public long f3010; public long f3011;
+  public long f3012; public long f3013; public long f3014; public long f3015;
+  public long f3016; public long f3017; public long f3018; public long f3019;
+  public long f3020; public long f3021; public long f3022; public long f3023;
+  public long f3024; public long f3025; public long f3026; public long f3027;
+  public long f3028; public long f3029; public long f3030; public long f3031;
+  public long f3032; public long f3033; public long f3034; public long f3035;
+  public long f3036; public long f3037; public long f3038; public long f3039;
+  public long f3040; public long f3041; public long f3042; public long f3043;
+  public long f3044; public long f3045; public long f3046; public long f3047;
+  public long f3048; public long f3049; public long f3050; public long f3051;
+  public long f3052; public long f3053; public long f3054; public long f3055;
+  public long f3056; public long f3057; public long f3058; public long f3059;
+  public long f3060; public long f3061; public long f3062; public long f3063;
+  public long f3064; public long f3065; public long f3066; public long f3067;
+  public long f3068; public long f3069; public long f3070; public long f3071;
+  public long f3072; public long f3073; public long f3074; public long f3075;
+  public long f3076; public long f3077; public long f3078; public long f3079;
+  public long f3080; public long f3081; public long f3082; public long f3083;
+  public long f3084; public long f3085; public long f3086; public long f3087;
+  public long f3088; public long f3089; public long f3090; public long f3091;
+  public long f3092; public long f3093; public long f3094; public long f3095;
+  public long f3096; public long f3097; public long f3098; public long f3099;
+  public long f3100; public long f3101; public long f3102; public long f3103;
+  public long f3104; public long f3105; public long f3106; public long f3107;
+  public long f3108; public long f3109; public long f3110; public long f3111;
+  public long f3112; public long f3113; public long f3114; public long f3115;
+  public long f3116; public long f3117; public long f3118; public long f3119;
+  public long f3120; public long f3121; public long f3122; public long f3123;
+  public long f3124; public long f3125; public long f3126; public long f3127;
+  public long f3128; public long f3129; public long f3130; public long f3131;
+  public long f3132; public long f3133; public long f3134; public long f3135;
+  public long f3136; public long f3137; public long f3138; public long f3139;
+  public long f3140; public long f3141; public long f3142; public long f3143;
+  public long f3144; public long f3145; public long f3146; public long f3147;
+  public long f3148; public long f3149; public long f3150; public long f3151;
+  public long f3152; public long f3153; public long f3154; public long f3155;
+  public long f3156; public long f3157; public long f3158; public long f3159;
+  public long f3160; public long f3161; public long f3162; public long f3163;
+  public long f3164; public long f3165; public long f3166; public long f3167;
+  public long f3168; public long f3169; public long f3170; public long f3171;
+  public long f3172; public long f3173; public long f3174; public long f3175;
+  public long f3176; public long f3177; public long f3178; public long f3179;
+  public long f3180; public long f3181; public long f3182; public long f3183;
+  public long f3184; public long f3185; public long f3186; public long f3187;
+  public long f3188; public long f3189; public long f3190; public long f3191;
+  public long f3192; public long f3193; public long f3194; public long f3195;
+  public long f3196; public long f3197; public long f3198; public long f3199;
+  public long f3200; public long f3201; public long f3202; public long f3203;
+  public long f3204; public long f3205; public long f3206; public long f3207;
+  public long f3208; public long f3209; public long f3210; public long f3211;
+  public long f3212; public long f3213; public long f3214; public long f3215;
+  public long f3216; public long f3217; public long f3218; public long f3219;
+  public long f3220; public long f3221; public long f3222; public long f3223;
+  public long f3224; public long f3225; public long f3226; public long f3227;
+  public long f3228; public long f3229; public long f3230; public long f3231;
+  public long f3232; public long f3233; public long f3234; public long f3235;
+  public long f3236; public long f3237; public long f3238; public long f3239;
+  public long f3240; public long f3241; public long f3242; public long f3243;
+  public long f3244; public long f3245; public long f3246; public long f3247;
+  public long f3248; public long f3249; public long f3250; public long f3251;
+  public long f3252; public long f3253; public long f3254; public long f3255;
+  public long f3256; public long f3257; public long f3258; public long f3259;
+  public long f3260; public long f3261; public long f3262; public long f3263;
+  public long f3264; public long f3265; public long f3266; public long f3267;
+  public long f3268; public long f3269; public long f3270; public long f3271;
+  public long f3272; public long f3273; public long f3274; public long f3275;
+  public long f3276; public long f3277; public long f3278; public long f3279;
+  public long f3280; public long f3281; public long f3282; public long f3283;
+  public long f3284; public long f3285; public long f3286; public long f3287;
+  public long f3288; public long f3289; public long f3290; public long f3291;
+  public long f3292; public long f3293; public long f3294; public long f3295;
+  public long f3296; public long f3297; public long f3298; public long f3299;
+  public long f3300; public long f3301; public long f3302; public long f3303;
+  public long f3304; public long f3305; public long f3306; public long f3307;
+  public long f3308; public long f3309; public long f3310; public long f3311;
+  public long f3312; public long f3313; public long f3314; public long f3315;
+  public long f3316; public long f3317; public long f3318; public long f3319;
+  public long f3320; public long f3321; public long f3322; public long f3323;
+  public long f3324; public long f3325; public long f3326; public long f3327;
+  public long f3328; public long f3329; public long f3330; public long f3331;
+  public long f3332; public long f3333; public long f3334; public long f3335;
+  public long f3336; public long f3337; public long f3338; public long f3339;
+  public long f3340; public long f3341; public long f3342; public long f3343;
+  public long f3344; public long f3345; public long f3346; public long f3347;
+  public long f3348; public long f3349; public long f3350; public long f3351;
+  public long f3352; public long f3353; public long f3354; public long f3355;
+  public long f3356; public long f3357; public long f3358; public long f3359;
+  public long f3360; public long f3361; public long f3362; public long f3363;
+  public long f3364; public long f3365; public long f3366; public long f3367;
+  public long f3368; public long f3369; public long f3370; public long f3371;
+  public long f3372; public long f3373; public long f3374; public long f3375;
+  public long f3376; public long f3377; public long f3378; public long f3379;
+  public long f3380; public long f3381; public long f3382; public long f3383;
+  public long f3384; public long f3385; public long f3386; public long f3387;
+  public long f3388; public long f3389; public long f3390; public long f3391;
+  public long f3392; public long f3393; public long f3394; public long f3395;
+  public long f3396; public long f3397; public long f3398; public long f3399;
+  public long f3400; public long f3401; public long f3402; public long f3403;
+  public long f3404; public long f3405; public long f3406; public long f3407;
+  public long f3408; public long f3409; public long f3410; public long f3411;
+  public long f3412; public long f3413; public long f3414; public long f3415;
+  public long f3416; public long f3417; public long f3418; public long f3419;
+  public long f3420; public long f3421; public long f3422; public long f3423;
+  public long f3424; public long f3425; public long f3426; public long f3427;
+  public long f3428; public long f3429; public long f3430; public long f3431;
+  public long f3432; public long f3433; public long f3434; public long f3435;
+  public long f3436; public long f3437; public long f3438; public long f3439;
+  public long f3440; public long f3441; public long f3442; public long f3443;
+  public long f3444; public long f3445; public long f3446; public long f3447;
+  public long f3448; public long f3449; public long f3450; public long f3451;
+  public long f3452; public long f3453; public long f3454; public long f3455;
+  public long f3456; public long f3457; public long f3458; public long f3459;
+  public long f3460; public long f3461; public long f3462; public long f3463;
+  public long f3464; public long f3465; public long f3466; public long f3467;
+  public long f3468; public long f3469; public long f3470; public long f3471;
+  public long f3472; public long f3473; public long f3474; public long f3475;
+  public long f3476; public long f3477; public long f3478; public long f3479;
+  public long f3480; public long f3481; public long f3482; public long f3483;
+  public long f3484; public long f3485; public long f3486; public long f3487;
+  public long f3488; public long f3489; public long f3490; public long f3491;
+  public long f3492; public long f3493; public long f3494; public long f3495;
+  public long f3496; public long f3497; public long f3498; public long f3499;
+  public long f3500; public long f3501; public long f3502; public long f3503;
+  public long f3504; public long f3505; public long f3506; public long f3507;
+  public long f3508; public long f3509; public long f3510; public long f3511;
+  public long f3512; public long f3513; public long f3514; public long f3515;
+  public long f3516; public long f3517; public long f3518; public long f3519;
+  public long f3520; public long f3521; public long f3522; public long f3523;
+  public long f3524; public long f3525; public long f3526; public long f3527;
+  public long f3528; public long f3529; public long f3530; public long f3531;
+  public long f3532; public long f3533; public long f3534; public long f3535;
+  public long f3536; public long f3537; public long f3538; public long f3539;
+  public long f3540; public long f3541; public long f3542; public long f3543;
+  public long f3544; public long f3545; public long f3546; public long f3547;
+  public long f3548; public long f3549; public long f3550; public long f3551;
+  public long f3552; public long f3553; public long f3554; public long f3555;
+  public long f3556; public long f3557; public long f3558; public long f3559;
+  public long f3560; public long f3561; public long f3562; public long f3563;
+  public long f3564; public long f3565; public long f3566; public long f3567;
+  public long f3568; public long f3569; public long f3570; public long f3571;
+  public long f3572; public long f3573; public long f3574; public long f3575;
+  public long f3576; public long f3577; public long f3578; public long f3579;
+  public long f3580; public long f3581; public long f3582; public long f3583;
+  public long f3584; public long f3585; public long f3586; public long f3587;
+  public long f3588; public long f3589; public long f3590; public long f3591;
+  public long f3592; public long f3593; public long f3594; public long f3595;
+  public long f3596; public long f3597; public long f3598; public long f3599;
+  public long f3600; public long f3601; public long f3602; public long f3603;
+  public long f3604; public long f3605; public long f3606; public long f3607;
+  public long f3608; public long f3609; public long f3610; public long f3611;
+  public long f3612; public long f3613; public long f3614; public long f3615;
+  public long f3616; public long f3617; public long f3618; public long f3619;
+  public long f3620; public long f3621; public long f3622; public long f3623;
+  public long f3624; public long f3625; public long f3626; public long f3627;
+  public long f3628; public long f3629; public long f3630; public long f3631;
+  public long f3632; public long f3633; public long f3634; public long f3635;
+  public long f3636; public long f3637; public long f3638; public long f3639;
+  public long f3640; public long f3641; public long f3642; public long f3643;
+  public long f3644; public long f3645; public long f3646; public long f3647;
+  public long f3648; public long f3649; public long f3650; public long f3651;
+  public long f3652; public long f3653; public long f3654; public long f3655;
+  public long f3656; public long f3657; public long f3658; public long f3659;
+  public long f3660; public long f3661; public long f3662; public long f3663;
+  public long f3664; public long f3665; public long f3666; public long f3667;
+  public long f3668; public long f3669; public long f3670; public long f3671;
+  public long f3672; public long f3673; public long f3674; public long f3675;
+  public long f3676; public long f3677; public long f3678; public long f3679;
+  public long f3680; public long f3681; public long f3682; public long f3683;
+  public long f3684; public long f3685; public long f3686; public long f3687;
+  public long f3688; public long f3689; public long f3690; public long f3691;
+  public long f3692; public long f3693; public long f3694; public long f3695;
+  public long f3696; public long f3697; public long f3698; public long f3699;
+  public long f3700; public long f3701; public long f3702; public long f3703;
+  public long f3704; public long f3705; public long f3706; public long f3707;
+  public long f3708; public long f3709; public long f3710; public long f3711;
+  public long f3712; public long f3713; public long f3714; public long f3715;
+  public long f3716; public long f3717; public long f3718; public long f3719;
+  public long f3720; public long f3721; public long f3722; public long f3723;
+  public long f3724; public long f3725; public long f3726; public long f3727;
+  public long f3728; public long f3729; public long f3730; public long f3731;
+  public long f3732; public long f3733; public long f3734; public long f3735;
+  public long f3736; public long f3737; public long f3738; public long f3739;
+  public long f3740; public long f3741; public long f3742; public long f3743;
+  public long f3744; public long f3745; public long f3746; public long f3747;
+  public long f3748; public long f3749; public long f3750; public long f3751;
+  public long f3752; public long f3753; public long f3754; public long f3755;
+  public long f3756; public long f3757; public long f3758; public long f3759;
+  public long f3760; public long f3761; public long f3762; public long f3763;
+  public long f3764; public long f3765; public long f3766; public long f3767;
+  public long f3768; public long f3769; public long f3770; public long f3771;
+  public long f3772; public long f3773; public long f3774; public long f3775;
+  public long f3776; public long f3777; public long f3778; public long f3779;
+  public long f3780; public long f3781; public long f3782; public long f3783;
+  public long f3784; public long f3785; public long f3786; public long f3787;
+  public long f3788; public long f3789; public long f3790; public long f3791;
+  public long f3792; public long f3793; public long f3794; public long f3795;
+  public long f3796; public long f3797; public long f3798; public long f3799;
+  public long f3800; public long f3801; public long f3802; public long f3803;
+  public long f3804; public long f3805; public long f3806; public long f3807;
+  public long f3808; public long f3809; public long f3810; public long f3811;
+  public long f3812; public long f3813; public long f3814; public long f3815;
+  public long f3816; public long f3817; public long f3818; public long f3819;
+  public long f3820; public long f3821; public long f3822; public long f3823;
+  public long f3824; public long f3825; public long f3826; public long f3827;
+  public long f3828; public long f3829; public long f3830; public long f3831;
+  public long f3832; public long f3833; public long f3834; public long f3835;
+  public long f3836; public long f3837; public long f3838; public long f3839;
+  public long f3840; public long f3841; public long f3842; public long f3843;
+  public long f3844; public long f3845; public long f3846; public long f3847;
+  public long f3848; public long f3849; public long f3850; public long f3851;
+  public long f3852; public long f3853; public long f3854; public long f3855;
+  public long f3856; public long f3857; public long f3858; public long f3859;
+  public long f3860; public long f3861; public long f3862; public long f3863;
+  public long f3864; public long f3865; public long f3866; public long f3867;
+  public long f3868; public long f3869; public long f3870; public long f3871;
+  public long f3872; public long f3873; public long f3874; public long f3875;
+  public long f3876; public long f3877; public long f3878; public long f3879;
+  public long f3880; public long f3881; public long f3882; public long f3883;
+  public long f3884; public long f3885; public long f3886; public long f3887;
+  public long f3888; public long f3889; public long f3890; public long f3891;
+  public long f3892; public long f3893; public long f3894; public long f3895;
+  public long f3896; public long f3897; public long f3898; public long f3899;
+  public long f3900; public long f3901; public long f3902; public long f3903;
+  public long f3904; public long f3905; public long f3906; public long f3907;
+  public long f3908; public long f3909; public long f3910; public long f3911;
+  public long f3912; public long f3913; public long f3914; public long f3915;
+  public long f3916; public long f3917; public long f3918; public long f3919;
+  public long f3920; public long f3921; public long f3922; public long f3923;
+  public long f3924; public long f3925; public long f3926; public long f3927;
+  public long f3928; public long f3929; public long f3930; public long f3931;
+  public long f3932; public long f3933; public long f3934; public long f3935;
+  public long f3936; public long f3937; public long f3938; public long f3939;
+  public long f3940; public long f3941; public long f3942; public long f3943;
+  public long f3944; public long f3945; public long f3946; public long f3947;
+  public long f3948; public long f3949; public long f3950; public long f3951;
+  public long f3952; public long f3953; public long f3954; public long f3955;
+  public long f3956; public long f3957; public long f3958; public long f3959;
+  public long f3960; public long f3961; public long f3962; public long f3963;
+  public long f3964; public long f3965; public long f3966; public long f3967;
+  public long f3968; public long f3969; public long f3970; public long f3971;
+  public long f3972; public long f3973; public long f3974; public long f3975;
+  public long f3976; public long f3977; public long f3978; public long f3979;
+  public long f3980; public long f3981; public long f3982; public long f3983;
+  public long f3984; public long f3985; public long f3986; public long f3987;
+  public long f3988; public long f3989; public long f3990; public long f3991;
+  public long f3992; public long f3993; public long f3994; public long f3995;
+  public long f3996; public long f3997; public long f3998; public long f3999;
+  public long f4000; public long f4001; public long f4002; public long f4003;
+  public long f4004; public long f4005; public long f4006; public long f4007;
+  public long f4008; public long f4009; public long f4010; public long f4011;
+  public long f4012; public long f4013; public long f4014; public long f4015;
+  public long f4016; public long f4017; public long f4018; public long f4019;
+  public long f4020; public long f4021; public long f4022; public long f4023;
+  public long f4024; public long f4025; public long f4026; public long f4027;
+  public long f4028; public long f4029; public long f4030; public long f4031;
+  public long f4032; public long f4033; public long f4034; public long f4035;
+  public long f4036; public long f4037; public long f4038; public long f4039;
+  public long f4040; public long f4041; public long f4042; public long f4043;
+  public long f4044; public long f4045; public long f4046; public long f4047;
+  public long f4048; public long f4049; public long f4050; public long f4051;
+  public long f4052; public long f4053; public long f4054; public long f4055;
+  public long f4056; public long f4057; public long f4058; public long f4059;
+  public long f4060; public long f4061; public long f4062; public long f4063;
+  public long f4064; public long f4065; public long f4066; public long f4067;
+  public long f4068; public long f4069; public long f4070; public long f4071;
+  public long f4072; public long f4073; public long f4074; public long f4075;
+  public long f4076; public long f4077; public long f4078; public long f4079;
+  public long f4080; public long f4081; public long f4082; public long f4083;
+  public long f4084; public long f4085; public long f4086; public long f4087;
+  public long f4088; public long f4089; public long f4090; public long f4091;
+  public long f4092; public long f4093; public long f4094; public long f4095;
+  public long f4096; public long f4097; public long f4098; public long f4099;
+  public long f4100; public long f4101; public long f4102; public long f4103;
+  public long f4104; public long f4105; public long f4106; public long f4107;
+  public long f4108; public long f4109; public long f4110; public long f4111;
+  public long f4112; public long f4113; public long f4114; public long f4115;
+  public long f4116; public long f4117; public long f4118; public long f4119;
+  public long f4120; public long f4121; public long f4122; public long f4123;
+  public long f4124; public long f4125; public long f4126; public long f4127;
+  public long f4128; public long f4129; public long f4130; public long f4131;
+  public long f4132; public long f4133; public long f4134; public long f4135;
+  public long f4136; public long f4137; public long f4138; public long f4139;
+  public long f4140; public long f4141; public long f4142; public long f4143;
+  public long f4144; public long f4145; public long f4146; public long f4147;
+  public long f4148; public long f4149; public long f4150; public long f4151;
+  public long f4152; public long f4153; public long f4154; public long f4155;
+  public long f4156; public long f4157; public long f4158; public long f4159;
+  public long f4160; public long f4161; public long f4162; public long f4163;
+  public long f4164; public long f4165; public long f4166; public long f4167;
+  public long f4168; public long f4169; public long f4170; public long f4171;
+  public long f4172; public long f4173; public long f4174; public long f4175;
+  public long f4176; public long f4177; public long f4178; public long f4179;
+  public long f4180; public long f4181; public long f4182; public long f4183;
+  public long f4184; public long f4185; public long f4186; public long f4187;
+  public long f4188; public long f4189; public long f4190; public long f4191;
+  public long f4192; public long f4193; public long f4194; public long f4195;
+  public long f4196; public long f4197; public long f4198; public long f4199;
+  public long f4200; public long f4201; public long f4202; public long f4203;
+  public long f4204; public long f4205; public long f4206; public long f4207;
+  public long f4208; public long f4209; public long f4210; public long f4211;
+  public long f4212; public long f4213; public long f4214; public long f4215;
+  public long f4216; public long f4217; public long f4218; public long f4219;
+  public long f4220; public long f4221; public long f4222; public long f4223;
+  public long f4224; public long f4225; public long f4226; public long f4227;
+  public long f4228; public long f4229; public long f4230; public long f4231;
+  public long f4232; public long f4233; public long f4234; public long f4235;
+  public long f4236; public long f4237; public long f4238; public long f4239;
+  public long f4240; public long f4241; public long f4242; public long f4243;
+  public long f4244; public long f4245; public long f4246; public long f4247;
+  public long f4248; public long f4249; public long f4250; public long f4251;
+  public long f4252; public long f4253; public long f4254; public long f4255;
+  public long f4256; public long f4257; public long f4258; public long f4259;
+  public long f4260; public long f4261; public long f4262; public long f4263;
+  public long f4264; public long f4265; public long f4266; public long f4267;
+  public long f4268; public long f4269; public long f4270; public long f4271;
+  public long f4272; public long f4273; public long f4274; public long f4275;
+  public long f4276; public long f4277; public long f4278; public long f4279;
+  public long f4280; public long f4281; public long f4282; public long f4283;
+  public long f4284; public long f4285; public long f4286; public long f4287;
+  public long f4288; public long f4289; public long f4290; public long f4291;
+  public long f4292; public long f4293; public long f4294; public long f4295;
+  public long f4296; public long f4297; public long f4298; public long f4299;
+  public long f4300; public long f4301; public long f4302; public long f4303;
+  public long f4304; public long f4305; public long f4306; public long f4307;
+  public long f4308; public long f4309; public long f4310; public long f4311;
+  public long f4312; public long f4313; public long f4314; public long f4315;
+  public long f4316; public long f4317; public long f4318; public long f4319;
+  public long f4320; public long f4321; public long f4322; public long f4323;
+  public long f4324; public long f4325; public long f4326; public long f4327;
+  public long f4328; public long f4329; public long f4330; public long f4331;
+  public long f4332; public long f4333; public long f4334; public long f4335;
+  public long f4336; public long f4337; public long f4338; public long f4339;
+  public long f4340; public long f4341; public long f4342; public long f4343;
+  public long f4344; public long f4345; public long f4346; public long f4347;
+  public long f4348; public long f4349; public long f4350; public long f4351;
+  public long f4352; public long f4353; public long f4354; public long f4355;
+  public long f4356; public long f4357; public long f4358; public long f4359;
+  public long f4360; public long f4361; public long f4362; public long f4363;
+  public long f4364; public long f4365; public long f4366; public long f4367;
+  public long f4368; public long f4369; public long f4370; public long f4371;
+  public long f4372; public long f4373; public long f4374; public long f4375;
+  public long f4376; public long f4377; public long f4378; public long f4379;
+  public long f4380; public long f4381; public long f4382; public long f4383;
+  public long f4384; public long f4385; public long f4386; public long f4387;
+  public long f4388; public long f4389; public long f4390; public long f4391;
+  public long f4392; public long f4393; public long f4394; public long f4395;
+  public long f4396; public long f4397; public long f4398; public long f4399;
+  public long f4400; public long f4401; public long f4402; public long f4403;
+  public long f4404; public long f4405; public long f4406; public long f4407;
+  public long f4408; public long f4409; public long f4410; public long f4411;
+  public long f4412; public long f4413; public long f4414; public long f4415;
+  public long f4416; public long f4417; public long f4418; public long f4419;
+  public long f4420; public long f4421; public long f4422; public long f4423;
+  public long f4424; public long f4425; public long f4426; public long f4427;
+  public long f4428; public long f4429; public long f4430; public long f4431;
+  public long f4432; public long f4433; public long f4434; public long f4435;
+  public long f4436; public long f4437; public long f4438; public long f4439;
+  public long f4440; public long f4441; public long f4442; public long f4443;
+  public long f4444; public long f4445; public long f4446; public long f4447;
+  public long f4448; public long f4449; public long f4450; public long f4451;
+  public long f4452; public long f4453; public long f4454; public long f4455;
+  public long f4456; public long f4457; public long f4458; public long f4459;
+  public long f4460; public long f4461; public long f4462; public long f4463;
+  public long f4464; public long f4465; public long f4466; public long f4467;
+  public long f4468; public long f4469; public long f4470; public long f4471;
+  public long f4472; public long f4473; public long f4474; public long f4475;
+  public long f4476; public long f4477; public long f4478; public long f4479;
+  public long f4480; public long f4481; public long f4482; public long f4483;
+  public long f4484; public long f4485; public long f4486; public long f4487;
+  public long f4488; public long f4489; public long f4490; public long f4491;
+  public long f4492; public long f4493; public long f4494; public long f4495;
+  public long f4496; public long f4497; public long f4498; public long f4499;
+  public long f4500; public long f4501; public long f4502; public long f4503;
+  public long f4504; public long f4505; public long f4506; public long f4507;
+  public long f4508; public long f4509; public long f4510; public long f4511;
+  public long f4512; public long f4513; public long f4514; public long f4515;
+  public long f4516; public long f4517; public long f4518; public long f4519;
+  public long f4520; public long f4521; public long f4522; public long f4523;
+  public long f4524; public long f4525; public long f4526; public long f4527;
+  public long f4528; public long f4529; public long f4530; public long f4531;
+  public long f4532; public long f4533; public long f4534; public long f4535;
+  public long f4536; public long f4537; public long f4538; public long f4539;
+  public long f4540; public long f4541; public long f4542; public long f4543;
+  public long f4544; public long f4545; public long f4546; public long f4547;
+  public long f4548; public long f4549; public long f4550; public long f4551;
+  public long f4552; public long f4553; public long f4554; public long f4555;
+  public long f4556; public long f4557; public long f4558; public long f4559;
+  public long f4560; public long f4561; public long f4562; public long f4563;
+  public long f4564; public long f4565; public long f4566; public long f4567;
+  public long f4568; public long f4569; public long f4570; public long f4571;
+  public long f4572; public long f4573; public long f4574; public long f4575;
+  public long f4576; public long f4577; public long f4578; public long f4579;
+  public long f4580; public long f4581; public long f4582; public long f4583;
+  public long f4584; public long f4585; public long f4586; public long f4587;
+  public long f4588; public long f4589; public long f4590; public long f4591;
+  public long f4592; public long f4593; public long f4594; public long f4595;
+  public long f4596; public long f4597; public long f4598; public long f4599;
+  public long f4600; public long f4601; public long f4602; public long f4603;
+  public long f4604; public long f4605; public long f4606; public long f4607;
+  public long f4608; public long f4609; public long f4610; public long f4611;
+  public long f4612; public long f4613; public long f4614; public long f4615;
+  public long f4616; public long f4617; public long f4618; public long f4619;
+  public long f4620; public long f4621; public long f4622; public long f4623;
+  public long f4624; public long f4625; public long f4626; public long f4627;
+  public long f4628; public long f4629; public long f4630; public long f4631;
+  public long f4632; public long f4633; public long f4634; public long f4635;
+  public long f4636; public long f4637; public long f4638; public long f4639;
+  public long f4640; public long f4641; public long f4642; public long f4643;
+  public long f4644; public long f4645; public long f4646; public long f4647;
+  public long f4648; public long f4649; public long f4650; public long f4651;
+  public long f4652; public long f4653; public long f4654; public long f4655;
+  public long f4656; public long f4657; public long f4658; public long f4659;
+  public long f4660; public long f4661; public long f4662; public long f4663;
+  public long f4664; public long f4665; public long f4666; public long f4667;
+  public long f4668; public long f4669; public long f4670; public long f4671;
+  public long f4672; public long f4673; public long f4674; public long f4675;
+  public long f4676; public long f4677; public long f4678; public long f4679;
+  public long f4680; public long f4681; public long f4682; public long f4683;
+  public long f4684; public long f4685; public long f4686; public long f4687;
+  public long f4688; public long f4689; public long f4690; public long f4691;
+  public long f4692; public long f4693; public long f4694; public long f4695;
+  public long f4696; public long f4697; public long f4698; public long f4699;
+  public long f4700; public long f4701; public long f4702; public long f4703;
+  public long f4704; public long f4705; public long f4706; public long f4707;
+  public long f4708; public long f4709; public long f4710; public long f4711;
+  public long f4712; public long f4713; public long f4714; public long f4715;
+  public long f4716; public long f4717; public long f4718; public long f4719;
+  public long f4720; public long f4721; public long f4722; public long f4723;
+  public long f4724; public long f4725; public long f4726; public long f4727;
+  public long f4728; public long f4729; public long f4730; public long f4731;
+  public long f4732; public long f4733; public long f4734; public long f4735;
+  public long f4736; public long f4737; public long f4738; public long f4739;
+  public long f4740; public long f4741; public long f4742; public long f4743;
+  public long f4744; public long f4745; public long f4746; public long f4747;
+  public long f4748; public long f4749; public long f4750; public long f4751;
+  public long f4752; public long f4753; public long f4754; public long f4755;
+  public long f4756; public long f4757; public long f4758; public long f4759;
+  public long f4760; public long f4761; public long f4762; public long f4763;
+  public long f4764; public long f4765; public long f4766; public long f4767;
+  public long f4768; public long f4769; public long f4770; public long f4771;
+  public long f4772; public long f4773; public long f4774; public long f4775;
+  public long f4776; public long f4777; public long f4778; public long f4779;
+  public long f4780; public long f4781; public long f4782; public long f4783;
+  public long f4784; public long f4785; public long f4786; public long f4787;
+  public long f4788; public long f4789; public long f4790; public long f4791;
+  public long f4792; public long f4793; public long f4794; public long f4795;
+  public long f4796; public long f4797; public long f4798; public long f4799;
+  public long f4800; public long f4801; public long f4802; public long f4803;
+  public long f4804; public long f4805; public long f4806; public long f4807;
+  public long f4808; public long f4809; public long f4810; public long f4811;
+  public long f4812; public long f4813; public long f4814; public long f4815;
+  public long f4816; public long f4817; public long f4818; public long f4819;
+  public long f4820; public long f4821; public long f4822; public long f4823;
+  public long f4824; public long f4825; public long f4826; public long f4827;
+  public long f4828; public long f4829; public long f4830; public long f4831;
+  public long f4832; public long f4833; public long f4834; public long f4835;
+  public long f4836; public long f4837; public long f4838; public long f4839;
+  public long f4840; public long f4841; public long f4842; public long f4843;
+  public long f4844; public long f4845; public long f4846; public long f4847;
+  public long f4848; public long f4849; public long f4850; public long f4851;
+  public long f4852; public long f4853; public long f4854; public long f4855;
+  public long f4856; public long f4857; public long f4858; public long f4859;
+  public long f4860; public long f4861; public long f4862; public long f4863;
+  public long f4864; public long f4865; public long f4866; public long f4867;
+  public long f4868; public long f4869; public long f4870; public long f4871;
+  public long f4872; public long f4873; public long f4874; public long f4875;
+  public long f4876; public long f4877; public long f4878; public long f4879;
+  public long f4880; public long f4881; public long f4882; public long f4883;
+  public long f4884; public long f4885; public long f4886; public long f4887;
+  public long f4888; public long f4889; public long f4890; public long f4891;
+  public long f4892; public long f4893; public long f4894; public long f4895;
+  public long f4896; public long f4897; public long f4898; public long f4899;
+  public long f4900; public long f4901; public long f4902; public long f4903;
+  public long f4904; public long f4905; public long f4906; public long f4907;
+  public long f4908; public long f4909; public long f4910; public long f4911;
+  public long f4912; public long f4913; public long f4914; public long f4915;
+  public long f4916; public long f4917; public long f4918; public long f4919;
+  public long f4920; public long f4921; public long f4922; public long f4923;
+  public long f4924; public long f4925; public long f4926; public long f4927;
+  public long f4928; public long f4929; public long f4930; public long f4931;
+  public long f4932; public long f4933; public long f4934; public long f4935;
+  public long f4936; public long f4937; public long f4938; public long f4939;
+  public long f4940; public long f4941; public long f4942; public long f4943;
+  public long f4944; public long f4945; public long f4946; public long f4947;
+  public long f4948; public long f4949; public long f4950; public long f4951;
+  public long f4952; public long f4953; public long f4954; public long f4955;
+  public long f4956; public long f4957; public long f4958; public long f4959;
+  public long f4960; public long f4961; public long f4962; public long f4963;
+  public long f4964; public long f4965; public long f4966; public long f4967;
+  public long f4968; public long f4969; public long f4970; public long f4971;
+  public long f4972; public long f4973; public long f4974; public long f4975;
+  public long f4976; public long f4977; public long f4978; public long f4979;
+  public long f4980; public long f4981; public long f4982; public long f4983;
+  public long f4984; public long f4985; public long f4986; public long f4987;
+  public long f4988; public long f4989; public long f4990; public long f4991;
+  public long f4992; public long f4993; public long f4994; public long f4995;
+  public long f4996; public long f4997; public long f4998; public long f4999;
+  public long f5000; public long f5001; public long f5002; public long f5003;
+  public long f5004; public long f5005; public long f5006; public long f5007;
+  public long f5008; public long f5009; public long f5010; public long f5011;
+  public long f5012; public long f5013; public long f5014; public long f5015;
+  public long f5016; public long f5017; public long f5018; public long f5019;
+  public long f5020; public long f5021; public long f5022; public long f5023;
+  public long f5024; public long f5025; public long f5026; public long f5027;
+  public long f5028; public long f5029; public long f5030; public long f5031;
+  public long f5032; public long f5033; public long f5034; public long f5035;
+  public long f5036; public long f5037; public long f5038; public long f5039;
+  public long f5040; public long f5041; public long f5042; public long f5043;
+  public long f5044; public long f5045; public long f5046; public long f5047;
+  public long f5048; public long f5049; public long f5050; public long f5051;
+  public long f5052; public long f5053; public long f5054; public long f5055;
+  public long f5056; public long f5057; public long f5058; public long f5059;
+  public long f5060; public long f5061; public long f5062; public long f5063;
+  public long f5064; public long f5065; public long f5066; public long f5067;
+  public long f5068; public long f5069; public long f5070; public long f5071;
+  public long f5072; public long f5073; public long f5074; public long f5075;
+  public long f5076; public long f5077; public long f5078; public long f5079;
+  public long f5080; public long f5081; public long f5082; public long f5083;
+  public long f5084; public long f5085; public long f5086; public long f5087;
+  public long f5088; public long f5089; public long f5090; public long f5091;
+  public long f5092; public long f5093; public long f5094; public long f5095;
+  public long f5096; public long f5097; public long f5098; public long f5099;
+  public long f5100; public long f5101; public long f5102; public long f5103;
+  public long f5104; public long f5105; public long f5106; public long f5107;
+  public long f5108; public long f5109; public long f5110; public long f5111;
+  public long f5112; public long f5113; public long f5114; public long f5115;
+  public long f5116; public long f5117; public long f5118; public long f5119;
+  public long f5120; public long f5121; public long f5122; public long f5123;
+  public long f5124; public long f5125; public long f5126; public long f5127;
+  public long f5128; public long f5129; public long f5130; public long f5131;
+  public long f5132; public long f5133; public long f5134; public long f5135;
+  public long f5136; public long f5137; public long f5138; public long f5139;
+  public long f5140; public long f5141; public long f5142; public long f5143;
+  public long f5144; public long f5145; public long f5146; public long f5147;
+  public long f5148; public long f5149; public long f5150; public long f5151;
+  public long f5152; public long f5153; public long f5154; public long f5155;
+  public long f5156; public long f5157; public long f5158; public long f5159;
+  public long f5160; public long f5161; public long f5162; public long f5163;
+  public long f5164; public long f5165; public long f5166; public long f5167;
+  public long f5168; public long f5169; public long f5170; public long f5171;
+  public long f5172; public long f5173; public long f5174; public long f5175;
+  public long f5176; public long f5177; public long f5178; public long f5179;
+  public long f5180; public long f5181; public long f5182; public long f5183;
+  public long f5184; public long f5185; public long f5186; public long f5187;
+  public long f5188; public long f5189; public long f5190; public long f5191;
+  public long f5192; public long f5193; public long f5194; public long f5195;
+  public long f5196; public long f5197; public long f5198; public long f5199;
+  public long f5200; public long f5201; public long f5202; public long f5203;
+  public long f5204; public long f5205; public long f5206; public long f5207;
+  public long f5208; public long f5209; public long f5210; public long f5211;
+  public long f5212; public long f5213; public long f5214; public long f5215;
+  public long f5216; public long f5217; public long f5218; public long f5219;
+  public long f5220; public long f5221; public long f5222; public long f5223;
+  public long f5224; public long f5225; public long f5226; public long f5227;
+  public long f5228; public long f5229; public long f5230; public long f5231;
+  public long f5232; public long f5233; public long f5234; public long f5235;
+  public long f5236; public long f5237; public long f5238; public long f5239;
+  public long f5240; public long f5241; public long f5242; public long f5243;
+  public long f5244; public long f5245; public long f5246; public long f5247;
+  public long f5248; public long f5249; public long f5250; public long f5251;
+  public long f5252; public long f5253; public long f5254; public long f5255;
+  public long f5256; public long f5257; public long f5258; public long f5259;
+  public long f5260; public long f5261; public long f5262; public long f5263;
+  public long f5264; public long f5265; public long f5266; public long f5267;
+  public long f5268; public long f5269; public long f5270; public long f5271;
+  public long f5272; public long f5273; public long f5274; public long f5275;
+  public long f5276; public long f5277; public long f5278; public long f5279;
+  public long f5280; public long f5281; public long f5282; public long f5283;
+  public long f5284; public long f5285; public long f5286; public long f5287;
+  public long f5288; public long f5289; public long f5290; public long f5291;
+  public long f5292; public long f5293; public long f5294; public long f5295;
+  public long f5296; public long f5297; public long f5298; public long f5299;
+  public long f5300; public long f5301; public long f5302; public long f5303;
+  public long f5304; public long f5305; public long f5306; public long f5307;
+  public long f5308; public long f5309; public long f5310; public long f5311;
+  public long f5312; public long f5313; public long f5314; public long f5315;
+  public long f5316; public long f5317; public long f5318; public long f5319;
+  public long f5320; public long f5321; public long f5322; public long f5323;
+  public long f5324; public long f5325; public long f5326; public long f5327;
+  public long f5328; public long f5329; public long f5330; public long f5331;
+  public long f5332; public long f5333; public long f5334; public long f5335;
+  public long f5336; public long f5337; public long f5338; public long f5339;
+  public long f5340; public long f5341; public long f5342; public long f5343;
+  public long f5344; public long f5345; public long f5346; public long f5347;
+  public long f5348; public long f5349; public long f5350; public long f5351;
+  public long f5352; public long f5353; public long f5354; public long f5355;
+  public long f5356; public long f5357; public long f5358; public long f5359;
+  public long f5360; public long f5361; public long f5362; public long f5363;
+  public long f5364; public long f5365; public long f5366; public long f5367;
+  public long f5368; public long f5369; public long f5370; public long f5371;
+  public long f5372; public long f5373; public long f5374; public long f5375;
+  public long f5376; public long f5377; public long f5378; public long f5379;
+  public long f5380; public long f5381; public long f5382; public long f5383;
+  public long f5384; public long f5385; public long f5386; public long f5387;
+  public long f5388; public long f5389; public long f5390; public long f5391;
+  public long f5392; public long f5393; public long f5394; public long f5395;
+  public long f5396; public long f5397; public long f5398; public long f5399;
+  public long f5400; public long f5401; public long f5402; public long f5403;
+  public long f5404; public long f5405; public long f5406; public long f5407;
+  public long f5408; public long f5409; public long f5410; public long f5411;
+  public long f5412; public long f5413; public long f5414; public long f5415;
+  public long f5416; public long f5417; public long f5418; public long f5419;
+  public long f5420; public long f5421; public long f5422; public long f5423;
+  public long f5424; public long f5425; public long f5426; public long f5427;
+  public long f5428; public long f5429; public long f5430; public long f5431;
+  public long f5432; public long f5433; public long f5434; public long f5435;
+  public long f5436; public long f5437; public long f5438; public long f5439;
+  public long f5440; public long f5441; public long f5442; public long f5443;
+  public long f5444; public long f5445; public long f5446; public long f5447;
+  public long f5448; public long f5449; public long f5450; public long f5451;
+  public long f5452; public long f5453; public long f5454; public long f5455;
+  public long f5456; public long f5457; public long f5458; public long f5459;
+  public long f5460; public long f5461; public long f5462; public long f5463;
+  public long f5464; public long f5465; public long f5466; public long f5467;
+  public long f5468; public long f5469; public long f5470; public long f5471;
+  public long f5472; public long f5473; public long f5474; public long f5475;
+  public long f5476; public long f5477; public long f5478; public long f5479;
+  public long f5480; public long f5481; public long f5482; public long f5483;
+  public long f5484; public long f5485; public long f5486; public long f5487;
+  public long f5488; public long f5489; public long f5490; public long f5491;
+  public long f5492; public long f5493; public long f5494; public long f5495;
+  public long f5496; public long f5497; public long f5498; public long f5499;
+  public long f5500; public long f5501; public long f5502; public long f5503;
+  public long f5504; public long f5505; public long f5506; public long f5507;
+  public long f5508; public long f5509; public long f5510; public long f5511;
+  public long f5512; public long f5513; public long f5514; public long f5515;
+  public long f5516; public long f5517; public long f5518; public long f5519;
+  public long f5520; public long f5521; public long f5522; public long f5523;
+  public long f5524; public long f5525; public long f5526; public long f5527;
+  public long f5528; public long f5529; public long f5530; public long f5531;
+  public long f5532; public long f5533; public long f5534; public long f5535;
+  public long f5536; public long f5537; public long f5538; public long f5539;
+  public long f5540; public long f5541; public long f5542; public long f5543;
+  public long f5544; public long f5545; public long f5546; public long f5547;
+  public long f5548; public long f5549; public long f5550; public long f5551;
+  public long f5552; public long f5553; public long f5554; public long f5555;
+  public long f5556; public long f5557; public long f5558; public long f5559;
+  public long f5560; public long f5561; public long f5562; public long f5563;
+  public long f5564; public long f5565; public long f5566; public long f5567;
+  public long f5568; public long f5569; public long f5570; public long f5571;
+  public long f5572; public long f5573; public long f5574; public long f5575;
+  public long f5576; public long f5577; public long f5578; public long f5579;
+  public long f5580; public long f5581; public long f5582; public long f5583;
+  public long f5584; public long f5585; public long f5586; public long f5587;
+  public long f5588; public long f5589; public long f5590; public long f5591;
+  public long f5592; public long f5593; public long f5594; public long f5595;
+  public long f5596; public long f5597; public long f5598; public long f5599;
+  public long f5600; public long f5601; public long f5602; public long f5603;
+  public long f5604; public long f5605; public long f5606; public long f5607;
+  public long f5608; public long f5609; public long f5610; public long f5611;
+  public long f5612; public long f5613; public long f5614; public long f5615;
+  public long f5616; public long f5617; public long f5618; public long f5619;
+  public long f5620; public long f5621; public long f5622; public long f5623;
+  public long f5624; public long f5625; public long f5626; public long f5627;
+  public long f5628; public long f5629; public long f5630; public long f5631;
+  public long f5632; public long f5633; public long f5634; public long f5635;
+  public long f5636; public long f5637; public long f5638; public long f5639;
+  public long f5640; public long f5641; public long f5642; public long f5643;
+  public long f5644; public long f5645; public long f5646; public long f5647;
+  public long f5648; public long f5649; public long f5650; public long f5651;
+  public long f5652; public long f5653; public long f5654; public long f5655;
+  public long f5656; public long f5657; public long f5658; public long f5659;
+  public long f5660; public long f5661; public long f5662; public long f5663;
+  public long f5664; public long f5665; public long f5666; public long f5667;
+  public long f5668; public long f5669; public long f5670; public long f5671;
+  public long f5672; public long f5673; public long f5674; public long f5675;
+  public long f5676; public long f5677; public long f5678; public long f5679;
+  public long f5680; public long f5681; public long f5682; public long f5683;
+  public long f5684; public long f5685; public long f5686; public long f5687;
+  public long f5688; public long f5689; public long f5690; public long f5691;
+  public long f5692; public long f5693; public long f5694; public long f5695;
+  public long f5696; public long f5697; public long f5698; public long f5699;
+  public long f5700; public long f5701; public long f5702; public long f5703;
+  public long f5704; public long f5705; public long f5706; public long f5707;
+  public long f5708; public long f5709; public long f5710; public long f5711;
+  public long f5712; public long f5713; public long f5714; public long f5715;
+  public long f5716; public long f5717; public long f5718; public long f5719;
+  public long f5720; public long f5721; public long f5722; public long f5723;
+  public long f5724; public long f5725; public long f5726; public long f5727;
+  public long f5728; public long f5729; public long f5730; public long f5731;
+  public long f5732; public long f5733; public long f5734; public long f5735;
+  public long f5736; public long f5737; public long f5738; public long f5739;
+  public long f5740; public long f5741; public long f5742; public long f5743;
+  public long f5744; public long f5745; public long f5746; public long f5747;
+  public long f5748; public long f5749; public long f5750; public long f5751;
+  public long f5752; public long f5753; public long f5754; public long f5755;
+  public long f5756; public long f5757; public long f5758; public long f5759;
+  public long f5760; public long f5761; public long f5762; public long f5763;
+  public long f5764; public long f5765; public long f5766; public long f5767;
+  public long f5768; public long f5769; public long f5770; public long f5771;
+  public long f5772; public long f5773; public long f5774; public long f5775;
+  public long f5776; public long f5777; public long f5778; public long f5779;
+  public long f5780; public long f5781; public long f5782; public long f5783;
+  public long f5784; public long f5785; public long f5786; public long f5787;
+  public long f5788; public long f5789; public long f5790; public long f5791;
+  public long f5792; public long f5793; public long f5794; public long f5795;
+  public long f5796; public long f5797; public long f5798; public long f5799;
+  public long f5800; public long f5801; public long f5802; public long f5803;
+  public long f5804; public long f5805; public long f5806; public long f5807;
+  public long f5808; public long f5809; public long f5810; public long f5811;
+  public long f5812; public long f5813; public long f5814; public long f5815;
+  public long f5816; public long f5817; public long f5818; public long f5819;
+  public long f5820; public long f5821; public long f5822; public long f5823;
+  public long f5824; public long f5825; public long f5826; public long f5827;
+  public long f5828; public long f5829; public long f5830; public long f5831;
+  public long f5832; public long f5833; public long f5834; public long f5835;
+  public long f5836; public long f5837; public long f5838; public long f5839;
+  public long f5840; public long f5841; public long f5842; public long f5843;
+  public long f5844; public long f5845; public long f5846; public long f5847;
+  public long f5848; public long f5849; public long f5850; public long f5851;
+  public long f5852; public long f5853; public long f5854; public long f5855;
+  public long f5856; public long f5857; public long f5858; public long f5859;
+  public long f5860; public long f5861; public long f5862; public long f5863;
+  public long f5864; public long f5865; public long f5866; public long f5867;
+  public long f5868; public long f5869; public long f5870; public long f5871;
+  public long f5872; public long f5873; public long f5874; public long f5875;
+  public long f5876; public long f5877; public long f5878; public long f5879;
+  public long f5880; public long f5881; public long f5882; public long f5883;
+  public long f5884; public long f5885; public long f5886; public long f5887;
+  public long f5888; public long f5889; public long f5890; public long f5891;
+  public long f5892; public long f5893; public long f5894; public long f5895;
+  public long f5896; public long f5897; public long f5898; public long f5899;
+  public long f5900; public long f5901; public long f5902; public long f5903;
+  public long f5904; public long f5905; public long f5906; public long f5907;
+  public long f5908; public long f5909; public long f5910; public long f5911;
+  public long f5912; public long f5913; public long f5914; public long f5915;
+  public long f5916; public long f5917; public long f5918; public long f5919;
+  public long f5920; public long f5921; public long f5922; public long f5923;
+  public long f5924; public long f5925; public long f5926; public long f5927;
+  public long f5928; public long f5929; public long f5930; public long f5931;
+  public long f5932; public long f5933; public long f5934; public long f5935;
+  public long f5936; public long f5937; public long f5938; public long f5939;
+  public long f5940; public long f5941; public long f5942; public long f5943;
+  public long f5944; public long f5945; public long f5946; public long f5947;
+  public long f5948; public long f5949; public long f5950; public long f5951;
+  public long f5952; public long f5953; public long f5954; public long f5955;
+  public long f5956; public long f5957; public long f5958; public long f5959;
+  public long f5960; public long f5961; public long f5962; public long f5963;
+  public long f5964; public long f5965; public long f5966; public long f5967;
+  public long f5968; public long f5969; public long f5970; public long f5971;
+  public long f5972; public long f5973; public long f5974; public long f5975;
+  public long f5976; public long f5977; public long f5978; public long f5979;
+  public long f5980; public long f5981; public long f5982; public long f5983;
+  public long f5984; public long f5985; public long f5986; public long f5987;
+  public long f5988; public long f5989; public long f5990; public long f5991;
+  public long f5992; public long f5993; public long f5994; public long f5995;
+  public long f5996; public long f5997; public long f5998; public long f5999;
+  public long f6000; public long f6001; public long f6002; public long f6003;
+  public long f6004; public long f6005; public long f6006; public long f6007;
+  public long f6008; public long f6009; public long f6010; public long f6011;
+  public long f6012; public long f6013; public long f6014; public long f6015;
+  public long f6016; public long f6017; public long f6018; public long f6019;
+  public long f6020; public long f6021; public long f6022; public long f6023;
+  public long f6024; public long f6025; public long f6026; public long f6027;
+  public long f6028; public long f6029; public long f6030; public long f6031;
+  public long f6032; public long f6033; public long f6034; public long f6035;
+  public long f6036; public long f6037; public long f6038; public long f6039;
+  public long f6040; public long f6041; public long f6042; public long f6043;
+  public long f6044; public long f6045; public long f6046; public long f6047;
+  public long f6048; public long f6049; public long f6050; public long f6051;
+  public long f6052; public long f6053; public long f6054; public long f6055;
+  public long f6056; public long f6057; public long f6058; public long f6059;
+  public long f6060; public long f6061; public long f6062; public long f6063;
+  public long f6064; public long f6065; public long f6066; public long f6067;
+  public long f6068; public long f6069; public long f6070; public long f6071;
+  public long f6072; public long f6073; public long f6074; public long f6075;
+  public long f6076; public long f6077; public long f6078; public long f6079;
+  public long f6080; public long f6081; public long f6082; public long f6083;
+  public long f6084; public long f6085; public long f6086; public long f6087;
+  public long f6088; public long f6089; public long f6090; public long f6091;
+  public long f6092; public long f6093; public long f6094; public long f6095;
+  public long f6096; public long f6097; public long f6098; public long f6099;
+  public long f6100; public long f6101; public long f6102; public long f6103;
+  public long f6104; public long f6105; public long f6106; public long f6107;
+  public long f6108; public long f6109; public long f6110; public long f6111;
+  public long f6112; public long f6113; public long f6114; public long f6115;
+  public long f6116; public long f6117; public long f6118; public long f6119;
+  public long f6120; public long f6121; public long f6122; public long f6123;
+  public long f6124; public long f6125; public long f6126; public long f6127;
+  public long f6128; public long f6129; public long f6130; public long f6131;
+  public long f6132; public long f6133; public long f6134; public long f6135;
+  public long f6136; public long f6137; public long f6138; public long f6139;
+  public long f6140; public long f6141; public long f6142; public long f6143;
+  public long f6144; public long f6145; public long f6146; public long f6147;
+  public long f6148; public long f6149; public long f6150; public long f6151;
+  public long f6152; public long f6153; public long f6154; public long f6155;
+  public long f6156; public long f6157; public long f6158; public long f6159;
+  public long f6160; public long f6161; public long f6162; public long f6163;
+  public long f6164; public long f6165; public long f6166; public long f6167;
+  public long f6168; public long f6169; public long f6170; public long f6171;
+  public long f6172; public long f6173; public long f6174; public long f6175;
+  public long f6176; public long f6177; public long f6178; public long f6179;
+  public long f6180; public long f6181; public long f6182; public long f6183;
+  public long f6184; public long f6185; public long f6186; public long f6187;
+  public long f6188; public long f6189; public long f6190; public long f6191;
+  public long f6192; public long f6193; public long f6194; public long f6195;
+  public long f6196; public long f6197; public long f6198; public long f6199;
+  public long f6200; public long f6201; public long f6202; public long f6203;
+  public long f6204; public long f6205; public long f6206; public long f6207;
+  public long f6208; public long f6209; public long f6210; public long f6211;
+  public long f6212; public long f6213; public long f6214; public long f6215;
+  public long f6216; public long f6217; public long f6218; public long f6219;
+  public long f6220; public long f6221; public long f6222; public long f6223;
+  public long f6224; public long f6225; public long f6226; public long f6227;
+  public long f6228; public long f6229; public long f6230; public long f6231;
+  public long f6232; public long f6233; public long f6234; public long f6235;
+  public long f6236; public long f6237; public long f6238; public long f6239;
+  public long f6240; public long f6241; public long f6242; public long f6243;
+  public long f6244; public long f6245; public long f6246; public long f6247;
+  public long f6248; public long f6249; public long f6250; public long f6251;
+  public long f6252; public long f6253; public long f6254; public long f6255;
+  public long f6256; public long f6257; public long f6258; public long f6259;
+  public long f6260; public long f6261; public long f6262; public long f6263;
+  public long f6264; public long f6265; public long f6266; public long f6267;
+  public long f6268; public long f6269; public long f6270; public long f6271;
+  public long f6272; public long f6273; public long f6274; public long f6275;
+  public long f6276; public long f6277; public long f6278; public long f6279;
+  public long f6280; public long f6281; public long f6282; public long f6283;
+  public long f6284; public long f6285; public long f6286; public long f6287;
+  public long f6288; public long f6289; public long f6290; public long f6291;
+  public long f6292; public long f6293; public long f6294; public long f6295;
+  public long f6296; public long f6297; public long f6298; public long f6299;
+  public long f6300; public long f6301; public long f6302; public long f6303;
+  public long f6304; public long f6305; public long f6306; public long f6307;
+  public long f6308; public long f6309; public long f6310; public long f6311;
+  public long f6312; public long f6313; public long f6314; public long f6315;
+  public long f6316; public long f6317; public long f6318; public long f6319;
+  public long f6320; public long f6321; public long f6322; public long f6323;
+  public long f6324; public long f6325; public long f6326; public long f6327;
+  public long f6328; public long f6329; public long f6330; public long f6331;
+  public long f6332; public long f6333; public long f6334; public long f6335;
+  public long f6336; public long f6337; public long f6338; public long f6339;
+  public long f6340; public long f6341; public long f6342; public long f6343;
+  public long f6344; public long f6345; public long f6346; public long f6347;
+  public long f6348; public long f6349; public long f6350; public long f6351;
+  public long f6352; public long f6353; public long f6354; public long f6355;
+  public long f6356; public long f6357; public long f6358; public long f6359;
+  public long f6360; public long f6361; public long f6362; public long f6363;
+  public long f6364; public long f6365; public long f6366; public long f6367;
+  public long f6368; public long f6369; public long f6370; public long f6371;
+  public long f6372; public long f6373; public long f6374; public long f6375;
+  public long f6376; public long f6377; public long f6378; public long f6379;
+  public long f6380; public long f6381; public long f6382; public long f6383;
+  public long f6384; public long f6385; public long f6386; public long f6387;
+  public long f6388; public long f6389; public long f6390; public long f6391;
+  public long f6392; public long f6393; public long f6394; public long f6395;
+  public long f6396; public long f6397; public long f6398; public long f6399;
+  public long f6400; public long f6401; public long f6402; public long f6403;
+  public long f6404; public long f6405; public long f6406; public long f6407;
+  public long f6408; public long f6409; public long f6410; public long f6411;
+  public long f6412; public long f6413; public long f6414; public long f6415;
+  public long f6416; public long f6417; public long f6418; public long f6419;
+  public long f6420; public long f6421; public long f6422; public long f6423;
+  public long f6424; public long f6425; public long f6426; public long f6427;
+  public long f6428; public long f6429; public long f6430; public long f6431;
+  public long f6432; public long f6433; public long f6434; public long f6435;
+  public long f6436; public long f6437; public long f6438; public long f6439;
+  public long f6440; public long f6441; public long f6442; public long f6443;
+  public long f6444; public long f6445; public long f6446; public long f6447;
+  public long f6448; public long f6449; public long f6450; public long f6451;
+  public long f6452; public long f6453; public long f6454; public long f6455;
+  public long f6456; public long f6457; public long f6458; public long f6459;
+  public long f6460; public long f6461; public long f6462; public long f6463;
+  public long f6464; public long f6465; public long f6466; public long f6467;
+  public long f6468; public long f6469; public long f6470; public long f6471;
+  public long f6472; public long f6473; public long f6474; public long f6475;
+  public long f6476; public long f6477; public long f6478; public long f6479;
+  public long f6480; public long f6481; public long f6482; public long f6483;
+  public long f6484; public long f6485; public long f6486; public long f6487;
+  public long f6488; public long f6489; public long f6490; public long f6491;
+  public long f6492; public long f6493; public long f6494; public long f6495;
+  public long f6496; public long f6497; public long f6498; public long f6499;
+  public long f6500; public long f6501; public long f6502; public long f6503;
+  public long f6504; public long f6505; public long f6506; public long f6507;
+  public long f6508; public long f6509; public long f6510; public long f6511;
+  public long f6512; public long f6513; public long f6514; public long f6515;
+  public long f6516; public long f6517; public long f6518; public long f6519;
+  public long f6520; public long f6521; public long f6522; public long f6523;
+  public long f6524; public long f6525; public long f6526; public long f6527;
+  public long f6528; public long f6529; public long f6530; public long f6531;
+  public long f6532; public long f6533; public long f6534; public long f6535;
+  public long f6536; public long f6537; public long f6538; public long f6539;
+  public long f6540; public long f6541; public long f6542; public long f6543;
+  public long f6544; public long f6545; public long f6546; public long f6547;
+  public long f6548; public long f6549; public long f6550; public long f6551;
+  public long f6552; public long f6553; public long f6554; public long f6555;
+  public long f6556; public long f6557; public long f6558; public long f6559;
+  public long f6560; public long f6561; public long f6562; public long f6563;
+  public long f6564; public long f6565; public long f6566; public long f6567;
+  public long f6568; public long f6569; public long f6570; public long f6571;
+  public long f6572; public long f6573; public long f6574; public long f6575;
+  public long f6576; public long f6577; public long f6578; public long f6579;
+  public long f6580; public long f6581; public long f6582; public long f6583;
+  public long f6584; public long f6585; public long f6586; public long f6587;
+  public long f6588; public long f6589; public long f6590; public long f6591;
+  public long f6592; public long f6593; public long f6594; public long f6595;
+  public long f6596; public long f6597; public long f6598; public long f6599;
+  public long f6600; public long f6601; public long f6602; public long f6603;
+  public long f6604; public long f6605; public long f6606; public long f6607;
+  public long f6608; public long f6609; public long f6610; public long f6611;
+  public long f6612; public long f6613; public long f6614; public long f6615;
+  public long f6616; public long f6617; public long f6618; public long f6619;
+  public long f6620; public long f6621; public long f6622; public long f6623;
+  public long f6624; public long f6625; public long f6626; public long f6627;
+  public long f6628; public long f6629; public long f6630; public long f6631;
+  public long f6632; public long f6633; public long f6634; public long f6635;
+  public long f6636; public long f6637; public long f6638; public long f6639;
+  public long f6640; public long f6641; public long f6642; public long f6643;
+  public long f6644; public long f6645; public long f6646; public long f6647;
+  public long f6648; public long f6649; public long f6650; public long f6651;
+  public long f6652; public long f6653; public long f6654; public long f6655;
+  public long f6656; public long f6657; public long f6658; public long f6659;
+  public long f6660; public long f6661; public long f6662; public long f6663;
+  public long f6664; public long f6665; public long f6666; public long f6667;
+  public long f6668; public long f6669; public long f6670; public long f6671;
+  public long f6672; public long f6673; public long f6674; public long f6675;
+  public long f6676; public long f6677; public long f6678; public long f6679;
+  public long f6680; public long f6681; public long f6682; public long f6683;
+  public long f6684; public long f6685; public long f6686; public long f6687;
+  public long f6688; public long f6689; public long f6690; public long f6691;
+  public long f6692; public long f6693; public long f6694; public long f6695;
+  public long f6696; public long f6697; public long f6698; public long f6699;
+  public long f6700; public long f6701; public long f6702; public long f6703;
+  public long f6704; public long f6705; public long f6706; public long f6707;
+  public long f6708; public long f6709; public long f6710; public long f6711;
+  public long f6712; public long f6713; public long f6714; public long f6715;
+  public long f6716; public long f6717; public long f6718; public long f6719;
+  public long f6720; public long f6721; public long f6722; public long f6723;
+  public long f6724; public long f6725; public long f6726; public long f6727;
+  public long f6728; public long f6729; public long f6730; public long f6731;
+  public long f6732; public long f6733; public long f6734; public long f6735;
+  public long f6736; public long f6737; public long f6738; public long f6739;
+  public long f6740; public long f6741; public long f6742; public long f6743;
+  public long f6744; public long f6745; public long f6746; public long f6747;
+  public long f6748; public long f6749; public long f6750; public long f6751;
+  public long f6752; public long f6753; public long f6754; public long f6755;
+  public long f6756; public long f6757; public long f6758; public long f6759;
+  public long f6760; public long f6761; public long f6762; public long f6763;
+  public long f6764; public long f6765; public long f6766; public long f6767;
+  public long f6768; public long f6769; public long f6770; public long f6771;
+  public long f6772; public long f6773; public long f6774; public long f6775;
+  public long f6776; public long f6777; public long f6778; public long f6779;
+  public long f6780; public long f6781; public long f6782; public long f6783;
+  public long f6784; public long f6785; public long f6786; public long f6787;
+  public long f6788; public long f6789; public long f6790; public long f6791;
+  public long f6792; public long f6793; public long f6794; public long f6795;
+  public long f6796; public long f6797; public long f6798; public long f6799;
+  public long f6800; public long f6801; public long f6802; public long f6803;
+  public long f6804; public long f6805; public long f6806; public long f6807;
+  public long f6808; public long f6809; public long f6810; public long f6811;
+  public long f6812; public long f6813; public long f6814; public long f6815;
+  public long f6816; public long f6817; public long f6818; public long f6819;
+  public long f6820; public long f6821; public long f6822; public long f6823;
+  public long f6824; public long f6825; public long f6826; public long f6827;
+  public long f6828; public long f6829; public long f6830; public long f6831;
+  public long f6832; public long f6833; public long f6834; public long f6835;
+  public long f6836; public long f6837; public long f6838; public long f6839;
+  public long f6840; public long f6841; public long f6842; public long f6843;
+  public long f6844; public long f6845; public long f6846; public long f6847;
+  public long f6848; public long f6849; public long f6850; public long f6851;
+  public long f6852; public long f6853; public long f6854; public long f6855;
+  public long f6856; public long f6857; public long f6858; public long f6859;
+  public long f6860; public long f6861; public long f6862; public long f6863;
+  public long f6864; public long f6865; public long f6866; public long f6867;
+  public long f6868; public long f6869; public long f6870; public long f6871;
+  public long f6872; public long f6873; public long f6874; public long f6875;
+  public long f6876; public long f6877; public long f6878; public long f6879;
+  public long f6880; public long f6881; public long f6882; public long f6883;
+  public long f6884; public long f6885; public long f6886; public long f6887;
+  public long f6888; public long f6889; public long f6890; public long f6891;
+  public long f6892; public long f6893; public long f6894; public long f6895;
+  public long f6896; public long f6897; public long f6898; public long f6899;
+  public long f6900; public long f6901; public long f6902; public long f6903;
+  public long f6904; public long f6905; public long f6906; public long f6907;
+  public long f6908; public long f6909; public long f6910; public long f6911;
+  public long f6912; public long f6913; public long f6914; public long f6915;
+  public long f6916; public long f6917; public long f6918; public long f6919;
+  public long f6920; public long f6921; public long f6922; public long f6923;
+  public long f6924; public long f6925; public long f6926; public long f6927;
+  public long f6928; public long f6929; public long f6930; public long f6931;
+  public long f6932; public long f6933; public long f6934; public long f6935;
+  public long f6936; public long f6937; public long f6938; public long f6939;
+  public long f6940; public long f6941; public long f6942; public long f6943;
+  public long f6944; public long f6945; public long f6946; public long f6947;
+  public long f6948; public long f6949; public long f6950; public long f6951;
+  public long f6952; public long f6953; public long f6954; public long f6955;
+  public long f6956; public long f6957; public long f6958; public long f6959;
+  public long f6960; public long f6961; public long f6962; public long f6963;
+  public long f6964; public long f6965; public long f6966; public long f6967;
+  public long f6968; public long f6969; public long f6970; public long f6971;
+  public long f6972; public long f6973; public long f6974; public long f6975;
+  public long f6976; public long f6977; public long f6978; public long f6979;
+  public long f6980; public long f6981; public long f6982; public long f6983;
+  public long f6984; public long f6985; public long f6986; public long f6987;
+  public long f6988; public long f6989; public long f6990; public long f6991;
+  public long f6992; public long f6993; public long f6994; public long f6995;
+  public long f6996; public long f6997; public long f6998; public long f6999;
+  public long f7000; public long f7001; public long f7002; public long f7003;
+  public long f7004; public long f7005; public long f7006; public long f7007;
+  public long f7008; public long f7009; public long f7010; public long f7011;
+  public long f7012; public long f7013; public long f7014; public long f7015;
+  public long f7016; public long f7017; public long f7018; public long f7019;
+  public long f7020; public long f7021; public long f7022; public long f7023;
+  public long f7024; public long f7025; public long f7026; public long f7027;
+  public long f7028; public long f7029; public long f7030; public long f7031;
+  public long f7032; public long f7033; public long f7034; public long f7035;
+  public long f7036; public long f7037; public long f7038; public long f7039;
+  public long f7040; public long f7041; public long f7042; public long f7043;
+  public long f7044; public long f7045; public long f7046; public long f7047;
+  public long f7048; public long f7049; public long f7050; public long f7051;
+  public long f7052; public long f7053; public long f7054; public long f7055;
+  public long f7056; public long f7057; public long f7058; public long f7059;
+  public long f7060; public long f7061; public long f7062; public long f7063;
+  public long f7064; public long f7065; public long f7066; public long f7067;
+  public long f7068; public long f7069; public long f7070; public long f7071;
+  public long f7072; public long f7073; public long f7074; public long f7075;
+  public long f7076; public long f7077; public long f7078; public long f7079;
+  public long f7080; public long f7081; public long f7082; public long f7083;
+  public long f7084; public long f7085; public long f7086; public long f7087;
+  public long f7088; public long f7089; public long f7090; public long f7091;
+  public long f7092; public long f7093; public long f7094; public long f7095;
+  public long f7096; public long f7097; public long f7098; public long f7099;
+  public long f7100; public long f7101; public long f7102; public long f7103;
+  public long f7104; public long f7105; public long f7106; public long f7107;
+  public long f7108; public long f7109; public long f7110; public long f7111;
+  public long f7112; public long f7113; public long f7114; public long f7115;
+  public long f7116; public long f7117; public long f7118; public long f7119;
+  public long f7120; public long f7121; public long f7122; public long f7123;
+  public long f7124; public long f7125; public long f7126; public long f7127;
+  public long f7128; public long f7129; public long f7130; public long f7131;
+  public long f7132; public long f7133; public long f7134; public long f7135;
+  public long f7136; public long f7137; public long f7138; public long f7139;
+  public long f7140; public long f7141; public long f7142; public long f7143;
+  public long f7144; public long f7145; public long f7146; public long f7147;
+  public long f7148; public long f7149; public long f7150; public long f7151;
+  public long f7152; public long f7153; public long f7154; public long f7155;
+  public long f7156; public long f7157; public long f7158; public long f7159;
+  public long f7160; public long f7161; public long f7162; public long f7163;
+  public long f7164; public long f7165; public long f7166; public long f7167;
+  public long f7168; public long f7169; public long f7170; public long f7171;
+  public long f7172; public long f7173; public long f7174; public long f7175;
+  public long f7176; public long f7177; public long f7178; public long f7179;
+  public long f7180; public long f7181; public long f7182; public long f7183;
+  public long f7184; public long f7185; public long f7186; public long f7187;
+  public long f7188; public long f7189; public long f7190; public long f7191;
+  public long f7192; public long f7193; public long f7194; public long f7195;
+  public long f7196; public long f7197; public long f7198; public long f7199;
+  public long f7200; public long f7201; public long f7202; public long f7203;
+  public long f7204; public long f7205; public long f7206; public long f7207;
+  public long f7208; public long f7209; public long f7210; public long f7211;
+  public long f7212; public long f7213; public long f7214; public long f7215;
+  public long f7216; public long f7217; public long f7218; public long f7219;
+  public long f7220; public long f7221; public long f7222; public long f7223;
+  public long f7224; public long f7225; public long f7226; public long f7227;
+  public long f7228; public long f7229; public long f7230; public long f7231;
+  public long f7232; public long f7233; public long f7234; public long f7235;
+  public long f7236; public long f7237; public long f7238; public long f7239;
+  public long f7240; public long f7241; public long f7242; public long f7243;
+  public long f7244; public long f7245; public long f7246; public long f7247;
+  public long f7248; public long f7249; public long f7250; public long f7251;
+  public long f7252; public long f7253; public long f7254; public long f7255;
+  public long f7256; public long f7257; public long f7258; public long f7259;
+  public long f7260; public long f7261; public long f7262; public long f7263;
+  public long f7264; public long f7265; public long f7266; public long f7267;
+  public long f7268; public long f7269; public long f7270; public long f7271;
+  public long f7272; public long f7273; public long f7274; public long f7275;
+  public long f7276; public long f7277; public long f7278; public long f7279;
+  public long f7280; public long f7281; public long f7282; public long f7283;
+  public long f7284; public long f7285; public long f7286; public long f7287;
+  public long f7288; public long f7289; public long f7290; public long f7291;
+  public long f7292; public long f7293; public long f7294; public long f7295;
+  public long f7296; public long f7297; public long f7298; public long f7299;
+  public long f7300; public long f7301; public long f7302; public long f7303;
+  public long f7304; public long f7305; public long f7306; public long f7307;
+  public long f7308; public long f7309; public long f7310; public long f7311;
+  public long f7312; public long f7313; public long f7314; public long f7315;
+  public long f7316; public long f7317; public long f7318; public long f7319;
+  public long f7320; public long f7321; public long f7322; public long f7323;
+  public long f7324; public long f7325; public long f7326; public long f7327;
+  public long f7328; public long f7329; public long f7330; public long f7331;
+  public long f7332; public long f7333; public long f7334; public long f7335;
+  public long f7336; public long f7337; public long f7338; public long f7339;
+  public long f7340; public long f7341; public long f7342; public long f7343;
+  public long f7344; public long f7345; public long f7346; public long f7347;
+  public long f7348; public long f7349; public long f7350; public long f7351;
+  public long f7352; public long f7353; public long f7354; public long f7355;
+  public long f7356; public long f7357; public long f7358; public long f7359;
+  public long f7360; public long f7361; public long f7362; public long f7363;
+  public long f7364; public long f7365; public long f7366; public long f7367;
+  public long f7368; public long f7369; public long f7370; public long f7371;
+  public long f7372; public long f7373; public long f7374; public long f7375;
+  public long f7376; public long f7377; public long f7378; public long f7379;
+  public long f7380; public long f7381; public long f7382; public long f7383;
+  public long f7384; public long f7385; public long f7386; public long f7387;
+  public long f7388; public long f7389; public long f7390; public long f7391;
+  public long f7392; public long f7393; public long f7394; public long f7395;
+  public long f7396; public long f7397; public long f7398; public long f7399;
+  public long f7400; public long f7401; public long f7402; public long f7403;
+  public long f7404; public long f7405; public long f7406; public long f7407;
+  public long f7408; public long f7409; public long f7410; public long f7411;
+  public long f7412; public long f7413; public long f7414; public long f7415;
+  public long f7416; public long f7417; public long f7418; public long f7419;
+  public long f7420; public long f7421; public long f7422; public long f7423;
+  public long f7424; public long f7425; public long f7426; public long f7427;
+  public long f7428; public long f7429; public long f7430; public long f7431;
+  public long f7432; public long f7433; public long f7434; public long f7435;
+  public long f7436; public long f7437; public long f7438; public long f7439;
+  public long f7440; public long f7441; public long f7442; public long f7443;
+  public long f7444; public long f7445; public long f7446; public long f7447;
+  public long f7448; public long f7449; public long f7450; public long f7451;
+  public long f7452; public long f7453; public long f7454; public long f7455;
+  public long f7456; public long f7457; public long f7458; public long f7459;
+  public long f7460; public long f7461; public long f7462; public long f7463;
+  public long f7464; public long f7465; public long f7466; public long f7467;
+  public long f7468; public long f7469; public long f7470; public long f7471;
+  public long f7472; public long f7473; public long f7474; public long f7475;
+  public long f7476; public long f7477; public long f7478; public long f7479;
+  public long f7480; public long f7481; public long f7482; public long f7483;
+  public long f7484; public long f7485; public long f7486; public long f7487;
+  public long f7488; public long f7489; public long f7490; public long f7491;
+  public long f7492; public long f7493; public long f7494; public long f7495;
+  public long f7496; public long f7497; public long f7498; public long f7499;
+  public long f7500; public long f7501; public long f7502; public long f7503;
+  public long f7504; public long f7505; public long f7506; public long f7507;
+  public long f7508; public long f7509; public long f7510; public long f7511;
+  public long f7512; public long f7513; public long f7514; public long f7515;
+  public long f7516; public long f7517; public long f7518; public long f7519;
+  public long f7520; public long f7521; public long f7522; public long f7523;
+  public long f7524; public long f7525; public long f7526; public long f7527;
+  public long f7528; public long f7529; public long f7530; public long f7531;
+  public long f7532; public long f7533; public long f7534; public long f7535;
+  public long f7536; public long f7537; public long f7538; public long f7539;
+  public long f7540; public long f7541; public long f7542; public long f7543;
+  public long f7544; public long f7545; public long f7546; public long f7547;
+  public long f7548; public long f7549; public long f7550; public long f7551;
+  public long f7552; public long f7553; public long f7554; public long f7555;
+  public long f7556; public long f7557; public long f7558; public long f7559;
+  public long f7560; public long f7561; public long f7562; public long f7563;
+  public long f7564; public long f7565; public long f7566; public long f7567;
+  public long f7568; public long f7569; public long f7570; public long f7571;
+  public long f7572; public long f7573; public long f7574; public long f7575;
+  public long f7576; public long f7577; public long f7578; public long f7579;
+  public long f7580; public long f7581; public long f7582; public long f7583;
+  public long f7584; public long f7585; public long f7586; public long f7587;
+  public long f7588; public long f7589; public long f7590; public long f7591;
+  public long f7592; public long f7593; public long f7594; public long f7595;
+  public long f7596; public long f7597; public long f7598; public long f7599;
+  public long f7600; public long f7601; public long f7602; public long f7603;
+  public long f7604; public long f7605; public long f7606; public long f7607;
+  public long f7608; public long f7609; public long f7610; public long f7611;
+  public long f7612; public long f7613; public long f7614; public long f7615;
+  public long f7616; public long f7617; public long f7618; public long f7619;
+  public long f7620; public long f7621; public long f7622; public long f7623;
+  public long f7624; public long f7625; public long f7626; public long f7627;
+  public long f7628; public long f7629; public long f7630; public long f7631;
+  public long f7632; public long f7633; public long f7634; public long f7635;
+  public long f7636; public long f7637; public long f7638; public long f7639;
+  public long f7640; public long f7641; public long f7642; public long f7643;
+  public long f7644; public long f7645; public long f7646; public long f7647;
+  public long f7648; public long f7649; public long f7650; public long f7651;
+  public long f7652; public long f7653; public long f7654; public long f7655;
+  public long f7656; public long f7657; public long f7658; public long f7659;
+  public long f7660; public long f7661; public long f7662; public long f7663;
+  public long f7664; public long f7665; public long f7666; public long f7667;
+  public long f7668; public long f7669; public long f7670; public long f7671;
+  public long f7672; public long f7673; public long f7674; public long f7675;
+  public long f7676; public long f7677; public long f7678; public long f7679;
+  public long f7680; public long f7681; public long f7682; public long f7683;
+  public long f7684; public long f7685; public long f7686; public long f7687;
+  public long f7688; public long f7689; public long f7690; public long f7691;
+  public long f7692; public long f7693; public long f7694; public long f7695;
+  public long f7696; public long f7697; public long f7698; public long f7699;
+  public long f7700; public long f7701; public long f7702; public long f7703;
+  public long f7704; public long f7705; public long f7706; public long f7707;
+  public long f7708; public long f7709; public long f7710; public long f7711;
+  public long f7712; public long f7713; public long f7714; public long f7715;
+  public long f7716; public long f7717; public long f7718; public long f7719;
+  public long f7720; public long f7721; public long f7722; public long f7723;
+  public long f7724; public long f7725; public long f7726; public long f7727;
+  public long f7728; public long f7729; public long f7730; public long f7731;
+  public long f7732; public long f7733; public long f7734; public long f7735;
+  public long f7736; public long f7737; public long f7738; public long f7739;
+  public long f7740; public long f7741; public long f7742; public long f7743;
+  public long f7744; public long f7745; public long f7746; public long f7747;
+  public long f7748; public long f7749; public long f7750; public long f7751;
+  public long f7752; public long f7753; public long f7754; public long f7755;
+  public long f7756; public long f7757; public long f7758; public long f7759;
+  public long f7760; public long f7761; public long f7762; public long f7763;
+  public long f7764; public long f7765; public long f7766; public long f7767;
+  public long f7768; public long f7769; public long f7770; public long f7771;
+  public long f7772; public long f7773; public long f7774; public long f7775;
+  public long f7776; public long f7777; public long f7778; public long f7779;
+  public long f7780; public long f7781; public long f7782; public long f7783;
+  public long f7784; public long f7785; public long f7786; public long f7787;
+  public long f7788; public long f7789; public long f7790; public long f7791;
+  public long f7792; public long f7793; public long f7794; public long f7795;
+  public long f7796; public long f7797; public long f7798; public long f7799;
+  public long f7800; public long f7801; public long f7802; public long f7803;
+  public long f7804; public long f7805; public long f7806; public long f7807;
+  public long f7808; public long f7809; public long f7810; public long f7811;
+  public long f7812; public long f7813; public long f7814; public long f7815;
+  public long f7816; public long f7817; public long f7818; public long f7819;
+  public long f7820; public long f7821; public long f7822; public long f7823;
+  public long f7824; public long f7825; public long f7826; public long f7827;
+  public long f7828; public long f7829; public long f7830; public long f7831;
+  public long f7832; public long f7833; public long f7834; public long f7835;
+  public long f7836; public long f7837; public long f7838; public long f7839;
+  public long f7840; public long f7841; public long f7842; public long f7843;
+  public long f7844; public long f7845; public long f7846; public long f7847;
+  public long f7848; public long f7849; public long f7850; public long f7851;
+  public long f7852; public long f7853; public long f7854; public long f7855;
+  public long f7856; public long f7857; public long f7858; public long f7859;
+  public long f7860; public long f7861; public long f7862; public long f7863;
+  public long f7864; public long f7865; public long f7866; public long f7867;
+  public long f7868; public long f7869; public long f7870; public long f7871;
+  public long f7872; public long f7873; public long f7874; public long f7875;
+  public long f7876; public long f7877; public long f7878; public long f7879;
+  public long f7880; public long f7881; public long f7882; public long f7883;
+  public long f7884; public long f7885; public long f7886; public long f7887;
+  public long f7888; public long f7889; public long f7890; public long f7891;
+  public long f7892; public long f7893; public long f7894; public long f7895;
+  public long f7896; public long f7897; public long f7898; public long f7899;
+  public long f7900; public long f7901; public long f7902; public long f7903;
+  public long f7904; public long f7905; public long f7906; public long f7907;
+  public long f7908; public long f7909; public long f7910; public long f7911;
+  public long f7912; public long f7913; public long f7914; public long f7915;
+  public long f7916; public long f7917; public long f7918; public long f7919;
+  public long f7920; public long f7921; public long f7922; public long f7923;
+  public long f7924; public long f7925; public long f7926; public long f7927;
+  public long f7928; public long f7929; public long f7930; public long f7931;
+  public long f7932; public long f7933; public long f7934; public long f7935;
+  public long f7936; public long f7937; public long f7938; public long f7939;
+  public long f7940; public long f7941; public long f7942; public long f7943;
+  public long f7944; public long f7945; public long f7946; public long f7947;
+  public long f7948; public long f7949; public long f7950; public long f7951;
+  public long f7952; public long f7953; public long f7954; public long f7955;
+  public long f7956; public long f7957; public long f7958; public long f7959;
+  public long f7960; public long f7961; public long f7962; public long f7963;
+  public long f7964; public long f7965; public long f7966; public long f7967;
+  public long f7968; public long f7969; public long f7970; public long f7971;
+  public long f7972; public long f7973; public long f7974; public long f7975;
+  public long f7976; public long f7977; public long f7978; public long f7979;
+  public long f7980; public long f7981; public long f7982; public long f7983;
+  public long f7984; public long f7985; public long f7986; public long f7987;
+  public long f7988; public long f7989; public long f7990; public long f7991;
+  public long f7992; public long f7993; public long f7994; public long f7995;
+  public long f7996; public long f7997; public long f7998; public long f7999;
+  public long f8000; public long f8001; public long f8002; public long f8003;
+  public long f8004; public long f8005; public long f8006; public long f8007;
+  public long f8008; public long f8009; public long f8010; public long f8011;
+  public long f8012; public long f8013; public long f8014; public long f8015;
+  public long f8016; public long f8017; public long f8018; public long f8019;
+  public long f8020; public long f8021; public long f8022; public long f8023;
+  public long f8024; public long f8025; public long f8026; public long f8027;
+  public long f8028; public long f8029; public long f8030; public long f8031;
+  public long f8032; public long f8033; public long f8034; public long f8035;
+  public long f8036; public long f8037; public long f8038; public long f8039;
+  public long f8040; public long f8041; public long f8042; public long f8043;
+  public long f8044; public long f8045; public long f8046; public long f8047;
+  public long f8048; public long f8049; public long f8050; public long f8051;
+  public long f8052; public long f8053; public long f8054; public long f8055;
+  public long f8056; public long f8057; public long f8058; public long f8059;
+  public long f8060; public long f8061; public long f8062; public long f8063;
+  public long f8064; public long f8065; public long f8066; public long f8067;
+  public long f8068; public long f8069; public long f8070; public long f8071;
+  public long f8072; public long f8073; public long f8074; public long f8075;
+  public long f8076; public long f8077; public long f8078; public long f8079;
+  public long f8080; public long f8081; public long f8082; public long f8083;
+  public long f8084; public long f8085; public long f8086; public long f8087;
+  public long f8088; public long f8089; public long f8090; public long f8091;
+  public long f8092; public long f8093; public long f8094; public long f8095;
+  public long f8096; public long f8097; public long f8098; public long f8099;
+  public long f8100; public long f8101; public long f8102; public long f8103;
+  public long f8104; public long f8105; public long f8106; public long f8107;
+  public long f8108; public long f8109; public long f8110; public long f8111;
+  public long f8112; public long f8113; public long f8114; public long f8115;
+  public long f8116; public long f8117; public long f8118; public long f8119;
+  public long f8120; public long f8121; public long f8122; public long f8123;
+  public long f8124; public long f8125; public long f8126; public long f8127;
+  public long f8128; public long f8129; public long f8130; public long f8131;
+  public long f8132; public long f8133; public long f8134; public long f8135;
+  public long f8136; public long f8137; public long f8138; public long f8139;
+  public long f8140; public long f8141; public long f8142; public long f8143;
+  public long f8144; public long f8145; public long f8146; public long f8147;
+  public long f8148; public long f8149; public long f8150; public long f8151;
+  public long f8152; public long f8153; public long f8154; public long f8155;
+  public long f8156; public long f8157; public long f8158; public long f8159;
+  public long f8160; public long f8161; public long f8162; public long f8163;
+  public long f8164; public long f8165; public long f8166; public long f8167;
+  public long f8168; public long f8169; public long f8170; public long f8171;
+  public long f8172; public long f8173; public long f8174; public long f8175;
+  public long f8176; public long f8177; public long f8178; public long f8179;
+  public long f8180; public long f8181; public long f8182; public long f8183;
+  public long f8184; public long f8185; public long f8186; public long f8187;
+  public long f8188; public long f8189; public long f8190; public long f8191;
+  public long f8192; public long f8193; public long f8194; public long f8195;
+  public long f8196; public long f8197; public long f8198; public long f8199;
+  public long f8200;
+
+  public static void printV(PR26858 o)
+  {
+    System.out.println(o.f8200);
+  }
+
+  public static void main(String args[])
+  {
+    PR26858 x = new PR26858();
+        
+    try
+      {
+        printV(x);
+        printV(null);
+        System.out.println("bad");
+      }
+    catch (Exception e)
+      {
+        System.out.println("ok");
+      }
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR26858.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR26858.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR26858.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR26858.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,2 @@
+0
+ok

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR27908.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR27908.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR27908.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR27908.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,87 @@
+class PR27908
+{
+  public static void main (String[] argv)
+    throws InterruptedException
+  {
+    run1 r1 = new run1();
+    run2 r2 = new run2();
+    run3 r3 = new run3();
+
+    Thread t1, t2, t3;
+
+    (t1 = new Thread (r1)).start();
+    (t2 = new Thread (r2)).start();
+    (t3 = new Thread (r3)).start();
+
+    Thread.yield();
+
+    r1.stop();
+    r2.stop();
+    r3.stop();
+
+    Thread.sleep(5000);
+
+    if (t1.isAlive() || t2.isAlive() || t3.isAlive())
+      {
+	System.out.println ("fail");
+	System.exit(1);
+      }
+  }
+
+  private static class run1 implements Runnable
+  {
+    volatile int counter;
+    volatile boolean running;
+
+    public void run ()
+    {
+      counter = 0;
+      running = true;
+      while (running)
+        counter++;
+    }
+
+    void stop ()
+    {
+      running = false;
+    }
+  }
+
+  private static class run2 implements Runnable
+  {
+    volatile int counter;
+    boolean running;
+
+    public void run ()
+    {
+      counter = 0;
+      running = true;
+      while (running)
+        counter++;
+    }
+
+    void stop ()
+    {
+      running = false;
+    }
+  }
+
+  static class run3 implements Runnable
+  {
+    volatile int counter;
+    private volatile boolean running;
+
+    public void run ()
+    {
+      counter = 0;
+      running = true;
+      while (running)
+        counter++;
+    }
+
+    void stop ()
+    {
+      running = false;
+    }
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR27908.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR27908.out?rev=43913&view=auto

==============================================================================
    (empty)

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR29013.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR29013.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR29013.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR29013.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,9 @@
+public class PR29013 {
+  public static int result() { return 5; }
+
+  public static void computeResult() { result(); }
+
+  public static void main(String[] args) {
+    computeResult();
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR29013.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR29013.out?rev=43913&view=auto

==============================================================================
    (empty)

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR3096.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR3096.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR3096.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR3096.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,36 @@
+// This test case was built for java/3096.
+
+class PR3096
+{
+  static void foo (int x[], int i) {
+    ++x[i];
+  }
+  static void foo (float x[], int i) {
+    ++x[i];
+  }
+  public static void main(String [] args) {
+      int a[] = new int [1];
+      float f[] = new float [1];
+      int b[];
+      int i = 0;
+      foo (a,0);
+      foo (f,0);
+      System.out.println (a[0]);
+      System.out.println (f[0]);
+      System.out.println ((b=a)[0]);
+      (b=a)[i]=99;
+      b[0]++;
+      System.out.println (a[0]+", "+b[0]);
+      System.out.println (++a[i]);
+      System.out.println (a[i]);
+      System.out.println (a[i]++);
+      System.out.println (a[i]);
+      String s[] = new String [1];
+      String y[];
+      s[0]="";
+      s[0] += "Peace ";
+      System.out.println (s[0]);
+      (y=s)[0] += "now!";
+      System.out.println (s[0]+", "+y[0]);
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR3096.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR3096.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR3096.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR3096.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,10 @@
+1
+1.0
+1
+100, 100
+101
+101
+101
+102
+Peace 
+Peace now!, Peace now!

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR3731.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR3731.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR3731.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR3731.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,14 @@
+// Check whether "instanceof" initializes its class argument.
+
+public class PR3731 {
+  static B b;
+  public static void main(String[] args) {
+    System.out.println(b instanceof B);
+  }
+}
+
+class B {
+  static {
+    System.out.println("Initialized");
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR3731.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR3731.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR3731.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR3731.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+false

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR5057.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR5057.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR5057.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR5057.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,16 @@
+/* Test to make sure <clinit> is generated correctly.  */
+
+public class PR5057
+{
+  public static int x;
+
+  static
+  {
+    x = 72;
+  }
+
+  public static void main (String[] args)
+  {
+    System.out.println (x);
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR5057.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR5057.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR5057.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR5057.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+72

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR5057_2.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR5057_2.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR5057_2.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR5057_2.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,19 @@
+/* Test to make sure <clinit> is generated correctly.  */
+
+class R
+{
+  public static int z = 23;
+}
+
+public class PR5057_2 extends R
+{
+  static
+  {
+    R.z = 72;
+  }
+
+  public static void main (String[] args)
+  {
+    System.out.println (R.z);
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR5057_2.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR5057_2.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR5057_2.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR5057_2.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+72

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR55.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR55.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR55.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR55.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,9 @@
+public class PR55 {
+
+    // This demonstrates a bug in gcj
+
+    public static void main(String[] argv){
+        int i = 666;
+        System.out.println("The number "+i+" is "+ (""+i).length() +" digits wide");
+    }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR55.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR55.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR55.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR55.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+The number 666 is 3 digits wide

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR56.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR56.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR56.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR56.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,8 @@
+public final class PR56 {
+  public static void main(String[] args) {
+    Object o = args;
+    int[] a;
+    if (!(o instanceof int[]) || (a = (int[])o).length != 2) {
+    }
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR56.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR56.out?rev=43913&view=auto

==============================================================================
    (empty)

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR6085.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR6085.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR6085.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR6085.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,35 @@
+public class PR6085
+{
+  public static void main(String[] args)
+  {
+    F1 f1 = new F1();
+  }
+  
+    static class F1
+    {
+      F11 f11;
+      F12 f12;
+      
+      F1()
+      {
+        f12 = new F12();
+	System.out.println (f12.i);
+	System.out.println (f12.k);
+      }
+      
+      class F11
+      { 
+	int k = 90;
+	F11() {}
+      }
+
+      class F12 extends F11 
+      {
+	int i;
+	F12()
+	{
+	  i = 17;
+	}
+      }
+    }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR6085.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR6085.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR6085.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR6085.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,2 @@
+17
+90

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR6204.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR6204.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR6204.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR6204.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,38 @@
+class X
+{
+  public Y getY()
+  {
+    return new Y(1);
+  } 
+}
+
+class Y extends X
+{
+  int i;
+
+  Y(int i)
+  {
+    this.i = i;
+  }
+    
+  public Y getY()
+  {
+    return new Y(2);
+  } 
+}
+
+class A
+{
+  X x = new Y(-1);
+  public X getX() { return x; }
+}
+
+public class PR6204 extends A
+{
+  public Y getY() { return super.getX().getY(); }
+  
+  public static void main(String[] args)
+  {
+    System.out.println (new PR6204().getY().i);
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR6204.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR6204.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR6204.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR6204.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+2

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR6520.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR6520.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR6520.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR6520.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,13 @@
+public class PR6520
+{
+   public static void check (double x, double y)
+   {
+     System.out.println (x == y);
+   }
+ 
+   public static void main(String[] args)
+   {
+     check (Math.min (2.0f, Float.NaN), Float.NaN);
+   }
+ }
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR6729.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR6729.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR6729.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR6729.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,13 @@
+public class PR6729
+{
+    static int attr = 0x9;
+
+    public static void main(String [] args) {
+        boolean res = ( ( 1 << attr ) & 0x1000 ) != 0 ;
+        System.out.println("this should be "+res+": "+isWhite());
+    }
+
+    public static boolean isWhite() {
+        return ( ( 1 << attr ) & 0x1000 ) != 0 ;
+    }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR6729.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR6729.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR6729.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR6729.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+this should be false: false

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR6820.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR6820.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR6820.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR6820.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,15 @@
+public class PR6820
+{
+  static void m(int a, int b) {
+    System.out.println("a="+a+" b="+b);
+  }
+
+  static int a = 10;
+
+  public static void main(String[] args) {
+    int b = 10;
+    m(a,++a);
+    m(b,++b);
+  }
+}
+           

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR6820.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR6820.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR6820.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR6820.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,2 @@
+a=10 b=11
+a=10 b=11

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR7482.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR7482.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR7482.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR7482.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,35 @@
+public class PR7482
+{
+  private interface I { }
+  private static class B { }
+  private static class U extends B implements I { }
+  private static class V extends B implements I { }
+
+  static I field;
+
+  private static void g1(Object o)
+  {
+    I val;
+    if (o == null)
+      val = new U();
+    else
+      val = new V();
+    field = val;
+  }
+
+  private static I g2(Object o)
+  {
+    I val;
+    if (o == null)
+      val = new U();
+    else
+      val = new V();
+    return val;
+  }
+
+  public static void main(String[] args)
+  {
+    g1(null);
+    g2(null);
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR7482.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR7482.out?rev=43913&view=auto

==============================================================================
    (empty)

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR8866.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR8866.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR8866.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/PR8866.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,22 @@
+public class PR8866
+{
+  public static void main (String args[])
+    {
+      String attTypeString = "";
+
+      switch (args.length) {
+      case 1:
+          attTypeString = "string";
+      case 4:
+          attTypeString = "ID";;
+      case 5:
+          attTypeString = "IDREF";;
+      case 6:
+          attTypeString = "NMTOKEN";;
+      case 7:
+          attTypeString = "NOTATION";;
+      default:
+          ;
+      }
+    }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Process_1.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Process_1.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Process_1.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Process_1.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,41 @@
+// Create a process and read from its standard output.
+//
+import java.io.BufferedReader;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+
+
+public class Process_1
+{
+  public static void main(String[] args)
+  {
+    try
+      {
+	Runtime r = Runtime.getRuntime();
+	String s = "Hello World";
+	String[] a = { "echo", s };
+	Process p = r.exec(a);
+	InputStream is = p.getInputStream();
+	InputStreamReader isr = new InputStreamReader(is);
+	BufferedReader br = new BufferedReader(isr);
+	String result = br.readLine();
+	if (! s.equals(result))
+	  {
+	    System.out.println("bad 1");
+	    return;
+	  }
+	result = br.readLine();
+	if (result != null)
+	  {
+	    System.out.println("bad 2");
+	    return;
+	  }
+	int c = p.waitFor();
+	System.out.println(c == 0 ? "ok" : "bad 3");
+      }
+    catch (Exception ex)
+      {
+	System.out.println(ex.toString());
+      }
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Process_1.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Process_1.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Process_1.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Process_1.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+ok

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Process_2.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Process_2.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Process_2.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Process_2.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,40 @@
+// Create a process and read from its standard error.
+import java.io.BufferedReader;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+
+
+public class Process_2
+{
+  public static void main(String[] args)
+  {
+    try
+      {
+	Runtime r = Runtime.getRuntime();
+	String s = "Hello World";
+	String[] a = { "sh", "-c", "echo " + s + " >&2" };
+	Process p = r.exec(a);
+	InputStream is = p.getErrorStream();
+	InputStreamReader isr = new InputStreamReader(is);
+	BufferedReader br = new BufferedReader(isr);
+	String result = br.readLine();
+	if (! s.equals(result))
+	  {
+	    System.out.println("bad 1");
+	    return;
+	  }
+	result = br.readLine();
+	if (result != null)
+	  {
+	    System.out.println("bad 2");
+	    return;
+	  }
+	int c = p.waitFor();
+	System.out.println(c == 0 ? "ok" : "bad 3");
+      }
+    catch (Exception ex)
+      {
+	System.out.println(ex.toString());
+      }
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Process_2.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Process_2.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Process_2.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Process_2.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+ok

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Process_3.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Process_3.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Process_3.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Process_3.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,73 @@
+// Create a process and pipe data through it.  waitFor() the process
+// in a different thread than the one that created it.
+import java.io.BufferedReader;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.io.PrintStream;
+
+
+public class Process_3 implements Runnable
+{
+  Process p;
+
+  public void run()
+  {
+    try
+      {
+	Runtime r = Runtime.getRuntime();
+	String[] a = { "sed", "-e", "s/Hello/Goodbye/" };
+	synchronized (this)
+	  {
+	    p = r.exec(a);
+	    this.notifyAll();
+	  }
+	OutputStream os = p.getOutputStream();
+	PrintStream ps = new PrintStream(os);
+	ps.println("Hello World");
+	ps.close();
+      }
+    catch (Exception ex)
+      {
+	System.out.println(ex.toString());
+        System.exit(1);
+      }
+  }
+
+  public static void main(String[] args)
+  {
+    try
+      {
+	Process_3 p3 = new Process_3();
+	Thread t = new Thread(p3);
+	t.start();
+	synchronized (p3)
+	  {
+	    while (p3.p == null)
+	      p3.wait();
+	  }
+
+	InputStream is = p3.p.getInputStream();
+	InputStreamReader isr = new InputStreamReader(is);
+	BufferedReader br = new BufferedReader(isr);
+	String result = br.readLine();
+	if (! "Goodbye World".equals(result))
+	  {
+	    System.out.println("bad 1");
+	    return;
+	  }
+	result = br.readLine();
+	if (result != null)
+	  {
+	    System.out.println("bad 2");
+	    return;
+	  }
+	int c = p3.p.waitFor();
+	System.out.println(c == 0 ? "ok" : "bad 3");
+      }
+    catch (Exception ex)
+      {
+	System.out.println(ex.toString());
+      }
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Process_3.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Process_3.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Process_3.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Process_3.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+ok

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Process_4.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Process_4.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Process_4.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Process_4.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,20 @@
+// Create a process and verify failure exit code.
+public class Process_4
+{
+  public static void main(String[] args)
+  {
+    try
+      {
+	Runtime r = Runtime.getRuntime();
+	String[] a = { "false" };
+	Process p = r.exec(a);
+	int c = p.waitFor();
+	// Solaris' false doesn't return 1.
+	System.out.println(c != 0 ? "ok" : "bad");
+      }
+    catch (Exception ex)
+      {
+	System.out.println(ex.toString());
+      }
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Process_4.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Process_4.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Process_4.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Process_4.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+ok

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Process_5.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Process_5.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Process_5.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Process_5.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,43 @@
+// Create a long running process and verify that the exitValue is not
+// immediately available.  Then destroy() it and verify that it
+// terminates quickly with a non-zero exitValue.
+public class Process_5
+{
+  public static void main(String[] args)
+  {
+    try
+      {
+	int c;
+	long startTime = System.currentTimeMillis();
+	Runtime r = Runtime.getRuntime();
+	String[] a = { "sleep", "120" };
+	Process p = r.exec(a);
+
+	try
+	  {
+	    c = p.exitValue();
+	    System.out.println("bad 1");
+	    return;
+	  }
+	catch (IllegalThreadStateException itse)
+	  {
+	    // Ignore as this is good here.
+	  }
+
+	p.destroy();
+
+	c = p.waitFor();
+
+	long endTime = System.currentTimeMillis();
+
+	if (endTime - startTime > 110000L)
+	  System.out.println("bad 2");
+
+	System.out.println(c != 0 ? "ok" : "bad 3");
+      }
+    catch (Exception ex)
+      {
+	System.out.println(ex.toString());
+      }
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Process_5.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Process_5.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Process_5.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Process_5.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+ok

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Process_6.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Process_6.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Process_6.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Process_6.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,31 @@
+// Create a running process for a non existent executable.
+// Verify that IOException is thrown.
+import java.io.IOException;
+
+
+public class Process_6
+{
+  public static void main(String[] args)
+  {
+    try
+      {
+	int c;
+	Runtime r = Runtime.getRuntime();
+	String[] a = { "blablabla_failure" };
+
+	try
+	  {
+	    Process p = r.exec(a);
+	    System.out.println("bad");
+	  }
+	catch (IOException ioe)
+	  {
+	    System.out.println("ok");
+	  }
+      }
+    catch (Exception ex)
+      {
+	System.out.println(ex.toString());
+      }
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Process_6.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Process_6.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Process_6.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Process_6.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+ok

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/RH194522.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/RH194522.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/RH194522.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/RH194522.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,18 @@
+// Test case for http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=194522
+
+import java.io.*;
+import java.nio.charset.Charset;
+
+public class RH194522
+{
+  public static void main(String[] args) throws Exception
+  {
+    Charset c = Charset.forName("UTF-8");
+    ByteArrayOutputStream baos = new ByteArrayOutputStream();
+    PrintWriter pw = new PrintWriter(new OutputStreamWriter(baos, c));
+    pw.println("hi");
+    pw.println("bob");
+    pw.flush();
+    pw.close();
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/RH194522.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/RH194522.out?rev=43913&view=auto

==============================================================================
    (empty)

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Serialization.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Serialization.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Serialization.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Serialization.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,32 @@
+import java.io.*;
+import java.util.*;
+
+public class Serialization
+{
+  public static void main(String[] args) 
+    throws IOException, ClassNotFoundException
+  {    
+    File f = new File("test.ser");
+    ObjectOutputStream objStream = 
+      new ObjectOutputStream(new FileOutputStream(f));
+    objStream.writeInt(8);
+    objStream.writeObject(new Integer(99));
+    List l = new LinkedList();
+    l.add(new Integer(1));
+    l.add(new Short((short) 7));
+    l.add(new Float(9.95));
+    l.add(new Long(-900000000000001l));
+    l.add(new Double(-3.14159));
+    l.add(new Character('X'));
+    l.add(new Byte((byte) 'z'));
+    objStream.writeObject(l);
+    objStream.close();
+    
+    ObjectInputStream ois = new ObjectInputStream(new FileInputStream(f));
+    System.out.println (ois.readInt());
+    System.out.println (ois.readObject());
+    System.out.println (ois.readObject());
+    ois.close();
+    f.delete();
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Serialization.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Serialization.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Serialization.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Serialization.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,3 @@
+8
+99
+[1, 7, 9.95, -900000000000001, -3.14159, X, 122]

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Shazam.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Shazam.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Shazam.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Shazam.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,18 @@
+import java.io.*;
+
+public class Shazam {
+
+  private static String shazam ()
+    {
+	try {
+	    return "shazam";
+	} finally {
+	    System.out.println ("The next line should say \"shazam\"");
+	}
+    }
+
+  public static void main (String[] args) 
+    {
+	System.out.println (shazam ());
+    }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Shazam.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Shazam.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Shazam.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Shazam.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,2 @@
+The next line should say "shazam"
+shazam

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/StackTrace2.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/StackTrace2.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/StackTrace2.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/StackTrace2.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,76 @@
+// Check that stack trace's work, and stack trace line numbers, if available,
+// are correct.
+
+public class StackTrace2
+{
+  public static void main(String[] args) 
+  { 
+    try
+    {
+      a();
+    }
+    catch (Exception x)
+    {
+      StackTraceElement[] trace = x.getStackTrace();
+      checkTrace(trace);
+    }
+  }
+
+  static void a() 
+  { 
+    new Inner();
+  }
+  
+  static class Inner
+  {
+    public Inner()
+    {
+      doCrash(null);
+    }  
+
+    public void doCrash(Object o)
+    {
+      o.toString();
+    }
+  }  
+  
+  static void checkTrace(StackTraceElement[] trace)
+  {
+    System.out.println("Trace length = " + trace.length);
+    checkLine(trace[0], "StackTrace2$Inner", "doCrash", 33);
+    checkLine(trace[1], "StackTrace2$Inner", "<init>", 28);
+    checkLine(trace[2], "StackTrace2", "a", 21);
+    checkLine(trace[3], "StackTrace2", "main", 10);
+  }
+  
+  static void checkLine(StackTraceElement frame, String expected_cl, 
+                	String expected_method, int expected_line)
+  {
+    if (frame.getClassName().equals(expected_cl))
+      System.out.print(expected_cl);
+    else
+      System.out.print("FAIL - expected " + expected_cl + ", got: " + 
+		       frame.getClassName());
+    
+    System.out.print(".");
+
+    if (frame.getMethodName().equals(expected_method))
+      System.out.print(expected_method);
+    else
+      System.out.print("FAIL - expected " + expected_method + ", got: " +
+		       frame.getMethodName());
+
+    System.out.print(":");
+    
+    // Permit either the correct line number or no line number. This is so
+    // we don't fail on platforms that don't yet support reading debug info 
+    // for stack traces, or when no debug info is available.
+    if (frame.getLineNumber() < 0
+        || (frame.getLineNumber() == expected_line
+            && frame.getFileName().equals("StackTrace2.java")))
+      System.out.println("OK");
+    else
+      System.out.println("FAIL - expected " + expected_line + ", got: " +
+			 frame.getLineNumber());
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/StackTrace2.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/StackTrace2.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/StackTrace2.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/StackTrace2.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,5 @@
+Trace length = 4
+StackTrace2$Inner.doCrash:OK
+StackTrace2$Inner.<init>:OK
+StackTrace2.a:OK
+StackTrace2.main:OK

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/StaticConstructor.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/StaticConstructor.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/StaticConstructor.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/StaticConstructor.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,29 @@
+// Test to make sure static initializers are called
+
+class bar
+{
+  public static int zog;
+  public static int zag;
+
+  static
+  {
+    zog = 12;
+    zag = 2;
+  }
+
+  public bar() { } 
+}
+
+public class StaticConstructor
+{
+  static int foo ()
+  {
+    return new bar().zog;
+  }
+
+  public static void main(String args[])
+  {
+    System.out.println ("" + (foo() + bar.zag));
+  }
+}
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/StaticConstructor.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/StaticConstructor.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/StaticConstructor.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/StaticConstructor.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+14

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/StringBuffer_1.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/StringBuffer_1.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/StringBuffer_1.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/StringBuffer_1.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,124 @@
+// Test StringBuffer.replace(), reverse(), insert(String), append(String), 
+// and delete().
+
+public class StringBuffer_1
+{
+  public static void main(String args[])
+  {
+    StringBuffer sb = new StringBuffer("45");
+    sb.insert(0, "123");
+    sb.append("89");
+    sb.insert(5, "6");
+    sb.insert(6, '7');
+    System.out.println (sb);
+    
+    sb.delete (3, 99);
+    
+    String foo = sb.toString();
+    
+    System.out.println (foo);
+    sb.reverse();
+    System.out.println (foo);
+
+    System.out.println (sb);
+    sb = new StringBuffer("1234");    
+    System.out.println(sb.reverse());
+    
+    sb = new StringBuffer("123456789");
+    sb.append ("0");
+    System.out.println(sb);
+
+    sb.replace (2, 99, "foo");
+    System.out.println (sb);
+
+    sb = new StringBuffer("123456789");
+    sb.replace (1, 1, "XX");
+    System.out.println (sb);
+
+    sb = new StringBuffer("123456789");
+    sb.replace (0, 2, "XX");
+    System.out.println (sb);
+
+    sb = new StringBuffer("123456789");
+    sb.replace (5, 9, "54321");
+    System.out.println (sb);
+
+    sb = new StringBuffer("123456789");
+    
+    sb.delete (1,4);
+    System.out.println (sb);    
+
+    // Test bounds checks
+    try
+    {
+      sb.insert (-2, "x");
+    }
+    catch (StringIndexOutOfBoundsException x)
+    {
+      System.out.println (x.getClass());
+    }
+
+    try
+    {
+      sb.insert (96, "x");
+    }
+    catch (StringIndexOutOfBoundsException x)
+    {
+      System.out.println (x.getClass());
+    }
+
+    try
+    {
+      sb.delete (-2, 2);
+    }
+    catch (StringIndexOutOfBoundsException x)
+    {
+      System.out.println (x.getClass());
+    }
+
+    try
+    {
+      sb.delete (96, 418);
+    }
+    catch (StringIndexOutOfBoundsException x)
+    {
+      System.out.println (x.getClass());
+    }
+
+    try
+    {
+      sb.delete (4, 2);
+    }
+    catch (StringIndexOutOfBoundsException x)
+    {
+      System.out.println (x.getClass());
+    }
+
+    try
+    {
+      sb.replace (-2, 2, "54321");
+    }
+    catch (StringIndexOutOfBoundsException x)
+    {
+      System.out.println (x.getClass());
+    }
+
+    try
+    {
+      sb.replace (4, 2, "54321");
+    }
+    catch (StringIndexOutOfBoundsException x)
+    {
+      System.out.println (x.getClass());
+    }
+
+    try
+    {
+      sb.replace (12, 18, "54321");
+    }
+    catch (StringIndexOutOfBoundsException x)
+    {
+      System.out.println (x.getClass());
+    }
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/StringBuffer_1.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/StringBuffer_1.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/StringBuffer_1.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/StringBuffer_1.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,19 @@
+123456789
+123
+123
+321
+4321
+1234567890
+12foo
+1XX23456789
+XX3456789
+1234554321
+156789
+class java.lang.StringIndexOutOfBoundsException
+class java.lang.StringIndexOutOfBoundsException
+class java.lang.StringIndexOutOfBoundsException
+class java.lang.StringIndexOutOfBoundsException
+class java.lang.StringIndexOutOfBoundsException
+class java.lang.StringIndexOutOfBoundsException
+class java.lang.StringIndexOutOfBoundsException
+class java.lang.StringIndexOutOfBoundsException

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/StringBuffer_overflow.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/StringBuffer_overflow.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/StringBuffer_overflow.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/StringBuffer_overflow.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,126 @@
+/* This tests some corner cases of arithmetic in StringBuffer.  */
+
+/* These tests can all be run on a 32 bit machine with modest amounts
+ * of memory.  */
+
+/* The symptom of the problem is that ArrayIndexOutOfBoundsException
+ * gets thrown, while the documentation says that
+ * StringIndexOutOfBoundsException should be thrown.  */
+
+class StringBuffer_overflow
+{
+  /* Test correct exception on getChars.  */
+  static void getChars()
+  {
+    StringBuffer b = new StringBuffer ("x");
+    char[] s = new char [1];
+    try
+      {
+	// The substring we are attempting to obtain is invalid,
+	// so we should get a StringIndexOutOfBoundsException.
+	b.getChars (1, -1 << 31, s, 0);
+	Fail ("getChars", "no exception");
+      }
+    catch (Throwable e)
+      {
+	ExpectStringIndex ("getChars()", e);
+      }
+  }
+
+  /* Test correct exception on append with bogus count. */
+  static void append()
+  {
+    StringBuffer s = new StringBuffer("a");
+    try
+      {
+	s.append ("".toCharArray(), 1, (1<<31)-1);
+	Fail ("append", "no exception");
+      }
+    catch (Throwable e)
+      {
+	ExpectStringIndex ("append", e);
+      }
+  }
+
+  // Check that append still more or less works.
+  static void appendbasic()
+  {
+    StringBuffer s = new StringBuffer();
+
+    try
+      {
+	if (!new StringBuffer().append ("abcdefg".toCharArray())
+	    .toString().equals ("abcdefg"))
+	  {
+	    Fail ("appendbasic", "append gives incorrect result");
+	  }
+      }
+    catch (Throwable e)
+      {
+	Fail ("appendbasic", e);
+      }
+  }
+
+  /* Test correct expception on substring with bogus indexes.  */
+  static void substring()
+  {
+    StringBuffer s = new StringBuffer ("abc");
+    try
+      {
+	// end - begin == -2 - ((1<<31)-1) == (1<<31) - 1 > 0.  */
+	s.substring ((1<<31)-1, -2);
+	Fail ("substring", "no exception");
+      }
+    catch (Throwable e)
+      {
+	ExpectStringIndex ("substring", e);
+      }
+  }
+
+  static void insert()
+  {
+    StringBuffer s = new StringBuffer ("");
+    try
+      {
+	s.insert (0, "abcd".toCharArray(), (1<<31)-1, 1);
+	Fail ("insert", "no exception");
+      }
+    catch (Throwable e)
+      {
+	ExpectStringIndex ("insert", e);
+      }
+  }
+
+
+  public static void main (String[] unused)
+  {
+    getChars();
+    append();
+    appendbasic();
+    substring();
+    insert();
+
+    if (tests_failed == 0)
+      {
+	System.out.println ("ok");
+      }
+  }
+
+  static int tests_failed = 0;
+
+  static void ExpectStringIndex (String name, Throwable exception)
+  {
+    if (! (exception instanceof StringIndexOutOfBoundsException))
+      {
+	Fail (name, exception);
+      }
+  }
+  static void Fail (String name, Object why)
+  {
+    ++tests_failed;
+
+    System.err.print (name);
+    System.err.print ('\t');
+    System.err.println (why);
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/StringBuffer_overflow.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/StringBuffer_overflow.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/StringBuffer_overflow.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/StringBuffer_overflow.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+ok

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/String_overflow.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/String_overflow.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/String_overflow.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/String_overflow.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,140 @@
+class String_overflow
+{
+  static void getChars()
+  {
+    String source = "abcdefg";
+    char[] dest = new char [3];
+
+    try
+      {
+	source.getChars (0, 5,	// Source
+			 dest, (1<<31) - 1);
+	Fail ("getChars", "Should not have succeeded");
+      }
+    catch (Throwable e)
+      {
+	ExpectArrayIndex ("getChars", e);
+      }
+  }
+
+    /* How do I stop a compiler warning causing a test to fail?
+  static void getBytes()
+  {
+    String source = "abcdefg";
+    byte[] dest = new byte[3];
+
+    try
+      {
+	source.getBytes (0, 5, dest, (1<<31) - 1);
+	Fail ("getBytes", "Should not have succeeded");
+      }
+    catch (Throwable e)
+      {
+	ExpectArrayIndex ("getBytes", e);
+      }
+  }
+    */
+
+  static void regionMatches()
+  {
+    if ("abcdefg".regionMatches (4, "abcdefg", 4, -1))
+      {
+	Fail ("regionMatches", "Should not return true");
+      }
+
+    try
+      {
+	if ("abcdefg".regionMatches (4, "abcdefg", 4, (1<<31)-1))
+	  {
+	    Fail ("regionMatches (2nd)", "Should not return true");
+	  }
+      }
+    catch (Throwable e)
+      {
+	Fail ("regionMatches (2nd)", e);
+      }
+  }
+
+  static void regionMatchesCase()
+  {
+    if ("abcdefg".regionMatches (true, 4, "abcdefg", 4, -1))
+      {
+	Fail ("regionMatchesCase", "Should not return true");
+      }
+
+    try
+      {
+	if ("abcdefg".regionMatches (true, 4, "abcdefg", 4, (1<<31)-1))
+	  {
+	    Fail ("regionMatchesCase (2nd)", "Should not return true");
+	  }
+      }
+    catch (Throwable e)
+      {
+	Fail ("regionMatchesCase (2nd)", e);
+      }
+  }
+
+  static void startsWith()
+  {
+    // We make the arg pretty big to try and cause a segfault.
+    String s = new String ("abcdef");
+    StringBuffer b = new StringBuffer (1000000);
+    b.setLength (1000000);
+    String arg = new String (b);
+
+    try
+      {
+	s.startsWith (arg, (1<<31) - 1000000);
+      }
+    catch (Throwable e)
+      {
+	Fail ("startsWith", e);
+      }
+  }
+
+  static void valueOf()
+  {
+    char[] array = new char[] {'a', 'b', 'c', 'd', 'e'};
+    try
+      {
+	String.valueOf (array, 4, (1<<31)-1);
+	Fail ("valueOf", "should not succeed");
+      }
+    catch (Throwable e)
+      {
+	ExpectArrayIndex ("valueOf", e);
+      }
+  }
+
+  public static void main (String[] args) throws Throwable
+  {
+    getChars();
+    //    getBytes();
+    regionMatches();
+    regionMatchesCase();
+    startsWith();
+    valueOf();
+
+    if (tests_failed == 0)
+      System.out.println ("ok");
+  }
+
+  static void ExpectArrayIndex (String test, Throwable e)
+  {
+    if (e instanceof ArrayIndexOutOfBoundsException)
+      return;
+
+    Fail (test, e);
+  }
+
+  static void Fail (String test, Object problem)
+  {
+    ++tests_failed;
+    System.err.print (test);
+    System.err.print ('\t');
+    System.err.println (problem);
+  }
+
+  static int tests_failed;
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/String_overflow.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/String_overflow.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/String_overflow.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/String_overflow.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+ok

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/SyncGlobal.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/SyncGlobal.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/SyncGlobal.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/SyncGlobal.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,24 @@
+// Test suitability of alignment of statically-allocated Objects.
+class SyncGlobal
+{
+  private static final byte[] global_1 = { 1 };
+  private static final byte[] global_2 = { 2, 3 };
+  private static final byte[] global_3 = { 4, 5, 6 };
+  private static final byte[] global_4 = { 7, 8, 9, 10 };
+  private static final byte[] global_5 = { 11, 12, 13, 14, 15 };
+  private static final byte[] global_6 = { 16, 17, 18, 19, 20, 21 };
+  private static final byte[] global_7 = { 22, 23, 24, 25, 26, 27, 28 };
+  private static final byte[] global_8 = { 29, 30, 31, 32, 33, 34, 35, 36 };
+
+  public static void main (String args[])
+  {
+    synchronized (global_1) { System.out.println ("PASS1"); }
+    synchronized (global_2) { System.out.println ("PASS2"); }
+    synchronized (global_3) { System.out.println ("PASS3"); }
+    synchronized (global_4) { System.out.println ("PASS4"); }
+    synchronized (global_5) { System.out.println ("PASS5"); }
+    synchronized (global_6) { System.out.println ("PASS6"); }
+    synchronized (global_7) { System.out.println ("PASS7"); }
+    synchronized (global_8) { System.out.println ("PASS8"); }
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/SyncGlobal.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/SyncGlobal.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/SyncGlobal.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/SyncGlobal.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,8 @@
+PASS1
+PASS2
+PASS3
+PASS4
+PASS5
+PASS6
+PASS7
+PASS8

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/SyncTest.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/SyncTest.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/SyncTest.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/SyncTest.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,34 @@
+// Test atomic increment via synchronized blocks.
+public class SyncTest implements Runnable {
+  static int counter;
+
+  public void run() {
+    // We cache the .class value; otherwise this code is
+    // slow enough that it will time out in some situations.
+    Object lock = SyncTest.class;
+    for (int n = 0; n < 1000000; n++)
+      synchronized (lock) {
+        counter++;
+      }
+  }
+
+  public static void main(String[] args) {
+    SyncTest test = new SyncTest();
+    Thread[] thr = new Thread[4];
+
+    for (int n = 0; n < thr.length; n++) {
+      thr[n] = new Thread(test);
+      thr[n].start();
+    }
+
+    for (int n = 0; n < thr.length; n++) {
+      try {
+        thr[n].join();
+      } catch (InterruptedException ex) {
+      }
+    }
+
+    System.out.println(counter == 1000000 * thr.length ?
+      "ok" : "fail: " + counter);
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/SyncTest.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/SyncTest.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/SyncTest.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/SyncTest.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+ok

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/SyncTest.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/SyncTest.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/SyncTest.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/SyncTest.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+need-threads

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Synch.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Synch.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Synch.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Synch.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,17 @@
+public class Synch
+{
+  public synchronized void s()
+    {
+      // This call to notify() isn't supposed to cause a
+      // java.lang.IllegalMonitorStateException.
+      notify ();
+    }
+
+  public static void main (String[] args)
+    {
+      (new Synch()).s();
+      System.out.println ("Ok");
+    }
+}
+
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Synch.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Synch.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Synch.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Synch.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+Ok

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/TLtest.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/TLtest.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/TLtest.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/TLtest.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,60 @@
+class TLtest extends Thread {
+
+    public static void main (String [] args) {
+	Data d = new Data ();
+	new ThreadTest (d, "A").start ();
+	new ThreadTest (d, "B").start ();
+    }
+}
+
+class Data {
+
+    private static ThreadLocal owner = new ThreadLocal () {
+	    public Object initialValue () { return ("0"); }
+	};
+    /* A thread will call `set' to set a value it wants an instance
+       of Data to associate with it and only it. */
+    synchronized public void set (String v){owner.set (v);}
+    /* A thread will call `get' to get a value it wants an instance
+       of Data to associate with it and only it. */
+    synchronized public String get (){return (String)owner.get();}
+}
+
+class ThreadTest extends Thread {
+
+    public Data d;
+
+    ThreadTest (Data d, String name) {
+	super (name);
+	this.d = d;
+    }
+
+    public void run () {
+
+	int value = 0;
+	int ref = 0;
+
+	for (int i = 0; i < 20; i++) {
+
+	    int rand = (int)(Math.random ()*20);
+
+	    /* Read `value', ref is kept for comparison */
+	    value = Integer.parseInt (d.get());
+	    
+	    /* change `value' and ref by a random number, store `value'. */
+	    value += rand; ref += rand;
+	    d.set (Integer.toString (value));
+
+	    try {
+		sleep((int)((Math.random() * 20)));
+	    } catch (InterruptedException e) {}
+	}
+
+	/* If a thread didn't have private value to attach to the
+	   instance of Data, results wouldn't be the same */
+	if (ref == value)
+	    System.out.println ("test OK.");
+	else
+	    System.out.println ("test failed.");
+    }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/TLtest.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/TLtest.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/TLtest.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/TLtest.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,2 @@
+test OK.
+test OK.

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/TLtest.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/TLtest.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/TLtest.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/TLtest.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+need-threads

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/TestProxy.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/TestProxy.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/TestProxy.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/TestProxy.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,34 @@
+import java.lang.reflect.*;
+import java.net.*;
+
+public class TestProxy
+{
+  public static class MyInvocationHandler implements InvocationHandler
+  {
+    public Object invoke (Object proxy,
+			  Method method,
+			  Object[] args)
+      throws Throwable
+    {
+      System.out.println (args[0]);
+      return null;
+    }
+  }
+
+  public static void main (String[] args)
+  {
+    try {
+      InvocationHandler ih = new MyInvocationHandler();
+      
+      SocketOptions c = (SocketOptions)
+	Proxy.newProxyInstance (SocketOptions.class.getClassLoader(),
+				new Class[]{SocketOptions.class},
+				ih);
+      
+      c.getOption (555);
+
+    } catch (Exception e) {
+      e.printStackTrace ();
+    }
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/TestProxy.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/TestProxy.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/TestProxy.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/TestProxy.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+555

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Alive.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Alive.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Alive.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Alive.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,46 @@
+// Test the status of the isAlive() flag before, during, and after thread 
+// execution. Check that thread's threadgroup is null after thread exits.
+
+public class Thread_Alive implements Runnable
+{
+  public static void main(String args[]) throws InterruptedException
+  {
+    Thread_Alive ta = new Thread_Alive();
+    Thread t = new Thread(ta);
+    System.out.println(t.isAlive());
+    t.start();
+    System.out.println(t.isAlive());
+
+    Thread.sleep(50);
+    
+    synchronized (ta)
+    {
+      ta.notifyAll();
+    }
+
+    t.join();
+    System.out.println(t.isAlive());
+    
+    try
+    {
+      t.start();
+      System.out.println("Error: dead thread can be restarted.");
+    }
+    catch (IllegalThreadStateException x)
+    {
+      System.out.println ("ok");
+    }
+
+    System.out.println(t.getThreadGroup());
+  }
+  
+  public synchronized void run()
+  {
+    try
+    {
+      wait();
+    }
+    catch (InterruptedException x) {}
+  }
+  
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Alive.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Alive.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Alive.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Alive.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,5 @@
+false
+true
+false
+ok
+null

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Alive.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Alive.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Alive.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Alive.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+need-threads

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_HoldsLock.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_HoldsLock.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_HoldsLock.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_HoldsLock.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,27 @@
+// Test that Thread.holdsLock() works.
+
+class Lock {}
+
+public class Thread_HoldsLock
+{
+  static Lock lock = new Lock();
+  
+  public static void main(String args[]) throws InterruptedException
+  {
+    Thread_HoldsLock thl = new Thread_HoldsLock();
+    
+    thl.check();
+    synchronized (lock)
+      {
+        thl.check();
+      }
+    thl.check();
+  }
+  
+  public void check()
+  {
+    Thread this_thread = Thread.currentThread();
+    System.out.println(this_thread.holdsLock(lock));
+  }
+}
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_HoldsLock.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_HoldsLock.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_HoldsLock.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_HoldsLock.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,3 @@
+false
+true
+false

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Interrupt.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Interrupt.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Interrupt.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Interrupt.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,156 @@
+// Test interrupt() behaviour on a thread in wait(), sleep(), and spinning 
+// in a loop.
+
+class ThreadBase extends Thread
+{
+  boolean ready = false;
+  
+  synchronized void ready()
+  {
+    ready = true;
+  }
+}
+
+class Waiter extends ThreadBase
+{
+  public synchronized void run()
+  {
+    super.ready();
+    System.out.println ("wait()");
+    try
+    {
+      wait();
+      System.out.println("Error: wait() completed normally.");
+    }
+    catch (InterruptedException x)
+    {
+      if (isInterrupted() || interrupted()) 
+        System.out.println("Error: interrupt flag is still set.");
+    
+    }
+      System.out.println("interrupted - ok");
+  }
+}
+
+class Sleeper extends ThreadBase
+{
+  public void run()
+  {
+    super.ready();
+    System.out.println ("sleep()");
+    try
+    {
+      sleep(5000);
+      System.out.println("Error: sleep() completed normally.");
+    }
+    catch (InterruptedException x)
+    {
+      if (isInterrupted() || interrupted()) 
+        System.out.println("Error: interrupt flag is still set.");
+    
+      System.out.println("interrupted - ok");
+    }
+  }
+}
+
+class Looper extends ThreadBase
+{
+  public void run()
+  {
+    super.ready();
+    System.out.println ("Busy waiting");
+
+    int count = 0;
+    long start = System.currentTimeMillis();
+    while (true)
+      {
+        Thread.yield();
+	if (isInterrupted ())
+	  break;
+	long now = System.currentTimeMillis();	
+	if ((now - start) > 5000)
+	  break;
+      }
+    synchronized (this)
+    {  
+      if (interrupted ())
+	{
+	  System.out.println ("interrupted - ok");
+	  if (isInterrupted () || interrupted ())
+	    System.out.println("Error: interrupt flag is still set.");
+	}
+      else
+	System.out.println ("Error: Busy wait was not interrupted.");          
+    }
+  }
+}
+
+class Joiner extends ThreadBase
+{
+  public void run()
+  {
+    super.ready();
+    System.out.println("join()");
+    try
+    {
+      join(2000);
+      System.out.println("Error: join() completed normally??!");
+    }
+    catch (InterruptedException x)
+    {
+      if (isInterrupted() || interrupted()) 
+        System.out.println("Error: interrupt flag is still set.");
+    
+      System.out.println("interrupted - ok");
+    }
+
+  }
+}
+
+public class Thread_Interrupt
+{
+  public static void main(String args[])
+  {
+    Waiter w = new Waiter();
+    w.start ();
+    sleep_and_interrupt (w);
+    
+    Sleeper s = new Sleeper();
+    s.start ();
+    sleep_and_interrupt (s);
+
+    Looper l = new Looper ();
+    l.start ();
+    sleep_and_interrupt (l);
+
+    Joiner j = new Joiner ();
+    j.start ();
+    sleep_and_interrupt (j);
+  }
+  
+  public static void sleep_and_interrupt(ThreadBase t)
+  {
+    try
+    {
+      synchronized (t)
+        {
+	  while (!t.ready)
+	    t.wait(10);
+	}
+    
+      Thread.sleep (50);
+      t.interrupt ();
+      long t1 = System.currentTimeMillis();
+      t.join (5000);
+      long time = System.currentTimeMillis() - t1;
+      if (time > 2900)
+        {
+	  System.out.println ("Error: join() from main thread timed out");
+	}
+    }
+    catch (InterruptedException x)
+    {
+      System.out.println("Error: main thread interrupted.");
+    }
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Interrupt.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Interrupt.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Interrupt.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Interrupt.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,8 @@
+wait()
+interrupted - ok
+sleep()
+interrupted - ok
+Busy waiting
+interrupted - ok
+join()
+interrupted - ok

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Interrupt.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Interrupt.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Interrupt.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Interrupt.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+need-threads

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Join.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Join.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Join.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Join.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,67 @@
+// Many threads join a single thread.
+
+class Sleeper implements Runnable
+{
+  int num = -1;
+  
+  public Sleeper(int num)
+  {
+    this.num = num;
+  }
+  
+  public void run()
+  {
+    System.out.println("sleeping");
+    try
+    {
+      Thread.sleep(500);
+    }
+    catch (InterruptedException x)
+    {
+      System.out.println("sleep() interrupted");
+    }
+    System.out.println("done");
+  }
+}
+
+class Joiner implements Runnable
+{
+  Thread join_target;
+  
+  public Joiner(Thread t)
+  {
+    this.join_target = t;
+  }
+  
+  public void run()
+  {
+    try
+    {
+      long start = System.currentTimeMillis();
+      join_target.join(2000);
+      if ((System.currentTimeMillis() - start) > 1900)
+        System.out.println("Error: Join timed out");
+      else
+        System.out.println("ok");
+    }
+    catch (InterruptedException x)
+    {
+      System.out.println("join() interrupted");
+    }
+  }
+  
+}
+
+public class Thread_Join
+{
+  public static void main(String[] args)
+  {
+    Thread primary = new Thread(new Sleeper(1));
+    primary.start();
+    for (int i=0; i < 10; i++)
+    {
+      Thread t = new Thread(new Joiner(primary));
+      t.start();
+    }
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Join.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Join.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Join.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Join.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,12 @@
+sleeping
+done
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok
+ok

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Join.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Join.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Join.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Join.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+need-threads

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Monitor.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Monitor.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Monitor.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Monitor.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,64 @@
+// Test that monitor locks work and are recursive.
+
+class T implements Runnable
+{
+  public int count = 0;
+  Counter c;
+  
+  public T (Counter c)
+  {
+    this.c = c;
+  }
+
+  public void run()
+  {
+    while (true)
+      {
+        // NOTE: double-synchronization here.
+	synchronized (c)
+	{
+	  if (c.getCount() <= 100000)
+	    count++;
+	  else
+	    break;
+	}
+      }
+  }
+}
+
+class Counter
+{
+  int i = 0;
+  public synchronized int getCount ()
+  {
+    return ++i; 
+  }
+}
+
+public class Thread_Monitor
+{
+  public static void main(String args[])
+  {
+    Counter c = new Counter();
+    T t1 = new T(c);
+    T t2 = new T(c);
+    
+    Thread th1 = new Thread(t1);
+    Thread th2 = new Thread(t2);
+    th1.start();
+    th2.start();
+    try
+    {
+      th1.join();
+      th2.join();
+    } 
+    catch (InterruptedException x)
+    {
+      System.out.println("failed: Interrupted");
+    }
+    if (t1.count + t2.count == 100000)
+      System.out.println ("ok");
+    else
+      System.out.println ("failed: total count incorrect");
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Monitor.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Monitor.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Monitor.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Monitor.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+ok

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Monitor.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Monitor.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Monitor.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Monitor.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+need-threads

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Sleep.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Sleep.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Sleep.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Sleep.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,23 @@
+// Test that Thread.sleep() works.
+
+public class Thread_Sleep
+{
+  public static void main(String args[])
+  {
+    try
+    {
+      long start = System.currentTimeMillis();
+      System.out.println("sleeping");
+      Thread.sleep(50);
+      long end = System.currentTimeMillis();
+      if ((end - start) < 50)
+        System.out.println ("failed");
+      else
+	System.out.println("ok");
+    }
+    catch (InterruptedException x)
+    {
+      System.out.println("error: Thread interrupted.");
+    }
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Sleep.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Sleep.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Sleep.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Sleep.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,2 @@
+sleeping
+ok

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Sleep.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Sleep.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Sleep.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Sleep.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+need-threads

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Sleep_2.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Sleep_2.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Sleep_2.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Sleep_2.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,34 @@
+// Test that Thread.sleep() is accurate
+// and that nanoTime actually measures in nanoseconds.
+
+public class Thread_Sleep_2
+{
+  public static void main(String args[])
+  {
+    try
+    {
+      boolean ok = true;
+      for (int i = 0; i < 100; i++)
+	{
+	  long start = System.nanoTime();
+	  Thread.sleep(10);
+	  long end = System.nanoTime();
+	  if ((end - start) < 10000000)
+	    {
+	      System.out.print ("failed, iteration ");
+	      System.out.print (i);
+	      System.out.print (", time ");
+	      System.out.print (end - start);
+	      System.out.println ("ns");
+	      ok = false;
+	    }
+	}
+      if (ok)
+	System.out.println ("ok");
+    }
+    catch (InterruptedException x)
+    {
+      System.out.println("error: Thread interrupted.");
+    }
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Sleep_2.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Sleep_2.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Sleep_2.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Sleep_2.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+ok

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Sleep_2.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Sleep_2.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Sleep_2.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Sleep_2.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+need-threads

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Wait.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Wait.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Wait.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Wait.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,48 @@
+// Test basic thread creation and wait/notify functionality.
+
+public class Thread_Wait implements Runnable
+{
+  public static void main(String args[])
+  {
+    new Thread_Wait();
+  }
+  
+  public Thread_Wait()
+  {
+    System.out.println("creating thread");
+    Thread t = new Thread(this);
+    t.start();
+    
+    try
+    {
+      Thread.sleep(100);
+    }
+    catch (Exception x)
+    {
+      System.out.println("exception occurred: " + x);
+    }
+
+    synchronized (this)
+    {
+      System.out.println("notifying other thread");
+      notify();
+    }
+  }
+  
+  public void run()
+  {
+    System.out.println ("new thread running");
+    synchronized (this)
+    {
+      try
+      {
+	wait();
+      }
+      catch (Exception x)
+      {
+        System.out.println("exception occurred: " + x);
+      }
+    }    
+    System.out.println ("thread notified okay");
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Wait.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Wait.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Wait.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Wait.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,4 @@
+creating thread
+new thread running
+notifying other thread
+thread notified okay

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Wait.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Wait.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Wait.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Wait.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+need-threads

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Wait_2.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Wait_2.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Wait_2.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Wait_2.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,143 @@
+// Create many threads waiting on a monitor. Interrupt some of them. Do the 
+// others wake up correctly with notify() and/or notifyAll()?
+
+import java.util.Vector;
+
+class Waiter extends Thread
+{
+  Object monitor;
+  int thread_num;
+  boolean interrupted = false;
+  boolean notified = false;
+
+  Waiter (Object monitor, int thread_num)
+  {
+    this.monitor = monitor;
+    this.thread_num = thread_num;
+  }  
+  
+  public void run()
+  {
+    synchronized (monitor)
+      {
+	try
+	{
+	  monitor.wait();
+	  notified = true;
+	}
+	catch (InterruptedException x)
+	{
+	  interrupted = true;
+	}
+      }
+    
+  }
+}
+
+public class Thread_Wait_2
+{
+  static Vector threads;
+  static Object monitor = new Object();
+  
+  static final int NUM_THREADS = 10;
+  
+  public static void main(String args[])
+  {
+    
+    
+    try
+    {
+      makeThreads ();
+      
+      Thread.sleep(250);
+      
+      // Interrupt a few threads...
+      Waiter i1 = (Waiter) threads.elementAt(3);
+      Waiter i2 = (Waiter) threads.elementAt(4);
+      Waiter i3 = (Waiter) threads.elementAt(9);
+      i1.interrupt();
+      i2.interrupt();
+      i3.interrupt();
+      
+      // Call notify the exact number of times required to wake the remaining
+      // threads.
+      synchronized (monitor)
+      {
+	for (int i=0; i < NUM_THREADS -3 ; i++)
+	{
+	  monitor.notify ();
+	}
+      }
+      
+      joinAll();
+      printStatus();
+      
+      // Repeat all the above, but use notifyAll() instead.
+      makeThreads();
+
+      Thread.sleep(250);
+      
+      // Interrupt a few threads...
+      i1 = (Waiter) threads.elementAt(0);
+      i2 = (Waiter) threads.elementAt(1);
+      i3 = (Waiter) threads.elementAt(9);
+      i1.interrupt();
+      i2.interrupt();
+      i3.interrupt();
+      
+      // Call notifyAll to wake the remaining threads.
+      synchronized (monitor)
+      {
+        monitor.notifyAll ();
+      }
+
+      joinAll();
+      printStatus();
+
+    }
+    catch (InterruptedException x)
+    {
+      System.out.println (x);
+    }
+
+
+  }
+  
+  static void makeThreads()
+  {
+    threads = new Vector(NUM_THREADS);
+    
+    for (int i=0; i < NUM_THREADS; i++)
+      {
+	Waiter w = new Waiter(monitor, i);
+	w.start();
+	threads.addElement(w);
+      }
+  }
+  
+  static void joinAll()
+  {
+    try
+    {
+      for (int i=0; i < threads.size(); i++)
+	{
+          Thread t = (Thread) threads.elementAt(i);
+	  t.join();
+	}
+    }
+    catch (InterruptedException x) {}
+  }
+  
+  static void printStatus()
+  {
+    for (int i=0; i < threads.size(); i++)
+      {
+        Waiter w = (Waiter) threads.elementAt(i);
+	if (w.interrupted)
+	  System.out.println (i + " interrupted.");
+	if (w.notified)
+	  System.out.println (i + " notified.");
+      }
+  }
+  
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Wait_2.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Wait_2.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Wait_2.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Wait_2.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,20 @@
+0 notified.
+1 notified.
+2 notified.
+3 interrupted.
+4 interrupted.
+5 notified.
+6 notified.
+7 notified.
+8 notified.
+9 interrupted.
+0 interrupted.
+1 interrupted.
+2 notified.
+3 notified.
+4 notified.
+5 notified.
+6 notified.
+7 notified.
+8 notified.
+9 interrupted.

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Wait_2.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Wait_2.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Wait_2.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Wait_2.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+need-threads

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Wait_Interrupt.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Wait_Interrupt.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Wait_Interrupt.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Wait_Interrupt.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,75 @@
+// Create two threads waiting on a monitor. Interrupt one of them. Does the 
+// other wake up correctly?
+
+class Waiter extends Thread
+{
+  Object monitor;
+  int thread_num;
+  boolean interrupted = false;
+  boolean notified = false; 
+
+  Waiter (Object monitor, int thread_num)
+  {
+    this.monitor = monitor;
+    this.thread_num = thread_num;
+  }
+  
+  public void run()
+  {
+    synchronized (monitor)
+      {
+        System.out.println ("Thread waiting.");
+	try
+	{
+	  long start = System.currentTimeMillis();
+	  monitor.wait(1000);
+	  long time = System.currentTimeMillis() - start;
+	  if (time > 990)
+	    System.out.println ("Error: wait on thread " + thread_num 
+	                        + " timed out.");
+	  else
+	    notified = true;
+	}
+	catch (InterruptedException x)
+	{
+	  interrupted = true;
+	}
+      }
+    
+  }
+}
+
+public class Thread_Wait_Interrupt
+{
+  public static void main(String args[])
+  {
+    Object monitor = new Object();
+    Waiter w1 = new Waiter(monitor, 1);
+    Waiter w2 = new Waiter(monitor, 2);
+    w1.start();
+    w2.start();
+    try
+    {
+      Thread.sleep(250);
+
+      synchronized (monitor)
+      {
+	w1.interrupt();
+	monitor.notify();
+      }
+
+      w1.join();
+      w2.join();
+      System.out.println("join ok");
+      System.out.println("Thread 1 " + 
+                         (w1.interrupted ? "interrupted ok" : "error"));
+      System.out.println("Thread 2 " +
+                         (w2.notified ? "notified ok" : "error"));
+
+    }
+    catch (InterruptedException x)
+    {
+      System.out.println (x);
+    }
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Wait_Interrupt.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Wait_Interrupt.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Wait_Interrupt.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Wait_Interrupt.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,5 @@
+Thread waiting.
+Thread waiting.
+join ok
+Thread 1 interrupted ok
+Thread 2 notified ok

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Wait_Interrupt.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Wait_Interrupt.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Wait_Interrupt.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Thread_Wait_Interrupt.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+need-threads

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Throw_1.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Throw_1.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Throw_1.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Throw_1.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,25 @@
+// Some tests of `throw'.
+
+public class Throw_1
+{
+  public static Throwable get ()
+    {
+      return null;
+    }
+
+  public static void main (String[] args)
+    {
+      Throwable t = get ();
+      try
+	{
+	  throw t;
+	}
+      catch (NullPointerException y)
+	{
+	}
+      catch (Throwable x)
+	{
+	  System.out.println ("no");
+	}
+    }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Throw_1.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Throw_1.out?rev=43913&view=auto

==============================================================================
    (empty)

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Throw_2.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Throw_2.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Throw_2.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Throw_2.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,59 @@
+// Check that NullPointerExceptions thrown from library code are
+// caught.  This detects a number of failures that can be caused by
+// libgcj being built incorrectly.  In particular, we ensure that a
+// SEGV in native (i.e. C++) code in libgcj is handled correctly.
+
+// Regrettably, we cannot guarantee that Double.parseDouble() will
+// always be native code, or that it will never be inlined.  It could
+// be argued that we should add a method to libgcj that will be
+// guaranteed forever to be native, but I'm reluctant to add to the
+// library for the sole purpose of performing this test.
+
+public class Throw_2
+{
+  public static Throwable obj()
+    {
+      return null;
+    }
+
+  public static String str()
+    {
+      return null;
+    }
+
+  static double d;
+
+  public static void main (String[] args)
+    {
+      // This NullPointerException will, at the time of writing, be
+      // thrown from Java code in libgcj.
+      try
+	{
+	  java.util.Vector v = new java.util.Vector (null);
+	  System.out.println ("fail: no exception thrown");
+	}
+      catch (NullPointerException _)
+	{
+	  System.out.println ("1");
+	}
+      catch (Throwable _)
+	{
+	  System.out.println ("fail: " + _);
+	}
+      // This one will, at the time of writing, be thrown from C++
+      // code in libgcj.
+      try
+	{
+	  d = Double.parseDouble(str());
+	  System.out.println ("fail: no exception thrown");
+	}
+      catch (NullPointerException _)
+	{
+	  System.out.println ("2");
+	}
+      catch (Throwable _)
+	{
+	  System.out.println ("fail: " + _);
+	}
+    }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Throw_2.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Throw_2.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Throw_2.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/Throw_2.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,2 @@
+1
+2

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anfi.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anfi.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anfi.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anfi.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,33 @@
+// Class anfi
+// Generated on Sat Jan 29 16:06:33 PST 2000
+// Anonymous with access to outer context locals
+
+class anfi {
+
+    itf foo (final String s, final int i) {
+        return new itf () {
+            String buff = s+" "+i;
+            public void setString (String s) { buff = s+" "+i; }
+            public String getString () { return buff; }
+        };
+    }
+
+    void test () {
+        itf x = foo ("Hello", 123);
+        System.out.println (x.getString ());
+        x.setString ("Frinkahedron");
+        System.out.println (x.getString ());
+    }
+
+    public static void main (String[] arg)
+    {
+        System.out.println ("Testing class `anfi'...");
+        new anfi().test();
+    }
+}
+
+interface itf {
+    void setString (String s);
+    String getString();
+    String buff = null;
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anfi.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anfi.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anfi.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anfi.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,3 @@
+Testing class `anfi'...
+Hello 123
+Frinkahedron 123

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anon.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anon.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anon.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anon.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,52 @@
+// Class anon
+// Generated on Wed Dec 29 10:07:09 PST 1999
+//
+
+
+interface itf {int count = 0;void setCount (int i);int getCount ();}
+
+class anon {
+
+  int count = 34;
+
+  class x implements itf {
+      int count = 3;
+      public void setCount (int j) { }
+      public int getCount () { return count*3; }
+  }
+
+
+  itf foo () {
+      class y implements itf {
+	  int count = 3;
+	  public void setCount (int j) { count = j; }
+	  public int getCount () { return count+1; }
+      }
+      return new y ();
+  }
+
+  itf bar () {
+    return new itf () { 
+      // The class defined right here will implement `itf'
+      int count = 5;
+      public void setCount (int j) { count = j; }
+      public int getCount () { return count+1; }
+    } ;
+  }
+
+  void test () {
+    itf a = foo ();
+    itf b = bar ();
+    x   c = this.new x ();
+    System.out.println (a.getCount ());
+    System.out.println (b.getCount ());
+    System.out.println (c.getCount ());
+    System.out.println (this.count);
+  }
+  
+  public static void main (String[] arg)
+  {
+    System.out.println ("Testing class `anon'...");
+    new anon ().test ();
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anon.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anon.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anon.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anon.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,5 @@
+Testing class `anon'...
+4
+6
+9
+34

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anon2.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anon2.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anon2.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anon2.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,50 @@
+// Class anon2
+// Generated on Wed Dec 29 10:07:09 PST 1999
+//
+
+
+class anon2 {
+
+  int count = 34;
+  int field;
+
+  anon2 () { System.out.println ("anon2()"); } 
+
+  anon2 (foobar x) { 
+    System.out.println ("Yikes!"+x.zoink());
+  }
+
+  anon2 foo () {
+      class y extends anon2 {
+          int count = 3;
+          public void setCount (int j) { count = j; }
+          public int getCount () { return count+1; }
+	  y (int i) { System.out.println ("y(int)"); }
+      }
+      return new y (3);
+  }
+
+  anon2 bar () {
+    foobar xyz = new foobar ();
+    return new anon2 (xyz) { 
+      int count = 5;
+      public void setCount (int j) { field = 3; count = j; }
+      public int getCount () { return count+1; }
+    } ;
+  }
+
+  void test () {
+   anon2 b = bar ();
+   anon2 c = foo ();
+  }
+  
+  public static void main (String[] arg)
+  {
+    System.out.println ("Testing class `anon2'...");
+    new anon2 ().test ();
+  }
+}
+
+class foobar {
+  public String zoink() { return " zoinked"; }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anon2.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anon2.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anon2.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anon2.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,5 @@
+Testing class `anon2'...
+anon2()
+Yikes! zoinked
+anon2()
+y(int)

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anon3.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anon3.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anon3.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anon3.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,28 @@
+// Class anon3
+// Generated on Wed Dec 29 10:07:09 PST 1999
+//
+
+
+class anon3 {
+
+  itf bar () {
+    return new itf () { 
+      int count = 5;
+      public void setCount (int j) { count = 3; }
+      public int getCount () { return count; }
+    } ;
+  }
+
+  void test () {
+   itf x = bar ();
+   System.out.println (x.getCount ());
+  }
+  
+  public static void main (String[] arg)
+  {
+    System.out.println ("Testing class `anon3'...");
+    new anon3 ().test ();
+  }
+}
+
+interface itf { void setCount (int j); int getCount(); int count = 0; }

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anon3.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anon3.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anon3.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anon3.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,2 @@
+Testing class `anon3'...
+5

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anon4.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anon4.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anon4.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anon4.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,30 @@
+// Class anon4
+// Generated on Wed Dec 29 10:07:09 PST 1999
+//
+
+
+class anon4 {
+
+  private int field = 3;
+
+  itf bar () {
+    return new itf () { 
+      int count = 5;
+      public void setCount (int j) { count = 3+field; }
+      public int getCount () { return count+field; }
+    } ;
+  }
+
+  void test () {
+   itf x = bar ();
+   System.out.println (x.getCount ());
+  }
+  
+  public static void main (String[] arg)
+  {
+    System.out.println ("Testing class `anon4'...");
+    new anon4 ().test ();
+  }
+}
+
+interface itf { void setCount (int j); int getCount(); int count = 0; }

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anon4.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anon4.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anon4.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anon4.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,2 @@
+Testing class `anon4'...
+8

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anon_ctor_itf_arg.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anon_ctor_itf_arg.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anon_ctor_itf_arg.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anon_ctor_itf_arg.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,38 @@
+/* From java/3285, By p.thio at valescom.com */
+
+interface I
+{
+    void print ();
+};
+
+class C1
+implements I
+{
+    public void print () { System.out.println ("C1: Message"); }
+}
+
+abstract
+class C2
+{
+    C2(I i)
+    {
+	i.print ();
+    }
+    abstract void h();
+}
+
+public
+class anon_ctor_itf_arg
+{
+    public static
+    void main(String argv[])
+    {
+        C1 c1 = new C1();
+        new C2(c1)
+        {
+            void h()
+            {
+            }
+        };
+    }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anon_ctor_itf_arg.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anon_ctor_itf_arg.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anon_ctor_itf_arg.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anon_ctor_itf_arg.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+C1: Message

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anonarray.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anonarray.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anonarray.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anonarray.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,22 @@
+// Class anonarray
+// Generated on Tue Feb  1 16:11:29 PST 2000
+// Simple anonymous array, of primitive types.
+
+class anonarray {
+
+  static void foo (int [][] x) {
+      for (int i = 0; i < x.length; i++)
+          {
+              for (int j = 0; j < x[i].length; j++)
+                  System.out.print (x[i][j]);
+              System.out.println();
+          }
+  }
+  
+  public static void main (String[] arg)
+  {  
+      foo (new int[][] {{2,3},{5,7}});
+      System.out.println ((new int [][] {{11,13},{17,19}}).length);
+      System.out.println ((new int [][] {{23,29},{31,37}})[0][1]);
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anonarray.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anonarray.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anonarray.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anonarray.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,4 @@
+23
+57
+2
+29

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anonarray2.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anonarray2.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anonarray2.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anonarray2.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,22 @@
+// Class anonarray2
+// Generated on Tue Feb  1 21:14:06 PST 2000
+// Anonymous array, with a non primitive type.
+
+class anonarray2 {
+
+  static void foo (String [][] x) {
+      for (int i = 0; i < x.length; i++)
+          {
+              for (int j = 0; j < x[i].length; j++)
+                  System.out.print (x[i][j]);
+              System.out.println();
+          }
+  }
+
+  public static void main (String[] arg)
+  {
+      foo (new String[][] {{"2","3"},{"5","7"}});
+      System.out.println ((new String [][] {{"11","13"},{"17","19"}}).length);
+      System.out.println ((new String [][] {{"23","29"},{"31","37"}})[0][1]);
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anonarray2.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anonarray2.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anonarray2.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anonarray2.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,4 @@
+23
+57
+2
+29

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anonarray3.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anonarray3.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anonarray3.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anonarray3.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,13 @@
+// Class anonarray3
+// Generated on Tue Feb  8 19:18:10 PST 2000
+//
+
+class anonarray3 {
+  private static final int[] foo (int x) {
+      return new int[] { x+1 };
+  }
+  public static void main (String[] arg)
+  {
+    System.out.println (foo (34)[0]);
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anonarray3.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anonarray3.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anonarray3.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/anonarray3.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+35

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/assign.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/assign.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/assign.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/assign.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,19 @@
+// Test for an array assignment bug we've had.
+
+public class assign
+{
+  public static class base
+  {
+  }
+
+  public static class derived extends base
+  {
+  }
+
+  public static void main(String[] args)
+  {
+    base[][] x1 = new base[3][3];
+    derived[] x2 = new derived[3];
+    x1[0] = x2;
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/assign.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/assign.out?rev=43913&view=auto

==============================================================================
    (empty)

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/assign2.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/assign2.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/assign2.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/assign2.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,21 @@
+// Test for an array assignment bug we've had.
+
+public class assign2
+{
+  public static Object[][] c () { return new Long[5][5]; }
+
+  public static Object[] d () { return new Integer[3]; }
+
+  public static void main(String[] args)
+  {
+    try
+      {
+	Object[][] x = c();
+	x[0] = d();
+      }
+    catch (ArrayStoreException _)
+      {
+	System.out.println("good");
+      }
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/assign2.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/assign2.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/assign2.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/assign2.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+good

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/bclink.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/bclink.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/bclink.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/bclink.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,12 @@
+// This tests that a C++ ABI class can derive from a BC ABI class.
+// This can't always work, but if the base class does not change then
+// it will work fine.
+
+import org.xml.sax.*;
+
+public class bclink extends SAXParseException {
+  public bclink() { super ("hi", null); }
+
+  public static void main(String[] args) throws Throwable {
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/bclink.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/bclink.out?rev=43913&view=auto

==============================================================================
    (empty)

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/bytearray.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/bytearray.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/bytearray.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/bytearray.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,10 @@
+public class bytearray
+{
+  public static void main (String[] argv) throws Throwable {
+    Class c = Class.forName ("[Ljava.lang.String;");
+    c = Class.forName ("[B");
+    System.out.println (c);
+    c = ClassLoader.getSystemClassLoader().loadClass ("[[Ljava.lang.String;");
+    System.out.println (c);
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/bytearray.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/bytearray.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/bytearray.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/bytearray.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,2 @@
+class [B
+class [[Ljava.lang.String;

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/direct_read.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/direct_read.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/direct_read.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/direct_read.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,27 @@
+// Class direct_read
+// Generated on Sat Nov 13 23:26:34 UTC 1999
+//
+
+class direct_read {
+
+  int foo;
+
+  class direct_read_inner {
+    void test () {
+      int x = foo;
+      System.out.println ("x="+x);
+    }
+  }
+
+  void foo ()
+  {
+    foo = 670;
+    direct_read_inner inn = this.new direct_read_inner ();
+    inn.test ();
+  }  
+  public static void main (String[] arg)
+  {
+    System.out.println ("Testing class `direct_read'...");
+    new direct_read().foo ();
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/direct_read.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/direct_read.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/direct_read.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/direct_read.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,2 @@
+Testing class `direct_read'...
+x=670

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/direct_write.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/direct_write.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/direct_write.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/direct_write.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,27 @@
+// Class direct_write
+// Generated on Mon Nov 15 17:10:56 UTC 1999
+//
+
+class direct_write {
+
+  int foo;
+
+  class direct_write_inner {
+    void test () {
+      foo  = 670;
+    }
+  }
+
+  void foo ()
+  {
+    foo = 650;
+    direct_write_inner inn = this.new direct_write_inner ();
+    inn.test ();
+    System.out.println ("foo="+foo);
+  }  
+  public static void main (String[] arg)
+  {
+    System.out.println ("Testing class `direct_write'...");
+    new direct_write().foo ();
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/direct_write.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/direct_write.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/direct_write.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/direct_write.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,2 @@
+Testing class `direct_write'...
+foo=670

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/emptystring.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/emptystring.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/emptystring.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/emptystring.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,15 @@
+public class emptystring
+{
+        public static void main(String[] args)
+        {
+                System.out.println("null".equals(n(0) + ""));
+                System.out.println("null".equals("" + n(0)));
+                System.out.println("x".equals(n(1) + ""));
+                System.out.println("x".equals("" + n(1)));
+        }
+
+        static String n(int i)
+        {
+                if (i==0) return null; else return "x";
+        }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/emptystring.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/emptystring.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/emptystring.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/emptystring.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,4 @@
+true
+true
+true
+true

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err1.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err1.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err1.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err1.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,25 @@
+/*-------------------------------------------------------------------------*/
+/* File name : err1.java                                                   */
+/*           :                                                             */
+/* Cause     : When I make class-type Object.                              */
+/*           :                                                             */
+/* Message   : Internal compiler error: program jc1 got                    */
+/*           :  fatal signal 11                                            */
+/*-------------------------------------------------------------------------*/
+
+class A {
+  int counter = 100;
+}
+
+public class err1 {
+  public static void main(String[] args) {
+    A array[] = new A[10]; //err
+    array[0] = new A();
+
+    if ( array[0].counter == 100 ) {
+      System.out.println("OK");
+    } else {
+      System.out.println("NG:[100]-->[" +array[0].counter+ "]");
+    }
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err1.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err1.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err1.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err1.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+OK

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err10.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err10.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err10.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err10.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,23 @@
+/*--------------------------------------------------------------------------*/
+/* File name  : err10.java                                                  */
+/*            :                                                             */
+/* Cause      : Operator >>> doesn't work correctly when value is negative. */
+/*            :                                                             */
+/* Message    : NG : a = -2                                                 */
+/*--------------------------------------------------------------------------*/
+
+public class err10 {
+  public static void main(String[] args) {
+    int a = -3;
+
+    a = a>>>1;
+
+    if ( a == 2147483646 ) {
+      System.out.println("OK"); 
+    } else {
+      System.out.println("NG:[2147483646]-->[" +a+ "]"); 
+    }
+
+  }
+}
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err10.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err10.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err10.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err10.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+OK

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err11.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err11.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err11.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err11.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,30 @@
+/*--------------------------------------------------------------------------*/
+/* File name : err11.java                                                   */
+/*            :                                                             */
+/* Cause      : If I declare both array which have more than 10 element     */
+/*            : and switch statement, make error.                           */
+/*            :                                                             */
+/* Message    : err11.java:1: Missing class name.                      */
+/*            : public class err11                                     */
+/*            :              ^                                              */
+/*            : err11.java:1: Class or interface declaration expected. */
+/*            : public class err11                                     */
+/*            :              ^                                              */
+/*            : 2 errors                                                    */
+/*--------------------------------------------------------------------------*/
+
+public class err11
+{
+	public static void main(String args[])
+	{
+		int i;
+		short ary1[] = {12,23,34,45,56,67,78,89,90,111};
+
+		for(i=0; i<10; i++) {
+			switch(ary1[i]) {
+				case 111 : System.out.println("OK");
+				default : break;
+			}
+		}
+	}
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err11.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err11.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err11.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err11.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+OK

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err12.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err12.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err12.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err12.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,27 @@
+/*--------------------------------------------------------------------------*/
+/* File name : err12.java                                              */
+/*            :                                                             */
+/* Cause      : Cast negative floating point to char makes error            */
+/*            :                                                             */
+/* Message    : Internal compiler error in functi on convert_move           */
+/*--------------------------------------------------------------------------*/
+
+public class err12 {
+	public static void main(String[] args){
+		char x1, x2;
+
+		float y = -10000f;
+
+		x1 = (char)y;		// err
+		x2 = (char)-10000f;	// ok
+
+		if ( x1 == x2 ) {
+			System.out.println("OK");
+		} else {
+			System.out.println("NG");
+			System.out.println("x1:[65520]-->[" +(x1-0)+"]");
+			System.out.println("x2:[65520]-->[" +(x2-0)+"]");
+		}
+	}
+}
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err12.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err12.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err12.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err12.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+OK

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err13.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err13.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err13.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err13.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,21 @@
+/*--------------------------------------------------------------------------*/
+/* File name  : err13.java                                             */
+/*            :                                                             */
+/* Cause      : Conversion from zero to String type is not correct.         */
+/*            :                                                             */
+/* Message    : NG : test                                                   */
+/*--------------------------------------------------------------------------*/
+
+public class err13 {
+	public static void main(String[] args) {
+		String s = "test";
+		s += 0;
+
+		if ( s.equals("test0") ) {
+			System.out.println("OK");
+		} else {
+			System.out.println("NG : " +s);
+		}
+	}
+}
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err13.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err13.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err13.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err13.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+OK

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err14.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err14.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err14.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err14.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,20 @@
+/* Check for incorrectly aligned byte args.  */
+
+public class err14
+{
+  protected final String getClearToolCommand(Object a, Object b,
+                                             Object c, Object d, 
+                                             int e, int f, boolean x) 
+  {
+    return x ? "hi" : "byte";
+  }
+  
+  
+  public static void main(String[] args)
+  {
+    System.out.println(new err14().getClearToolCommand(null, null,
+                                                       null, null, 0, 0, false));
+    System.out.println(new err14().getClearToolCommand(null, null,
+                                                       null, null, 0, 0, true));
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err14.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err14.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err14.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err14.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,2 @@
+byte
+hi

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err2.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err2.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err2.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err2.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,28 @@
+/*--------------------------------------------------------------------------*/
+/* File name  : err2.java                                              */
+/*            :                                                             */
+/* Cause      : Operator "+=" error in char,byte,short type                 */
+/*            :                                                             */
+/* Message    : err2.java: In class `err2':                       */
+/*            : err2.java: In method `main(java.lang.String[])':       */
+/*            : err2.java:22: Incompatible type for `='. Explicit cast */
+/*            :  needed to convert `int' to `byte'.                         */
+/*            :                 a %= b;                                     */
+/*            :                   ^                                         */
+/*            : 1 error                                                     */
+/*--------------------------------------------------------------------------*/
+
+public class err2 {
+  public static void main(String[] args) {
+    byte a = -16;
+    byte b = 10;
+
+    a %= b;
+
+    if ( a == -6 ) {
+      System.out.println("OK");
+    } else {
+      System.out.println("a = " +a);
+    }
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err2.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err2.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err2.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err2.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+OK

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err3.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err3.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err3.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err3.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,34 @@
+/*--------------------------------------------------------------------------*/
+/* File name  : err3.java                                              */
+/*            :                                                             */
+/* Cause      : Evaluation sequence of the formula which used               */
+/*            : the substitution operator is not performed correctly.       */
+/*            :                                                             */
+/* Message    : NG1:[27]-->[9]                                              */
+/*            : NG2:[27]-->[9]                                              */
+/*            :                                                             */
+/* Note       : JLS 15.6 Evaluation Order (p305)                            */
+/*                 S15.6.1 Evaluate Left-Hand Operand First                 */
+/*            : A formula should be evaluated to 9*3 instead of 3*3.        */
+/*--------------------------------------------------------------------------*/
+
+public class err3 {
+  public static void main(String[] args) {
+    int x = 9;
+    x *= (x = 3);
+    if ( x == 27 ) {
+      System.out.println("OK1");
+    } else {
+      System.out.println("NG1:[27]-->["+x+"]");
+    }
+
+    int y = 9;
+    y = y * (y = 3);
+    if ( y == 27 ) {
+      System.out.println("OK2");
+    } else {
+      System.out.println("NG2:[27]-->["+y+"]");
+    }
+  }
+}
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err3.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err3.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err3.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err3.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,2 @@
+OK1
+OK2

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err4.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err4.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err4.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err4.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,34 @@
+/*--------------------------------------------------------------------------*/
+/* file_name  : err4.java                                              */
+/*            :                                                             */
+/* Cause      : Evaluation of the array which used the substitution         */
+/*            : operator is not performed correctly.                        */
+/*            :                                                             */
+/* Message    : NG1:[27}-->[9.0]                                            */
+/*            : NG1:[27}-->[9.0]                                            */
+/*--------------------------------------------------------------------------*/
+
+public class err4 {
+  public static void main(String[] args) {
+
+    // TEST1
+    float []a = {9f};
+    a[0] *= (a[0] = 3f);
+
+    if ( a[0] == 27 ) {
+      System.out.println("OK1");
+    } else {
+      System.out.println("NG1:[27}-->["+a[0]+"]");
+    }
+
+    //TEST2
+    float [] b = {9f};
+    b[0] = (float)(b[0] * (b[0] = 3f));
+    if ( b[0] == 27 ) {
+      System.out.println("OK1");
+    } else {
+      System.out.println("NG1:[27}-->["+b[0]+"]");
+    }
+  }
+}
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err4.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err4.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err4.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err4.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,2 @@
+OK1
+OK1

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err5.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err5.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err5.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err5.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,35 @@
+/*--------------------------------------------------------------------------*/
+/* file_name  : err5.java                                              */
+/*            :                                                             */
+/* Cause      : Evaluation order of method argument is not correct.         */
+/*            :                                                             */
+/* Message    : NG                                                          */
+/*            : a:[1]-->[2]                                                 */
+/*            : b:[3]-->[3]                                                 */
+/*            : c:[2]-->[2]                                                 */
+/*            :                                                             */
+/* Note       : JLS 15.6 Evaluation Order                                   */
+/*                 S15.6.4 Argument Lists are Evaluated Left-to-Right(p309) */
+/*             [Each argument expression appears to be fully evaluated      */
+/*              before any part of any argument expression to its right.]   */
+/*--------------------------------------------------------------------------*/
+
+public class err5 {
+  public static void main(String[] args) {
+    int x = 1;
+
+    err5 obj = new err5();
+    obj.print(x, x = 3, x = 2);
+  }
+
+  void print(int a, int b, int c) {
+    if ( a == 1 && b == 3 && c == 2 ) {
+      System.out.println("OK");
+    } else {
+      System.out.println("NG");
+      System.out.println("a:[1]-->["+a+"]");
+      System.out.println("b:[3]-->["+b+"]");
+      System.out.println("c:[2]-->["+c+"]");
+    }
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err5.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err5.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err5.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err5.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+OK

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err6.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err6.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err6.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err6.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,26 @@
+/*--------------------------------------------------------------------------*/
+/* File name  : err6.java                                              */
+/*            :                                                             */
+/* Cause      : Array evaluation order                                      */
+/*            :                                                             */
+/* Message    : NG:[1]-->[4]                                                */
+/*            :                                                             */
+/* Note       : JLS 15.9 Array Creation Expressions (p315--)                */
+/*            :  p318 line3                                                 */
+/*            :[Each dimension expression is fully evaluated                */
+/*            : before any part of any dimension expression to its right.]  */
+/*--------------------------------------------------------------------------*/
+
+public class err6 {
+  public static void main(String[] args) {
+    int[] x = { 10, 11, 12, 1, 14 };
+    int[] y = { 1, 2, 3, 4, 5, 6 };
+
+    if ( x[(x=y)[2]] == 1 ) {
+      System.out.println("OK");
+    } else {
+      System.out.println("NG:[1]-->[" +x[(x=y)[2]]+ "]");
+    }
+  }
+}
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err6.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err6.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err6.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err6.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+OK

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err7.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err7.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err7.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err7.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,23 @@
+/*--------------------------------------------------------------------------*/
+/* File name  : err7.java                                              */
+/*            :                                                             */
+/* Cause      : When exists both array (more than 10 elements) and          */ 
+/*              "for" or "while" or "do while" statement , error.           */
+/*            :                                                             */
+/* Message    : /var/tmp/cc1oQM8i.s: Assembler messages:                    */
+/*            : /var/tmp/cc1oQM8i.s:243: Fatal error: Symbol $L2 already def*/
+/*            : fined.                                                      */
+/*--------------------------------------------------------------------------*/
+
+public class err7 {
+  public static void main(String[] args) {
+    int[] ary = {0,1,2,3,4,5,6,7,8,9};
+
+    while ( true ) {
+      break;
+    }
+
+    System.out.println("OK");
+  }
+}
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err7.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err7.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err7.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err7.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+OK

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err8.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err8.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err8.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err8.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,23 @@
+/*--------------------------------------------------------------------------*/
+/* File name  : err8.java                                              */
+/*            :                                                             */
+/* Cause      : When "do while" statement has only "break", error.          */
+/*            :                                                             */
+/* Message    : err8.java: In class `err8': xxxxxx                */
+/*            : err8.java: In method `main(java.lang.String[])':       */
+/*            : err8.java:20: Unreachable statement.                   */
+/*            :                 } while (true) ;                            */
+/*            :                         ^                                   */
+/*            : 1 error                                                     */
+/*--------------------------------------------------------------------------*/
+
+public class err8 {
+  public static void main(String[] args) {
+    do {
+      break;
+    } while (true) ;
+
+    System.out.println("OK");
+  }
+}
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err8.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err8.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err8.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err8.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+OK

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err9.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err9.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err9.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err9.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,32 @@
+/*--------------------------------------------------------------------------*/
+/* File name  : err9.java                                              */
+/*            :                                                             */
+/* Cause      : When I use "labeled continue" in "for"statement, error      */
+/*            :                                                             */
+/* Message    :  In class `err9':                                      */
+/*            :  In method `main(java.lang.String[])':                      */
+/*            : 22: `continue' must be in loop.                             */
+/*            :                 continue  movehere;                         */
+/*            :                 ^                                           */
+/*            : 1 error                                                     */
+/*--------------------------------------------------------------------------*/
+
+public class err9 {
+  public static void main(String[] args) {
+    int y = 0;
+
+  movehere: for ( int x = 0; x < 10; x++ ) {
+    if ( x > 2 ) {
+      continue  movehere;
+    }
+    y++;
+  }
+
+  if ( y == 3 ) {
+    System.out.println("OK");
+  } else {
+    System.out.println("NG:[3]-->[" +y+ "]");
+  }
+  }
+}
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err9.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err9.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err9.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/err9.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+OK

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/final_inner.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/final_inner.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/final_inner.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/final_inner.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,19 @@
+// Class final_inner
+// Generated on Tue Jan 18 13:35:19 PST 2000
+//
+
+class final_inner {
+
+  void foo (final String s, final int i) {
+      class bar {
+          void printI () { System.out.println (s+i); }
+      }
+      new bar ().printI ();
+  }
+
+  public static void main (String[] arg)
+  {
+    System.out.println ("Testing class `final_inner'...");
+    new final_inner ().foo ("The Number ", 666);
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/final_inner.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/final_inner.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/final_inner.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/final_inner.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,2 @@
+Testing class `final_inner'...
+The Number 666

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/final_int.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/final_int.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/final_int.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/final_int.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,22 @@
+// Class final_int
+// Generated on Sat Feb 12 01:27:46 PST 2000
+
+class final_int {
+
+  final int x = 30;
+
+  class foo {
+    int bar () {
+      return x;
+    }
+  }
+  void bar () {
+    int x = this.new foo ().bar ();
+    System.out.println (x);
+  }
+  public static void main (String[] arg)
+  {
+    System.out.println ("Testing class `final_int'...");
+    new final_int().bar ();
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/final_int.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/final_int.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/final_int.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/final_int.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,2 @@
+Testing class `final_int'...
+30

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/final_static_and_friend.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/final_static_and_friend.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/final_static_and_friend.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/final_static_and_friend.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,17 @@
+// Class final_static_and_friend
+// Generated on Sat Feb 12 01:58:38 PST 2000
+
+class final_static_and_friend {
+    final int a = 34;
+    static int b = 34;
+    int c = 34;
+    void foo ()
+    {
+        System.out.println (a+b+c);
+    }
+    public static void main (String[] arg)
+    {
+        new final_static_and_friend ().foo ();
+    }
+
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/final_static_and_friend.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/final_static_and_friend.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/final_static_and_friend.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/final_static_and_friend.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+102

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/indirect.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/indirect.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/indirect.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/indirect.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,33 @@
+// Class indirect
+// Generated on Tue Nov 16 15:53:14 UTC 1999
+// Several indirection to enclosing class
+
+class indirect {
+
+  private int foo;
+
+  class indirect_inner {
+    class other {
+      class inner {
+        void test () {
+          int x = foo;
+          System.out.println ("x="+foo);
+	  foo = 671;
+        }
+      }
+    }
+
+  }
+  void foo ()
+  {
+    foo = 670; 
+    indirect_inner inn = this.new indirect_inner ();
+    this.new indirect_inner().new other().new inner ().test ();
+    System.out.println ("foo="+foo);
+  }  
+  public static void main (String[] arg)
+  {
+    System.out.println ("Testing class `indirect'...");
+    new indirect().foo ();
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/indirect.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/indirect.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/indirect.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/indirect.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,3 @@
+Testing class `indirect'...
+x=670
+foo=671

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/indirect_read.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/indirect_read.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/indirect_read.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/indirect_read.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,33 @@
+// Class indirect_read
+// Generated on Mon Nov 15 17:20:40 UTC 1999
+//
+
+class indirect_read {
+
+  int foo;
+
+  class indirect_read_inner {
+    void test () {
+    }
+
+    class other {
+      void testx () {
+        int x = foo;
+	System.out.println ("x="+x);
+      }
+    }
+
+  }
+  void foo ()
+  {
+    foo = 670;
+    indirect_read_inner inn = this.new indirect_read_inner ();
+    indirect_read_inner.other o = inn.new other ();
+    o.testx ();
+  }  
+  public static void main (String[] arg)
+  {
+    System.out.println ("Testing class `indirect_read'...");
+    new indirect_read().foo ();
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/indirect_read.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/indirect_read.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/indirect_read.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/indirect_read.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,2 @@
+Testing class `indirect_read'...
+x=670

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/indirect_write.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/indirect_write.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/indirect_write.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/indirect_write.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,32 @@
+// Class indirect_write
+// Generated on Tue Nov 16 15:01:24 UTC 1999
+//
+
+class indirect_write {
+
+  int foo;
+
+  class indirect_write_inner {
+    void test () {
+    }
+
+    class other {
+      void testx () {
+        foo = 670;
+      }
+    }
+
+  }
+  void foo ()
+  {
+    indirect_write_inner inn = this.new indirect_write_inner ();
+    indirect_write_inner.other x = inn.new other ();
+    x.testx();
+    System.out.println ("foo="+foo);
+  }  
+  public static void main (String[] arg)
+  {
+    System.out.println ("Testing class `indirect_write'...");
+    new indirect_write().foo ();
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/indirect_write.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/indirect_write.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/indirect_write.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/indirect_write.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,2 @@
+Testing class `indirect_write'...
+foo=670

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/initexc.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/initexc.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/initexc.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/initexc.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,37 @@
+public class initexc
+{
+  public static class fail
+  {
+    static
+    {
+      // Static initializers must be able to complete normally.
+      if (true)
+	throw new NullPointerException("nope");
+    }
+
+    public static int val ()
+    {
+      return 23;
+    }
+  }
+
+  public static void main (String[] args)
+  {
+    try
+      {
+	System.out.println (fail.val ());
+      }
+    catch (ExceptionInInitializerError _)
+      {
+	// Ok.
+      }
+    try
+      {
+	System.out.println (fail.val ());
+      }
+    catch (NoClassDefFoundError _)
+      {
+	// Ok.
+      }
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/initexc.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/initexc.out?rev=43913&view=auto

==============================================================================
    (empty)

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/initfield.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/initfield.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/initfield.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/initfield.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,20 @@
+// gcj generated buggy code when we reference a field of a
+// non-constant member that we inherit from an interface.
+
+interface iface
+{
+  final value x = new value();
+}
+
+final class value
+{
+  Object field = "maude";
+}
+
+public class initfield implements iface
+{
+  public static void main(String[] args)
+  {
+    System.out.println(x.field);
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/initfield.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/initfield.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/initfield.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/initfield.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+maude

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inline.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inline.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inline.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inline.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,35 @@
+public class inline
+{
+  static int factorial_1 (int n)
+  {
+    if (n > 0)
+      return n * factorial_1(n-1);
+    return 1;
+  }
+
+  static int factorial_2 (int n)
+  {
+    if (n > 0)
+      return n * factorial_3(n-1);
+    return 1;
+  }
+
+  static int factorial_3 (int n)
+  {
+    if (n > 0)
+      return n * factorial_2(n-1);
+    return 1;
+  }
+
+  public static void main(String args[])
+    {
+      if (factorial_1 (5) != 120)
+	System.out.println("This should not happen");
+      else
+	System.out.println("OK");
+      if (factorial_2 (5) != 120)
+	System.out.println("This should not happen");
+      else
+	System.out.println("OK");
+    }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inline.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inline.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inline.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inline.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,2 @@
+OK
+OK

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inner1.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inner1.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inner1.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inner1.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,36 @@
+// Class inner1
+// Generated on Thu Nov  4 16:35:03 PST 1999
+//
+
+class inner1 {
+  int i;
+  void foo () {
+    inner1.z x1 = new z();
+    inner1.z.y x = x1.new y();
+    x.bar ();
+    x.print();
+  }
+  public static void main (String[] arg)
+  {
+    System.out.println ("Testing class `inner1'...");
+    new inner1 ().foo();
+  }
+  class z {
+    int j;
+    void foo () {
+      inner1.this.i = 3; 
+    }
+    class y { 
+      int k;
+      void bar () {
+        inner1.this.i = 3;
+        z.this.j = 4;
+        y.this.k = 34;
+      }
+      void print () {
+        System.out.println ("i="+i+", j="+j+", k="+k);
+      }
+    }
+  }
+}
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inner1.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inner1.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inner1.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inner1.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,2 @@
+Testing class `inner1'...
+i=3, j=4, k=34

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inner2.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inner2.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inner2.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inner2.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,18 @@
+// Class inner2
+// Generated on Mon Dec  6 14:32:34 PST 1999
+//
+
+class inner2 {
+  int foo = 1999;
+  void foo () 
+  {
+    inner2.this.foo = 666;
+    System.out.println (inner2.this.foo);
+  }
+  void print () {System.out.println (foo);}
+  public static void main (String[] arg)
+  {
+    System.out.println ("Testing class `inner2'...");
+    new inner2().foo ();
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inner2.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inner2.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inner2.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inner2.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,2 @@
+Testing class `inner2'...
+666

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inner3.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inner3.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inner3.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inner3.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,23 @@
+// Class inner3
+// Generated on Tue Dec  7 11:37:43 PST 1999
+//
+
+class inner3 {
+  int bar;
+  public static void main (String[] arg)
+  {
+    System.out.println ("Testing class `inner3'...");
+    new inner3().bar ();
+  }
+  void bar () {
+    t xx = this.new t ();
+    xx.bar ();
+  }
+  void foo () { bar = 3; }
+  class t {
+    void bar () {
+      inner3.this.foo ();
+      System.out.println (inner3.this.bar);
+    }
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inner3.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inner3.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inner3.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inner3.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,2 @@
+Testing class `inner3'...
+3

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inner4.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inner4.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inner4.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inner4.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,34 @@
+// Class inner4
+// Generated on Tue Dec  7 11:43:48 PST 1999
+//
+
+class inner4 {
+    static private int xyz () { return 3; }
+    private String f;
+  
+    String p () {
+	return "public String p()";
+    }
+
+    private String pp (int x, byte y, char c) {
+	return "private String pp("+x+", "+y+", "+c+")";
+    }
+
+    void foo () {
+	t xxx = this.new t();
+	xxx.bar ();
+        pp (3, (byte)34, 'C');
+    }
+    public static void main (String[] arg)
+    {
+	System.out.println ("Testing class `inner4'...");
+	new inner4().foo();
+    }
+    class t {
+	void bar () {
+            System.out.println (p ());
+	    System.out.println (pp (3, (byte)34, 'C'));
+            System.out.println (xyz ());
+	}
+    }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inner4.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inner4.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inner4.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inner4.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,4 @@
+Testing class `inner4'...
+public String p()
+private String pp(3, 34, C)
+3

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inner_array.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inner_array.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inner_array.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inner_array.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,30 @@
+// Class inner_array
+// Generated on Fri Nov 19 13:19:47 PST 1999
+//
+
+class inner_array {
+
+  private int[] foo;
+
+  class array_inner {
+    void test () {
+      int x = foo[2];
+      System.out.println ("x="+x);
+      foo [1] = 34;
+      foo [1]++;
+    }
+  }
+  void foo ()
+  {
+    foo = new int [3];
+    foo[2]=670;
+    array_inner inn = this.new array_inner ();
+    inn.test ();
+    System.out.println ("foo[1]="+foo[1]);
+  }  
+  public static void main (String[] arg)
+  {
+    System.out.println ("Testing class `inner_array'...");
+    new inner_array().foo ();
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inner_array.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inner_array.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inner_array.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inner_array.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,3 @@
+Testing class `inner_array'...
+x=670
+foo[1]=35

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inner_interface.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inner_interface.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inner_interface.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inner_interface.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,27 @@
+// Class inner_interface
+// Generated on Fri Feb 11 16:29:04 PST 2000
+// Simple inner interface example.
+
+class inner_interface {
+  interface bar {
+      static final int field = 14022000;
+      public void inner_interface ();
+  }
+
+  class baz implements inner_interface.bar {
+    public void inner_interface ()
+    {
+      System.out.println ("This is baz.inner_interface "+field);
+    }
+  }
+
+  void x () {
+      this.new baz ().inner_interface ();
+  }
+
+  public static void main (String[] arg)
+  {
+    System.out.println ("Testing class `inner_interface'...");
+    new inner_interface ().x();
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inner_interface.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inner_interface.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inner_interface.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/inner_interface.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,2 @@
+Testing class `inner_interface'...
+This is baz.inner_interface 14022000

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/instance.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/instance.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/instance.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/instance.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,48 @@
+// instance.java -- test the `instanceof' operator.
+
+import java.util.EventListener;
+
+public class instance implements EventListener
+{
+  public static void main (String[] args)
+  {
+    Object x1 = new instance ();
+    EventListener x2 = new instance ();
+    IllegalArgumentException iae
+      = new IllegalArgumentException ("any random class");
+    String x3 = "zardoz";
+    Object x4 = "zardoz";
+
+    // Test simple object stuff
+    System.out.println (x1 instanceof Object);
+    System.out.println (x1 instanceof IllegalArgumentException);
+    System.out.println (x1 instanceof EventListener);
+    System.out.println (x1 instanceof String);
+    System.out.println ("=");
+
+    // Test with value which is an interface.
+    System.out.println (x2 instanceof Object);
+    System.out.println (x2 instanceof IllegalArgumentException);
+    System.out.println (x2 instanceof EventListener);
+    System.out.println ("=");
+
+    // Test with value which is a final class.
+    System.out.println (x3 instanceof Object);
+    System.out.println (x3 instanceof String);
+    System.out.println ("=");
+
+    // Test with value which is a random class.
+    System.out.println (iae instanceof Object);
+    System.out.println (iae instanceof IllegalArgumentException);
+    System.out.println (iae instanceof EventListener);
+    System.out.println ("=");
+
+    // Test with value which is a final class, but not known
+    // statically.
+    System.out.println (x4 instanceof Object);
+    System.out.println (x4 instanceof IllegalArgumentException);
+    System.out.println (x4 instanceof EventListener);
+    System.out.println (x4 instanceof String);
+    System.out.println (x4 instanceof int[]);
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/instance.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/instance.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/instance.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/instance.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,21 @@
+true
+false
+true
+false
+=
+true
+false
+true
+=
+true
+true
+=
+true
+true
+false
+=
+true
+false
+false
+true
+false

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/instinit.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/instinit.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/instinit.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/instinit.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,22 @@
+// Class instinit
+// Generated on Wed Feb  2 12:31:16 PST 2000
+// Simple instance initializer test case.
+
+class instinit {
+
+    String buffer = "No Oink! Oink!";
+
+    /* Instance initializer */
+    {
+        System.out.println ("Oinking...");
+    }
+    {
+        buffer = "Oink! Oink!";
+    }
+  
+    public static void main (String[] arg)
+    {
+        System.out.println ("Testing class `instinit'...");
+        System.out.println (new instinit ().buffer);
+    }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/instinit.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/instinit.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/instinit.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/instinit.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,3 @@
+Testing class `instinit'...
+Oinking...
+Oink! Oink!

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/instinit2.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/instinit2.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/instinit2.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/instinit2.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,31 @@
+// Class instinit2
+// Generated on Wed Feb  2 17:52:49 PST 2000
+// The instance initializer throws a checked exception. This is OK
+// since the constructors declares it in its `throws' clause -- at
+// least that's what the specs are saying.
+
+class instinit2 {
+
+    String buffer = "Oink Oink!";
+
+    {
+        System.out.println ("Checking the oink...");
+        if (buffer != null)
+            throw new Exception ("It just oinked");
+    }
+
+    instinit2 () throws Exception
+    {
+        System.out.println ("Ctor");
+    }
+
+    public static void main (String[] arg)
+    {
+        System.out.println ("Testing class `instinit2'...");
+        try {
+            System.out.println (new instinit2 ().buffer);
+        } catch (Exception e) {
+            System.out.println (e.toString());
+        }
+    }
+} 

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/instinit2.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/instinit2.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/instinit2.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/instinit2.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,3 @@
+Testing class `instinit2'...
+Checking the oink...
+java.lang.Exception: It just oinked

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/invoke_from_inner.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/invoke_from_inner.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/invoke_from_inner.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/invoke_from_inner.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,37 @@
+// This test case once showed that `f[0].execute(x)' woudln't be
+// expanded properly, attempting to retrieve this$0 to be used in
+// place of `f[0]'.
+
+abstract class A {
+    abstract public void execute(C x);
+}
+
+class C {}
+
+class Z extends A {
+    public void execute (C x) {
+	System.out.println ("Z.execute");
+    }
+}
+
+public class invoke_from_inner extends A {
+
+    Z f[] = new Z[1];
+    class D extends C {
+	D (C x) {
+	    f[0].execute (x);
+	    execute (x);
+	}
+    }
+    public void execute (C x) {
+      System.out.println ("invoke_from_inner.execute");
+    }
+
+    public static void main (String a[]) {
+	new invoke_from_inner().foo();
+    }
+    void foo () {
+	f[0] = new Z();
+	new D(new C());
+    }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/invoke_from_inner.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/invoke_from_inner.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/invoke_from_inner.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/invoke_from_inner.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,2 @@
+Z.execute
+invoke_from_inner.execute

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/invokethrow.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/invokethrow.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/invokethrow.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/invokethrow.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,35 @@
+// Test a `throw' across a libffi call.
+
+import java.lang.reflect.*;
+
+public class invokethrow
+{
+  public static void doit () throws Throwable
+  {
+    throw new Throwable ("hi!");
+  }
+
+  public static void main (String[] args)
+  {
+    Class k = invokethrow.class;
+    try
+      {
+	Class[] noargs = new Class[0];
+	Method m = k.getMethod ("doit", noargs);
+	m.invoke (null, null);
+      }
+    catch (InvocationTargetException x1)
+      {
+	System.out.println (x1.getTargetException ().getMessage ());
+      }
+    catch (UnsupportedOperationException _)
+      {
+	// Some systems don't support invocation, in which case we
+	// will fake a passing result.
+	System.out.println ("hi!");
+      }
+    catch (Throwable _)
+      {
+      }
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/invokethrow.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/invokethrow.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/invokethrow.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/invokethrow.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+hi!

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/klass.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/klass.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/klass.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/klass.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,10 @@
+public class klass
+{
+  public static void main (String[] args)
+  {
+    Class ic1 = Integer.TYPE;
+    int[] foo = new int[3];
+    Class ic2 = foo.getClass().getComponentType();
+    System.out.println(ic1.equals(ic2));
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/klass.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/klass.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/klass.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/klass.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+true

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/lang.exp
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/lang.exp?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/lang.exp (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/lang.exp Thu Nov  8 16:56:19 2007
@@ -0,0 +1,35 @@
+global srcdir subdir
+
+catch { lsort [glob -nocomplain ${srcdir}/${subdir}/*.out] } srcfiles
+verbose "srcfiles are $srcfiles"
+
+set prefix ""
+foreach x $srcfiles {
+    regsub "\\.out$" $x "" prefix
+    set bname [file tail $prefix]
+
+    if [file exists $srcdir/$subdir/${bname}.xpo] {
+	set resfile "$srcdir/$subdir/${bname}.xpo"
+	set options "regexp_match"
+    } else {
+	set resfile "${prefix}.out"
+	set options ""
+    }
+
+    if [file exists ${prefix}.inp] {
+	set inpfile ${prefix}.inp
+    } else {
+	set inpfile ""
+    }
+
+    set args [libjava_read_xfail $srcdir/$subdir/$bname.xfail]
+
+    verbose "inpfile is $inpfile"
+
+    test_libjava $options "${prefix}.java" "" $inpfile $resfile $args
+    test_libjava $options "${prefix}.java" "-O3" $inpfile $resfile $args
+}
+
+# Local Variables:
+# tcl-indent-level:4
+# End:

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/md5test.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/md5test.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/md5test.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/md5test.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,63 @@
+import java.security.*;
+
+class md5test {
+
+
+    // gnu-crypto/source/gnu/testlet/gnu/crypto/hash/TestOfMD5.java
+
+    public static void main(String[] argv) {
+	String[] strings = {
+	    "a",
+	    "abc",
+	    "message digest",
+	    "abcdefghijklmnopqrstuvwxyz",
+	    "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
+	    "12345678901234567890123456789012345678901234567890123456789012345678901234567890"
+	};
+
+	String[] expected = {
+	    "0CC175B9C0F1B6A831C399E269772661",
+	    "900150983CD24FB0D6963F7D28E17F72",
+	    "F96B697D7CB7938D525A2F31AAF161D0",
+	    "C3FCD3D76192E4007DFB496CCA67E13B",
+	    "D174AB98D277D9F5A5611C2C9F419D9F",
+	    "57EDF4A22BE3C955AC49DA2E2107B67A"
+	};
+
+	for (int i = 0; i < strings.length; i++)
+	    testString(strings[i], expected[i]);
+
+    }
+
+    public static void testString(String string, String expected) {
+
+	MessageDigest md=null;
+	try {
+	    md = MessageDigest.getInstance("MD5");
+	    md.update(string.getBytes(), 0, string.length());
+	    String result = toString(md.digest());
+	    System.out.println(expected);
+	    System.out.println(result);
+	    if (!expected.equals(result))
+		System.out.println("NOT EQUAL!");
+	} catch (Exception x) {
+	    x.printStackTrace();
+	}
+    }
+
+    public static String toString(byte[] ba) {
+	return toString(ba, 0, ba.length);
+    }
+    public static final String toString(byte[] ba, int offset, int length) {
+	char[] buf = new char[length * 2];
+	for (int i = 0, j = 0, k; i < length; ) {
+	    k = ba[offset + i++];
+	    buf[j++] = HEX_DIGITS[(k >>> 4) & 0x0F];
+	    buf[j++] = HEX_DIGITS[ k        & 0x0F];
+	}
+	return new String(buf);
+    }
+
+    private static final char[] HEX_DIGITS = "0123456789ABCDEF".toCharArray();
+
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/md5test.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/md5test.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/md5test.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/md5test.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,12 @@
+0CC175B9C0F1B6A831C399E269772661
+0CC175B9C0F1B6A831C399E269772661
+900150983CD24FB0D6963F7D28E17F72
+900150983CD24FB0D6963F7D28E17F72
+F96B697D7CB7938D525A2F31AAF161D0
+F96B697D7CB7938D525A2F31AAF161D0
+C3FCD3D76192E4007DFB496CCA67E13B
+C3FCD3D76192E4007DFB496CCA67E13B
+D174AB98D277D9F5A5611C2C9F419D9F
+D174AB98D277D9F5A5611C2C9F419D9F
+57EDF4A22BE3C955AC49DA2E2107B67A
+57EDF4A22BE3C955AC49DA2E2107B67A

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/multiple_finit.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/multiple_finit.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/multiple_finit.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/multiple_finit.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,28 @@
+// Class multiple_finit
+// Generated on Mon Jan  3 20:07:18 PST 2000
+//
+
+class multiple_finit {
+
+  int foo = 99;
+
+  class multiple_finit_inner {
+    int inner = 34;
+    void test () {
+      System.out.println (inner);
+      System.out.println (foo);
+    }
+  }
+  void foo (String s)
+  {
+    multiple_finit_inner inn = this.new multiple_finit_inner ();
+    inn.test ();
+    System.out.println (foo);
+  }  
+  void testx () { }
+  public static void main (String[] arg)
+  {
+    System.out.println ("Testing class `multiple_finit'...");
+    new multiple_finit().foo ("");
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/multiple_finit.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/multiple_finit.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/multiple_finit.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/multiple_finit.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,4 @@
+Testing class `multiple_finit'...
+34
+99
+99

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/negzero.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/negzero.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/negzero.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/negzero.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,8 @@
+public class negzero
+{
+  public static void main(String[] args)
+  {
+      System.out.println(-0.0);
+      System.out.println(-0.0f);
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/negzero.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/negzero.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/negzero.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/negzero.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,2 @@
+-0.0
+-0.0

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/nested_with_ctor.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/nested_with_ctor.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/nested_with_ctor.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/nested_with_ctor.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,27 @@
+// Class nested_with_ctor
+// Generated on Mon Jan 31 18:31:47 PST 2000
+// The nested class contains explicit constructors. Their argument
+// lists should be augmented with the alias initializer values when
+// the ctors are seen declared (as opposed to generated.)
+
+class nested_with_ctor {
+  
+  void fct(final String s, final int i)
+  {
+      class nested {
+          String buffer = s+i;
+          String getString () { return buffer; }
+          nested (int i) { buffer = "(int)"+i; }
+          nested () {}
+      }
+      nested x = new nested ();
+      System.out.println (x.getString ());
+      nested y = new nested (123);
+      System.out.println (y.getString ());
+  }
+  public static void main (String[] arg)
+  {
+    System.out.println ("Testing class `nested_with_ctor'...");
+    new nested_with_ctor ().fct ("Yikes!", 321);
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/nested_with_ctor.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/nested_with_ctor.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/nested_with_ctor.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/nested_with_ctor.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,3 @@
+Testing class `nested_with_ctor'...
+Yikes!321
+(int)123

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/newarray_overflow.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/newarray_overflow.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/newarray_overflow.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/newarray_overflow.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,88 @@
+/* This test checks for two slightly different overflow scenarios in
+ * array allocation.
+ *
+ * The first is that the number of bytes needed for an array size
+ * overflows on a 32 bit machine.
+ *
+ * The second is that on a 64 machine, the number of bytes silently
+ * gets truncated, resulting in too small an object being
+ * allocated.  */
+
+class newarray_overflow
+{
+  static boolean failed = false;
+
+  static void int_check()
+  {
+    int[] x;
+    try
+      {
+	x = new int [1 << 30];
+      }
+    catch (OutOfMemoryError e)
+      {
+	return;
+      }
+    /* If we really get away with it (64 bit machine), that's cool.  */
+    if (x == null) {
+      System.err.println ("int check: new returned null.");
+      failed = true;
+      return;
+    }
+    try
+      {
+	// Only check a few places so we don't thrash too badly.
+	for (int i = 0; i < x.length; i += (1 << 24))
+	  if (x[i] != 0)
+	    failed = true;
+      }
+    catch (Throwable e)
+      {
+	System.err.print ("int check: ");
+	System.err.println (e);
+	failed = true;
+      }
+  }
+
+  static void object_check()
+  {
+    Object[] x;
+    try
+      {
+	x = new Object [1 << 30];
+	System.err.println ("Alloc succeeded.");
+	System.err.println (x);
+      }
+    catch (OutOfMemoryError e)
+      {
+	return;
+      }
+    /* If we really get away with it (64 bit machine), that's cool.  */
+    if (x == null) {
+      System.err.println ("Object check: new returned null.");
+      failed = true;
+      return;
+    }
+    try
+      {
+	for (int i = 0; i < x.length; i += (1 << 24))
+	  if (x[i] != null)
+	    failed = true;
+      }
+    catch (Throwable e)
+      {
+	System.err.print ("Object check: ");
+	System.err.println (e);
+	failed = true;
+      }
+  }
+
+  public static void main (String[] ignore)
+  {
+    int_check();
+    object_check();
+
+    if (!failed)
+      System.out.println ("ok");
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/newarray_overflow.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/newarray_overflow.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/newarray_overflow.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/newarray_overflow.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+ok

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/override.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/override.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/override.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/override.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,19 @@
+// Regression test that overrides a virtual method with a final one.
+
+class override1
+{
+  public int x1 () { return 3; }
+}
+
+public class override extends override1
+{
+  public final int x1() { return 5; }
+  public final int x2() { return 7; }
+
+  public static void main(String[] args)
+  {
+    override z = new override();
+    System.out.println(z.x1());
+    System.out.println(z.x2());
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/override.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/override.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/override.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/override.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,2 @@
+5
+7

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr100.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr100.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr100.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr100.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,13 @@
+// PR 100
+
+// Second call to hashcode causes SEGV when dynamically linking.
+
+public class pr100
+{
+    public static void main(String[] args) {
+	pr100 ht = new pr100();
+	
+	System.err.println(ht.hashCode());
+	System.err.println(ht.getClass().hashCode());
+    }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr100.xpo
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr100.xpo?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr100.xpo (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr100.xpo Thu Nov  8 16:56:19 2007
@@ -0,0 +1,2 @@
+[0-9]+
+[0-9]+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr109.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr109.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr109.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr109.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,29 @@
+// PR 109
+
+// Running the test code produces the output "0" instead of the
+// expected "01234".
+
+// The break statement exits both for-loops (not just the innermost
+// one) if the (single statement) body of the outer for-loop is not
+// enclosed in braces. Affects more deeply nested loops in the same
+// way.
+
+public class pr109
+{
+  public static void main (String argv[])
+    {
+      int i, j;
+
+      for (i = 0; i < 5; i++)
+	for (j = 0; j < 2; j++)
+	  {
+	    if (j == 1)
+	      break;
+	    System.out.print (i);
+	  }
+
+      // We print a newline here because otherwise the DejaGNU log
+      // file is screwed up.
+      System.out.println ();
+    }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr109.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr109.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr109.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr109.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+01234

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr13107.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr13107.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr13107.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr13107.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,25 @@
+class pr13107
+{
+  public static void main(String[] args)
+  {
+    for (int i = 0; i < 1; i++) {
+      String s = "A";
+
+      if (s == "A")
+        continue;
+      
+      try{
+	try{
+          System.out.println(s);
+	}
+	finally{
+	  if (s != "A")
+	    throw new Error();
+	}
+      }
+      catch(Exception e){
+	s = "B";
+      }
+    }
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr13107.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr13107.out?rev=43913&view=auto

==============================================================================
    (empty)

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr13107_2.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr13107_2.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr13107_2.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr13107_2.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,19 @@
+public class pr13107_2
+{
+  public static int foo (boolean b)
+  {
+    int i;
+    try {
+	if (b) return 1;
+	i= 2;
+      }
+    finally {
+      if (b) i = 3;
+    }
+    return i;
+  }
+
+  public static void main(String[] args)
+  {
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr13107_2.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr13107_2.out?rev=43913&view=auto

==============================================================================
    (empty)

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr13107_3.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr13107_3.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr13107_3.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr13107_3.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,16 @@
+public class pr13107_3
+{
+  public static void main(String[] args)
+  {
+    for (int i = 0; i < 1; i++)
+      {
+	try {
+	  System.out.println(i);
+	}
+	finally {
+	  if (i == 3)
+	    continue;
+	}
+      }
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr13107_3.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr13107_3.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr13107_3.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr13107_3.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+0

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr133.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr133.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr133.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr133.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,34 @@
+// PR 133
+
+// System.exit(0) appears to hang the program.
+
+public class pr133 {
+    public static void main(String argv[])
+    {
+        String name;
+
+        if (argv.length == 0) {
+            name = "Rocket J. Squirrel";
+        } else {
+            name = argv[0];
+        }
+
+        new pr133(name).identifySelf();
+        System.out.println("goodbye");
+
+        System.exit(0);
+    }
+
+    public pr133 (String name)
+    {
+        v_name = name;
+    }
+    
+    public void identifySelf()
+    {
+        System.out.println("This is a pr133 instance named " + v_name);
+        System.out.println("Leaving identifySelf()...");
+    }
+
+    private String v_name;
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr133.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr133.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr133.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr133.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,3 @@
+This is a pr133 instance named Rocket J. Squirrel
+Leaving identifySelf()...
+goodbye

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr16789.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr16789.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr16789.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr16789.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,15 @@
+// gcj used to generate incorrect bytecode for
+// staticMethod().staticMethod()
+public class pr16789
+{
+  public void foo()
+  {
+    System.out.println(Thread.currentThread().holdsLock(this));
+  }
+
+  public static void main(String[] args)
+  {
+    new pr16789().foo();
+  }
+}
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr16789.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr16789.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr16789.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr16789.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+false

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr17536.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr17536.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr17536.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr17536.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,5 @@
+public class pr17536 {
+  public static void main(String[] args) {
+    System.out.println(int[].class.getClassLoader());
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr17536.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr17536.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr17536.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr17536.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+null

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr179.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr179.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr179.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr179.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,59 @@
+// Extended regression test for the PR 179.
+//
+// This tests the ".class" language syntax, initialization behaviour for 
+// Class.isInstance() and Class.isAssignableFrom(), and isAssignableFrom()
+// functionality in the event that an interface argument that is not 
+// implemented by any loaded class is given.
+
+class A
+{
+  static 
+  {
+    System.out.println("A initialized");
+  }
+}
+
+interface IA {}
+
+class B implements IA
+{
+  static 
+  {
+    System.out.println("B initialized");
+  }
+}
+
+class C
+{
+  static 
+  {
+    System.out.println("C initialized");
+  }
+}
+
+interface IB {}
+
+public class pr179
+{
+  public static void main(String[] args)
+  {
+    System.out.println (A.class.isAssignableFrom (Object.class));
+    System.out.println (IB.class.isAssignableFrom (B.class));
+    System.out.println (IA.class.isAssignableFrom (B.class));
+    A a = new A();
+    System.out.println (C.class.isInstance (a));
+    C c = new C();
+    System.out.println (C.class.isInstance (c));
+  }
+}
+
+/* Expected Output:
+A initialized
+false
+B initialized
+false
+true
+C initialized
+false
+true
+*/

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr179.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr179.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr179.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr179.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,8 @@
+A initialized
+false
+B initialized
+false
+true
+C initialized
+false
+true

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr184.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr184.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr184.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr184.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,22 @@
+public class pr184
+{
+  public static void main(String[] args)
+  {
+    pr184 n = null;
+    try
+    {
+      n.foo();
+    }
+    catch (NullPointerException x)
+    {
+      System.out.println(x);
+    }
+  }
+  
+  int x = 2;
+  
+  final int foo() 
+  {
+    return x;
+  };
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr184.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr184.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr184.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr184.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+java.lang.NullPointerException

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr21785.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr21785.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr21785.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr21785.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,21 @@
+import java.io.*;
+
+public class pr21785 implements Serializable
+{
+  public static void main(String[] args)
+  {
+    try {
+      ByteArrayOutputStream outb = new ByteArrayOutputStream();
+      ObjectOutputStream outs = new ObjectOutputStream(outb);
+      outs.writeObject(new pr21785());
+      byte[] store = outb.toByteArray();
+
+      ByteArrayInputStream inb = new ByteArrayInputStream(store);
+      ObjectInputStream ins = new ObjectInputStream(inb);
+      ins.readObject();
+    }
+    catch (Throwable e) {
+      throw new Error(e);
+    }
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr21785.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr21785.out?rev=43913&view=auto

==============================================================================
    (empty)

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr21844.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr21844.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr21844.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr21844.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,33 @@
+class pr21844base
+{
+  int modCount;
+
+  public pr21844base(int x)
+  {
+    modCount = x;
+  }
+}
+
+public class pr21844 extends pr21844base
+{
+  class inner
+  {
+    public int doit ()
+    {
+      ++modCount;
+      return modCount;
+    }
+  }
+
+  public pr21844(int x)
+  {
+    super(x);
+  }
+
+  public static void main(String[] args)
+  {
+    pr21844 val = new pr21844(7);
+    inner i = val.new inner();
+    System.out.println(i.doit());
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr21844.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr21844.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr21844.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr21844.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+8

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr22211.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr22211.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr22211.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr22211.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,8 @@
+public class pr22211
+{
+  public static void main(String[] args)
+  {
+    Thread x = new Thread();
+    x.interrupt();
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr24321.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr24321.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr24321.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr24321.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,21 @@
+public class pr24321 {
+  static class Z {
+    static {
+      System.out.println("init");
+    }
+  }
+
+  static class Y extends Z { }
+
+  public static Object x () { return new Object(); }
+
+  public static void main(String[] args) throws Throwable
+  {
+    System.out.println(x() instanceof Z);
+
+    ClassLoader cl = pr24321.class.getClassLoader();
+    Class zk = Class.forName("pr24321$Z", false, cl);
+    Class yk = Class.forName("pr24321$Y", false, cl);
+    System.out.println(zk.isAssignableFrom(yk));
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr24321.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr24321.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr24321.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr24321.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,2 @@
+false
+true

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr25676.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr25676.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr25676.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr25676.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,12 @@
+public class pr25676
+{
+  public static double g(double a, double b)
+  {
+    return Math.min(a, b);
+  }
+  public static void main(String a[])
+  {
+    System.out.println (g(0.0, -0.0));
+    System.out.println (g(-0.0, 0.0));
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr25676.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr25676.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr25676.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr25676.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,2 @@
+-0.0
+-0.0

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr26390.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr26390.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr26390.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr26390.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,45 @@
+public class pr26390
+{
+  public interface ComponentPeer {
+    public void setBounds();
+  }
+
+  public interface ContainerPeer extends ComponentPeer {
+  }
+
+  public interface WindowPeer extends ContainerPeer {
+  }
+
+  public interface FramePeer extends WindowPeer {
+  }
+
+  public static class SwingComponentPeer implements ComponentPeer {
+    public void setBounds() {
+    }
+  }
+
+  public static class SwingContainerPeer
+    extends SwingComponentPeer implements ContainerPeer
+  {
+  }
+
+  public static class SwingWindowPeer
+    extends SwingContainerPeer implements WindowPeer
+  {
+  }
+
+  public static class SwingFramePeer
+    extends SwingWindowPeer implements FramePeer
+  {
+    public void setBounds() {
+      super.setBounds();
+    }
+  }
+
+  public static void main(String[] args)
+  {
+    SwingFramePeer s = new SwingFramePeer();
+    s.setBounds();
+  }
+}
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr26390.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr26390.out?rev=43913&view=auto

==============================================================================
    (empty)

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr26990.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr26990.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr26990.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr26990.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,13 @@
+public class pr26990
+{
+  public static void main (String args[]) throws Exception
+  {
+    System.setSecurityManager(new SecurityManager()
+                              {
+                                public void checkExit(int status)
+                                {
+                                  throw new SecurityException("This is a bug");
+                                }
+                              });
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr26990.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr26990.out?rev=43913&view=auto

==============================================================================
    (empty)

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr27171.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr27171.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr27171.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr27171.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,19 @@
+public class pr27171 {
+
+	public static void main(String[] args) throws Throwable {
+	  // Isolated low surrogate.
+	  char x = 56478;  // 0xdc9e
+	  String xs = new String(new char[] { x });
+	  // Note that we fix a result for our implementation; but
+	  // the JDK does something else.
+	  System.out.println(xs.getBytes("UTF-8").length);
+
+	  // isolated high surrogate -- at end of input stream
+	  char y = 0xdaee;
+	  String ys = new String(new char[] { y });
+	  // Note that we fix a result for our implementation; but
+	  // the JDK does something else.
+	  System.out.println(ys.getBytes("UTF-8").length);
+	}
+}
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr27171.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr27171.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr27171.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr27171.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,2 @@
+3
+3

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr6388.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr6388.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr6388.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr6388.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,10 @@
+public class pr6388
+{
+  public static void main (String[] args)
+  {
+    System.out.println (Integer.MIN_VALUE);
+    System.out.println (0x80000000);
+    System.out.println (Integer.MIN_VALUE == 0x80000000);
+    System.out.println (0x80000000 == 0x80000000);
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr6388.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr6388.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr6388.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr6388.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,4 @@
+-2147483648
+-2147483648
+true
+true

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr83.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr83.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr83.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr83.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,39 @@
+// PR 83
+
+/*
+ * test that caught null pointers exceptions in finalizers work correctly
+ * and that local variables are accessible in null pointer exception handlers.
+ */
+import java.io.*;
+
+public class pr83 {
+    
+    static String s;
+    
+    public static void main(String[] args) {
+	System.out.println(tryfinally() + s);
+    }
+    
+    public static String tryfinally() {
+	String yuck = null;
+	String local_s = null;
+	
+	try {
+	    return "This is ";
+	} finally {
+	    try {
+		local_s = "Perfect";
+		/* trigger null pointer exception */
+		String x = yuck.toLowerCase();
+	    } catch (Exception _) {
+		/* 
+		 * when the null pointer exception is caught, we must still
+		 * be able to access local_s.
+		 * Our return address for the finally clause must also still
+		 * be intact.
+		 */
+		s = local_s;
+	    }
+	}
+    }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr83.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr83.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr83.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr83.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+This is Perfect

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr8415.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr8415.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr8415.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr8415.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,15 @@
+import java.lang.reflect.*;
+public class pr8415
+{
+  public static void meth () throws NullPointerException
+  {
+    throw new NullPointerException();
+  }
+
+  public static void main(String[] args) throws Throwable
+  {
+    Class k = pr8415.class;
+    Method m = k.getMethod ("meth", new Class[0]);
+    System.out.println(m);
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr8415.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr8415.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr8415.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr8415.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+public static void pr8415.meth() throws java.lang.NullPointerException

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr8676.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr8676.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr8676.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr8676.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,11 @@
+public class pr8676 {
+  // The problem here was that this function couldn't be compiled to
+  // bytecode.
+  private void f(long j) {
+    boolean x = (1 << j) != 0;
+  }
+
+  public static void main(String[] args)
+  {
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr8676.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr8676.out?rev=43913&view=auto

==============================================================================
    (empty)

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr8823.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr8823.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr8823.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr8823.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,24 @@
+interface I
+{
+  public void m();
+}
+
+abstract class A implements I
+{
+  // But doesn't define m()
+}
+
+public class pr8823 extends A // which means it implements I
+{
+  public static void main(String[] args)
+  {
+    // Defining c as either I or C will work.
+    A c = new pr8823();
+    c.m();
+  }
+
+  public void m()
+  {
+    System.out.println("Hello World!");
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr8823.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr8823.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr8823.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr8823.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+Hello World!

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr8945.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr8945.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr8945.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr8945.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,9 @@
+public class pr8945
+{
+  public static void main(String[] args)
+  {
+    String foo = "hello";
+    int pos = 3;
+    System.out.println(foo.substring(pos,++pos));
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr8945.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr8945.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr8945.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/pr8945.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+l

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/private_direct_read.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/private_direct_read.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/private_direct_read.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/private_direct_read.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,26 @@
+// Class private_direct_read
+// Generated on Tue Nov 16 15:04:13 UTC 1999
+//
+
+class private_direct_read {
+
+  private int foo;
+
+  class private_direct_read_inner {
+    void test () {
+      int x = foo;
+      System.out.println ("x="+x);
+    }
+  }
+  void foo ()
+  {
+    foo = 670;
+    private_direct_read_inner inn = this.new private_direct_read_inner ();
+    inn.test ();
+  }  
+  public static void main (String[] arg)
+  {
+    System.out.println ("Testing class `private_direct_read'...");
+    new private_direct_read().foo ();
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/private_direct_read.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/private_direct_read.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/private_direct_read.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/private_direct_read.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,2 @@
+Testing class `private_direct_read'...
+x=670

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/private_direct_write.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/private_direct_write.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/private_direct_write.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/private_direct_write.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,25 @@
+// Class private_direct_write
+// Generated on Tue Nov 16 15:05:54 UTC 1999
+//
+
+class private_direct_write {
+
+  private int foo;
+
+  class private_direct_write_inner {
+    void test () {
+      foo = 670;
+    }
+  }
+  void foo ()
+  {
+    private_direct_write_inner inn = this.new private_direct_write_inner ();
+    inn.test ();
+    System.out.println ("foo="+foo);
+  }  
+  public static void main (String[] arg)
+  {
+    System.out.println ("Testing class `private_direct_write'...");
+    new private_direct_write().foo ();
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/private_indirect_read.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/private_indirect_read.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/private_indirect_read.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/private_indirect_read.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,32 @@
+// Class private_indirect_read
+// Generated on Tue Nov 16 15:34:56 UTC 1999
+//
+
+class private_indirect_read {
+
+  private int foo;
+
+  class private_indirect_read_inner {
+    void test () {
+    }
+    class other {
+      void testx () {
+        int x = foo;
+        System.out.println ("x="+x);
+      }
+    }
+
+  }
+  void foo ()
+  {
+    foo=670;
+    private_indirect_read_inner inn = this.new private_indirect_read_inner ();
+    private_indirect_read_inner.other o = inn.new other ();
+    o.testx();
+  }  
+  public static void main (String[] arg)
+  {
+    System.out.println ("Testing class `private_indirect_read'...");
+    new private_indirect_read().foo ();
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/private_indirect_write.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/private_indirect_write.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/private_indirect_write.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/private_indirect_write.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,32 @@
+// Class private_indirect_write
+// Generated on Tue Nov 16 15:44:49 UTC 1999
+//
+
+class private_indirect_write {
+
+  private int foo;
+
+  class private_indirect_write_inner {
+    void test () {
+    }
+
+    class other {
+      void test () {
+        foo = 670;
+      }
+    }
+
+  }
+  void foo ()
+  {
+    private_indirect_write_inner inn = this.new private_indirect_write_inner ();
+    private_indirect_write_inner.other x = inn.new other ();
+    x.test ();
+    System.out.println ("foo="+foo);
+  }  
+  public static void main (String[] arg)
+  {
+    System.out.println ("Testing class `private_indirect_write'...");
+    new private_indirect_write().foo ();
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/search_outer.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/search_outer.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/search_outer.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/search_outer.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,28 @@
+// Class search_outer.java
+// Generated on Thu Nov 18 18:40:43 UTC 1999
+//
+
+class search_outer {
+
+  private int foo;
+
+  class search_outer_inner {
+    void test () {
+      foo++;
+      System.out.println ("foo="+foo);
+      foo += 3;
+      System.out.println ("foo="+foo);
+    }
+  }
+  void foo ()
+  {
+    foo = 3;
+    search_outer_inner inn = this.new search_outer_inner ();
+    inn.test ();
+  }  
+  public static void main (String[] arg)
+  {
+    System.out.println ("Testing class `search_outer'...");
+    new search_outer().foo ();
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/search_outer.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/search_outer.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/search_outer.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/search_outer.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,3 @@
+Testing class `search_outer'...
+foo=4
+foo=7

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/shatest.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/shatest.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/shatest.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/shatest.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,39 @@
+import java.security.*;
+
+class shatest {
+
+    // gnu-crypto/source/gnu/testlet/gnu/crypto/hash/TestOfSha160.java
+
+    public static void main(String[] argv) {
+	MessageDigest md=null;
+	try {
+	    md = MessageDigest.getInstance("SHA-1");
+	} catch (Exception e) {
+	    e.printStackTrace();
+	}
+	md.update("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq".getBytes(), 0, 56);
+	String exp = "84983E441C3BD26EBAAE4AA1F95129E5E54670F1";
+	String result = toString(md.digest());
+	System.out.println(exp);
+	System.out.println(result);
+	if (!exp.equals(result))
+	    System.out.println("NOT EQUAL!");
+
+    }
+
+    public static String toString(byte[] ba) {
+	return toString(ba, 0, ba.length);
+    }
+    public static final String toString(byte[] ba, int offset, int length) {
+	char[] buf = new char[length * 2];
+	for (int i = 0, j = 0, k; i < length; ) {
+	    k = ba[offset + i++];
+	    buf[j++] = HEX_DIGITS[(k >>> 4) & 0x0F];
+	    buf[j++] = HEX_DIGITS[ k        & 0x0F];
+	}
+	return new String(buf);
+    }
+
+    private static final char[] HEX_DIGITS = "0123456789ABCDEF".toCharArray();
+
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/shatest.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/shatest.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/shatest.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/shatest.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,2 @@
+84983E441C3BD26EBAAE4AA1F95129E5E54670F1
+84983E441C3BD26EBAAE4AA1F95129E5E54670F1

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/stacktrace.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/stacktrace.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/stacktrace.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/stacktrace.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,67 @@
+/* This test should test the stacktrace functionality.
+   We only print ClassName and MethName since the other information
+   like FileName and LineNumber are not consistent while building
+   native or interpreted and we want to test the output inside the dejagnu
+   test environment.
+   Also, we have to make the methods public since they might be optimized away
+   with inline's and then the -O3/-O2 execution might fail.
+*/
+public class stacktrace {
+  public static void main(String args[]) {
+    try {
+      new stacktrace().a();
+    } catch (TopException e) {
+    }
+  }
+
+  public void a() throws TopException {
+    try {
+      b();
+    } catch (MiddleException e) {
+      throw new TopException(e);
+    }
+  }
+
+  public void b() throws MiddleException {
+    c();
+  }
+
+  public void c() throws MiddleException {
+    try {
+      d();
+    } catch (BottomException e) {
+      throw new MiddleException(e);
+    }
+  }
+
+  public void d() throws BottomException {
+    e();
+  }
+
+  public void e() throws BottomException {
+    throw new BottomException();
+  }
+}
+
+class TopException extends Exception {
+  TopException(Throwable cause) {
+    super(cause);
+  }
+}
+
+class MiddleException extends Exception {
+  MiddleException(Throwable cause) {
+    super(cause);
+  }
+}
+
+class BottomException extends Exception {
+  BottomException() {
+    StackTraceElement stack[] = this.getStackTrace();
+    for (int i = 0; i < stack.length; i++) {
+      String className = stack[i].getClassName();
+      String methodName = stack[i].getMethodName();
+      System.out.println(className + "." + methodName);
+    }
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/stacktrace.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/stacktrace.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/stacktrace.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/stacktrace.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,6 @@
+stacktrace.e
+stacktrace.d
+stacktrace.c
+stacktrace.b
+stacktrace.a
+stacktrace.main

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/stringconst.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/stringconst.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/stringconst.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/stringconst.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,22 @@
+// A reference to a String shouldn't cause an interface to be
+// initialized.
+
+interface I
+{
+  String z = "zardoz";
+  int q = stringconst.out ("q", 0);
+}
+
+public class stringconst
+{
+  public static int out (String s, int i)
+  {
+    System.out.println (s + "=" + i);
+    return i;
+  }
+
+  public static void main (String[] args)
+  {
+    System.out.println (I.z);
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/stringconst.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/stringconst.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/stringconst.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/stringconst.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+zardoz

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/stringconst.xfail
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/stringconst.xfail?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/stringconst.xfail (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/stringconst.xfail Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+xfail-source-output

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/stringconst2.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/stringconst2.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/stringconst2.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/stringconst2.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,22 @@
+// Test to make sure a string constant is correctly initialized.
+
+import java.lang.reflect.*;
+
+public class stringconst2
+{
+  public static final String q = "zardoz";
+
+  public static void main (String[] args)
+  {
+    try
+      {
+	Class k = Class.forName ("stringconst2");
+	Field f = k.getField ("q");
+	System.out.println (f.get (null));
+      }
+    catch (Throwable t)
+      {
+	t.printStackTrace();
+      }
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/stringconst2.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/stringconst2.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/stringconst2.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/stringconst2.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+zardoz

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/stub.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/stub.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/stub.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/stub.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,101 @@
+// Class stub
+// Generated on Fri Feb  4 20:23:47 PST 2000
+// A somewhat thorough test of function invocator generated stubs.
+
+class stub {
+
+    String ok;
+
+    void OK () {System.out.println (ok);}
+    void OK (int i) {System.out.println (ok+" "+i);}
+    static void testOK () {System.out.println ("OK");}
+    static void testOK (int i) {System.out.println ("OK "+i); }
+
+    // STATIC   PRIVATE         R_VALUE         ARGS
+    // No       No              No              No
+                                void    t1      () {OK();}
+    // Yes      No              No              No
+       static                   void    t2      () {testOK();}
+    // No       Yes             No              No
+                private         void    t3      () {OK();}
+    // Yes      Yes             No              No
+       static   private         void    t4      () {testOK();}
+    // No       No              Yes             No
+                                int     t5      () {return 5;}
+    // Yes      No              Yes             No
+       static                   int     t6      () {return 6;}
+    // No       Yes             Yes             No
+                private         int     t7      () {return 7;}
+    // Yes      Yes             Yes             No
+       static   private         int     t8      () {return 8;}
+
+    // No       No              No              Yes
+                                void    t9      (int i) {OK(i);}
+    // Yes      No              No              Yes
+       static                   void    t10     (int i) {testOK(i);}
+    // No       Yes             No              Yes
+                private         void    t11     (int i) {OK(i);}
+    // Yes      Yes             No              Yes
+       static   private         void    t12     (int i) {testOK(i);}
+    // No       No              Yes             Yes
+                                int     t13     (int i) {return i*2;}
+    // Yes      No              Yes             Yes
+       static                   int     t14     (int i) {return i*3;}
+    // No       Yes             Yes             Yes
+                private         int     t15     (int i) {return i*4;}
+    // Yes      Yes             Yes             Yes
+       static   private         int     t16     (int i) {return i*5;}
+
+    void foo ()
+    {
+        this.new bar ().test ();
+    }
+    class bar {
+        void test () {
+            ok = "OK";
+            t1 ();
+            t2 ();
+            t3 ();
+            t4 ();
+            System.out.println (t5());
+            System.out.println (t6());
+            System.out.println (t7());
+            System.out.println (t8());
+            t9 (9);
+            t10 (10);
+            t11 (11);
+            t12 (12);
+            System.out.println (t13(13));
+            System.out.println (t14(14));
+            System.out.println (t15(15));
+            System.out.println (t16(16));
+            this.new baz ().test ();
+        }
+        class baz {
+            void test () {
+                ok = "OKOK";
+                t1 ();
+                t2 ();
+                t3 ();
+                t4 ();
+                System.out.println (t5());
+                System.out.println (t6());
+                System.out.println (t7());
+                System.out.println (t8());
+                t9 (9);
+                t10 (10);
+                t11 (11);
+                t12 (12);
+                System.out.println (t13(13));
+                System.out.println (t14(14));
+                System.out.println (t15(15));
+                System.out.println (t16(16));
+            }
+        }
+    }
+    public static void main (String[] arg)
+    {   
+        System.out.println ("Testing class `stub'...");
+        new stub ().foo ();
+    }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/stub.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/stub.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/stub.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/stub.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,33 @@
+Testing class `stub'...
+OK
+OK
+OK
+OK
+5
+6
+7
+8
+OK 9
+OK 10
+OK 11
+OK 12
+26
+42
+60
+80
+OKOK
+OK
+OKOK
+OK
+5
+6
+7
+8
+OKOK 9
+OK 10
+OKOK 11
+OK 12
+26
+42
+60
+80

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/test_long.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/test_long.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/test_long.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/test_long.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,13 @@
+class test_long {
+
+  public static void main (String[] arg)
+  {
+    long a, b, c, d, e;
+    e = 234L;
+    d = 0x8888888888888888L;
+    a = 0x0123456789ABCDEFL;
+    b = 0xFEDCBA9876543210L;
+    c = 0xF096A5B4C3B2E187L;
+    System.out.println (a+" "+b+" "+c+" "+d+" "+e);
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/test_long.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/test_long.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/test_long.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/test_long.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1 @@
+81985529216486895 -81985529216486896 -1110518062304271993 -8608480567731124088 234

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/tmi.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/tmi.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/tmi.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/tmi.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,43 @@
+// Class t
+// Generated on Thu Nov  4 16:35:03 PST 1999
+//
+
+class tmi {
+  int i;
+  void foo () {
+    tmi.z x1 = new z();
+    tmi.z.y x = x1.new y();
+    x.bar ();
+    x.print();
+    tmi.this.i = 666;
+    x.print();
+    tmi.this.print();
+  }
+  void print () {
+    System.out.println ("tmi.print()");
+  }
+  public static void main (String[] arg)
+  {
+    System.out.println ("Testing class `tmi'...");
+    new tmi ().foo();
+  }
+  class z {
+    int j;
+    void foo () {
+      tmi.this.i = 3; 
+    }
+    class y { 
+      int k;
+      void bar () {
+        tmi.this.i = 3;
+        tmi.this.print ();
+        z.this.j = 4;
+        y.this.k = 34;
+      }
+      void print () {
+        System.out.println ("i="+i+", j="+j+", k="+k);
+      }
+    }
+  }
+}
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/tmi.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/tmi.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/tmi.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/tmi.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,5 @@
+Testing class `tmi'...
+tmi.print()
+i=3, j=4, k=34
+i=666, j=4, k=34
+tmi.print()

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/tp.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/tp.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/tp.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/tp.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,36 @@
+// Class tp
+// Generated on Thu Nov  4 16:35:03 PST 1999
+//
+
+class tp {
+  private int i;
+  void foo () {
+    tp.z x1 = new z();
+    tp.z.y x = x1.new y();
+    x.bar ();
+    x.print();
+  }
+  public static void main (String[] arg)
+  {
+    System.out.println ("Testing class `tp'...");
+    new tp ().foo();
+  }
+  class z {
+    private int j;
+    void foo () {
+      tp.this.i = 3; 
+    }
+    class y { 
+      private int k;
+      void bar () {
+        tp.this.i = 3;
+        z.this.j = 4;
+        y.this.k = 34;
+      }
+      void print () {
+        System.out.println ("i="+i+", j="+j+", k="+k);
+      }
+    }
+  }
+}
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/tp.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/tp.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/tp.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/tp.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,2 @@
+Testing class `tp'...
+i=3, j=4, k=34

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/update_outer.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/update_outer.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/update_outer.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/update_outer.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,28 @@
+// Class update_outer
+// Generated on Thu Nov 18 21:37:21 UTC 1999
+//
+
+class update_outer {
+
+  private String foo;
+
+  class update_outer_inner {
+    void test () {
+      foo += " M$";
+      System.out.println ("foo=`"+foo+"'");
+    }
+
+
+  }
+  void foo ()
+  {
+    foo = "780";
+    update_outer_inner inn = this.new update_outer_inner ();
+    inn.test ();
+  }  
+  public static void main (String[] arg)
+  {
+    System.out.println ("Testing class `update_outer'...");
+    new update_outer().foo ();
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/update_outer.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/update_outer.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/update_outer.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/update_outer.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,2 @@
+Testing class `update_outer'...
+foo=`780 M$'

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/utf8concat.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/utf8concat.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/utf8concat.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/utf8concat.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,11 @@
+public class utf8concat
+{
+  private static String s;
+
+  public static void main (String[] args)
+  {
+    // This causes a crash at runtime because the compiler is
+    // producing an invalid UTF-8 string literal.
+    s = "abc" + (char)183;
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/utf8concat.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/utf8concat.out?rev=43913&view=auto

==============================================================================
    (empty)

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/utilTest.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/utilTest.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/utilTest.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/utilTest.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,58 @@
+class utilTest {
+
+  public static void main(String[] argv) throws Throwable {
+    byte[] b = new byte[] {
+      0x01, 0x23, 0x45, 0x67, (byte) 0x89, (byte) 0xab,
+      (byte) 0xcd, (byte) 0xef
+    };
+    String s = "0123456789ABCDEF";
+    System.out.println(toString(b));
+    System.out.println(s);
+    System.out.println(toString(toBytesFromString(s)));
+  }
+
+  // The following comes from the GNU Crypto project gnu.crypto.util.Util
+
+  private static final char[] HEX_DIGITS = {
+    '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'
+  };
+
+  public static byte[] toBytesFromString(String s) {
+    int limit = s.length();
+    byte[] result = new byte[((limit + 1) / 2)];
+    int i = 0, j = 0;
+    if ((limit % 2) == 1) {
+      result[j++] = (byte) fromDigit(s.charAt(i++));
+    }
+    while (i < limit) {
+      result[j++] = 
+	(byte)((fromDigit(s.charAt(i++)) << 4) | fromDigit(s.charAt(i++)));
+    }
+    return result;
+  }
+
+  public static int fromDigit(char c) {
+    if (c >= '0' && c <= '9') {
+      return c - '0';
+    } else if (c >= 'A' && c <= 'F') {
+      return c - 'A' + 10;
+    } else if (c >= 'a' && c <= 'f') {
+      return c - 'a' + 10;
+    } else
+      throw new IllegalArgumentException("Invalid hexadecimal digit: " + c);
+  }
+
+  public static String toString(byte[] ba) {
+    return toString(ba, 0, ba.length);
+  }
+
+  public static final String toString(byte[] ba, int offset, int length) {
+    char[] buf = new char[length * 2];
+    for (int i = 0, j = 0, k; i < length; ) {
+      k = ba[offset + i++];
+      buf[j++] = HEX_DIGITS[(k >>> 4) & 0x0F];
+      buf[j++] = HEX_DIGITS[ k        & 0x0F];
+    }
+    return new String(buf);
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/utilTest.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/utilTest.out?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/utilTest.out (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/utilTest.out Thu Nov  8 16:56:19 2007
@@ -0,0 +1,3 @@
+0123456789ABCDEF
+0123456789ABCDEF
+0123456789ABCDEF

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/verify.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/verify.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/verify.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/verify.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,20 @@
+// Test for a verification regression.
+
+interface I { }
+class D implements I { }
+class E extends D { }
+
+public class verify
+{
+  static void call(I v) { }
+
+  static void doit (Object x)
+  {
+    call ((x instanceof I) ? (I) x : new E ());
+  }
+
+  public static void main(String[] args)
+  {
+    doit(null);
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/verify.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.lang/verify.out?rev=43913&view=auto

==============================================================================
    (empty)

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.loader/MyLoader.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.loader/MyLoader.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.loader/MyLoader.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.loader/MyLoader.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,14 @@
+import java.net.*;
+
+public class MyLoader extends URLClassLoader
+{
+  public MyLoader (URL urls[])
+  {
+    super (urls);
+  }
+
+  public MyLoader (URL urls[], ClassLoader parent)
+  {
+    super (urls, parent);
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.loader/TestEarlyGC.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.loader/TestEarlyGC.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.loader/TestEarlyGC.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.loader/TestEarlyGC.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,64 @@
+public class TestEarlyGC extends ClassLoader {
+
+  static TestEarlyGC[] a = new TestEarlyGC[10];
+
+  // Jeff Sturm writes:
+  // Reconstructed from bytecode (and memory).  The singleton pattern
+  // is used as a class finalizer.
+  // public class C {
+  //   private static C c;
+  //   public C() {
+  //     c = this;
+  //   }
+  //   protected void finalize() {
+  //     System.out.println("finalized");
+  //   }
+  // }
+  byte[] code = {
+    -54,-2,-70,-66,0,3,0,45,0,32,1,0,1,67,7,0,
+    1,1,0,16,106,97,118,97,47,108,97,110,103,47,79,98,
+    106,101,99,116,7,0,3,1,0,1,99,1,0,3,76,67,
+    59,1,0,6,60,105,110,105,116,62,1,0,3,40,41,86,
+    1,0,4,67,111,100,101,12,0,7,0,8,10,0,4,0,
+    10,12,0,5,0,6,9,0,2,0,12,1,0,15,76,105,
+    110,101,78,117,109,98,101,114,84,97,98,108,101,1,0,8,
+    102,105,110,97,108,105,122,101,1,0,16,106,97,118,97,47,
+    108,97,110,103,47,83,121,115,116,101,109,7,0,16,1,0,
+    3,111,117,116,1,0,21,76,106,97,118,97,47,105,111,47,
+    80,114,105,110,116,83,116,114,101,97,109,59,12,0,18,0,
+    19,9,0,17,0,20,1,0,9,102,105,110,97,108,105,122,
+    101,100,8,0,22,1,0,19,106,97,118,97,47,105,111,47,
+    80,114,105,110,116,83,116,114,101,97,109,7,0,24,1,0,
+    7,112,114,105,110,116,108,110,1,0,21,40,76,106,97,118,
+    97,47,108,97,110,103,47,83,116,114,105,110,103,59,41,86,
+    12,0,26,0,27,10,0,25,0,28,1,0,10,83,111,117,
+    114,99,101,70,105,108,101,1,0,6,67,46,106,97,118,97,
+    0,33,0,2,0,4,0,0,0,1,0,10,0,5,0,6,
+    0,0,0,2,0,1,0,7,0,8,0,1,0,9,0,0,
+    0,33,0,1,0,1,0,0,0,9,42,-73,0,11,42,-77,
+    0,13,-79,0,0,0,1,0,14,0,0,0,6,0,1,0,
+    4,0,5,0,4,0,15,0,8,0,1,0,9,0,0,0,
+    33,0,2,0,1,0,0,0,9,-78,0,21,18,23,-74,0,
+    29,-79,0,0,0,1,0,14,0,0,0,6,0,1,0,0,
+    0,9,0,1,0,30,0,0,0,2,0,31
+  };
+
+  TestEarlyGC() throws Throwable {
+    defineClass("C", code, 0, code.length).newInstance();
+  }
+
+  public static void main(String[] args) {
+    Runtime r = Runtime.getRuntime();
+
+    try {
+      for (int n = 0; n < a.length; n++) {
+        a[n] = new TestEarlyGC();
+        r.gc();
+        r.runFinalization();
+        Thread.yield();
+      }
+    } catch (Throwable t) {
+      t.printStackTrace();
+    }
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.loader/TestEarlyGC.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.loader/TestEarlyGC.out?rev=43913&view=auto

==============================================================================
    (empty)

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.loader/TestLeak.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.loader/TestLeak.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.loader/TestLeak.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.loader/TestLeak.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,33 @@
+import java.net.*;
+import java.lang.reflect.*;
+
+public class TestLeak
+{
+  class MyLoader extends URLClassLoader
+  {
+    public MyLoader (URL urls[])
+    {
+      super (urls);
+    }
+  }
+
+  public static void main (String[] args)
+  {
+    URLClassLoader ucl = 
+      (URLClassLoader) ClassLoader.getSystemClassLoader();
+    URL urls[] = ucl.getURLs ();
+    Class ifaces[] = new Class[1];
+    ifaces[0] = java.lang.Comparable.class;
+
+    try {
+      for (int i = 0; i < 100; i++)
+	{
+	  Proxy.getProxyClass (new MyLoader (urls), ifaces);
+	} 
+    } catch (Exception e) {
+      e.printStackTrace ();
+    }
+  }
+}
+
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.loader/TestLeak.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.loader/TestLeak.out?rev=43913&view=auto

==============================================================================
    (empty)

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.loader/TestMultiple.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.loader/TestMultiple.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.loader/TestMultiple.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.loader/TestMultiple.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,28 @@
+import java.net.*;
+
+public class TestMultiple
+{
+  public static void main (String[] args)
+  {
+    URLClassLoader ucl = 
+      (URLClassLoader) ClassLoader.getSystemClassLoader();
+    URL urls[] = ucl.getURLs ();
+
+    MyLoader t1 = new MyLoader (urls);
+    MyLoader t2 = new MyLoader (urls);
+
+    Class c1, c2;
+
+    try {
+
+      c1 = t1.loadClass ("dummy");
+      c2 = t2.loadClass ("dummy");
+
+    } 
+    catch (Exception e) {
+	e.printStackTrace ();
+    }
+  }
+}
+
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.loader/TestMultiple.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.loader/TestMultiple.out?rev=43913&view=auto

==============================================================================
    (empty)

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.loader/TestParent.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.loader/TestParent.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.loader/TestParent.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.loader/TestParent.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,29 @@
+import java.net.*;
+
+public class TestParent
+{
+  public static void main (String[] args)
+  {
+    URLClassLoader ucl =
+      (URLClassLoader) ClassLoader.getSystemClassLoader();
+    URL urls[] = ucl.getURLs ();
+
+    MyLoader parent = new MyLoader (urls);
+
+    MyLoader t1 = new MyLoader (urls, parent);
+    MyLoader t2 = new MyLoader (urls, parent);
+
+    Class c1, c2;
+
+    try {
+
+      c1 = t1.loadClass ("dummy");
+      c2 = t2.loadClass ("dummy");
+
+    }
+    catch (Exception e) {
+      e.printStackTrace ();
+    }
+  }
+}
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.loader/TestParent.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.loader/TestParent.out?rev=43913&view=auto

==============================================================================
    (empty)

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.loader/dummy.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.loader/dummy.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.loader/dummy.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.loader/dummy.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,6 @@
+// A dummy class
+
+public class dummy
+{
+}
+

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.loader/loader.exp
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.loader/loader.exp?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.loader/loader.exp (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.loader/loader.exp Thu Nov  8 16:56:19 2007
@@ -0,0 +1,77 @@
+# Tests for ClassLoader and native library loader code.
+
+# Compute the correct name for an object file.
+# This is an awful hack.
+proc gcj_object_file_name {compiler base} {
+  verbose "OBJECT: compiler = $compiler"
+  if {[string match *libtool* $compiler]} {
+    return $base.lo
+  }
+  return $base.o
+}
+
+# Do all the work for a single JNI test.  Return 0 on failure.
+proc gcj_loader_test_one {srcfile} {
+  global objdir srcdir subdir
+
+  set resfile $srcdir/$subdir/[file rootname [file tail $srcfile]].out
+
+  regsub "^.*/(\[^/.\]+)\[.\]\[^/]*$" "$srcfile" "\\1" out
+  set executable "${objdir}/$out.exe"
+
+  set errname [file rootname [file tail $srcfile]]
+  set args [libjava_arguments link]
+  lappend args "additional_flags=--main=[file rootname [file tail $srcfile]] $srcdir/$subdir/MyLoader.java $objdir/[gcj_object_file_name $args dummy]"
+  set x [libjava_prune_warnings \
+	     [libjava_tcompile $srcfile "$executable" executable $args]]
+
+    if { $x != "" } {
+	verbose "target_compile failed: $x" 2
+
+	fail "$errname compilation from source"
+	untested "$errname execution from source compiled test"
+	return
+    }
+    pass "$errname compilation from source"
+
+    libjava_invoke $executable $executable "" $executable "" $resfile ""
+
+  return 1
+}
+
+# Run the bytecode loader tests.
+proc gcj_loader_run {} {
+  global srcdir subdir objdir
+  global build_triplet host_triplet
+  global GCJ_UNDER_TEST
+
+  set file "${srcdir}/${subdir}/dummy.java"
+  if {! [bytecompile_file $file [pwd]]} {
+    fail "bytecompile $file"
+    # FIXME - should use `untested' on all remaining tests.
+    # But that is hard.
+    return 0
+  }
+  pass "bytecompile $file"
+
+  set args [libjava_arguments compile]
+  lappend args "additional_flags=--resource $objdir/dummy.class"
+  set x [libjava_prune_warnings \
+	   [libjava_tcompile "$objdir/dummy.class" "$objdir/[gcj_object_file_name $args dummy]" object $args]]
+
+    if { $x != "" } {
+	verbose "resource compilation failed: $x" 2
+
+	fail "resource compilation dummy.class"
+	return 0;
+    }
+  pass "resource compilation: dummy.class"
+
+  catch { lsort [glob -nocomplain ${srcdir}/${subdir}/Test*.java] } srcfiles
+
+  foreach x $srcfiles {
+    gcj_loader_test_one $x
+  }
+}
+
+gcj_loader_run

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.mauve/DejaGNUTestHarness.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.mauve/DejaGNUTestHarness.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.mauve/DejaGNUTestHarness.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.mauve/DejaGNUTestHarness.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,31 @@
+// Copyright (c) 1998, 1999  Free Software Foundation
+
+// Written by Tom Tromey <tromey at cygnus.com>
+
+import gnu.testlet.*;
+
+public class DejaGNUTestHarness extends SimpleTestHarness
+{
+  static String dejasrcdir;
+
+  public String getSourceDirectory ()
+  {
+    return dejasrcdir;
+  }
+
+  private DejaGNUTestHarness ()
+  {
+    super (/* verbose */ true, /* debug */ false);
+  }
+
+  public static void main (String[] args)
+  {
+    dejasrcdir = args.length > 0 ? args[0] : "";
+    DejaGNUTestHarness harness = new DejaGNUTestHarness ();
+    // This might seem weird, given that we check args.length above.
+    // However, in some cases the expect code rewrites this runtest
+    // invocation to have an explicit name for the test to run.
+    harness.runtest (args[1]);
+    System.exit(harness.done());
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.mauve/mauve.exp
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.mauve/mauve.exp?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.mauve/mauve.exp (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.mauve/mauve.exp Thu Nov  8 16:56:19 2007
@@ -0,0 +1,446 @@
+# Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation.
+# Written by Tom Tromey <tromey at cygnus.com>.
+# Incorporate Mauve into libjava's DejaGNU test suite framework.
+
+# FIXME: should be able to compile from source as well as from .class.
+
+
+# Compute list of files to compile.  Returns list of all files
+# representing classes that must be tested.  Result parameter `uses'
+# maps source file names onto list of objects required for link.
+proc mauve_compute_uses {aName} {
+  upvar $aName uses
+  global env runtests
+
+  set fd [open classes r]
+  set line [read $fd]
+  close $fd
+
+  foreach item [split $line] {
+    if {$item == ""} then {
+      continue
+    }
+    set item [join [split $item .] /].java
+
+    # User might have specified "mauve.exp=something.java".
+    if {! [runtest_file_p $runtests $item]} {
+      continue
+    }
+
+    # Look for Uses line in source file.
+    set fd [open $env(MAUVEDIR)/$item r]
+    set ufiles [list $item]
+    set dir [file dirname $item]
+    while {[gets $fd sline] != -1} {
+      if {[regsub -- {^// Uses:} $sline {} sline]} then {
+	foreach uf [split $sline] {
+	  if {$uf != ""} then {
+	    lappend ufiles $dir/$uf
+	  }
+	}
+      }
+    }
+    close $fd
+
+    set uses($item) {}
+    foreach file $ufiles {
+      set file [file rootname $file].o
+      lappend uses($item) $file
+      # Now add all inner classes
+      foreach inner [glob -nocomplain [file rootname $file]$*.class] {
+	# Prevent excessive escaping by replacing $ with a ^ in the .o name
+	set inner [file rootname $inner].o
+	regsub -all "\\$" $inner "\^" inner
+	lappend uses($item) $inner
+      }
+    }
+  }
+
+  return [lsort [array names uses]]
+}
+
+# Find Mauve sources.  At end, env(MAUVEDIR) points to sources.
+# Returns 0 if sources not found, 1 otherwise.
+proc find_mauve_sources {} {
+  global env srcdir
+
+  if {[info exists env(MAUVEDIR)]} {
+    return 1
+  } elseif {[file isdirectory $srcdir/libjava.mauve/mauve]} {
+    set env(MAUVEDIR) $srcdir/libjava.mauve/mauve
+    return 1
+  }
+
+  return 0
+}
+
+# Find all the harness files and return a list of them, with no
+# suffix.
+proc mauve_find_harness_files {} {
+  set result {}
+  foreach file [glob -nocomplain -- *.class gnu/testlet/*.class] {
+    lappend result [file root $file]
+  }
+  return $result
+}
+
+# Run all the Mauve tests.  Return 1 on success, 0 on any failure.  If
+# the tests are skipped, that is treated like success.
+proc test_mauve {} {
+  global srcdir objdir subdir env
+
+  if {! [find_mauve_sources]} then {
+    verbose "MAUVEDIR not set; not running Mauve tests"
+    return 1
+  }
+
+  # Run in subdir so we don't overwrite our own Makefile.
+  catch {system "rm -rf mauve-build"}
+  file mkdir mauve-build
+  # Some weirdness to set srcdir correctly.
+  set here [pwd]
+  cd $srcdir
+  set full_srcdir [pwd]
+  cd $here/mauve-build
+
+  global env libgcj_jar
+  global GCJ_UNDER_TEST
+  global TOOL_EXECUTABLE
+
+  if ![info exists GCJ_UNDER_TEST] {
+    if [info exists TOOL_EXECUTABLE] {
+      set GCJ_UNDER_TEST $TOOL_EXECUTABLE;
+    } else {
+      if [info exists env(GCJ)] {
+	set GCJ_UNDER_TEST env(GCJ)
+      } else {
+	set GCJ_UNDER_TEST "[find_gcj]"
+      }
+    }
+  }
+
+  # Append -B and -I so that libgcj.spec and libgcj.jar are found
+  # before they're installed.
+  # Append -Wno-deprecated since Mauve tests lots of deprecated stuff.
+  set env(GCJ) "$GCJ_UNDER_TEST -Wno-deprecated -B$objdir/../ -I$libgcj_jar"
+
+  if {[catch {
+    system "$env(MAUVEDIR)/configure --with-gcj 2>&1"
+  } msg]} then {
+    fail "Mauve configure"
+    verbose "configure failed with $msg"
+    return 0
+  }
+  pass "Mauve configure"
+
+  # Copy appropriate tags file locally.
+  set fd [open $full_srcdir/../mauve-libgcj r]
+  set c [read $fd]
+  close $fd
+  set fd [open mauve-libgcj w]
+  puts -nonewline $fd $c
+  close $fd
+
+  catch {system "ln -s $full_srcdir/libjava.mauve/xfails xfails"}
+
+  if {[catch {
+    system "make KEYS=libgcj classes.stamp 2>&1"
+  } msg]} then {
+    fail "Mauve build"
+    verbose "build failed with $msg"
+    return 0
+  }
+  pass "Mauve build"
+
+  set srcfile $full_srcdir/$subdir/DejaGNUTestHarness.java
+  if {! [bytecompile_file $srcfile [pwd] $env(MAUVEDIR):[pwd]]} then {
+    fail "Compile DejaGNUTestHarness.java"
+    return 0
+  }
+  pass "Compile DejaGNUTestHarness.java"
+
+  # Compute list of files to test, and also all files to build.
+  set choices [mauve_compute_uses uses]
+
+  # Compute flags to use to do the build.
+  set compile_args [libjava_arguments]
+  set link_args [concat [libjava_arguments link] \
+		   [list "additional_flags=--main=DejaGNUTestHarness"]]
+
+  if {[string match "*libtool*" $compile_args]} {
+    set objext lo
+  } else {
+    set objext o
+  }
+
+  set ok 1
+  set objlist {}
+  foreach base [mauve_find_harness_files] {
+    set file $base.class
+    set obj $base.$objext
+    set x [libjava_prune_warnings \
+	     [target_compile [pwd]/$file $obj object $compile_args]]
+    if {$x != ""} then {
+      fail "Compile $obj"
+      set ok 0
+    } else {
+      pass "Compile $obj"
+    }
+    lappend objlist $obj
+  }
+  if {! $ok} then {
+    return 0
+  }
+
+  set proc_ok 1
+  set Executable DejaGNUTestHarness
+  foreach file $choices {
+    # Turn `java/lang/Foo.java' into `java.lang.Foo'.
+    set class [file rootname $file]
+    regsub -all -- / $class . class
+
+    set ok 1
+    set this_olist {}
+    foreach obj $uses($file) {
+      set obj [file rootname $obj].$objext
+      lappend this_olist $obj
+      if {! [file exists $obj]} then {
+	verbose "compiling $obj for test of $class"
+	# The .class file does contain a $, but we can quote it between "'"s.
+	set srcfile [file rootname $obj].class
+	regsub -all "\\^" $srcfile "\$" srcfile
+	set x [libjava_prune_warnings \
+		 [libjava_tcompile '[pwd]/$srcfile' $obj object $compile_args]]
+	if {$x != ""} then {
+	  fail "Compile $obj for $class"
+	  set ok 0
+	  break
+	}
+	pass "Compile $obj for $class"
+      }
+    }
+    if {! $ok} then {
+      set proc_ok 0
+      continue
+    }
+
+    set x [libjava_prune_warnings \
+	     [libjava_tcompile [concat $this_olist $objlist] \
+		$Executable executable $link_args]]
+    if {$x != ""} then {
+      set proc_ok 0
+      fail "Link for $class"
+      continue
+    }
+    pass "Link for $class"
+
+    set result [libjava_load [pwd]/DejaGNUTestHarness \
+		  "$env(MAUVEDIR) $class" ""]
+
+    # Extract pass/failure info from output.
+    foreach line [split [lindex $result 1] \n] {
+      if {[regexp -- {^(PASS|FAIL|XFAIL|XPASS): (.*)$} $line ignore what msg]} then {
+	if {$what == "XFAIL" || $what == "XPASS"} then {
+	  setup_xfail *-*-*
+	}
+	if {$what == "PASS" || $what == "XPASS"} then {
+	  pass $msg
+	} else {
+	  set proc_ok 0
+	  fail $msg
+	}
+      }
+    }
+  }
+
+  return $proc_ok
+}
+
+# Run all the Mauve tests in a sim environment.  In this case, the
+# program cannot use argv[] because there's no way to pass in the
+# command line, so tha name of the class to test is substituted by
+# patching the source of the DejaGNUTestHarness.  Return 1 on success,
+# 0 on any failure.  If the tests are skipped, that is treated like
+# success.
+proc test_mauve_sim {} {
+  global srcdir subdir env
+
+  if {! [find_mauve_sources]} then {
+    verbose "MAUVEDIR not set; not running Mauve tests"
+    return 1
+  }
+
+  # Run in subdir so we don't overwrite our own Makefile.
+  catch {system "rm -rf mauve-build"}
+  file mkdir mauve-build
+  # Some weirdness to set srcdir correctly.
+  set here [pwd]
+  cd $srcdir
+  set full_srcdir [pwd]
+  cd $here/mauve-build
+
+  if {[catch {
+    system "$env(MAUVEDIR)/configure --with-gcj 2>&1"
+  } msg]} then {
+    fail "Mauve configure"
+    verbose "configure failed with $msg"
+    return 0
+  }
+  pass "Mauve configure"
+
+  # Copy appropriate tags file locally.
+  set fd [open $full_srcdir/../mauve-libgcj r]
+  set c [read $fd]
+  close $fd
+  set fd [open mauve-libgcj w]
+  puts -nonewline $fd $c
+  close $fd
+
+  catch {system "ln -s $full_srcdir/libjava.mauve/xfails xfails"}
+
+  if {[catch {
+    system "make KEYS=libgcj classes.stamp 2>&1"
+  } msg]} then {
+    fail "Mauve build"
+    verbose "build failed with $msg"
+    return 0
+  }
+  pass "Mauve build"
+
+  # Compute list of files to test, and also all files to build.
+  set choices [mauve_compute_uses uses]
+
+  # Compute flags to use to do the build.
+  set compile_args [libjava_arguments]
+  set link_args [concat [libjava_arguments link] \
+		   [list "additional_flags=--main=DejaGNUTestHarness"]]
+
+  set ok 1
+  set objlist {}
+  foreach base [mauve_find_harness_files] {
+    set file $base.class
+    set obj $base.o
+    set x [libjava_prune_warnings \
+	     [target_compile [pwd]/$file $obj object $compile_args]]
+    if {$x != ""} then {
+      fail "Compile $obj"
+      set ok 0
+    } else {
+      pass "Compile $obj"
+    }
+    lappend objlist $obj
+  }
+  if {! $ok} then {
+    return 0
+  }
+
+  set proc_ok 1
+  set Executable DejaGNUTestHarness
+  foreach file $choices {
+    # Turn `java/lang/Foo.java' into `java.lang.Foo'.
+    
+    set class [file rootname $file]
+    regsub -all -- / $class . class
+
+    set ok 1
+    foreach obj $uses($file) {
+      if {! [file exists $obj]} then {
+	verbose "compiling $obj for test of $class"
+	set srcfile [file rootname $obj].class
+	set x [libjava_prune_warnings \
+		 [target_compile [pwd]/$srcfile $obj object $compile_args]]
+	if {$x != ""} then {
+	  fail "Compile $obj for $class"
+	  set ok 0
+	  break
+	}
+	pass "Compile $obj for $class"
+      }
+    }
+    if {! $ok} then {
+      set proc_ok 0
+      continue
+    }
+
+    set infile $full_srcdir/$subdir/DejaGNUTestHarness.java
+    set srcfile DejaGNUTestHarness.java
+    set f [open $infile r]
+    set d [open gnu/testlet/$srcfile w]
+    while {[gets $f line] >= 0} {
+	if [regexp {harness\.runtest \(args\[1\]\)} $line] then {
+	    regsub {args\[1\]} $line "\"$class\"" out
+	} else {
+	    set out $line
+	}
+	puts $d $out
+    }
+    close $f
+    close $d
+
+    if {! [bytecompile_file [pwd]/gnu/testlet/$srcfile [pwd]/gnu/testlet \
+	       $env(MAUVEDIR):[pwd]]} then {
+	fail "Compile DejaGNUTestHarness.java"
+	return 0
+    }
+
+    set x [libjava_prune_warnings \
+	     [target_compile DejaGNUTestHarness.class \
+		DejaGNUTestHarness.o object $compile_args]]
+    if {$x != ""} then {
+	fail "Compile DejaGNUTestHarness.java"
+        set proc_ok 0
+	continue
+    }
+
+    set x [libjava_prune_warnings \
+	     [target_compile [concat $uses($file) $objlist] \
+		$Executable executable $link_args]]
+    if {$x != ""} then {
+      set proc_ok 0
+      fail "Link for $class"
+      continue
+    }
+    pass "Link for $class"
+
+    set result [libjava_load [pwd]/DejaGNUTestHarness \
+		  "$env(MAUVEDIR) $class" ""]
+
+    # Extract pass/failure info from output.
+    foreach line [split [lindex $result 1] \n] {
+      if {[regexp -- {^(PASS|FAIL|XFAIL|XPASS): (.*)$} $line ignore what msg]} then {
+	if {$what == "XFAIL" || $what == "XPASS"} then {
+	  setup_xfail *-*-*
+	}
+	if {$what == "PASS" || $what == "XPASS"} then {
+	  pass $msg
+	} else {
+	  set proc_ok 0
+	  fail $msg
+	}
+      }
+    }
+  }
+
+  return $proc_ok
+}
+
+proc gcj_run_mauve_tests {} {
+  # The test_mauve* procs will change the current directory.  It's
+  # simpler to fix this up here than to keep track of this in the
+  # procs.
+  set here [pwd]
+  if { [board_info target exists is_simulator] } {
+    set r [test_mauve_sim]
+  } else {
+    set r [test_mauve]
+  }
+  cd $here
+
+  if {$r} {
+    # No need to keep the build around.  FIXME: this knows how the
+    # tests work.  This whole file could use a rewrite.
+    system "rm -rf mauve-build"
+  }
+}
+
+gcj_run_mauve_tests

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.mauve/xfails
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.mauve/xfails?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.mauve/xfails (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.mauve/xfails Thu Nov  8 16:56:19 2007
@@ -0,0 +1,461 @@
+FAIL: gnu.testlet.BinaryCompatibility.BinaryCompatibilityTest: Adding a method to a class (number 1)
+FAIL: gnu.testlet.BinaryCompatibility.BinaryCompatibilityTest: Adding a field to a class (number 1)
+FAIL: gnu.testlet.BinaryCompatibility.BinaryCompatibilityTest: Adding a method to an interface (number 1)
+FAIL: gnu.testlet.BinaryCompatibility.BinaryCompatibilityTest: Deleting a method from a class (number 1)
+FAIL: gnu.testlet.BinaryCompatibility.BinaryCompatibilityTest: Deleting a field from a class (number 1)
+FAIL: gnu.testlet.BinaryCompatibility.BinaryCompatibilityTest: Reordering fields of a class (number 1)
+FAIL: gnu.testlet.BinaryCompatibility.BinaryCompatibilityTest: Reordering methods of a class (number 1)
+FAIL: gnu.testlet.BinaryCompatibility.BinaryCompatibilityTest: Moving a method upward in the class hierarchy (number 1)
+FAIL: gnu.testlet.BinaryCompatibility.BinaryCompatibilityTest: Inserting a new class in the type hierarchy (number 1)
+FAIL: gnu.testlet.java.awt.AWTKeyStroke.getAWTKeyStroke: (String) (number 2)
+FAIL: gnu.testlet.java.awt.AWTKeyStroke.getAWTKeyStroke: (String) (number 3)
+FAIL: gnu.testlet.java.awt.AWTKeyStroke.getAWTKeyStroke: (String) (number 4)
+FAIL: gnu.testlet.java.awt.AWTKeyStroke.getAWTKeyStroke: uncaught exception at "(String)" number 6: java.lang.NullPointerException
+FAIL: gnu.testlet.java.awt.Robot.constructors: uncaught exception: java.lang.Error: not implemented
+FAIL: gnu.testlet.java.awt.Robot.createScreenCapture: uncaught exception: java.lang.Error: not implemented
+FAIL: gnu.testlet.java.awt.Robot.getPixelColor: uncaught exception: java.lang.Error: not implemented
+FAIL: gnu.testlet.java.awt.Robot.keyPress: uncaught exception: java.lang.Error: not implemented
+FAIL: gnu.testlet.java.awt.Robot.keyRelease: uncaught exception: java.lang.Error: not implemented
+FAIL: gnu.testlet.java.awt.Robot.mouseMove: uncaught exception: java.lang.Error: not implemented
+FAIL: gnu.testlet.java.awt.Robot.mousePress: uncaught exception: java.lang.Error: not implemented
+FAIL: gnu.testlet.java.awt.Robot.mouseRelease: uncaught exception: java.lang.Error: not implemented
+FAIL: gnu.testlet.java.awt.Robot.mouseWheel: uncaught exception: java.lang.Error: not implemented
+FAIL: gnu.testlet.java.awt.geom.Arc2D.getEndPoint (number 1)
+FAIL: gnu.testlet.java.awt.geom.Arc2D.getPathIterator (number 8)
+FAIL: gnu.testlet.java.awt.image.SinglePixelPackedSampleModel.constructors: (int, int, int, int[]) (number 8)
+FAIL: gnu.testlet.java.awt.image.SinglePixelPackedSampleModel.constructors: (int, int, int, int, int[]) (number 8)
+FAIL: gnu.testlet.java.awt.image.SinglePixelPackedSampleModel.createSubsetSampleModel (number 7)
+FAIL: gnu.testlet.java.awt.image.SinglePixelPackedSampleModel.equals (number 1)
+FAIL: gnu.testlet.java.awt.image.SinglePixelPackedSampleModel.equals (number 2)
+FAIL: gnu.testlet.java.awt.image.SinglePixelPackedSampleModel.equals (number 5)
+FAIL: gnu.testlet.java.awt.image.SinglePixelPackedSampleModel.equals (number 7)
+FAIL: gnu.testlet.java.awt.image.SinglePixelPackedSampleModel.equals (number 9)
+FAIL: gnu.testlet.java.awt.image.SinglePixelPackedSampleModel.equals (number 11)
+FAIL: gnu.testlet.java.awt.image.SinglePixelPackedSampleModel.equals (number 13)
+FAIL: gnu.testlet.java.awt.image.SinglePixelPackedSampleModel.getDataElements: uncaught exception at "(int, int, Object, DataBuffer(Byte))" number 5: java.lang.ArrayStoreException
+FAIL: gnu.testlet.java.awt.image.SinglePixelPackedSampleModel.hashCode (number 1)
+FAIL: gnu.testlet.java.awt.image.SinglePixelPackedSampleModel.hashCode (number 2)
+FAIL: Link for gnu.testlet.java.beans.Beans.instantiate_1
+FAIL: gnu.testlet.java.io.File.security: createTempFile(2-args) - unexpected exception (number 1)
+FAIL: gnu.testlet.java.io.File.security: File.listRoots() (number 1)
+FAIL: gnu.testlet.java.io.File.security: file.renameTo - unexpected exception (number 1)
+FAIL: gnu.testlet.java.io.File.security: dir.deleteOnExit() - unexpected exception (number 1)
+FAIL: gnu.testlet.java.io.ObjectInputOutput.Deserializable: Wrong exception (number 1)
+FAIL: gnu.testlet.java.io.ObjectInputOutput.Deserializable: Was expecting an InvalidClassException (number 1)
+FAIL: gnu.testlet.java.io.ObjectInputOutput.InputTest: gnu.testlet.java.io.ObjectInputOutput.Test$GetPutField (number 1)
+FAIL: gnu.testlet.java.io.ObjectInputOutput.OutputTest: Serializable: test(str=null, x=0) (number 2)
+FAIL: Link for gnu.testlet.java.io.ObjectInputStream.registerValidation
+FAIL: gnu.testlet.java.io.OutputStreamWriter.jdk11: OutputStreamWriter(writer, encoding) (number 1)
+FAIL: gnu.testlet.java.io.OutputStreamWriter.jdk11: OutputStreamWriter(writer, encoding) // alias (number 1)
+FAIL: gnu.testlet.java.io.PrintWriter.checkError (number 3)
+FAIL: gnu.testlet.java.io.PrintWriter.jdk11: checkError() after close() (number 1)
+FAIL: gnu.testlet.java.io.RandomAccessFile.setLength (number 14)
+FAIL: gnu.testlet.java.io.Utf8Encoding.mojo: Four Byte Range Error (0) (number 1)
+FAIL: gnu.testlet.java.io.Utf8Encoding.mojo: Four Byte Range Error (1) (number 1)
+FAIL: gnu.testlet.java.io.Utf8Encoding.mojo: Five Bytes (0) (number 1)
+FAIL: gnu.testlet.java.io.Utf8Encoding.mojo: Five Bytes (1) (number 1)
+FAIL: gnu.testlet.java.io.Utf8Encoding.mojo: Six Bytes (0) (number 1)
+FAIL: gnu.testlet.java.io.Utf8Encoding.mojo: Six Bytes (1) (number 1)
+FAIL: gnu.testlet.java.io.Utf8Encoding.mojo: Orphan Continuation (1) (number 1)
+FAIL: gnu.testlet.java.io.Utf8Encoding.mojo: Orphan Continuation (2) (number 1)
+FAIL: gnu.testlet.java.io.Utf8Encoding.mojo: Four Byte Range Error (2) (number 1)
+FAIL: gnu.testlet.java.lang.Character.classify12 (number 1)
+FAIL: gnu.testlet.java.lang.Character.getType (number 11)
+FAIL: gnu.testlet.java.lang.Character.getType (number 20)
+FAIL: gnu.testlet.java.lang.Character.getType (number 22)
+FAIL: gnu.testlet.java.lang.Class.init (number 14)
+FAIL: gnu.testlet.java.lang.Class.reflect2: getClasses (number 2)
+FAIL: gnu.testlet.java.lang.Class.reflect2: getClasses (number 3)
+FAIL: gnu.testlet.java.lang.Class.reflect2: getClasses (number 5)
+FAIL: gnu.testlet.java.lang.Class.reflect2: getDeclaringClass (number 3)
+FAIL: gnu.testlet.java.lang.Class.reflect2: getDeclaringClass (number 4)
+FAIL: gnu.testlet.java.lang.Class.reflect2: getDeclaringClass (number 5)
+FAIL: gnu.testlet.java.lang.Class.reflect2: getDeclaredClasses (number 1)
+FAIL: gnu.testlet.java.lang.Class.reflect2: getDeclaredClasses (number 2)
+FAIL: gnu.testlet.java.lang.Class.reflect2: getDeclaredClasses (number 3)
+FAIL: gnu.testlet.java.lang.Math.MathTest: Error : test_pow failed - 9 (number 1)
+FAIL: gnu.testlet.java.lang.String.getBytes13: String.getBytes("UnicodeBig") (number 1)
+FAIL: gnu.testlet.java.lang.String.getBytes13: String.getBytes("UnicodeBigUnmarked") (number 1)
+FAIL: gnu.testlet.java.lang.String.getBytes13: String.getBytes("UnicodeLittle") (number 1)
+FAIL: gnu.testlet.java.lang.String.getBytes14: String.getBytes("ISO8859_15") (number 1)
+FAIL: gnu.testlet.java.lang.Thread.contextClassLoader: null is a valid contextClassLoader (number 1)
+FAIL: gnu.testlet.java.lang.Thread.contextClassLoader: New thread inherits null classloader (number 1)
+FAIL: gnu.testlet.java.lang.Thread.contextClassLoader: run with null classloader (number 1)
+FAIL: gnu.testlet.java.lang.Thread.daemon: Can change daemon state on an exitted Thread (number 1)
+FAIL: gnu.testlet.java.lang.Thread.daemon: Daemon status changed when set on an exitted Thread (number 1)
+FAIL: gnu.testlet.java.lang.Thread.security10: Thread.enumerate(Thread[]) (number 1)
+FAIL: gnu.testlet.java.lang.Thread.stop: Unexpected exception during test() (number 1)
+FAIL: gnu.testlet.java.net.DatagramPacket.DatagramPacketOffset: DatagramPacket Offset Test byte[]='Hello Worl..........Hello World 12345' should be='Hello WorlHello WorlHello World 12345' (number 1)
+FAIL: gnu.testlet.java.net.MulticastSocket.MulticastSocketTest: joinGroup() twice. (number 1)
+FAIL: Compile gnu/testlet/java/net/ServerSocket/ServerSocketTest.lo for gnu.testlet.java.net.ServerSocket.ServerSocketTest
+FAIL: gnu.testlet.java.net.Socket.SocketTest: Error : test_Basics failed - 7 exception should not have been thrown. (number 1)
+FAIL: gnu.testlet.java.net.URI.URITest: unexpected exception (number 1)
+FAIL: gnu.testlet.java.net.URL.URLTest:  Error in test_toString  - 5  exception should not be thrown here (number 1)
+FAIL: gnu.testlet.java.net.URL.URLTest: contextResolution (number 5)
+FAIL: gnu.testlet.java.net.URL.URLTest: contextResolution (number 6)
+FAIL: gnu.testlet.java.net.URLConnection.URLConnectionTest: Error in test_getHeaderField  - 2  4 header field wrong (number 1)
+FAIL: gnu.testlet.java.nio.ByteBuffer.Allocating: mark: mark not invalidated (number 1)
+FAIL: gnu.testlet.java.nio.ByteBuffer.Allocating: mark: mark not invalidated (number 1)
+FAIL: gnu.testlet.java.nio.ByteBuffer.Allocating: mark: mark not invalidated (number 1)
+FAIL: gnu.testlet.java.nio.ByteBuffer.Allocating: mark: mark not invalidated (number 1)
+FAIL: gnu.testlet.java.nio.channels.FileChannel.copyIO: Unexpected result: source=abcdefghijklmnopqrstuvwxyz, result=aababcabcdabcdeabcdefabcdef (number 1)
+FAIL: gnu.testlet.java.nio.channels.FileChannel.manyopen: Unexpected exception at nr 339: java.io.IOException: Too many open files (number 1)
+FAIL: gnu.testlet.java.nio.charset.Charset.encode: uncaught exception at "Wrong limit in char buffer" number 2: java.lang.IllegalStateException
+FAIL: gnu.testlet.java.text.DateFormatSymbols.setAmPmStrings (number 1)
+FAIL: gnu.testlet.java.text.DateFormatSymbols.setEras (number 1)
+FAIL: gnu.testlet.java.text.DateFormatSymbols.setMonths (number 1)
+FAIL: gnu.testlet.java.text.DateFormatSymbols.setShortMonths (number 1)
+FAIL: gnu.testlet.java.text.DateFormatSymbols.setShortWeekdays (number 1)
+FAIL: gnu.testlet.java.text.DateFormatSymbols.setWeekdays (number 1)
+FAIL: gnu.testlet.java.text.DateFormatSymbols.setZoneStrings (number 1)
+FAIL: gnu.testlet.java.text.DecimalFormat.formatExp: pattern ##.###E0 (number 2)
+FAIL: gnu.testlet.java.text.DecimalFormatSymbols.getCurrency (number 1)
+FAIL: gnu.testlet.java.text.MessageFormat.format14: number (number 2)
+FAIL: gnu.testlet.java.text.MessageFormat.format14: number (number 4)
+FAIL: gnu.testlet.java.text.MessageFormat.format14: choice (number 1)
+FAIL: gnu.testlet.java.text.NumberFormat.UK: Double-based fraction formatting with integer number format (0.333). (number 1)
+FAIL: gnu.testlet.java.text.NumberFormat.UK: Double-based fraction formatting with integer number format (123,456.789). (number 1)
+FAIL: gnu.testlet.java.text.NumberFormat.UK: Long-based integer formatting with currency number format ($30.00). (number 1)
+FAIL: gnu.testlet.java.text.NumberFormat.UK: Double-based integer formatting with currency number format ($30.00). (number 1)
+FAIL: gnu.testlet.java.text.NumberFormat.UK: Double-based fraction formatting with currency number format ($0.333). (number 1)
+FAIL: gnu.testlet.java.text.NumberFormat.UK: Double-based fraction formatting with currency number format ($123,456.789). (number 1)
+FAIL: gnu.testlet.java.text.NumberFormat.UK: Long-based integer formatting with percentile number format (30%). (number 1)
+FAIL: gnu.testlet.java.text.SimpleDateFormat.Localization: uncaught exception at "Non-localized pattern comes back as is with toPattern()." number 2: java.lang.StringIndexOutOfBoundsException: String index out of range: 18
+FAIL: gnu.testlet.java.text.SimpleDateFormat.applyLocalizedPattern (number 1)
+FAIL: gnu.testlet.java.text.SimpleDateFormat.applyLocalizedPattern (number 2)
+FAIL: gnu.testlet.java.text.SimpleDateFormat.parse: java.lang.NullPointerException:  (number 1)
+FAIL: gnu.testlet.java.text.SimpleDateFormat.parse: java.text.ParseException:  (number 1)
+FAIL: gnu.testlet.java.text.SimpleDateFormat.parse: java.text.ParseException:  (number 2)
+FAIL: gnu.testlet.java.text.SimpleDateFormat.parse: java.text.ParseException:  (number 1)
+FAIL: gnu.testlet.java.text.SimpleDateFormat.parse: java.text.ParseException:  (number 1)
+FAIL: gnu.testlet.java.text.SimpleDateFormat.parse: java.text.ParseException:  (number 1)
+FAIL: gnu.testlet.java.text.SimpleDateFormat.parse: java.text.ParseException:  (number 1)
+FAIL: gnu.testlet.java.text.SimpleDateFormat.parse: java.text.ParseException:  (number 1)
+FAIL: gnu.testlet.java.text.SimpleDateFormat.parse: java.text.ParseException:  (number 1)
+FAIL: gnu.testlet.java.text.SimpleDateFormat.parse: java.text.ParseException:  (number 1)
+FAIL: gnu.testlet.java.text.SimpleDateFormat.parse: java.text.ParseException:  (number 1)
+FAIL: gnu.testlet.java.text.SimpleDateFormat.parse: java.text.ParseException:  (number 2)
+FAIL: gnu.testlet.java.text.SimpleDateFormat.parse: java.lang.NullPointerException:  (number 1)
+FAIL: gnu.testlet.java.text.SimpleDateFormat.toLocalizedPattern (number 1)
+FAIL: gnu.testlet.java.text.SimpleDateFormat.toLocalizedPattern (number 2)
+FAIL: gnu.testlet.java.util.Calendar.set: setting only some fields (number 4)
+FAIL: gnu.testlet.java.util.Calendar.set: setting only some fields (number 5)
+FAIL: gnu.testlet.java.util.Currency.Constructors: uncaught exception: java.lang.IllegalArgumentException: The currency code, null, is not supported.
+FAIL: gnu.testlet.java.util.Currency.France: Euro ISO 4217 currency code retrieval check (FRF). (number 1)
+FAIL: gnu.testlet.java.util.Currency.France: Euro currency symbol retrieval check (F). (number 1)
+FAIL: gnu.testlet.java.util.Currency.France: Euro ISO 4217 currency code retrieval check (FRF). (number 1)
+FAIL: gnu.testlet.java.util.Currency.Germany: Euro ISO 4217 currency code retrieval check (DEM). (number 1)
+FAIL: gnu.testlet.java.util.Currency.Germany: Euro currency symbol retrieval check (DM). (number 1)
+FAIL: gnu.testlet.java.util.Currency.Germany: Euro ISO 4217 currency code retrieval check (DEM). (number 1)
+FAIL: gnu.testlet.java.util.Currency.Italy: Euro ISO 4217 currency code retrieval check (ITL). (number 1)
+FAIL: gnu.testlet.java.util.Currency.Italy: Euro currency symbol retrieval check (L.). (number 1)
+FAIL: gnu.testlet.java.util.Currency.Italy: Euro currency fraction digits retrieval check (0). (number 1)
+FAIL: gnu.testlet.java.util.Currency.Italy: Euro ISO 4217 currency code retrieval check (ITL). (number 1)
+FAIL: gnu.testlet.java.util.Currency.ReferenceEquality: uncaught exception at "Reference equality for currencies (UK) check." number 2: java.lang.IllegalArgumentException: The currency code, GBP, is not supported.
+FAIL: gnu.testlet.java.util.Currency.US: Non local currency symbol retrieval check (CAD). (number 1)
+FAIL: gnu.testlet.java.util.Currency.getInstance (number 1)
+FAIL: gnu.testlet.java.util.Currency.getInstance (number 3)
+FAIL: gnu.testlet.java.util.Currency.getInstance (number 4)
+FAIL: gnu.testlet.java.util.Currency.getInstance (number 5)
+FAIL: gnu.testlet.java.util.Date.getTimezoneOffset: getTimezoneOffset for zone: GMT (number 1)
+FAIL: gnu.testlet.java.util.Date.getTimezoneOffset: getTimezoneOffset for zone: GMT (number 2)
+FAIL: gnu.testlet.java.util.Date.getTimezoneOffset: getTimezoneOffset for zone: Europe/London (number 2)
+FAIL: gnu.testlet.java.util.GregorianCalendar.conversion: uncaught exception at "Testing setTimeInMillis(281474976710656) i = 48" number 3: java.lang.IllegalArgumentException: month out of range
+FAIL: gnu.testlet.java.util.GregorianCalendar.getMinimalDaysInFirstWeek (number 1)
+FAIL: gnu.testlet.java.util.GregorianCalendar.getMinimalDaysInFirstWeek (number 2)
+FAIL: gnu.testlet.java.util.SimpleTimeZone.check12 (number 22)
+FAIL: gnu.testlet.java.util.SimpleTimeZone.check12 (number 23)
+FAIL: gnu.testlet.java.util.SimpleTimeZone.equals (number 21)
+FAIL: gnu.testlet.java.util.SimpleTimeZone.getDSTSavings (number 2)
+FAIL: gnu.testlet.java.util.SimpleTimeZone.hasSameRules (number 19)
+FAIL: gnu.testlet.java.util.Timer.taskException: still able to schedule tasks (number 1)
+FAIL: gnu.testlet.java.util.logging.Logger.getLogger (number 9)
+FAIL: gnu.testlet.java.util.logging.Logger.securityChecks: Logger.getAnonymousLogger() (number 7)
+FAIL: gnu.testlet.java.util.logging.Logger.securityChecks: Logger.getAnonymousLogger(null) (number 7)
+FAIL: gnu.testlet.java.util.zip.ZipFile.DirEntryTest: getEntry("dir/") (number 2)
+FAIL: gnu.testlet.java.util.zip.ZipFile.newZipFile: non-zipfile gets rejected (number 1)
+FAIL: Link for gnu.testlet.javax.swing.DefaultListModel.removeAllElements
+FAIL: gnu.testlet.javax.swing.DefaultListModel.setSize: uncaught exception at "setSize(int)" number 10: java.lang.NullPointerException
+FAIL: Link for gnu.testlet.javax.swing.JComboBox.MutableTest1
+FAIL: Link for gnu.testlet.javax.swing.JComboBox.MutableTest2
+FAIL: Link for gnu.testlet.javax.swing.JComboBox.SimpleSelectionTest
+FAIL: gnu.testlet.javax.swing.UIDefaults.remove: put with null gave NullPointerException (number 1)
+FAIL: gnu.testlet.javax.swing.tree.DefaultMutableTreeNode.add: uncaught exception: java.lang.NullPointerException
+FAIL: gnu.testlet.javax.swing.tree.DefaultMutableTreeNode.breadthFirstEnumeration: uncaught exception: java.lang.NullPointerException
+FAIL: gnu.testlet.javax.swing.tree.DefaultMutableTreeNode.pathFromAncestorEnumeration: uncaught exception at "rejects invalid arguments (null)" number 2: java.lang.NullPointerException
+FAIL: gnu.testlet.javax.swing.tree.DefaultMutableTreeNode.postorderEnumeration: uncaught exception: java.lang.NullPointerException
+FAIL: gnu.testlet.javax.swing.tree.DefaultMutableTreeNode.preorderEnumeration: uncaught exception: java.lang.NullPointerException
+FAIL: gnu.testlet.locales.LocaleTest: Locale de_DE (number 7)
+FAIL: gnu.testlet.locales.LocaleTest: Locale de_DE (number 8)
+FAIL: gnu.testlet.locales.LocaleTest: Locale de_DE (number 10)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: de_DE (number 6)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: de_DE (number 7)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: de_DE (number 8)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: de_DE (number 9)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: de_DE (number 10)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: de_DE (number 14)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: de_DE (number 15)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: de_DE (number 21)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: de_DE (number 22)
+FAIL: gnu.testlet.locales.LocaleTest: Currencies locale: de_DE (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: Currencies locale: de_DE (number 3)
+FAIL: gnu.testlet.locales.LocaleTest: Locale fr_BE (number 7)
+FAIL: gnu.testlet.locales.LocaleTest: Locale fr_BE (number 8)
+FAIL: gnu.testlet.locales.LocaleTest: Locale fr_BE (number 10)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.DEFAULT fr_BE (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.SHORT fr_BE (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.MEDIUM fr_BE (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.LONG fr_BE (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.DEFAULT == DateFormat.MEDIUM fr_BE (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.DEFAULT fr_BE (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.SHORT fr_BE (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.MEDIUM fr_BE (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.LONG fr_BE (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.DEFAULT == DateFormat.MEDIUM fr_BE (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: fr_BE (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: fr_BE (number 2)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: fr_BE (number 5)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: fr_BE (number 6)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: fr_BE (number 7)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: fr_BE (number 8)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: fr_BE (number 9)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: fr_BE (number 10)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: fr_BE (number 11)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: fr_BE (number 12)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: fr_BE (number 14)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: fr_BE (number 15)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: fr_BE (number 16)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: fr_BE (number 17)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: fr_BE (number 20)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: fr_BE (number 21)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: fr_BE (number 22)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: fr_BE (number 23)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: fr_BE (number 24)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: fr_BE (number 25)
+FAIL: gnu.testlet.locales.LocaleTest: Currencies locale: fr_BE (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: Currencies locale: fr_BE (number 3)
+FAIL: gnu.testlet.locales.LocaleTest: Currency code not supported: BEF (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: Locale en_IE (number 7)
+FAIL: gnu.testlet.locales.LocaleTest: Locale en_IE (number 8)
+FAIL: gnu.testlet.locales.LocaleTest: Locale en_IE (number 10)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.DEFAULT en_IE (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.SHORT en_IE (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.MEDIUM en_IE (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.LONG en_IE (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.DEFAULT == DateFormat.MEDIUM en_IE (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.DEFAULT en_IE (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.SHORT en_IE (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.MEDIUM en_IE (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.LONG en_IE (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.DEFAULT == DateFormat.MEDIUM en_IE (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: en_IE (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: en_IE (number 2)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: en_IE (number 4)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: en_IE (number 5)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: en_IE (number 6)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: en_IE (number 7)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: en_IE (number 8)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: en_IE (number 9)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: en_IE (number 10)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: en_IE (number 11)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: en_IE (number 12)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: en_IE (number 14)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: en_IE (number 15)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: en_IE (number 16)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: en_IE (number 17)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: en_IE (number 19)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: en_IE (number 20)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: en_IE (number 21)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: en_IE (number 22)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: en_IE (number 23)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: en_IE (number 24)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: en_IE (number 25)
+FAIL: gnu.testlet.locales.LocaleTest: Currencies locale: en_IE (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: Currencies locale: en_IE (number 3)
+FAIL: gnu.testlet.locales.LocaleTest: Currency code not supported: IEP (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: Locale fr_FR (number 7)
+FAIL: gnu.testlet.locales.LocaleTest: Locale fr_FR (number 8)
+FAIL: gnu.testlet.locales.LocaleTest: Locale fr_FR (number 10)
+FAIL: gnu.testlet.locales.LocaleTest: Currencies locale: fr_FR (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: Currencies locale: fr_FR (number 3)
+FAIL: gnu.testlet.locales.LocaleTest: Currency code not supported: FRF (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: Locale es_ES (number 7)
+FAIL: gnu.testlet.locales.LocaleTest: Locale es_ES (number 8)
+FAIL: gnu.testlet.locales.LocaleTest: Locale es_ES (number 10)
+FAIL: gnu.testlet.locales.LocaleTest: Currencies locale: es_ES (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: Currencies locale: es_ES (number 2)
+FAIL: gnu.testlet.locales.LocaleTest: Currencies locale: es_ES (number 3)
+FAIL: gnu.testlet.locales.LocaleTest: Currency code not supported: ESP (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: Locale pt_PT (number 7)
+FAIL: gnu.testlet.locales.LocaleTest: Locale pt_PT (number 8)
+FAIL: gnu.testlet.locales.LocaleTest: Locale pt_PT (number 10)
+FAIL: gnu.testlet.locales.LocaleTest: Currencies locale: pt_PT (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: Currencies locale: pt_PT (number 3)
+FAIL: gnu.testlet.locales.LocaleTest: Currency code not supported: PTE (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: Locale it_IT (number 7)
+FAIL: gnu.testlet.locales.LocaleTest: Locale it_IT (number 8)
+FAIL: gnu.testlet.locales.LocaleTest: Locale it_IT (number 10)
+FAIL: gnu.testlet.locales.LocaleTest: Currencies locale: it_IT (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: Currencies locale: it_IT (number 2)
+FAIL: gnu.testlet.locales.LocaleTest: Currencies locale: it_IT (number 3)
+FAIL: gnu.testlet.locales.LocaleTest: Currency code not supported: ITL (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: Locale nl_NL (number 7)
+FAIL: gnu.testlet.locales.LocaleTest: Locale nl_NL (number 8)
+FAIL: gnu.testlet.locales.LocaleTest: Locale nl_NL (number 10)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: nl_NL (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: nl_NL (number 2)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: nl_NL (number 5)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: nl_NL (number 6)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: nl_NL (number 7)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: nl_NL (number 8)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: nl_NL (number 9)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: nl_NL (number 10)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: nl_NL (number 11)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: nl_NL (number 12)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: nl_NL (number 14)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: nl_NL (number 15)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: nl_NL (number 16)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: nl_NL (number 17)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: nl_NL (number 20)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: nl_NL (number 21)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: nl_NL (number 22)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: nl_NL (number 23)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: nl_NL (number 24)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: nl_NL (number 25)
+FAIL: gnu.testlet.locales.LocaleTest: Currencies locale: nl_NL (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: Currencies locale: nl_NL (number 3)
+FAIL: gnu.testlet.locales.LocaleTest: Currency code not supported: NLG (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: Locale fr_LU (number 7)
+FAIL: gnu.testlet.locales.LocaleTest: Locale fr_LU (number 8)
+FAIL: gnu.testlet.locales.LocaleTest: Locale fr_LU (number 10)
+FAIL: gnu.testlet.locales.LocaleTest: Currencies locale: fr_LU (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: Currencies locale: fr_LU (number 3)
+FAIL: gnu.testlet.locales.LocaleTest: Currency code not supported: LUF (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: Locale en_GB (number 7)
+FAIL: gnu.testlet.locales.LocaleTest: Locale en_GB (number 8)
+FAIL: gnu.testlet.locales.LocaleTest: Locale en_GB (number 10)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.DEFAULT en_GB (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.MEDIUM en_GB (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.LONG en_GB (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.DEFAULT == DateFormat.MEDIUM en_GB (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.DEFAULT en_GB (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.MEDIUM en_GB (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.LONG en_GB (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.DEFAULT == DateFormat.MEDIUM en_GB (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: en_GB (number 6)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: en_GB (number 7)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: en_GB (number 8)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: en_GB (number 9)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: en_GB (number 10)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: en_GB (number 14)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: en_GB (number 15)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: en_GB (number 21)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: en_GB (number 22)
+FAIL: gnu.testlet.locales.LocaleTest: Currencies locale: en_GB (number 3)
+FAIL: gnu.testlet.locales.LocaleTest: Currency code not supported: GBP (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: Locale en_US (number 7)
+FAIL: gnu.testlet.locales.LocaleTest: Locale en_US (number 8)
+FAIL: gnu.testlet.locales.LocaleTest: Locale en_US (number 10)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: en_US (number 14)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: en_US (number 15)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: en_US (number 21)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: en_US (number 22)
+FAIL: gnu.testlet.locales.LocaleTest: Currencies locale: en_US (number 3)
+FAIL: gnu.testlet.locales.LocaleTest: Currency code not supported: USD (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: Locale fi_FI (number 7)
+FAIL: gnu.testlet.locales.LocaleTest: Locale fi_FI (number 8)
+FAIL: gnu.testlet.locales.LocaleTest: Locale fi_FI (number 10)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.DEFAULT fi_FI (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.SHORT fi_FI (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.MEDIUM fi_FI (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.LONG fi_FI (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.DEFAULT == DateFormat.MEDIUM fi_FI (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.DEFAULT fi_FI (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.SHORT fi_FI (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.MEDIUM fi_FI (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.LONG fi_FI (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.DEFAULT == DateFormat.MEDIUM fi_FI (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: fi_FI (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: fi_FI (number 2)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: fi_FI (number 5)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: fi_FI (number 6)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: fi_FI (number 7)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: fi_FI (number 8)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: fi_FI (number 9)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: fi_FI (number 10)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: fi_FI (number 11)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: fi_FI (number 12)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: fi_FI (number 14)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: fi_FI (number 15)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: fi_FI (number 16)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: fi_FI (number 17)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: fi_FI (number 20)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: fi_FI (number 21)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: fi_FI (number 22)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: fi_FI (number 23)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: fi_FI (number 24)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: fi_FI (number 25)
+FAIL: gnu.testlet.locales.LocaleTest: Currencies locale: fi_FI (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: Currencies locale: fi_FI (number 3)
+FAIL: gnu.testlet.locales.LocaleTest: Currency code not supported: FIM (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: Locale tr_TR (number 7)
+FAIL: gnu.testlet.locales.LocaleTest: Locale tr_TR (number 8)
+FAIL: gnu.testlet.locales.LocaleTest: Locale tr_TR (number 10)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.DEFAULT tr_TR (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.SHORT tr_TR (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.MEDIUM tr_TR (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.LONG tr_TR (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.DEFAULT == DateFormat.MEDIUM tr_TR (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.DEFAULT tr_TR (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.SHORT tr_TR (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.MEDIUM tr_TR (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.LONG tr_TR (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.DEFAULT == DateFormat.MEDIUM tr_TR (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: tr_TR (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: tr_TR (number 2)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: tr_TR (number 4)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: tr_TR (number 5)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: tr_TR (number 6)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: tr_TR (number 7)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: tr_TR (number 8)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: tr_TR (number 9)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: tr_TR (number 10)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: tr_TR (number 11)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: tr_TR (number 12)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: tr_TR (number 14)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: tr_TR (number 15)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: tr_TR (number 16)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: tr_TR (number 17)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: tr_TR (number 19)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: tr_TR (number 20)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: tr_TR (number 21)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: tr_TR (number 22)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: tr_TR (number 23)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: tr_TR (number 24)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: tr_TR (number 25)
+FAIL: gnu.testlet.locales.LocaleTest: Currencies locale: tr_TR (number 2)
+FAIL: gnu.testlet.locales.LocaleTest: Currencies locale: tr_TR (number 3)
+FAIL: gnu.testlet.locales.LocaleTest: Currency code not supported: TRL (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: Locale et_EE (number 7)
+FAIL: gnu.testlet.locales.LocaleTest: Locale et_EE (number 8)
+FAIL: gnu.testlet.locales.LocaleTest: Locale et_EE (number 10)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.DEFAULT et_EE (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.SHORT et_EE (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.MEDIUM et_EE (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.LONG et_EE (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.DEFAULT == DateFormat.MEDIUM et_EE (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.DEFAULT et_EE (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.SHORT et_EE (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.MEDIUM et_EE (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.LONG et_EE (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: DateFormat.DEFAULT == DateFormat.MEDIUM et_EE (number 1)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: et_EE (number 6)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: et_EE (number 7)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: et_EE (number 8)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: et_EE (number 9)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: et_EE (number 10)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: et_EE (number 14)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: et_EE (number 15)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: et_EE (number 21)
+FAIL: gnu.testlet.locales.LocaleTest: numberformats locale: et_EE (number 22)
+FAIL: gnu.testlet.locales.LocaleTest: Currency code not supported: EEK (number 1)

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.special/pr21115.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.special/pr21115.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.special/pr21115.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.special/pr21115.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,34 @@
+public abstract class pr21115
+{
+  public static void main(String[] args) throws Exception
+  {
+    Class c = Class.forName("pr21115I");
+    Object o = c.newInstance();
+    pr21115 t = (pr21115) o;
+    // Try to fill the stack with 0xff.
+    t.test (0xffffffff, 0xffffffff,
+	    0xffffffff, 0xffffffff,
+	    0xffffffff, 0xffffffff,
+	    0xffffffff, 0xffffffff,
+	    0xffffffff, 0xffffffff);
+    // Pass a bunch of false (0) values.
+    if (t.test (false, false,
+		false, false,
+		false, false,
+		false, false,
+		false, false))
+      System.out.println ("FAILED - expecting false return value.");
+  }
+
+  public abstract boolean test(boolean a, boolean b,
+			       boolean c, boolean d,
+			       boolean e, boolean f,
+			       boolean g, boolean h,
+			       boolean i, boolean j);
+  
+  public abstract boolean test(int a, int b,
+			       int c, int d,
+			       int e, int f,
+			       int g, int h,
+			       int i, int j);
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.special/pr21115.out
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.special/pr21115.out?rev=43913&view=auto

==============================================================================
    (empty)

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.special/pr21115I.java
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.special/pr21115I.java?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.special/pr21115I.java (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.special/pr21115I.java Thu Nov  8 16:56:19 2007
@@ -0,0 +1,20 @@
+public class pr21115I extends pr21115
+{
+  public boolean test(boolean a, boolean b,
+		      boolean c, boolean d,
+		      boolean e, boolean f,
+		      boolean g, boolean h,
+		      boolean i, boolean j)
+  {
+    return a && b && c && d && e && f && g && h && i;
+  }
+  
+  public boolean test(int a, int b,
+		      int c, int d,
+		      int e, int f,
+		      int g, int h,
+		      int i, int j)
+  {
+    return true;
+  }
+}

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.special/special.exp
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.special/special.exp?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.special/special.exp (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.special/special.exp Thu Nov  8 16:56:19 2007
@@ -0,0 +1,98 @@
+# Special test cases.  These require tricky build procedures.
+
+proc gcj_special_pr21115 {} {
+  global srcdir subdir env
+
+  # ---- PR 21115 -------------------------------------------------------
+
+  if {! [bytecompile_file ${srcdir}/${subdir}/pr21115I.java [pwd]]} {
+    fail "bytecompile ${srcdir}/${subdir}/libjava.special/pr21115I.java"
+    # FIXME - should use `untested' on all remaining tests.
+    # But that is hard.
+    return 0
+  }
+  pass "bytecompile pr21115I.java"
+
+  if {! [gcj_link pr21115 pr21115 [list ${srcdir}/${subdir}/pr21115.java]]} {
+    fail "compiling/linking pr21115.java"
+    # FIXME
+    return 0
+  }
+
+  if {! [gcj_invoke pr21115 ${srcdir}/${subdir}/pr21115.out ""]} {
+    # FIXME
+    return 0
+  }
+
+  return 1
+}
+
+# Write a .java file and bytecompile it.  Return 0 on failure.
+proc gcj_write_and_byte_compile {name contents} {
+  set fd [open $name w]
+  puts $fd $contents
+  close $fd
+
+  if {! [bytecompile_file $name [pwd]]} {
+    fail "bytecompile $name"
+    # FIXME - should use `untested' on all remaining tests.
+    # But that is hard.
+    return 0
+  }
+  pass "bytecompile $name"
+  return 1
+}
+
+# Check that BC-compiled code lazily throws IllegalAccessError.
+proc gcj_special_lazy_illegal_access {} {
+  global srcdir subdir env
+
+  # Write and compile the initial files.
+  if {! [gcj_write_and_byte_compile LazyA.java {
+    public class LazyA {
+      public static void m() { }
+    }
+  }]} {
+    return 0
+  }
+  if {! [gcj_write_and_byte_compile LazyB.java {
+    public class LazyB {
+      public static void m() { }
+      public static void main(String[] args) { }
+    }
+  }]} {
+    return 0
+  }
+
+  # Create the expected output file.
+  set fd [open Lazy.out w]
+  close $fd
+
+  # Now recompile LazyA with different access for m().
+  if {! [gcj_write_and_byte_compile LazyA.java {
+    public class LazyA {
+      private static void m() { }
+    }
+  }]} {
+    return 0
+  }
+
+  # Link and run... this should still work, since we don't actually
+  # try to call LazyA.m().
+  if {! [gcj_link Lazy LazyB {LazyA.class LazyB.class} \
+	   additional_flags=-findirect-dispatch]} {
+    fail "compiling/linking pr21115.java"
+    # FIXME
+    return 0
+  }
+
+  if {! [gcj_invoke Lazy Lazy.out ""]} {
+    # FIXME
+    return 0
+  }
+
+  return 1
+}
+
+gcj_special_pr21115
+gcj_special_lazy_illegal_access

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.verify/README.verify
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.verify/README.verify?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.verify/README.verify (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.verify/README.verify Thu Nov  8 16:56:19 2007
@@ -0,0 +1,10 @@
+The verifier tests come from Mauve.
+See http://sources.redhat.com/mauve
+
+You want the "verify" module in the Mauve cvs repository.
+
+In Mauve, only the sources are checked in.  However, these need
+jasmin to be compiled to bytecode.  Since jasmin would require either
+another VM or gcj itself to already be working and installed (just to
+compile it), we've chose to precompile all the .j files to .class
+files and then import the result.

Added: llvm-gcc-4.2/trunk/libjava/testsuite/libjava.verify/verify.exp
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/libjava/testsuite/libjava.verify/verify.exp?rev=43913&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/libjava/testsuite/libjava.verify/verify.exp (added)
+++ llvm-gcc-4.2/trunk/libjava/testsuite/libjava.verify/verify.exp Thu Nov  8 16:56:19 2007
@@ -0,0 +1,83 @@
+# Tests for class verifier.
+
+global gcj_verify_xfail
+set {gcj_verify_xfail(gij verify of call.fail.Static)} 1
+set {gcj_verify_xfail(gij verify of simple.fail.dupfield)} 1
+set {gcj_verify_xfail(gij verify of simple.fail.dupinterface)} 1
+set {gcj_verify_xfail(gij verify of simple.fail.dupmethod)} 1
+set {gcj_verify_xfail(gij verify of subr.fail.jsr10)} 1
+set {gcj_verify_xfail(gij verify of subr.fail.jsr8)} 1
+
+
+proc gcj_verify_list_tests {srcdir} {
+  set result {}
+  if {[file exists $srcdir]} {
+    set here [pwd]
+    cd $srcdir
+    foreach item [lsort [glob -nocomplain */*/*.class]] {
+      lappend result [file rootname $item]
+    }
+    cd $here
+  }
+  return $result
+}
+
+proc gcj_verify_test_gij {gij srcdir test shouldfail} {
+  global gcj_verify_xfail
+
+  set testname "gij verify of $test"
+  verbose "invoking gij $test  - shouldfail=$shouldfail"
+  set result [libjava_load $gij [list --cp $srcdir $test] ""]
+  set status [lindex $result 0]
+  set output [lindex $result 1]
+
+  if {$shouldfail} {
+    # We match the few exceptions that are allowed.  This may need
+    # updating from time to time.  We do this rather than check the
+    # exit status because we want to catch the case where gij dies in
+    # some inappropriate way.
+    if {[string match *VerifyError* $output]
+	|| [string match *AbstractMethodError* $output]
+	|| [string match *IncompatibleClassChangeError* $output]} {
+      set cmd pass
+    } else {
+      set cmd fail
+    }
+    if {[info exists gcj_verify_xfail($testname)]} {
+      setup_xfail *-*-*
+    }
+  } else {
+    if {$status == "pass"} {
+      set cmd pass
+    } else {
+      set cmd fail
+    }
+  }
+  $cmd $testname
+}
+
+proc gcj_verify_run {} {
+  global INTERPRETER srcdir
+
+  set gij [libjava_find_gij] 
+  set interpret 1
+  # libjava_find_gij will return "" if it couldn't find the
+  # program; in this case we want to skip the test.
+  if {$INTERPRETER != "yes" || $gij == ""} {
+    set interpret 0
+  }
+
+  set testsdir $srcdir/libjava.verify/verify
+  foreach test [gcj_verify_list_tests $testsdir] {
+    set shouldfail [string match */fail/* $test]
+
+    if {$interpret} {
+      regsub -all -- / $test . gijname
+      gcj_verify_test_gij $gij $testsdir $gijname $shouldfail
+    }
+
+    # FIXME: run gcj --syntax-only here.
+  }
+}
+
+gcj_verify_run





More information about the llvm-commits mailing list