/*
* @(#)simple.java 1.14 06/10/10
*
* Copyright 1990-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License version
* 2 only, as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License version 2 for more details (a copy is
* included at /legal/license.txt).
*
* You should have received a copy of the GNU General Public License
* version 2 along with this work; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA
*
* Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
* Clara, CA 95054 or visit www.sun.com if you need additional
* information or have any questions.
*
*/
package jittest;
class simple{
public int simple( int a[], int maxI ){
int hadException = 0;
int sum = 0;
try {
for ( int i = 0; i < maxI; i ++ ){
sum = sum + a[i];
a[i] = 0;
}
} catch ( NullPointerException e ){
hadException = 1;
}
return (hadException==1)? -1 : sum;
}
public void ExceptionTest( int a[], int maxI ) throws Exception {
boolean flag = false;
int hadException = 0;
int hadTry = 0;
int sum = 0;
try {
for ( int i = 0; i < maxI; i ++ ){
sum = sum + a[i];
a[i] = 0;
try {
sum = 5;
hadTry = 5;
}
catch (Exception e4) {
flag = false;
}
hadException = 1;
}
try {
sum = 6;
hadTry = 6;
}
catch (Exception e4) {
flag = false;
}
hadException = 2;
} catch ( NullPointerException e){
try {
sum = 4;
hadTry = 4;
}
catch (Exception e4) {
flag = true;
}
hadException = 3;
} catch ( ArrayIndexOutOfBoundsException e3){
hadException = 4;
} catch ( Exception e3 ){
hadException = 5;
flag = false;
throw e3;
}
}
public void arraySet( int a[], int v ){
for ( int i = 0; i < a.length; i++ ){
a[i] = v;
a[i+v+1] = 0;
i = a[i+2];
}
}
public void testTypeConvert(int arr[]) {
int i = 0;
float f = (float)1.0;
double d = 1.0;
long l = 1L;
short s = 10;
char c = 'a';
byte b = 'a';
f = i;
l = i;
d = i;
b = (byte)i;
c = (char)i;
s = 20;
i = (int)l;
f =l;
d = l;
i = (int)f;
l = (long)f;
d = f;
i = (int)d;
f = (float)d;
l = (long)d;
}
public void testConst(int arr[]) {
int i1 = 0;
int i2 = 1;
float f1 = (float)1.0;
float f2 = (float)2.0;
double d1 = 1.0;
double d2 = 2.0;
long l1 = 1L;
long l2 = 2L;
i1 = i1 + i2;
i2 = i1 + 10;
i1 = arr.length;
f1 = f1 + f2;
f2 = f1 + (float)3.0;
d1 = d1 + d2;
d2 = d1 + 3.0;
l1 = l1 + l2;
l2 = l1 + 10;
}
public void testNewStringObj(String argv[]) {
String s = "abc";
s = "test" + "WORD" + s;
s = argv[argv.length];
s = new String("def");
System.out.print(true);
System.out.print("*TEST FAILURE: ");
System.out.println(s);
System.out.println("*Number of command line arguments: " + argv.length);
}
public void testCast() {
simple names = new simple();
Object o = new Object();
boolean b;
if (o instanceof simple) {
b = true;
}
o = (Object)names;
names = (simple)o;
}
static public int testCMP() {
long l1 = 1L;
long l2 = 2L;
float f1 = (float)3.0;
float f2 = (float)4.0;
double d1 = 5.0;
double d2 = 6.0;
short a = 0;
boolean b = false;
if (l1 > l2) {
a = 1;
}
else if (l1 == l2) {
a = 2;
}
else if (l1 < l2) {
a = 3;
}
else if (l1 <= l2) {
a = 4;
}
else if (b = l1 >= l2) {
a = 5;
}
else if (l1 > 0) {
a = 6;
}
if (f1 > f2) {
f1 = 1;
}
else if (f1 == f2) {
f1 = 2;
}
else if (f1 < f2) {
f1 = 3;
}
else if (f1 <= f2) {
f1 = 4;
}
else if (f1 >= f2) {
f1 = 5;
}
else if (b = (f1 > 0)) {
f1 = 6;
}
return a;
}
public int testTableSwitch( char c ){
switch ( (int)c - '0' ){
case 0: c = 'a';
break;
case 1:
return 1;
case 2:
case 3:
return 3;
case 4:
return 4;
/* case 5: DON'T LIKE 5 */
case 6:
return 6;
case 7:
return 7;
case 8:
return 8;
case 9:
return 9;
default:
return -1;
}
c = 'b';
return 10;
}
public void testLookupSwitch() {
int a = 50;
int c = 10;
int b;
switch (a) {
case 5: b = 0;
break;
case 6: b = 1;
break;
case 7: b = 2;
break;
default: b = 10;
break;
}
a++;
++b;
switch (b) {
case 5: a = 0;
break;
case 6: a = 1;
break;
case 20: a = 20; break;
case 21: a = 25; break;
case 30: a = 30; break;
default: a = 40;
break;
}
a = b + c;
}
static void printString( String a ){
System.out.println(a);
}
public static void helloWorld( String a[] ){
for (int i=0; i < a.length; i++ ){
printString( a[i] );
}
}
static int findMax( int i, int j ){
if ( i > j ) return i;
return j;
}
public static int
positiveValue( int v ){
return findMax( v, 0 );
}
public void switch_method(String args[]) {
int a = 50;
int c = 10;
int b;
switch (a) {
case 5: b = 0;
break;
case 6: b = 1;
break;
case 7: b = 2;
break;
default: b = 10;
break;
}
a++;
++b;
switch (b) {
case 5: a = 0;
break;
case 6: a = 1;
break;
case 20: a = 20; break;
case 21: a = 25; break;
case 30: a = 30; break;
default: a = 40;
break;
}
}
}