This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

forwarded message from Oliver Imbusch




Hi,

----------------------------------------------------------------------
Source tree:

    ftp://sourceware.cygnus.com/pub/java/snapshots/libgcj-snapshot-1999-05-03.tar.bz2
----------------------------------------------------------------------
Make command line:

    env PATH=/usr/local/egcs-19990502/bin:$PATH gmake CXX="c++ -v --save-temps"
----------------------------------------------------------------------
Resulting C++ command line:

    c++ -v --save-temps -DHAVE_CONFIG_H -I. -I../../../libgcj-snapshot-1999-05-03/libjava -I./include -Iinclude -I../../../libgcj-snapshot-1999-05-03/libjava/include -I../../../libgcj-snapshot-1999-05-03/libjava/../boehm-gc -I./../boehm-gc -DSILENT=1 -DNO_SIGNALS=1 -DNO_DEBUGGING=1 -DJAVA_FINALIZATION=1 -I../../../libgcj-snapshot-1999-05-03/libjava/../compat-include -fno-rtti -fvtable-thunks -W -Wall -g -O2 -Wp,-MD,.deps/prims.pp -c  -fPIC -DPIC ../../../libgcj-snapshot-1999-05-03/libjava/prims.cc -o .libs/prims.lo
    Reading specs from /usr/local/egcs-19990502/lib/gcc-lib/i386-pc-solaris2.5/egcs-2.93.21/specs
    gcc version egcs-2.93.21 19990502 (gcc2 ss-980929 experimental)
     /usr/local/egcs-19990502/lib/gcc-lib/i386-pc-solaris2.5/egcs-2.93.21/cpp -lang-c++ -v -I. -I../../../libgcj-snapshot-1999-05-03/libjava -I./include -Iinclude -I../../../libgcj-snapshot-1999-05-03/libjava/include -I../../../libgcj-snapshot-1999-05-03/libjava/../boehm-gc -I./../boehm-gc -I../../../libgcj-snapshot-1999-05-03/libjava/../compat-include -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=93 -Dunix -D__svr4__ -D__SVR4 -Dsun -D__unix__ -D__svr4__ -D__SVR4 -D__sun__ -D__unix -D__sun -Asystem(svr4) -D__EXCEPTIONS -D__OPTIMIZE__ -g -W -Wall -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -DHAVE_CONFIG_H -DSILENT=1 -DNO_SIGNALS=1 -DNO_DEBUGGING=1 -DJAVA_FINALIZATION=1 -DPIC -MD .deps/prims.pp ../../../libgcj-snapshot-1999-05-03/libjava/prims.cc prims.ii
    GNU CPP version egcs-2.93.21 19990502 (gcc2 ss-980929 experimental) (i386 System V Release 4)
    #include "..." search starts here:
    #include <...> search starts here:
     .
     ../../../libgcj-snapshot-1999-05-03/libjava
     include
     ../../../libgcj-snapshot-1999-05-03/libjava/include
     ../../../libgcj-snapshot-1999-05-03/libjava/../boehm-gc
     ../boehm-gc
     ../../../libgcj-snapshot-1999-05-03/libjava/../compat-include
     /usr/local/egcs-19990502/lib/gcc-lib/i386-pc-solaris2.5/egcs-2.93.21/../../../../include/g++-2
     /usr/local/include
     /usr/local/egcs-19990502/lib/gcc-lib/i386-pc-solaris2.5/egcs-2.93.21/../../../../i386-pc-solaris2.5/include
     /usr/local/egcs-19990502/lib/gcc-lib/i386-pc-solaris2.5/egcs-2.93.21/include
     /usr/include

----------------------------------------------------------------------
Preprocessed source file, prims.ii:

# 1 "../../../libgcj-snapshot-1999-05-03/libjava/prims.cc"
 

 







# 1 "include/config.h" 1
 
 

 
 

 

 

 


 


 






 

 
 

 
 

 


 


 


 


 
 

 
 

 


 


 
 

 


 


 


 
 

 
 

 


 
 

 
 

 
 

 
 

 


 








 
 

 


 
 

 


 


 


 
 

 
 

 


 


 


 


 
 

 
 

 
 

 


 


 


 


 


 


 
 

 
 

 


 


 


 


 
 

 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


# 11 "../../../libgcj-snapshot-1999-05-03/libjava/prims.cc" 2


# 1 "/usr/include/stdlib.h" 1 3 4
 
 

 
 
 




#pragma ident	"@(#)stdlib.h	1.27	95/08/28 SMI"	

# 1 "/usr/include/sys/feature_tests.h" 1 3 4
 
 

 
 
 




#pragma ident	"@(#)feature_tests.h	1.7	94/12/06 SMI"


extern "C" {


 












}



# 13 "/usr/include/stdlib.h" 2 3 4








extern "C" {


typedef	struct {
	int	quot;
	int	rem;
} div_t;

typedef struct {
	long	quot;
	long	rem;
} ldiv_t;


typedef struct {
	long long	quot;
	long long	rem;
} lldiv_t;




typedef unsigned int    size_t;




typedef long	uid_t;












typedef long wchar_t;




extern unsigned char	__ctype[];



extern double atof(const char *);
extern int atoi(const char *);
extern long int atol(const char *);
extern double strtod(const char *, char **);
extern long int strtol(const char *, char **, int);
extern unsigned long int strtoul(const char *, char **, int);

extern int rand(void);
extern void srand(unsigned int);





extern void *calloc(size_t, size_t);
extern void free(void *);
extern void *malloc(size_t);
extern void *realloc(void *, size_t);

extern void abort(void);
extern int atexit(void (*)(void));
extern void exit(int);
extern char *getenv(const char *);
extern int system(const char *);

extern void *bsearch(const void *, const void *, size_t, size_t,
	int (*)(const void *, const void *));
extern void qsort(void *, size_t, size_t,
	int (*)(const void *, const void *));

extern int abs(int);
extern div_t div(int, int);
extern long int labs(long);
extern ldiv_t ldiv(long, long);

extern int mbtowc(wchar_t *, const char *, size_t);
extern int mblen(const char *, size_t);
extern int wctomb(char *, wchar_t);

extern size_t mbstowcs(wchar_t *, const char *, size_t);
extern size_t wcstombs(char *, const wchar_t *, size_t);





extern double drand48(void);
extern double erand48(unsigned short *);
extern long jrand48(unsigned short *);
extern void lcong48(unsigned short *);
extern long lrand48(void);
extern long mrand48(void);
extern long nrand48(unsigned short *);
extern unsigned short *seed48(unsigned short *);
extern void srand48(long);
extern int putenv(const char *);
extern void setkey(const char *);






extern void swab(const char *, char *, int);





extern long a64l(const char *);
extern int dup2(int, int);
extern char *ecvt(double, int, int *, int *);
extern char *fcvt(double, int, int *, int *);
extern char *qecvt(long double, int, int *, int *);
extern char *qfcvt(long double, int, int *, int *);
extern char *qgcvt(long double, int, char *);
extern char *getcwd(char *, size_t);
extern char *getlogin(void);
extern int getopt(int, char *const *, const char *);
extern int getsubopt(char **, char *const *, char **);
extern char *optarg;
extern int optind, opterr, optopt;
extern char *getpass(const char *);
extern int getpw(uid_t, char *);
extern char *gcvt(double, int, char *);
extern int isatty(int);
extern char *l64a(long);
extern void *memalign(size_t, size_t);
extern char *mktemp(char *);
extern char *realpath(char *, char *);
extern char *ttyname(int);
extern int ttyslot(void);
extern void *valloc(size_t);
extern char *ptsname(int);
extern int  grantpt(int);
extern int  unlockpt(int);


extern long long atoll(const char *);
extern long long llabs(long long);
extern lldiv_t lldiv(long long, long long);
extern char *lltostr(long long, char *);
extern long long strtoll(const char *, char **, int);
extern unsigned long long strtoull(const char *, char **, int);
extern char *ulltostr(unsigned long long, char *);




# 276 "/usr/include/stdlib.h" 3 4



}



# 13 "../../../libgcj-snapshot-1999-05-03/libjava/prims.cc" 2

# 1 "/usr/local/egcs-19990502/lib/gcc-lib/i386-pc-solaris2.5/egcs-2.93.21/include/stdarg.h" 1 3 4
 
































































 




typedef char *__gnuc_va_list;





 



 














void va_end (__gnuc_va_list);		 


 



 












 























 
 














 










typedef __gnuc_va_list va_list;




# 204 "/usr/local/egcs-19990502/lib/gcc-lib/i386-pc-solaris2.5/egcs-2.93.21/include/stdarg.h" 3 4






# 14 "../../../libgcj-snapshot-1999-05-03/libjava/prims.cc" 2

# 1 "/usr/include/stdio.h" 1 3 4
 
 

 
 
 

 






#pragma ident	"@(#)stdio.h	1.37	95/08/29 SMI"	




extern "C" {







typedef long	fpos_t;








 


















































































typedef struct	 
{




	int		_cnt;	 
	unsigned char	*_ptr;	 

	unsigned char	*_base;	 
	unsigned char	_flag;	 
	unsigned char	_file;	 
} FILE;


extern FILE		__iob[60 ];



extern FILE		*_lastbuf;
extern unsigned char	*_bufendtab[];

extern unsigned char	 _sibuf[], _sobuf[];




extern int	remove(const char *);
extern int	rename(const char *, const char *);
extern FILE	*tmpfile(void);
extern char	*tmpnam(char *);



extern int	fclose(FILE *);
extern int	fflush(FILE *);
extern FILE	*fopen(const char *, const char *);
extern FILE	*freopen(const char *, const char *, FILE *);
extern void	setbuf(FILE *, char *);
extern int	setvbuf(FILE *, char *, int, size_t);
 
extern int	fprintf(FILE *, const char *, ...);
 
extern int	fscanf(FILE *, const char *, ...);
 
extern int	printf(const char *, ...);
 
extern int	scanf(const char *, ...);
 
extern int	sprintf(char *, const char *, ...);
 
extern int	sscanf(const char *, const char *, ...);





extern int	vfprintf(FILE *, const char *, void *);
extern int	vprintf(const char *, void *);
extern int	vsprintf(char *, const char *, void *);

extern int	fgetc(FILE *);
extern char	*fgets(char *, int, FILE *);
extern int	fputc(int, FILE *);
extern int	fputs(const char *, FILE *);
extern int	getc(FILE *);
extern int	getchar(void);
extern char	*gets(char *);
extern int	putc(int, FILE *);
extern int	putchar(int);
extern int	puts(const char *);
extern int	ungetc(int, FILE *);
extern size_t	fread(void *, size_t, size_t, FILE *);
extern size_t	fwrite(const void *, size_t, size_t, FILE *);
extern int	fgetpos(FILE *, fpos_t *);
extern int	fseek(FILE *, long, int);
extern int	fsetpos(FILE *, const fpos_t *);
extern long	ftell(FILE *);
extern void	rewind(FILE *);
extern void	clearerr(FILE *);
extern int	feof(FILE *);
extern int	ferror(FILE *);
extern void	perror(const char *);

extern int	__filbuf(FILE *);
extern int	__flsbuf(int, FILE *);

 





extern FILE	*fdopen(int, const char *);
extern char	*ctermid(char *);
extern int	fileno(FILE *);



 


# 232 "/usr/include/stdio.h" 3 4


 




extern FILE	*popen(const char *, const char *);
extern char	*cuserid(char *);
extern char	*tempnam(const char *, const char *);
extern int	getopt(int, char *const *, const char *);

extern int	getsubopt(char **, char *const *, char **);

extern char	*optarg;
extern int	optind, opterr, optopt;
extern int	getw(FILE *);
extern int	putw(int, FILE *);
extern int	pclose(FILE *);



# 336 "/usr/include/stdio.h" 3 4


 
































# 390 "/usr/include/stdio.h" 3 4





}



# 15 "../../../libgcj-snapshot-1999-05-03/libjava/prims.cc" 2

# 1 "/usr/include/string.h" 1 3 4
 
 

 
 
 




#pragma ident	"@(#)string.h	1.17	95/08/28 SMI"	




extern "C" {













extern void *memcpy(void *, const void *, size_t);
extern void *memmove(void *, const void *, size_t);
extern char *strcpy(char *, const char *);
extern char *strncpy(char *, const char *, size_t);

extern char *strcat(char *, const char *);
extern char *strncat(char *, const char *, size_t);

extern int memcmp(const void *, const void *, size_t);
extern int strcmp(const char *, const char *);
extern int strcoll(const char *, const char *);
extern int strncmp(const char *, const char *, size_t);
extern size_t strxfrm(char *, const char *, size_t);

extern void *memchr(const void *, int, size_t);
extern char *strchr(const char *, int);
extern size_t strcspn(const char *, const char *);
extern char *strpbrk(const char *, const char *);
extern char *strrchr(const char *, int);
extern size_t strspn(const char *, const char *);
extern char *strstr(const char *, const char *);
extern char *strtok(char *, const char *);




extern void *memset(void *, int, size_t);
extern char *strerror(int);
extern size_t strlen(const char *);




extern void *memccpy(void *, const void *, int, size_t);






extern char *strdup(const char *);
extern char *strsignal(int);
extern int ffs(const int);
extern int strcasecmp(const char *, const char *);
extern int strncasecmp(const char *, const char *, size_t);



# 119 "/usr/include/string.h" 3 4



}



# 16 "../../../libgcj-snapshot-1999-05-03/libjava/prims.cc" 2


#pragma implementation "java-array.h"

# 1 "../../../libgcj-snapshot-1999-05-03/libjava/include/cni.h" 1
 
 
 

 










# 1 "../../../libgcj-snapshot-1999-05-03/libjava/java/lang/Object.h" 1
 

 










#pragma interface

# 1 "../../../libgcj-snapshot-1999-05-03/libjava/include/javaprims.h" 1
 

 










 
 
extern "Java"
{
  typedef __java_byte jbyte;
  typedef __java_short jshort;
  typedef __java_int jint;
  typedef __java_long jlong;
  typedef __java_float jfloat;
  typedef __java_double jdouble;
  typedef __java_char jchar;
  typedef __java_boolean jboolean;
  typedef jint jsize;

   
   
  namespace java
  {
    namespace io
    {
      class BufferedInputStream;
      class BufferedOutputStream;
      class BufferedReader;
      class BufferedWriter;
      class ByteArrayInputStream;
      class ByteArrayOutputStream;
      class CharArrayReader;
      class CharArrayWriter;
      class CharConversionException;
      class DataInput;
      class DataInputStream;
      class DataOutput;
      class DataOutputStream;
      class EOFException;
      class File;
      class FileDescriptor;
      class FileInputStream;
      class FileNotFoundException;
      class FileOutputStream;
      class FileReader;
      class FileWriter;
      class FilenameFilter;
      class FilterInputStream;
      class FilterOutputStream;
      class FilterReader;
      class FilterWriter;
      class IOException;
      class InputStream;
      class InputStreamReader;
      class InterruptedIOException;
      class LineNumberInputStream;
      class LineNumberReader;
      class OutputStream;
      class OutputStreamWriter;
      class PipedInputStream;
      class PipedOutputStream;
      class PipedReader;
      class PipedWriter;
      class PrintStream;
      class PrintWriter;
      class PushbackInputStream;
      class PushbackReader;
      class RandomAccessFile;
      class Reader;
      class SequenceInputStream;
      class Serializable;
      class StreamTokenizer;
      class StringBufferInputStream;
      class StringReader;
      class StringWriter;
      class SyncFailedException;
      class UTFDataFormatException;
      class UnsupportedEncodingException;
      class Writer;
    };

    namespace lang
    {
      class AbstractMethodError;
      class ArithmeticException;
      class ArrayIndexOutOfBoundsException;
      class ArrayStoreException;
      class Boolean;
      class Byte;
      class Character;
      class Class;
      class ClassCastException;
      class ClassCircularityError;
      class ClassFormatError;
      class ClassLoader;
      class ClassNotFoundException;
      class CloneNotSupportedException;
      class Cloneable;
      class Comparable;
      class Compiler;
      class Double;
      class Error;
      class Exception;
      class ExceptionInInitializerError;
      class FirstThread;
      class Float;
      class IllegalAccessError;
      class IllegalAccessException;
      class IllegalArgumentException;
      class IllegalMonitorStateException;
      class IllegalStateException;
      class IllegalThreadStateException;
      class IncompatibleClassChangeError;
      class IndexOutOfBoundsException;
      class InstantiationError;
      class InstantiationException;
      class Integer;
      class InternalError;
      class InterruptedException;
      class LinkageError;
      class Long;
      class Math;
      class NegativeArraySizeException;
      class NoClassDefFoundError;
      class NoSuchFieldError;
      class NoSuchFieldException;
      class NoSuchMethodError;
      class NoSuchMethodException;
      class NullPointerException;
      class Number;
      class NumberFormatException;
      class Object;
      class OutOfMemoryError;
      class Process;
      class Runnable;
      class Runtime;
      class RuntimeException;
      class SecurityException;
      class SecurityManager;
      class Short;
      class StackOverflowError;
      class String;
      class StringBuffer;
      class StringIndexOutOfBoundsException;
      class System;
      class Thread;
      class ThreadDeath;
      class ThreadGroup;
      class Throwable;
      class UnknownError;
      class UnsatisfiedLinkError;
      class UnsupportedOperationException;
      class VerifyError;
      class VirtualMachineError;
      class Void;

      namespace reflect
      {
        class AccessibleObject;
        class Array;
        class Constructor;
        class Field;
        class InvocationTargetException;
        class Member;
        class Method;
        class Modifier;
      };
    };

    namespace util
    {
      class BitSet;
      class Calendar;
      class ConcurrentModificationException;
      class Date;
      class Dictionary;
      class EmptyStackException;
      class Enumeration;
      class EventListener;
      class EventObject;
      class GregorianCalendar;
      class Hashtable;
      class HashtableEntry;
      class HashtableEnumeration;
      class ListResourceBundle;
      class Locale;
      class MissingResourceException;
      class NoSuchElementException;
      class Observable;
      class Observer;
      class Properties;
      class Random;
      class ResourceBundle;
      class SimpleTimeZone;
      class Stack;
      class StringTokenizer;
      class TimeZone;
      class TooManyListenersException;
      class Vector;
      class VectorEnumeration;

      namespace zip
      {
        class Adler32;
        class CRC32;
        class Checksum;
        class Deflater;
        class DeflaterOutputStream;
        class ZipConstants;
        class ZipEntry;
        class ZipEnumeration;
        class ZipException;
        class ZipFile;
        class ZipOutputStream;
      };
    };
  };
};

typedef struct java::lang::Object* jobject;
typedef class java::lang::Class* jclass;
typedef class java::lang::Throwable* jthrowable;
typedef class java::lang::String* jstring;
struct _Jv_JNIEnv;

typedef struct _Jv_Field *jfieldID;
typedef struct _Jv_Method *jmethodID;

extern "C" jobject _Jv_AllocObject (jclass, jint);
extern "C" jboolean _Jv_IsInstanceOf(jobject, jclass);
extern "C" jstring _Jv_AllocString(jsize);
extern "C" jstring _Jv_NewString (const jchar*, jsize);
extern "C" jchar* _Jv_GetStringChars (jstring str);
extern "C" jint _Jv_MonitorEnter (jobject);
extern "C" jint _Jv_MonitorExit (jobject);
extern "C" jstring _Jv_NewStringLatin1(const char*, jsize);
extern "C" jsize _Jv_GetStringUTFLength (jstring);
extern "C" jsize _Jv_GetStringUTFRegion (jstring, jsize, jsize, char *);

extern "C" void _Jv_Throw (void *) __attribute__ ((__noreturn__));
extern "C" void* _Jv_Malloc (jsize);
extern "C" void _Jv_Free (void*);

typedef unsigned short _Jv_ushort __attribute__((__mode__(__HI__)));
typedef unsigned int _Jv_uint __attribute__((__mode__(__SI__)));

struct _Jv_Utf8Const
{
  _Jv_ushort hash;
  _Jv_ushort length;	 
  char data[1];		 
};


# 16 "../../../libgcj-snapshot-1999-05-03/libjava/java/lang/Object.h" 2

# 1 "../../../libgcj-snapshot-1999-05-03/libjava/include/java-assert.h" 1
 

 










 

void _Jv_Abort (const char *, const char *, int, const char *)
  __attribute__ ((__noreturn__));

# 29 "../../../libgcj-snapshot-1999-05-03/libjava/include/java-assert.h"










# 17 "../../../libgcj-snapshot-1999-05-03/libjava/java/lang/Object.h" 2

# 1 "include/java-threads.h" 1
 
 

 










# 1 "include/config.h" 1
 
 

 
 

 

 

 


 


 






 

 
 

 
 

 


 


 


 


 
 

 
 

 


 


 
 

 


 


 


 
 

 
 

 


 
 

 
 

 
 

 
 

 


 








 
 

 


 
 

 


 


 


 
 

 
 

 


 


 


 


 
 

 
 

 
 

 


 


 


 


 


 


 
 

 
 

 


 


 


 


 
 

 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


# 15 "include/java-threads.h" 2




# 1 "/usr/include/unistd.h" 1 3 4
 
 

 
 
 




#pragma ident	"@(#)unistd.h	1.33	95/08/28 SMI"	



# 1 "/usr/include/sys/types.h" 1 3 4
 
 

 
 
 




#pragma ident	"@(#)types.h	1.36	94/12/20 SMI"


# 1 "/usr/include/sys/isa_defs.h" 1 3 4
 






#pragma ident	"@(#)isa_defs.h	1.1	93/07/01 SMI"

 

































































extern "C" {


 








 






 









 





 





# 147 "/usr/include/sys/isa_defs.h" 3 4



}



# 14 "/usr/include/sys/types.h" 2 3 4


 


# 1 "/usr/include/sys/machtypes.h" 1 3 4
 
 

 
 
 

 






#pragma ident	"@(#)machtypes.h	1.5	94/11/05 SMI"




extern "C" {


 








typedef struct  _physadr_t { int r[1]; } *physadr_t;

typedef	struct	_label_t { int	val[6]; } label_t;  



typedef	unsigned char	lock_t;		 


}



# 19 "/usr/include/sys/types.h" 2 3 4



extern "C" {


 

typedef	unsigned char	uchar_t;
typedef	unsigned short	ushort_t;
typedef	unsigned int	uint_t;
typedef	unsigned long	ulong_t;

typedef	char *		caddr_t;	 
typedef	long		daddr_t;	 
typedef	long		off_t;		 
typedef	short		cnt_t;		 

typedef	ulong_t		paddr_t;	 
typedef	uchar_t		use_t;		 
typedef	short		sysid_t;
typedef	short		index_t;




typedef enum { B_FALSE, B_TRUE } boolean_t;


 





typedef	long long		longlong_t;
typedef	unsigned long long	u_longlong_t;
# 66 "/usr/include/sys/types.h" 3 4


typedef	longlong_t	offset_t;
typedef	longlong_t	diskaddr_t;

 






typedef union {
	offset_t	_f;	 
	struct {
		off_t _l;	 
		long _u;	 
	} _p;
} lloff_t;


# 95 "/usr/include/sys/types.h" 3 4



typedef union {
	diskaddr_t	_f;	 
	struct {
		daddr_t _l;	 
		long _u;	 
	} _p;
} lldaddr_t;


# 115 "/usr/include/sys/types.h" 3 4


typedef ulong_t k_fltset_t;	 

 







typedef long		id_t;		 
					 
					 
					 
					 


 

typedef ulong_t	major_t;	 
typedef ulong_t	minor_t;	 


 

typedef short	pri_t;

 










typedef	ushort_t o_mode_t;		 
typedef short	o_dev_t;		 
typedef	ushort_t o_uid_t;		 
typedef	o_uid_t	o_gid_t;		 
typedef	short	o_nlink_t;		 
typedef short	o_pid_t;		 
typedef ushort_t o_ino_t;		 


 

typedef	int	key_t;			 
typedef	ulong_t	mode_t;			 






typedef	uid_t	gid_t;			 
typedef	ulong_t nlink_t;		 
typedef ulong_t	dev_t;			 
typedef ulong_t	ino_t;			 
typedef long	pid_t;			 








typedef int	ssize_t;	 
				 




typedef	long		time_t;	 




typedef	long		clock_t;  




typedef	int	clockid_t;	 




typedef	int	timer_t;	 





typedef	unsigned char	unchar;
typedef	unsigned short	ushort;
typedef	unsigned int	uint;
typedef	unsigned long	ulong;

# 231 "/usr/include/sys/types.h" 3 4





 












 




typedef	long	hostid_t;

 







typedef unsigned char	u_char;
typedef unsigned short	u_short;
typedef unsigned int	u_int;
typedef unsigned long	u_long;
typedef struct _quad { long val[2]; } quad;	 


 



# 1 "/usr/include/sys/select.h" 1 3 4
 
 

 
 
 




#pragma ident	"@(#)select.h	1.10	92/07/14 SMI"	


# 1 "/usr/include/sys/time.h" 1 3 4
 
 

 
 
 

 





 







#pragma ident	"@(#)time.h	2.47	95/08/24 SMI"	



 





extern "C" {






struct timeval {
	long	tv_sec;		 
	long	tv_usec;	 
};

struct timezone {
	int	tz_minuteswest;	 
	int	tz_dsttime;	 
};





}


 




# 1 "/usr/include/sys/types.h" 1 3 4
 
 

 
 
 

# 299 "/usr/include/sys/types.h" 3 4

# 61 "/usr/include/sys/time.h" 2 3 4




extern "C" {

















 














 









struct	itimerval {
	struct	timeval it_interval;	 
	struct	timeval it_value;	 
};


 

















 

















 






typedef struct  timespec {		 
	time_t		tv_sec;		 
	long		tv_nsec;	 
} timespec_t;

typedef struct timespec timestruc_t;	 

# 172 "/usr/include/sys/time.h" 3 4


 









 




typedef struct itimerspec {		 
	struct timespec	it_interval;	 
	struct timespec	it_value;	 
} itimerspec_t;


 


typedef	longlong_t	hrtime_t;

# 236 "/usr/include/sys/time.h" 3 4





int adjtime(struct timeval *, struct timeval *);
int getitimer(int, struct itimerval *);
int setitimer(int, const struct itimerval *, struct itimerval *);

 

















int gettimeofday(struct timeval *, void *);
int settimeofday(struct timeval *, void *);


hrtime_t	gethrtime(void);
hrtime_t	gethrvtime(void);
# 278 "/usr/include/sys/time.h" 3 4


# 1 "/usr/include/time.h" 1 3 4
 
 
 



 
 
 




#pragma ident	"@(#)time.h	1.23	95/08/28 SMI"	




extern "C" {





























struct	tm {	 
	int	tm_sec;
	int	tm_min;
	int	tm_hour;
	int	tm_mday;
	int	tm_mon;
	int	tm_year;
	int	tm_wday;
	int	tm_yday;
	int	tm_isdst;
};



extern clock_t clock(void);
extern double difftime(time_t, time_t);
extern time_t mktime(struct tm *);
extern time_t time(time_t *);
extern char *asctime(const struct tm *);
extern char *ctime(const time_t *);
extern struct tm *gmtime(const time_t *);
extern struct tm *localtime(const time_t *);
extern size_t strftime(char *, size_t, const char *, const struct tm *);










extern char *strptime(const char *, const char *, struct tm *);






# 1 "/usr/include/sys/time.h" 1 3 4
 
 

 
 
 

 





 




# 290 "/usr/include/sys/time.h" 3 4

# 89 "/usr/include/time.h" 2 3 4

# 1 "/usr/include/sys/siginfo.h" 1 3 4
 
 
 



 
 
 




#pragma ident	"@(#)siginfo.h	1.36	95/08/24 SMI"	




extern "C" {




union sigval {
	int	sival_int;	 
	void	*sival_ptr;	 
};

struct sigevent {
	int		sigev_notify;	 
	union {
		int	_sigev_signo;	 
		void	(*_sigev_notify_function)(union sigval);
	} _sigev_un;
	union sigval	sigev_value;	 
	int		_sigev_pad1;
	void		*_sigev_notify_attributes;
	int		_sigev_pad2;
};


 




 


















 




# 1 "/usr/include/sys/machsig.h" 1 3 4
 
 

 
 
 

 






#pragma ident	"@(#)machsig.h	1.4	94/11/05 SMI"




extern "C" {


 



 









# 1 "/usr/include/vm/faultcode.h" 1 3 4
 
 

 
 
 

 

























#pragma ident	"@(#)faultcode.h	1.15	92/07/14 SMI"	


extern "C" {


 



















typedef	int	faultcode_t;	 



}



# 37 "/usr/include/sys/machsig.h" 2 3 4


 












 













 







 











}



# 71 "/usr/include/sys/siginfo.h" 2 3 4


 







 











 











 















 


# 1 "/usr/include/sys/time.h" 1 3 4
 
 

 
 
 

 





 




# 290 "/usr/include/sys/time.h" 3 4

# 124 "/usr/include/sys/siginfo.h" 2 3 4


typedef struct

	 
	siginfo

			{

	int	si_signo;			 
	int	si_code;			 
	int	si_errno;			 

	union {

		int	_pad[((128  / sizeof (int)) - 3) ];		 

		struct {			 
			pid_t	_pid;		 
			union {
				struct {
					uid_t	_uid;
					union sigval	_value;
				} _kill;
				struct {
					clock_t _utime;
					int	_status;
					clock_t _stime;
				} _cld;
			} _pdata;
		} _proc;

		struct {	 
			caddr_t	_addr;		 
			int	_trapno;	 
		} _fault;

		struct {			 
		 
			int	_fd;		 
			long	_band;
		} _file;

		struct {			 
			caddr_t	_faddr;		 
			timestruc_t _tstamp;	 
			short	_syscall;	 
			char	_nsysarg;	 
			char	_fault;		 
			long	_sysarg[8];	 
			long	_mstate[17];	 
		} _prof;

	} _data;

} siginfo_t;

 






typedef struct k_siginfo {

	int	si_signo;			 
	int	si_code;			 
	int	si_errno;			 

	union {
		struct {			 
			pid_t	_pid;		 
			union {
				struct {
					uid_t	_uid;
					union sigval	_value;
				} _kill;
				struct {
					clock_t _utime;
					int	_status;
					clock_t _stime;
				} _cld;
			} _pdata;
		} _proc;

		struct {	 
			caddr_t	_addr;		 
			int	_trapno;	 
		} _fault;

		struct {			 
		 
			int	_fd;		 
			long	_band;
		} _file;

		struct {			 
			caddr_t	_faddr;		 
			timestruc_t _tstamp;	 
			short	_syscall;	 
			char	_nsysarg;	 
			char	_fault;		 
			 
			 
			 
		} _prof;

	} _data;

} k_siginfo_t;

typedef struct sigqueue {
	struct sigqueue	*sq_next;
	k_siginfo_t	sq_info;
	void		(*sq_func)(struct sigqueue *);  
	void		*sq_backptr;	 
					 
} sigqueue_t;

 


























}



# 90 "/usr/include/time.h" 2 3 4

extern int clock_getres(clockid_t, struct timespec *);
extern int clock_gettime(clockid_t, struct timespec *);
extern int clock_settime(clockid_t, const struct timespec *);

extern int timer_create(clockid_t, struct sigevent *, timer_t *);
extern int timer_delete(timer_t);
extern int timer_getoverrun(timer_t);
extern int timer_gettime(timer_t, struct itimerspec *);
extern int timer_settime(timer_t, int, const struct itimerspec *,
		struct itimerspec *);
extern int nanosleep(const struct timespec *, struct timespec *);





extern void tzset(void);

extern char *tzname[2];


extern long _sysconf(int);	 

				 




extern long timezone;
extern int daylight;





extern int cftime(char *, char *, const time_t *);
extern int ascftime(char *, const char *, const struct tm *);
extern long altzone;
extern struct tm *getdate(const char *);






extern int getdate_err;



# 171 "/usr/include/time.h" 3 4


 


# 249 "/usr/include/time.h" 3 4



}



# 280 "/usr/include/sys/time.h" 2 3 4







}



# 14 "/usr/include/sys/select.h" 2 3 4




extern "C" {


 













typedef	long	fd_mask;





typedef	struct fd_set {
	fd_mask	fds_bits[((( 1024  )+((  (sizeof (fd_mask) * 8 )  )-1))/(  (sizeof (fd_mask) * 8 )  )) ];
} fd_set;


















extern int select(int, fd_set *, fd_set *, fd_set *, struct timeval *);






}



# 275 "/usr/include/sys/types.h" 2 3 4




 












 



}



# 15 "/usr/include/unistd.h" 2 3 4

# 1 "/usr/include/sys/unistd.h" 1 3 4
 









 








#pragma ident	"@(#)unistd.h	1.23	95/08/24 SMI"	




extern "C" {


 

 








 




 




 



























 





















 


 







 




















 

 









 




































}



# 16 "/usr/include/unistd.h" 2 3 4



extern "C" {


 













 















 




 














 





















extern int usleep(unsigned int useconds);



extern int access(const char *, int);


extern int acct(const char *);

extern unsigned alarm(unsigned);


extern int brk(void *);

extern int chdir(const char *);
extern int chown(const char *, uid_t, gid_t);

extern int chroot(const char *);

extern int close(int);







extern char *ctermid(char *);

extern char *cuserid(char *);
extern int dup(int);
extern int dup2(int, int);




extern int execl(const char *, const char *, ...);
extern int execle(const char *, const char *, ...);
extern int execlp(const char *, const char *, ...);
extern int execv(const char *, char *const *);
extern int execve(const char *, char *const *, char *const *);
extern int execvp(const char *, char *const *);
extern void _exit(int);


extern int fattach(int, const char *);
extern int fchdir(int);
extern int fchown(int, uid_t, gid_t);
extern int fchroot(int);



extern int fdatasync(int);



extern int fdetach(const char *);

extern pid_t fork(void);


extern pid_t fork1(void);

extern long fpathconf(int, int);


extern int fsync(int);



extern int ftruncate(int, off_t);

extern char *getcwd(char *, size_t);
extern gid_t getegid(void);
extern uid_t geteuid(void);
extern gid_t getgid(void);
extern int getgroups(int, gid_t *);
extern char *getlogin(void);









extern pid_t getpgid(pid_t);

extern pid_t getpid(void);
extern pid_t getppid(void);
extern pid_t getpgrp(void);


char *gettxt(const char *, const char *);



extern pid_t getsid(pid_t);

extern uid_t getuid(void);


extern int ioctl(int, int, ...);

extern int isatty(int);
extern int link(const char *, const char *);


extern int lchown(const char *, uid_t, gid_t);
extern offset_t llseek(int, offset_t, int);
extern int lockf(int, int, long);

extern off_t lseek(int, off_t, int);


extern int mincore(caddr_t, size_t, char *);


extern int nice(int);

extern long pathconf(const char *, int);
extern int pause(void);
extern int pipe(int *);


extern ssize_t pread(int, void *, size_t, off_t);
extern void profil(unsigned short *, unsigned int, unsigned int, unsigned int);
extern int ptrace(int, pid_t, int, int);
extern ssize_t pwrite(int, const void *, size_t, off_t);

extern ssize_t read(int, void *, unsigned);


extern int readlink(const char *, void *, int);



extern int rename(const char *, const char *);

extern int rmdir(const char *);


extern void *sbrk(int);

extern int setgid(gid_t);


extern int setegid(gid_t);



extern int setgroups(int, const gid_t *);

extern int setpgid(pid_t, pid_t);


extern pid_t setpgrp(void);

extern pid_t setsid(void);
extern int setuid(uid_t);


extern int seteuid(uid_t);

extern unsigned sleep(unsigned);


extern int stime(const time_t *);







extern int symlink(const char *, const char *);
extern void sync(void);

extern long sysconf(int);
extern pid_t tcgetpgrp(int);
extern int tcsetpgrp(int, pid_t);


extern int truncate(const char *, off_t);

extern char *ttyname(int);
extern int unlink(const char *);


extern pid_t vfork(void);
extern void vhangup(void);

extern ssize_t write(int, const void *, unsigned);


extern void yield(void);


# 450 "/usr/include/unistd.h" 3 4


 












 


# 542 "/usr/include/unistd.h" 3 4



}



# 19 "include/java-threads.h" 2



 
 
 

typedef int _Jv_ConditionVariable_t;
typedef int _Jv_Mutex_t;
typedef int _Jv_Thread_t;
typedef void _Jv_ThreadStartFunc (java::lang::Thread *);


 
 
 

inline void
_Jv_CondInit (_Jv_ConditionVariable_t *)
{
}

 
 
inline int
_Jv_CondWait (_Jv_ConditionVariable_t *, _Jv_Mutex_t *,
	      jlong millis, jint nanos)
{
  if (millis == 0 && nanos == 0)
    _Jv_Abort (0, 0, 0,  "_Jv_CondWait without timeout" ) ;


  int seconds = millis / 1000;
  if (seconds > 0)
    sleep (seconds);


  return 0;
}

inline int
_Jv_CondNotify (_Jv_ConditionVariable_t *, _Jv_Mutex_t *)
{
   
  return 0;
}

inline int
_Jv_CondNotifyAll (_Jv_ConditionVariable_t *, _Jv_Mutex_t *)
{
   
  return 0;
}


 
 
 

inline void
_Jv_MutexInit (_Jv_Mutex_t *)
{
}

inline int
_Jv_MutexLock (_Jv_Mutex_t *)
{
  return 0;
}

inline int
_Jv_MutexUnlock (_Jv_Mutex_t *)
{
  return 0;
}


 
 
 

inline void
_Jv_InitThreads (void)
{
}

inline void
_Jv_ThreadInitData (_Jv_Thread_t **data, java::lang::Thread *)
{
  *data = 0 ;
}

inline java::lang::Thread *
_Jv_ThreadCurrent (void)
{
  extern java::lang::Thread *_Jv_OnlyThread;
  return _Jv_OnlyThread;
}

inline void
_Jv_ThreadYield (void)
{
}

inline void
_Jv_ThreadSetPriority (_Jv_Thread_t *, jint)
{
}

inline void
_Jv_ThreadCancel (_Jv_Thread_t *, void *)
{
  _Jv_Abort (0, 0, 0,  "_Jv_ThreadCancel" ) ;
}

 
inline void
_Jv_ThreadDestroy (_Jv_Thread_t *)
{
  _Jv_Abort (0, 0, 0,  "_Jv_ThreadDestroy" ) ;
}

void _Jv_ThreadStart (java::lang::Thread *, _Jv_Thread_t *,
		      _Jv_ThreadStartFunc *meth);

inline void
_Jv_ThreadWait (void)
{
}

inline void
_Jv_ThreadInterrupt (_Jv_Thread_t *)
{
}


# 18 "../../../libgcj-snapshot-1999-05-03/libjava/java/lang/Object.h" 2

# 1 "include/java-gc.h" 1
 
 

 













extern "C"
{
  void *_Jv_MarkObj (void *, void *, void *, void *) ;
  void *_Jv_MarkArray (void *, void *, void *, void *) ;
};


# 19 "../../../libgcj-snapshot-1999-05-03/libjava/java/lang/Object.h" 2


 
 
 
 
 

struct _JvObjectPrefix
{
protected:
   
   

  virtual void finalize () = 0;
};

class java::lang::Object : public _JvObjectPrefix
{
public:
   
  jclass getClass (void);
  virtual jint hashCode (void);
  void notify (void);
  void notifyAll (void);
  void wait (jlong timeout, jint nanos);
  virtual jboolean equals (jobject obj);
  Object (void);
  virtual jstring toString (void);
  void wait (void);
  void wait (jlong timeout);

  friend jint _Jv_MonitorEnter (jobject obj);
  friend jint _Jv_MonitorExit (jobject obj);
  friend void _Jv_InitializeSyncMutex (void);
  friend void _Jv_FinalizeObject (jobject obj);


  friend void *_Jv_MarkObj (void *, void *, void *, void *) ;


  friend void *_Jv_MarkArray (void *, void *, void *, void *) ;


protected:
  virtual jobject clone (void);
  virtual void finalize (void);

private:
   
   
   
  jobject sync_info;

   
  void sync_init (void);

  static void hack12_6 (jobject f);
};


# 16 "../../../libgcj-snapshot-1999-05-03/libjava/include/cni.h" 2

# 1 "../../../libgcj-snapshot-1999-05-03/libjava/java/lang/Class.h" 1
 

 







 



#pragma interface


# 1 "java/lang/String.h" 1
 




#pragma interface


# 1 "../../../libgcj-snapshot-1999-05-03/libjava/include/java-array.h" 1
 

 










#pragma interface



extern "Java" {

class __JArray : public java::lang::Object
{
public:
  int length;
  friend jsize JvGetArrayLength (__JArray*);
};

template<class T>
class JArray : public __JArray
{
  T data[0];
public:
  friend T* elements<>(JArray<T>& x);
  friend T* elements<>(JArray<T>* x);
   
   
};

template<class T>
T* elements(JArray<T>& x) { return x.data; }
template<class T>
T* elements(JArray<T>* x) { return x->data; }

};  

 
typedef __JArray *jarray;
typedef JArray<jobject> *jobjectArray;
typedef JArray<jboolean> *jbooleanArray;
typedef JArray<jbyte> *jbyteArray;
typedef JArray<jchar> *jcharArray;
typedef JArray<jshort> *jshortArray;
typedef JArray<jint> *jintArray;
typedef JArray<jlong> *jlongArray;
typedef JArray<jfloat> *jfloatArray;
typedef JArray<jdouble> *jdoubleArray;
typedef JArray<jstring> *jstringArray;
 
typedef JArray<jcharArray> *jobjectArrayjchar;

extern "C" jbooleanArray JvNewBooleanArray (jint length);
extern "C" jbyteArray JvNewByteArray (jint length);
extern "C" jcharArray JvNewCharArray (jint length);
extern "C" jshortArray JvNewShortArray (jint length);
extern "C" jintArray JvNewIntArray (jint length);
extern "C" jlongArray JvNewLongArray (jint length);
extern "C" jfloatArray JvNewFloatArray (jint length);
extern "C" jdoubleArray JvNewDoubleArray (jint length);
extern "C" jobjectArray _Jv_NewObjectArray(jsize length, jclass, jobject init);

inline jobjectArray JvNewObjectArray (jsize length, jclass cls, jobject init)
{ return _Jv_NewObjectArray (length, cls, init); }

extern "C" jstringArray JvConvertArgv(int argc, const char **argv);
extern "C" void JvRunMain (jclass klass, int argc, const char **argv);

inline jsize JvGetArrayLength (jarray array) { return array->length; }


# 9 "java/lang/String.h" 2


class java::lang::String : public java::lang::Object
{
public:
  String ();
  String (java::lang::String *);
  String (java::lang::StringBuffer *);
  String (jcharArray);
  String (jcharArray, jint, jint);
  String (jbyteArray);
  String (jbyteArray, jint, jint);
  String (jbyteArray, java::lang::String *);
  String (jbyteArray, jint, jint, java::lang::String *);
  static java::lang::String *copyValueOf (jcharArray);
  static java::lang::String *copyValueOf (jcharArray, jint, jint);
  String (jbyteArray, jint);
  String (jbyteArray, jint, jint, jint);
  java::lang::String *toString () { return this; }
  jboolean equals (java::lang::Object *);
  jint hashCode ();
  jint length () { return count; }
  jchar charAt (jint);
  void getChars (jint, jint, jcharArray, jint);
  jbyteArray getBytes ();
  jbyteArray getBytes (java::lang::String *);
  void getBytes (jint, jint, jbyteArray, jint);
  jcharArray toCharArray ();
  jboolean equalsIgnoreCase (java::lang::String *);
  jint compareTo (java::lang::String *);
  jboolean regionMatches (jint, java::lang::String *, jint, jint);
  jboolean regionMatches (jboolean, jint, java::lang::String *, jint, jint);
  jboolean startsWith (java::lang::String *);
  jboolean startsWith (java::lang::String *, jint);
  jboolean endsWith (java::lang::String *);
  jint indexOf (jint);
  jint indexOf (jint, jint);
  jint indexOf (java::lang::String *);
  jint indexOf (java::lang::String *, jint);
  jint lastIndexOf (jint);
  jint lastIndexOf (jint, jint);
  jint lastIndexOf (java::lang::String *);
  jint lastIndexOf (java::lang::String *, jint);
  java::lang::String *substring (jint);
  java::lang::String *substring (jint, jint);
  java::lang::String *concat (java::lang::String *);
  java::lang::String *replace (jchar, jchar);
  java::lang::String *toLowerCase ();
  java::lang::String *toUpperCase ();
  java::lang::String *trim ();
  static java::lang::String *valueOf (java::lang::Object *);
  static java::lang::String *valueOf (jcharArray);
  static java::lang::String *valueOf (jcharArray, jint, jint);
  static java::lang::String *valueOf (jboolean);
  static java::lang::String *valueOf (jchar);
  static java::lang::String *valueOf (jint);
  static java::lang::String *valueOf (jlong);
  static java::lang::String *valueOf (jfloat);
  static java::lang::String *valueOf (jdouble);
  java::lang::String *intern ();
private:
  void init ();
  void init (jcharArray, jint, jint, jboolean);
  void init (jbyteArray, jint, jint, jint);
  void init (jbyteArray, jint, jint, java::lang::String *);
  void unintern ();
  static void rehash ();
  java::lang::Object *data;
  jint boffset;
  jint count;
  friend jchar* _Jv_GetStringChars (jstring str);
  friend jstring* _Jv_StringFindSlot (jchar*, jint, jint);
  friend jstring* _Jv_StringGetSlot (jstring);
  friend jstring _Jv_NewStringUtf8Const (_Jv_Utf8Const* str);
  friend jstring _Jv_NewStringLatin1 (const char*, jsize);
  friend jstring _Jv_AllocString (jsize);
};


# 18 "../../../libgcj-snapshot-1999-05-03/libjava/java/lang/Class.h" 2


 
extern "C" void _Jv_InitClass (jclass klass);
extern "C" void _Jv_RegisterClasses (jclass *classes);

struct _Jv_Field;
struct _Jv_VTable;

















struct _Jv_Constants
{
  jint size;
  jbyte *tags;
  void **data;
};

struct _Jv_Method
{
  _Jv_Utf8Const *name;
  _Jv_Utf8Const *signature;
  unsigned short accflags;
  void *ncode;
};



class java::lang::Class : public java::lang::Object
{
public:
  static jclass forName (jstring className);
  JArray<jclass> *getClasses (void);

  java::lang::ClassLoader *getClassLoader (void)
    {
      return loader;
    }

  jclass getComponentType (void)
    {
      return isArray () ? (* (jclass *) &methods) : 0;
    }

  java::lang::reflect::Constructor *getConstructor (JArray<jclass> *);
  JArray<java::lang::reflect::Constructor *> *getConstructors (void);
  java::lang::reflect::Constructor *getDeclaredConstructor (JArray<jclass> *);
  JArray<java::lang::reflect::Constructor *> *getDeclaredConstructors (void);
  java::lang::reflect::Field *getDeclaredField (jstring);
  JArray<java::lang::reflect::Field *> *getDeclaredFields (void);
  java::lang::reflect::Method *getDeclaredMethod (jstring, JArray<jclass> *);
  JArray<java::lang::reflect::Method *> *getDeclaredMethods (void);

  JArray<jclass> *getDeclaredClasses (void);
  jclass getDeclaringClass (void);

  java::lang::reflect::Field *getField (jstring);
private:
  java::lang::reflect::Field *getField (jstring, jint);
public:
  JArray<java::lang::reflect::Field *> *getFields (void);

  JArray<jclass> *getInterfaces (void);

  java::lang::reflect::Method *getMethod (jstring, JArray<jclass> *);
  JArray<java::lang::reflect::Method *> *getMethods (void);

  jint getModifiers (void)
    {
      return accflags;
    }

  jstring getName (void);

  java::io::InputStream *getResourceAsStream (jstring resourceName);
  JArray<jobject> *getSigners (void);

  jclass getSuperclass (void)
    {
      return superclass;
    }

  jboolean isArray (void)
    {
      return name->data[0] == '[';
    }

  jboolean isAssignableFrom (jclass cls);
  jboolean isInstance (jobject obj);
  jboolean isInterface (void);

  jboolean isPrimitive (void)
    {
      return vtable == ((_Jv_VTable *) -1) ;
    }

  jobject newInstance (void);
  jstring toString (void);

   
  jint size (void)
    {
      return size_in_bytes;
    }

private:
  void checkMemberAccess (jint flags);
  void resolveConstants (void);

   
  java::lang::Throwable *hackTrampoline (jint, java::lang::Throwable *);
  void hackRunInitializers (void);
  void initializeClass (void);

   
  friend _Jv_Method *_Jv_GetMethodLocal (jclass klass, _Jv_Utf8Const *name,
					 _Jv_Utf8Const *signature);
  friend void _Jv_InitClass (jclass klass);
  friend void _Jv_RegisterClasses (jclass *classes);
  friend jclass _Jv_FindClassInCache (_Jv_Utf8Const *name,
				      java::lang::ClassLoader *loader);
  friend jclass _Jv_FindArrayClass (jclass element);
  friend jclass _Jv_NewClass (_Jv_Utf8Const *name, jclass superclass,
			      java::lang::ClassLoader *loader);

  friend jfieldID JvGetFirstInstanceField (jclass);
  friend jint JvNumInstanceFields (jclass);
  friend jobject _Jv_AllocObject (jclass, jint);
  friend jobjectArray _Jv_NewObjectArray (jsize, jclass, jobject);
  friend jobject _Jv_NewPrimArray (jclass, jint);
  friend jobject _Jv_JNI_ToReflectedField (_Jv_JNIEnv *, jclass, jfieldID);
  friend jfieldID _Jv_FromReflectedField (java::lang::reflect::Field *);
  friend jmethodID _Jv_FromReflectedMethod (java::lang::reflect::Method *);

  friend class _Jv_PrimClass;


  friend void *_Jv_MarkObj (void *, void *, void *, void *) ;


   
  jclass next;
   
  _Jv_Utf8Const *name;
   
  unsigned short accflags;
   
  jclass superclass;
   
  _Jv_Constants constants;
   
   
   
  _Jv_Method *methods;
   
   
  short method_count;
   
  short vtable_method_count;
   
  _Jv_Field *fields;
   
  int size_in_bytes;
   
  short field_count;
   
  short static_field_count;
   
  _Jv_VTable *vtable;
   
  jclass *interfaces;
   
  java::lang::ClassLoader *loader;
   
  short interface_count;
   
  jbyte state;
   
   
  java::lang::Thread *thread;
};


# 17 "../../../libgcj-snapshot-1999-05-03/libjava/include/cni.h" 2





extern inline jobject
JvAllocObject (jclass cls)
{
  return _Jv_AllocObject (cls, cls->size());
}

extern inline jobject
JvAllocObject (jclass cls, jsize sz)
{
  return _Jv_AllocObject (cls, sz);
}

extern "C" jstring _Jv_NewStringUTF (const char *bytes);
extern "C" void _Jv_InitClass (jclass);

extern inline void
JvInitClass (jclass cls)
{
  return _Jv_InitClass (cls);
}

extern inline jstring
JvAllocString (jsize sz)
{
  return _Jv_AllocString (sz);
}

extern inline jstring
JvNewString (const jchar *chars, jsize len)
{
  return _Jv_NewString (chars, len);
}

extern inline jstring
JvNewStringLatin1 (const char *bytes, jsize len)
{
  return _Jv_NewStringLatin1 (bytes, len);
}

extern inline jstring
JvNewStringLatin1 (const char *bytes)
{
  return _Jv_NewStringLatin1 (bytes, strlen (bytes));
}

extern inline jchar *
_Jv_GetStringChars (jstring str)
{
  return (jchar*)((char*) str->data + str->boffset);
}

extern inline jchar*
JvGetStringChars (jstring str)
{
  return _Jv_GetStringChars (str);
}

extern inline jsize
JvGetStringUTFLength (jstring string)
{
  return _Jv_GetStringUTFLength (string);
}

extern inline jsize
JvGetStringUTFRegion (jstring str, jsize start, jsize len, char *buf) 
{ 
  return _Jv_GetStringUTFRegion (str, start, len, buf); 
} 

extern inline jstring
JvNewStringUTF (const char *bytes)
{
  return _Jv_NewStringUTF (bytes);
}

extern class _Jv_PrimClass _Jv_byteClass, _Jv_shortClass, _Jv_intClass,
  _Jv_longClass, _Jv_booleanClass, _Jv_charClass, _Jv_floatClass,
  _Jv_doubleClass, _Jv_voidClass;


class JvSynchronize
{
private:
  jobject obj;
public:
  JvSynchronize (const jobject &o) : obj (o)
    { _Jv_MonitorEnter (obj); }
  ~JvSynchronize ()
    { _Jv_MonitorExit (obj); }
};

 
extern void JvThrow (jobject obj) __attribute__ ((__noreturn__));
extern inline void
JvThrow (jobject obj)
{
  _Jv_Throw ((void *) obj);
}

 
extern inline void *
JvMalloc (jsize size)
{
  return _Jv_Malloc (size);
}

extern inline void
JvFree (void *ptr)
{
  return _Jv_Free (ptr);
}

# 20 "../../../libgcj-snapshot-1999-05-03/libjava/prims.cc" 2

# 1 "../../../libgcj-snapshot-1999-05-03/libjava/include/jvm.h" 1
 

 











# 1 "../../../libgcj-snapshot-1999-05-03/libjava/include/java-field.h" 1
 

 











# 1 "java/lang/reflect/Field.h" 1
 




#pragma interface

# 1 "java/lang/reflect/AccessibleObject.h" 1
 




#pragma interface




class java::lang::reflect::AccessibleObject : public java::lang::Object
{
public:   
  AccessibleObject ();
public:  
  virtual jboolean isAccessible () { return flag; }
  static void setAccessible (JArray<java::lang::reflect::AccessibleObject *> *, jboolean);
  virtual void setAccessible (jboolean);
private:
  static void checkPermission ();
  jboolean flag;
};


# 8 "java/lang/reflect/Field.h" 2


class java::lang::reflect::Field : public java::lang::reflect::AccessibleObject
{
public:
  Field ();
  jboolean equals (java::lang::Object *);
  java::lang::Class *getDeclaringClass () { return declaringClass; }
  java::lang::String *getName ();
  java::lang::Class *getType ();
  jint getModifiers ();
  jint hashCode ();
  jboolean getBoolean (java::lang::Object *);
  jchar getChar (java::lang::Object *);
  jbyte getByte (java::lang::Object *);
  jshort getShort (java::lang::Object *);
  jint getInt (java::lang::Object *);
  jlong getLong (java::lang::Object *);
  jfloat getFloat (java::lang::Object *);
  jdouble getDouble (java::lang::Object *);
  java::lang::Object *get (java::lang::Object *);
private:
  jboolean getBoolean (java::lang::Class *, java::lang::Object *);
  jchar getChar (java::lang::Class *, java::lang::Object *);
  jbyte getByte (java::lang::Class *, java::lang::Object *);
  jshort getShort (java::lang::Class *, java::lang::Object *);
  jint getInt (java::lang::Class *, java::lang::Object *);
  jlong getLong (java::lang::Class *, java::lang::Object *);
  jfloat getFloat (java::lang::Class *, java::lang::Object *);
  jdouble getDouble (java::lang::Class *, java::lang::Object *);
public:
  java::lang::Object *get (java::lang::Class *, java::lang::Object *);
  void setByte (java::lang::Object *, jbyte);
  void setShort (java::lang::Object *, jshort);
  void setInt (java::lang::Object *, jint);
  void setLong (java::lang::Object *, jlong);
  void setFloat (java::lang::Object *, jfloat);
  void setDouble (java::lang::Object *, jdouble);
  void setChar (java::lang::Object *, jchar);
  void setBoolean (java::lang::Object *, jboolean);
  void setByte (java::lang::Class *, java::lang::Object *, jbyte);
  void setShort (java::lang::Class *, java::lang::Object *, jshort);
  void setInt (java::lang::Class *, java::lang::Object *, jint);
  void setLong (java::lang::Class *, java::lang::Object *, jlong);
  void setFloat (java::lang::Class *, java::lang::Object *, jfloat);
  void setDouble (java::lang::Class *, java::lang::Object *, jdouble);
  void setChar (java::lang::Class *, java::lang::Object *, jchar);
  void setBoolean (java::lang::Class *, java::lang::Object *, jboolean);
private:
  void set (java::lang::Class *, java::lang::Object *, java::lang::Object *, java::lang::Class *);
public:
  void set (java::lang::Object *, java::lang::Object *);
  void set (java::lang::Class *, java::lang::Object *, java::lang::Object *);
  java::lang::String *toString ();
private:
  java::lang::Class *declaringClass;
  java::lang::String *name;
  jint offset;
  friend jfieldID _Jv_FromReflectedField (java::lang::reflect::Field *);
  friend jobject _Jv_JNI_ToReflectedField (_Jv_JNIEnv*, jclass, jfieldID);
  friend java::lang::Class;
};


# 15 "../../../libgcj-snapshot-1999-05-03/libjava/include/java-field.h" 2





struct _Jv_Field
{

  struct _Jv_Utf8Const*	name;


   

  jclass		type;

  _Jv_ushort		flags;




  _Jv_ushort		bsize;   


  union {
    int			boffset;   
    void*		addr;   
  } u;


  jboolean isResolved ()
  { return ! (flags & 0x8000 ); }

  public:

  int getOffset () { return u.boffset; }

  jobject getObjectField (jobject obj)
  { return *(jobject *)((char *)obj + getOffset ()); }

  jfieldID getNextInstanceField () { return this + 1; }

  jboolean isRef () { return ! isResolved () || ! type->isPrimitive (); }

   
  int getModifiers() { return flags; }





  _Jv_Utf8Const * getNameUtf8Const (jclass) { return name; }


};


inline jbyte
_Jv_GetStaticByteField (jclass, _Jv_Field* field)
{
  return * (jbyte *) field->u.addr;
}

inline jshort
_Jv_GetStaticShortField (jclass, _Jv_Field* field)
{
  return * (jshort *) field->u.addr;
}

inline jint
_Jv_GetStaticIntField (jclass, _Jv_Field* field)
{
  return * (jint *) field->u.addr;
}

inline jlong
_Jv_GetStaticLongField (jclass, _Jv_Field* field)
{
  return * (jlong *) field->u.addr;
}

inline jobject
_Jv_GetObjectField (jobject obj, _Jv_Field* field)
{
  return field->getObjectField (obj);
}

inline jbyte
_Jv_GetByteField (jobject obj, _Jv_Field* field)
{
  return * (jbyte *) ((char*) obj + field->getOffset ());
}

inline jshort
_Jv_GetShortField (jobject obj, _Jv_Field* field)
{
  return * (jshort *) ((char*) obj + field->getOffset ());
}
inline jint
_Jv_GetIntField (jobject obj, _Jv_Field* field)
{
  return * (jint *) ((char*) obj + field->getOffset ());
}
inline jlong
_Jv_GetLongField (jobject obj, _Jv_Field* field)
{
  return * (jlong *) ((char*) obj + field->getOffset ());
}

extern inline jfieldID 
_Jv_FromReflectedField (java::lang::reflect::Field *field)
{ 
  return (jfieldID) ((char *) field->declaringClass->fields + field->offset); 
} 



extern inline jfieldID
JvGetFirstInstanceField (jclass klass)
{
  return &(klass->fields[klass->static_field_count]);
}

extern inline jint
JvNumInstanceFields (jclass klass)
{
  return klass->field_count - klass->static_field_count;
}

extern inline jboolean
JvFieldIsRef (jfieldID field)
{
  return field->isRef ();
}

extern inline jobject
JvGetObjectField (jobject obj, _Jv_Field* field)
{
  return _Jv_GetObjectField (obj, field);
}





# 15 "../../../libgcj-snapshot-1999-05-03/libjava/include/jvm.h" 2


 
struct _Jv_VTable
{
  jclass clas;
  void *method[1];
};

 





# 38 "../../../libgcj-snapshot-1999-05-03/libjava/include/jvm.h"

extern int _Jv_strLengthUtf8(char* str, int len);

typedef struct _Jv_Utf8Const Utf8Const;
_Jv_Utf8Const *_Jv_makeUtf8Const (char *s, int len);
extern jboolean _Jv_equalUtf8Consts (_Jv_Utf8Const *, _Jv_Utf8Const *);
extern jboolean _Jv_equal (_Jv_Utf8Const *, jstring, jint);


extern java::lang::Class _CL_Q34java4lang6String ;

 
typedef void _Jv_FinalizerFunc (jobject);

 
void *_Jv_AllocObj (jsize size);
 
void *_Jv_AllocArray (jsize size);
 
void *_Jv_AllocBytes (jsize size);
 
void _Jv_InitGC (void);
 
void _Jv_RegisterFinalizer (void *object, _Jv_FinalizerFunc *method);

 
void _Jv_RunFinalizers (void);
 
void _Jv_RunAllFinalizers (void);
 
void _Jv_RunGC (void);

 
long _Jv_GCTotalMemory (void);
 
long _Jv_GCFreeMemory (void);

 
void *_Jv_AllocBytesChecked (jsize size);

 
inline jint
_Jv_HashCode (jobject obj)
{
  return (jint) obj;
}

extern "C" void _Jv_ThrowBadArrayIndex (jint bad_index);
extern "C" jobject _Jv_NewArray (jint type, jint size);
extern "C" jobject _Jv_NewMultiArray (jclass klass, jint dims, ...);
extern "C" void *_Jv_CheckCast (jclass klass, jobject obj);
extern "C" void *_Jv_LookupInterfaceMethod (jclass klass, Utf8Const *name,
					    Utf8Const *signature);
extern "C" void _Jv_CheckArrayStore (jobject array, jobject obj);
extern "C" void _Jv_RegisterClass (jclass klass);
extern "C" void _Jv_RegisterClasses (jclass *classes);
extern jclass _Jv_FindClass (_Jv_Utf8Const *name,
			     java::lang::ClassLoader *loader);
extern jclass _Jv_FindClassFromSignature (char *,
					  java::lang::ClassLoader *loader);

extern jobject _Jv_NewMultiArray (jclass, jint ndims, jint* dims);


# 21 "../../../libgcj-snapshot-1999-05-03/libjava/prims.cc" 2

# 1 "include/java-signal.h" 1
 

 

















  
# 22 "../../../libgcj-snapshot-1999-05-03/libjava/prims.cc" 2



# 1 "java/lang/Runtime.h" 1
 




#pragma interface




class java::lang::Runtime : public java::lang::Object
{
public:
  virtual java::lang::Process *exec (java::lang::String *);
  virtual java::lang::Process *exec (java::lang::String *, JArray<java::lang::String *> *);
  virtual java::lang::Process *exec (JArray<java::lang::String *> *);
  virtual java::lang::Process *exec (JArray<java::lang::String *> *, JArray<java::lang::String *> *);
private:
  static void checkExit (jint);
public:
  virtual void exit (jint);
  virtual jlong freeMemory ();
  virtual void gc ();
  virtual java::io::InputStream *getLocalizedInputStream (java::io::InputStream *);
  virtual java::io::OutputStream *getLocalizedOutputStream (java::io::OutputStream *);
  static java::lang::Runtime *getRuntime ();
private:
  void checkLink (java::lang::String *);
public:
  virtual void load (java::lang::String *);
  virtual void loadLibrary (java::lang::String *);
  virtual void runFinalization ();
  static void runFinalizersOnExit (jboolean);
  virtual jlong totalMemory ();
  virtual void traceInstructions (jboolean);
  virtual void traceMethodCalls (jboolean);
private:
  Runtime ();
  static java::lang::Runtime *self;
  jboolean finalize_on_exit;
};


# 25 "../../../libgcj-snapshot-1999-05-03/libjava/prims.cc" 2


# 1 "java/lang/Thread.h" 1
 




#pragma interface




class java::lang::Thread : public java::lang::Object
{
public:
  static jint activeCount ();
  virtual void checkAccess ();
  virtual jint countStackFrames ();
  static java::lang::Thread *currentThread ();
  virtual void destroy ();
  static void dumpStack ();
  static jint enumerate (JArray<java::lang::Thread *> *);
  java::lang::String *getName () { return name; }
  jint getPriority () { return priority; }
  java::lang::ThreadGroup *getThreadGroup () { return group; }
  virtual void interrupt ();
  static jboolean interrupted ();
  virtual jboolean isInterrupted ();
  jboolean isAlive () { return alive_flag; }
  jboolean isDaemon () { return daemon_flag; }
  void join ();
  void join (jlong);
  void join (jlong, jint);
  void resume ();
private:
  static void run__ (java::lang::Object *);
  void finish_ ();
  void run_ ();
public:
  virtual void run ();
  void setDaemon (jboolean);
  void setName (java::lang::String *);
  void setPriority (jint);
  static void sleep (jlong);
  static void sleep (jlong, jint);
  virtual void start ();
  void stop ();
  void stop (java::lang::Throwable *);
  void suspend ();
private:
  void initialize_native ();
  static java::lang::String *gen_name ();
public:
  Thread (java::lang::ThreadGroup *, java::lang::Runnable *, java::lang::String *);
  Thread ();
  Thread (java::lang::Runnable *);
  Thread (java::lang::String *);
  Thread (java::lang::ThreadGroup *, java::lang::Runnable *);
  Thread (java::lang::ThreadGroup *, java::lang::String *);
  Thread (java::lang::Runnable *, java::lang::String *);
  virtual java::lang::String *toString ();
  static void yield ();
  static const jint MAX_PRIORITY = 10L;
  static const jint MIN_PRIORITY = 1L;
  static const jint NORM_PRIORITY = 5L;
private:
  java::lang::ThreadGroup *group;
  java::lang::String *name;
  java::lang::Runnable *runnable;
  jint priority;
  jboolean daemon_flag;
  jboolean interrupt_flag;
  jboolean alive_flag;
  java::lang::Object *data;
  static jint nextThreadNumber;
};


# 27 "../../../libgcj-snapshot-1999-05-03/libjava/prims.cc" 2

# 1 "java/lang/ThreadGroup.h" 1
 




#pragma interface




class java::lang::ThreadGroup : public java::lang::Object
{
public:
  virtual jint activeCount ();
  virtual jint activeGroupCount ();
  virtual jboolean allowThreadSuspension (jboolean);
  void checkAccess ();
private:
  void remove (java::lang::ThreadGroup *);
public:  
  void remove (java::lang::Thread *);
  void add (java::lang::Thread *);
private:
  jboolean canDestroy ();
public:
  void destroy ();
private:
  jint enumerate (JArray<java::lang::Thread *> *, jint, jboolean);
public:
  virtual jint enumerate (JArray<java::lang::Thread *> *);
  virtual jint enumerate (JArray<java::lang::Thread *> *, jboolean);
private:
  jint enumerate (JArray<java::lang::ThreadGroup *> *, jint, jboolean);
public:
  virtual jint enumerate (JArray<java::lang::ThreadGroup *> *);
  virtual jint enumerate (JArray<java::lang::ThreadGroup *> *, jboolean);
  jint getMaxPriority () { return maxpri; }
  java::lang::String *getName () { return name; }
  java::lang::ThreadGroup *getParent () { return parent; }
  jboolean isDaemon () { return daemon_flag; }
  virtual jboolean isDestroyed ();
private:
  void list (java::lang::String *);
public:
  virtual void list ();
  jboolean parentOf (java::lang::ThreadGroup *);
  void resume ();
  void setDaemon (jboolean);
  void setMaxPriority (jint);
  void stop ();
  void suspend ();
  ThreadGroup ();
  ThreadGroup (java::lang::String *);
  ThreadGroup (java::lang::ThreadGroup *, java::lang::String *);
private:
  ThreadGroup (jint);
public:
  virtual java::lang::String *toString ();
  virtual void uncaughtException (java::lang::Thread *, java::lang::Throwable *);
private:
  java::lang::ThreadGroup *parent;
  java::lang::String *name;
  jint maxpri;
  java::util::Vector *threads;
  java::util::Vector *groups;
  jboolean daemon_flag;
  jboolean destroyed_flag;
  friend void JvRunMain (jclass klass, int argc, const char **argv);
};


# 28 "../../../libgcj-snapshot-1999-05-03/libjava/prims.cc" 2

# 1 "java/lang/FirstThread.h" 1
 




#pragma interface



class java::lang::FirstThread : public java::lang::Thread
{
public:
  void run ();
  FirstThread (java::lang::ThreadGroup *, java::lang::Class *, java::lang::Object *);
private:
  static void die (java::lang::String *);
  java::lang::Class *klass;
  java::lang::Object *args;
  friend void JvRunMain (jclass klass, int argc, const char **argv);
};


# 29 "../../../libgcj-snapshot-1999-05-03/libjava/prims.cc" 2

# 1 "java/lang/ArrayIndexOutOfBoundsException.h" 1
 




#pragma interface

# 1 "java/lang/IndexOutOfBoundsException.h" 1
 




#pragma interface

# 1 "java/lang/RuntimeException.h" 1
 




#pragma interface

# 1 "java/lang/Exception.h" 1
 




#pragma interface

# 1 "java/lang/Throwable.h" 1
 




#pragma interface



class java::lang::Throwable : public java::lang::Object
{
public:
  virtual java::lang::Throwable *fillInStackTrace () { return this; }
  virtual java::lang::String *getLocalizedMessage ();
  virtual java::lang::String *getMessage () { return detailMessage; }
  virtual void printStackTrace ();
  virtual void printStackTrace (java::io::PrintStream *);
  virtual void printStackTrace (java::io::PrintWriter *);
  Throwable ();
  Throwable (java::lang::String *);
  virtual java::lang::String *toString ();
private:
  java::lang::String *detailMessage;
};


# 8 "java/lang/Exception.h" 2


class java::lang::Exception : public java::lang::Throwable
{
public:
  Exception ();
  Exception (java::lang::String *);
};


# 8 "java/lang/RuntimeException.h" 2


class java::lang::RuntimeException : public java::lang::Exception
{
public:
  RuntimeException ();
  RuntimeException (java::lang::String *);
};


# 8 "java/lang/IndexOutOfBoundsException.h" 2


class java::lang::IndexOutOfBoundsException : public java::lang::RuntimeException
{
public:
  IndexOutOfBoundsException ();
  IndexOutOfBoundsException (java::lang::String *);
};


# 8 "java/lang/ArrayIndexOutOfBoundsException.h" 2


class java::lang::ArrayIndexOutOfBoundsException : public java::lang::IndexOutOfBoundsException
{
public:
  ArrayIndexOutOfBoundsException ();
  ArrayIndexOutOfBoundsException (jint);
  ArrayIndexOutOfBoundsException (java::lang::String *);
};


# 30 "../../../libgcj-snapshot-1999-05-03/libjava/prims.cc" 2

# 1 "java/lang/ArithmeticException.h" 1
 




#pragma interface



class java::lang::ArithmeticException : public java::lang::RuntimeException
{
public:
  ArithmeticException ();
  ArithmeticException (java::lang::String *);
};


# 31 "../../../libgcj-snapshot-1999-05-03/libjava/prims.cc" 2

# 1 "java/lang/ClassFormatError.h" 1
 




#pragma interface

# 1 "java/lang/LinkageError.h" 1
 




#pragma interface

# 1 "java/lang/Error.h" 1
 




#pragma interface



class java::lang::Error : public java::lang::Throwable
{
public:
  Error ();
  Error (java::lang::String *);
};


# 8 "java/lang/LinkageError.h" 2


class java::lang::LinkageError : public java::lang::Error
{
public:
  LinkageError ();
  LinkageError (java::lang::String *);
};


# 8 "java/lang/ClassFormatError.h" 2


class java::lang::ClassFormatError : public java::lang::LinkageError
{
public:
  ClassFormatError ();
  ClassFormatError (java::lang::String *);
};


# 32 "../../../libgcj-snapshot-1999-05-03/libjava/prims.cc" 2

# 1 "java/lang/ClassCastException.h" 1
 




#pragma interface



class java::lang::ClassCastException : public java::lang::RuntimeException
{
public:
  ClassCastException ();
  ClassCastException (java::lang::String *);
};


# 33 "../../../libgcj-snapshot-1999-05-03/libjava/prims.cc" 2

# 1 "java/lang/NegativeArraySizeException.h" 1
 




#pragma interface



class java::lang::NegativeArraySizeException : public java::lang::RuntimeException
{
public:
  NegativeArraySizeException ();
  NegativeArraySizeException (java::lang::String *);
};


# 34 "../../../libgcj-snapshot-1999-05-03/libjava/prims.cc" 2

# 1 "java/lang/NullPointerException.h" 1
 




#pragma interface



class java::lang::NullPointerException : public java::lang::RuntimeException
{
public:
  NullPointerException ();
  NullPointerException (java::lang::String *);
};


# 35 "../../../libgcj-snapshot-1999-05-03/libjava/prims.cc" 2

# 1 "java/lang/OutOfMemoryError.h" 1
 




#pragma interface

# 1 "java/lang/VirtualMachineError.h" 1
 




#pragma interface



class java::lang::VirtualMachineError : public java::lang::Error
{
public:
  VirtualMachineError ();
  VirtualMachineError (java::lang::String *);
};


# 8 "java/lang/OutOfMemoryError.h" 2


class java::lang::OutOfMemoryError : public java::lang::VirtualMachineError
{
public:
  OutOfMemoryError ();
  OutOfMemoryError (java::lang::String *);
};


# 36 "../../../libgcj-snapshot-1999-05-03/libjava/prims.cc" 2

# 1 "java/lang/ArrayStoreException.h" 1
 




#pragma interface



class java::lang::ArrayStoreException : public java::lang::RuntimeException
{
public:
  ArrayStoreException ();
  ArrayStoreException (java::lang::String *);
};


# 37 "../../../libgcj-snapshot-1999-05-03/libjava/prims.cc" 2

# 1 "java/lang/System.h" 1
 




#pragma interface



class java::lang::System : public java::lang::Object
{
public:
  static void arraycopy (java::lang::Object *, jint, java::lang::Object *, jint, jint);
  static jlong currentTimeMillis ();
  static void exit (jint);
  static void gc ();
  static java::lang::String *getenv (java::lang::String *);
private:
  static void init_properties ();
public:
  static java::util::Properties *getProperties ();
  static java::lang::String *getProperty (java::lang::String *);
  static java::lang::String *getProperty (java::lang::String *, java::lang::String *);
  static java::lang::SecurityManager *getSecurityManager ();
  static jint identityHashCode (java::lang::Object *);
  static void load (java::lang::String *);
  static void loadLibrary (java::lang::String *);
  static void runFinalization ();
  static void runFinalizersOnExit (jboolean);
private:
  static void checkSetIO ();
public:
  static void setErr (java::io::PrintStream *);
  static void setIn (java::io::InputStream *);
  static void setOut (java::io::PrintStream *);
  static void setProperties (java::util::Properties *);
  static void setSecurityManager (java::lang::SecurityManager *);
private:
  System ();
public:
  static java::io::InputStream *in;
  static java::io::PrintStream *out;
  static java::io::PrintStream *err;
private:
  static java::lang::SecurityManager *secman;
  static java::util::Properties *properties;
  static jboolean prop_init;
};


# 38 "../../../libgcj-snapshot-1999-05-03/libjava/prims.cc" 2

# 1 "java/lang/reflect/Modifier.h" 1
 




#pragma interface



class java::lang::reflect::Modifier : public java::lang::Object
{
public:
  Modifier ();
  static jboolean isAbstract (jint);
  static jboolean isFinal (jint);
  static jboolean isInterface (jint);
  static jboolean isNative (jint);
  static jboolean isPrivate (jint);
  static jboolean isProtected (jint);
  static jboolean isPublic (jint);
  static jboolean isStatic (jint);
  static jboolean isSynchronized (jint);
  static jboolean isTransient (jint);
  static jboolean isVolatile (jint);
  static java::lang::String *toString (jint);
public:  
  static void toString (jint, java::lang::StringBuffer *);
public:
  static const jint PUBLIC = 1L;
  static const jint PRIVATE = 2L;
  static const jint PROTECTED = 4L;
  static const jint STATIC = 8L;
  static const jint FINAL = 16L;
  static const jint SYNCHRONIZED = 32L;
  static const jint VOLATILE = 64L;
  static const jint TRANSIENT = 128L;
  static const jint NATIVE = 256L;
  static const jint INTERFACE = 512L;
  static const jint ABSTRACT = 1024L;
};


# 39 "../../../libgcj-snapshot-1999-05-03/libjava/prims.cc" 2

# 1 "java/io/PrintStream.h" 1
 




#pragma interface

# 1 "java/io/FilterOutputStream.h" 1
 




#pragma interface

# 1 "java/io/OutputStream.h" 1
 




#pragma interface




class java::io::OutputStream : public java::lang::Object
{
public:
  OutputStream ();
  virtual void write (jint) = 0;
  virtual void write (jbyteArray);
  virtual void write (jbyteArray, jint, jint);
  virtual void flush ();
  virtual void close ();
};


# 8 "java/io/FilterOutputStream.h" 2



class java::io::FilterOutputStream : public java::io::OutputStream
{
public:
  virtual void close ();
  FilterOutputStream (java::io::OutputStream *);
  virtual void flush ();
  virtual void write (jint);
  virtual void write (jbyteArray);
  virtual void write (jbyteArray, jint, jint);
public:   
  java::io::OutputStream *out;
};


# 8 "java/io/PrintStream.h" 2



extern "Java"
{
  namespace gnu
  {
    namespace gcj
    {
      namespace convert
      {
        class UnicodeToBytes;
      };
    };
  };
};

class java::io::PrintStream : public java::io::FilterOutputStream
{
public:
  virtual jboolean checkError () { return error; }
  virtual void close ();
  virtual void flush ();
private:
  void print (java::lang::String *, jboolean);
  void print (jcharArray, jint, jint, jboolean);
  void writeChars (jcharArray, jint, jint);
  void writeChars (java::lang::String *, jint, jint);
public:
  virtual void print (jboolean);
  virtual void print (jint);
  virtual void print (jlong);
  virtual void print (jfloat);
  virtual void print (jdouble);
  virtual void print (java::lang::Object *);
  virtual void print (java::lang::String *);
  virtual void print (jchar);
  virtual void print (jcharArray);
  virtual void println ();
  virtual void println (jboolean);
  virtual void println (jint);
  virtual void println (jlong);
  virtual void println (jfloat);
  virtual void println (jdouble);
  virtual void println (java::lang::Object *);
  virtual void println (java::lang::String *);
  virtual void println (jchar);
  virtual void println (jcharArray);
  PrintStream (java::io::OutputStream *);
  PrintStream (java::io::OutputStream *, jboolean);
public:   
  virtual void setError ();
public:
  virtual void write (jint);
  virtual void write (jbyteArray, jint, jint);
public:  
  java::io::BufferedOutputStream *out;
  gnu::gcj::convert::UnicodeToBytes *converter;
  jcharArray work;
private:
  jboolean error;
  jboolean auto_flush;
  static jcharArray line_separator;
};


# 40 "../../../libgcj-snapshot-1999-05-03/libjava/prims.cc" 2




extern java::lang::Class _CL_Q34java4lang6Object ;

 
 
static java::lang::OutOfMemoryError *no_memory;

 
























jboolean
_Jv_equalUtf8Consts (Utf8Const* a, Utf8Const *b)
{
  register int len;
  register _Jv_ushort *aptr, *bptr;
  if (a == b)
    return true;
  if (a->hash != b->hash)
    return false;
  len = a->length;
  if (b->length != len)
    return false;
  aptr = (_Jv_ushort *)a->data;
  bptr = (_Jv_ushort *)b->data;
  len = (len + 1) >> 1;
  while (--len >= 0)
    if (*aptr++ != *bptr++)
      return false;
  return true;
}

 



jboolean
_Jv_equal (Utf8Const* a, jstring str, jint hash)
{
  if (a->hash != (_Jv_ushort) hash)
    return false;
  jint len = str->length();
  jint i = 0;
  jchar *sptr = _Jv_GetStringChars (str);
  register unsigned char* ptr = (unsigned char*) a->data;
  register unsigned char* limit = ptr + a->length;
  for (;; i++, sptr++)
    {
      int ch = (( ptr ) >= (  limit ) ? -1 : *( ptr ) < 128 ? *( ptr )++ : (*( ptr )&0xE0) == 0xC0 && (( ptr )+=2)<=(  limit ) && (( ptr )[-1]&0xC0) == 0x80 ? ((( ptr )[-2] & 0x1F) << 6) + (( ptr )[-1] & 0x3F) : (*( ptr ) & 0xF0) == 0xE0 && (( ptr ) += 3) <= (  limit ) && (( ptr )[-2] & 0xC0) == 0x80 && (( ptr )[-1] & 0xC0) == 0x80 ? ((( ptr )[-3]&0x0F) << 12) + ((( ptr )[-2]&0x3F) << 6) + (( ptr )[-1]&0x3F) : (( ptr )++, -1)) ;
      if (i == len)
	return ch < 0;
      if (ch != *sptr)
	return false;
    }
  return true;
}

 
int
_Jv_strLengthUtf8(char* str, int len)
{
  register unsigned char* ptr;
  register unsigned char* limit;
  int str_length;

  ptr = (unsigned char*) str;
  limit = ptr + len;
  str_length = 0;
  for (; ptr < limit; str_length++) {
    if ((( ptr ) >= (  limit ) ? -1 : *( ptr ) < 128 ? *( ptr )++ : (*( ptr )&0xE0) == 0xC0 && (( ptr )+=2)<=(  limit ) && (( ptr )[-1]&0xC0) == 0x80 ? ((( ptr )[-2] & 0x1F) << 6) + (( ptr )[-1] & 0x3F) : (*( ptr ) & 0xF0) == 0xE0 && (( ptr ) += 3) <= (  limit ) && (( ptr )[-2] & 0xC0) == 0x80 && (( ptr )[-1] & 0xC0) == 0x80 ? ((( ptr )[-3]&0x0F) << 12) + ((( ptr )[-2]&0x3F) << 6) + (( ptr )[-1]&0x3F) : (( ptr )++, -1))  < 0) {
      return (-1);
    }
  }
  return (str_length);
}

 


static jint
hashUtf8String (char* str, int len)
{
  register unsigned char* ptr = (unsigned char*) str;
  register unsigned char* limit = ptr + len;
  jint hash = 0;

  for (; ptr < limit;)
    {
      int ch = (( ptr ) >= (  limit ) ? -1 : *( ptr ) < 128 ? *( ptr )++ : (*( ptr )&0xE0) == 0xC0 && (( ptr )+=2)<=(  limit ) && (( ptr )[-1]&0xC0) == 0x80 ? ((( ptr )[-2] & 0x1F) << 6) + (( ptr )[-1] & 0x3F) : (*( ptr ) & 0xF0) == 0xE0 && (( ptr ) += 3) <= (  limit ) && (( ptr )[-2] & 0xC0) == 0x80 && (( ptr )[-1] & 0xC0) == 0x80 ? ((( ptr )[-3]&0x0F) << 12) + ((( ptr )[-2]&0x3F) << 6) + (( ptr )[-1]&0x3F) : (( ptr )++, -1)) ;
       

      hash = (31 * hash) + ch;
    }
  return hash;
}

_Jv_Utf8Const *
_Jv_makeUtf8Const (char* s, int len)
{
  if (len < 0)
    len = strlen (s);
  Utf8Const* m = (Utf8Const*) _Jv_AllocBytes (sizeof(Utf8Const) + len + 1);
  if (! m)
    JvThrow (no_memory);
  memcpy (m->data, s, len);
  m->data[len] = 0;
  m->length = len;
  m->hash = hashUtf8String (s, len) & 0xFFFF;
  return (m);
}








void
_Jv_Abort (const char *, const char *, int, const char *message)

{





  java::io::PrintStream *err = java::lang::System::err;
  err->print(JvNewStringLatin1 ("libgcj failure: "));
  err->println(JvNewStringLatin1 (message));
  err->flush();

  abort ();
}

static void
fail_on_finalization (jobject)
{
  _Jv_Abort (0, 0, 0,  "object was finalized" ) ;
}

void
_Jv_GCWatch (jobject obj)
{
  _Jv_RegisterFinalizer (obj, fail_on_finalization);
}

void
_Jv_ThrowBadArrayIndex(jint bad_index)
{
  JvThrow (new java::lang::ArrayIndexOutOfBoundsException
	   (java::lang::String::valueOf(bad_index)));
}

void*
_Jv_CheckCast (jclass c, jobject obj)
{
  if (obj != 0  && ! c->isAssignableFrom(obj->getClass()))
    JvThrow (new java::lang::ClassCastException);
  return obj;
}

void
_Jv_CheckArrayStore (jobject arr, jobject obj)
{
  if (obj)
    {
       ;
      jclass arr_class = arr->getClass();
       ;
      jclass elt_class = arr_class->getComponentType();
      jclass obj_class = obj->getClass();
      if (! elt_class->isAssignableFrom(obj_class))
	JvThrow (new java::lang::ArrayStoreException);
    }
}



 
void *
_Jv_AllocBytesChecked (jsize size)
{
  void *r = _Jv_AllocBytes (size);
  if (! r)
    _Jv_Throw (no_memory);
  return r;
}

 
 
 
jobject
_Jv_AllocObject (jclass c, jint size)
{
  _Jv_InitClass (c);

  jobject obj = (jobject) _Jv_AllocObj (size);
  if (! obj)
    JvThrow (no_memory);
  *((_Jv_VTable **) obj) = c->vtable;

   
   
   
   
   
   
   
  if (c->vtable->method[1] != _CL_Q34java4lang6Object .vtable->method[1])
    _Jv_RegisterFinalizer (obj, _Jv_FinalizeObject);

  return obj;
}

 
 
 
jobjectArray
_Jv_NewObjectArray (jsize count, jclass elementClass, jobject init)
{
  if (count < 0)
    JvThrow (new java::lang::NegativeArraySizeException);

   
  if ((size_t) count > (((size_t) (~ (size_t) 0))  - sizeof (__JArray)) / sizeof (jobject))
    JvThrow (no_memory);

  size_t size = count * sizeof (jobject) + sizeof (__JArray);
  jclass clas = _Jv_FindArrayClass (elementClass);
  jobjectArray obj = (jobjectArray) _Jv_AllocArray (size);
  if (! obj)
    JvThrow (no_memory);
  obj->length = count;
  jobject* ptr = elements(obj);
   
   
  if (init)
    {
      while (--count >= 0)
	*ptr++ = init;
    }
   
   
   
  *((_Jv_VTable **) obj) = clas->vtable;
  return obj;
}

 
 
jobject
_Jv_NewPrimArray (jclass eltype, jint count)
{
  int elsize = eltype->size();
  if (count < 0)
    JvThrow (new java::lang::NegativeArraySizeException ());

   
  if ((size_t) count > (((size_t) (~ (size_t) 0))  - sizeof (__JArray)) / elsize)
    JvThrow (no_memory);

  __JArray *arr = (__JArray*) _Jv_AllocObj (sizeof (__JArray)
					    + elsize * count);
  if (! arr)
    JvThrow (no_memory);
  arr->length = count;
   

  jclass klass = _Jv_FindArrayClass (eltype);
   
   
   
  *((_Jv_VTable **) arr) = klass->vtable;
  return arr;
}

jcharArray
JvNewCharArray (jint length)
{
  return (jcharArray) _Jv_NewPrimArray (((jclass) & _Jv_charClass) , length);
}

jbooleanArray
JvNewBooleanArray (jint length)
{
  return (jbooleanArray) _Jv_NewPrimArray (((jclass) & _Jv_booleanClass) , length);
}

jbyteArray
JvNewByteArray (jint length)
{
  return (jbyteArray) _Jv_NewPrimArray (((jclass) & _Jv_byteClass) , length);
}

jshortArray
JvNewShortArray (jint length)
{
  return (jshortArray) _Jv_NewPrimArray (((jclass) & _Jv_shortClass) , length);
}

jintArray
JvNewIntArray (jint length)
{
  return (jintArray) _Jv_NewPrimArray (((jclass) & _Jv_intClass) , length);
}

jlongArray
JvNewLongArray (jint length)
{
  return (jlongArray) _Jv_NewPrimArray (((jclass) & _Jv_longClass) , length);
}

jfloatArray
JvNewFloatArray (jint length)
{
  return (jfloatArray) _Jv_NewPrimArray (((jclass) & _Jv_floatClass) , length);
}

jdoubleArray
JvNewDoubleArray (jint length)
{
  return (jdoubleArray) _Jv_NewPrimArray (((jclass) & _Jv_doubleClass) , length);
}

jobject
_Jv_NewArray (jint type, jint size)
{
  switch (type)
    {
      case  4:  return JvNewBooleanArray (size);
      case  5:  return JvNewCharArray (size);
      case  6:  return JvNewFloatArray (size);
      case  7:  return JvNewDoubleArray (size);
      case  8:  return JvNewByteArray (size);
      case  9:  return JvNewShortArray (size);
      case 10:  return JvNewIntArray (size);
      case 11:  return JvNewLongArray (size);
    }
  _Jv_Abort (0, 0, 0,  "newarray - bad type code" ) ;
  return 0 ;			 
}

jobject
_Jv_NewMultiArray (jclass type, jint dimensions, jint *sizes)
{
   ;
  jclass element_type = type->getComponentType();
  jobject result;
  if (element_type->isPrimitive())
    result = _Jv_NewPrimArray (element_type, sizes[0]);
  else
    result = _Jv_NewObjectArray (sizes[0], element_type, 0 );

  if (dimensions > 1)
    {
       ;
       ;
      jobject *contents = elements ((jobjectArray) result);
      for (int i = 0; i < sizes[0]; ++i)
	contents[i] = _Jv_NewMultiArray (element_type, dimensions - 1,
					 sizes + 1);
    }

  return result;
}

jobject
_Jv_NewMultiArray (jclass array_type, jint dimensions, ...)
{
  va_list args;
  jint sizes[dimensions];
  ( args  = ((__gnuc_va_list) __builtin_next_arg (  dimensions ))) ;
  for (int i = 0; i < dimensions; ++i)
    {
      jint size = ( args  = (__gnuc_va_list) ((char *) ( args ) + (((sizeof (   jint  ) + sizeof (int) - 1) / sizeof (int)) * sizeof (int)) ), *((  jint  *) (void *) ((char *) ( args ) - (((sizeof (   jint  ) + sizeof (int) - 1) / sizeof (int)) * sizeof (int)) ))) ;
      sizes[i] = size;
    }
  ((void)0) ;

  return _Jv_NewMultiArray (array_type, dimensions, sizes);
}



class _Jv_PrimClass : public java::lang::Class
{
public:
   
   
  _Jv_PrimClass (jobject cname, jbyte sig, jint len)
    {
      using namespace java::lang::reflect;

       
       
      next = 0 ;
      name = _Jv_makeUtf8Const ((char *) cname, -1);
      accflags = Modifier::PUBLIC | Modifier::FINAL;
      superclass = 0 ;
      constants.size = 0;
      constants.tags = 0 ;
      constants.data = 0 ;
      methods = 0 ;
      method_count = sig;
      vtable_method_count = 0;
      fields = 0 ;
      size_in_bytes = len;
      field_count = 0;
      static_field_count = 0;
      vtable = ((_Jv_VTable *) -1) ;
      interfaces = 0 ;
      loader = 0 ;
      interface_count = 0;
      state = 0;		 
      thread = 0 ;
    }
};




_Jv_PrimClass _Jv_byteClass((jobject) "byte", (jbyte)   'B' , (jint)   1 ) ;
_Jv_PrimClass _Jv_shortClass((jobject) "short", (jbyte)   'S' , (jint)   2 ) ;
_Jv_PrimClass _Jv_intClass((jobject) "int", (jbyte)   'I' , (jint)   4 ) ;
_Jv_PrimClass _Jv_longClass((jobject) "long", (jbyte)   'J' , (jint)   8 ) ;
_Jv_PrimClass _Jv_booleanClass((jobject) "boolean", (jbyte)   'Z' , (jint)   1 ) ;
_Jv_PrimClass _Jv_charClass((jobject) "char", (jbyte)   'C' , (jint)   2 ) ;
_Jv_PrimClass _Jv_floatClass((jobject) "float", (jbyte)   'F' , (jint)   4 ) ;
_Jv_PrimClass _Jv_doubleClass((jobject) "double", (jbyte)   'D' , (jint)   8 ) ;
_Jv_PrimClass _Jv_voidClass((jobject) "void", (jbyte)   'V' , (jint)   0 ) ;

jclass
_Jv_FindClassFromSignature (char *sig, java::lang::ClassLoader *loader)
{
  switch (*sig)
    {
    case 'B':
      return ((jclass) & _Jv_byteClass) ;
    case 'S':
      return ((jclass) & _Jv_shortClass) ;
    case 'I':
      return ((jclass) & _Jv_intClass) ;
    case 'J':
      return ((jclass) & _Jv_longClass) ;
    case 'Z':
      return ((jclass) & _Jv_booleanClass) ;
    case 'C':
      return ((jclass) & _Jv_charClass) ;
    case 'F':
      return ((jclass) & _Jv_floatClass) ;
    case 'D':
      return ((jclass) & _Jv_doubleClass) ;
    case 'V':
      return ((jclass) & _Jv_voidClass) ;
    case 'L':
      {
	int i;
	for (i = 1; sig[i] && sig[i] != ';'; ++i)
	  ;
	_Jv_Utf8Const *name = _Jv_makeUtf8Const (&sig[1], i - 1);
	return _Jv_FindClass (name, loader);
      }
    case '[':
      return _Jv_FindArrayClass (_Jv_FindClassFromSignature (&sig[1], loader));
    }
  _Jv_Abort (0, 0, 0,  "couldn't understand class signature" ) ;
  return 0 ;			 
}



JArray<jstring> *
JvConvertArgv (int argc, const char **argv)
{
  if (argc < 0)
    argc = 0;
  jobjectArray ar = JvNewObjectArray(argc, & _CL_Q34java4lang6String , 0 );
  jobject* ptr = elements(ar);
  for (int i = 0;  i < argc;  i++)
    {
      const char *arg = argv[i];
       
      *ptr++ = JvNewStringLatin1(arg, strlen(arg));
    }
  return (JArray<jstring>*) ar;
}

 
 
 
 

 
static jobject arg_vec;

 
static java::lang::ThreadGroup *main_group;

 
static java::lang::Thread *main_thread;

void
JvRunMain (jclass klass, int argc, const char **argv)
{
  do {} while (0) ;
  do {} while (0) ;

  no_memory = new java::lang::OutOfMemoryError;

  arg_vec = JvConvertArgv (argc - 1, argv + 1);
  main_group = new java::lang::ThreadGroup (23);
  main_thread = new java::lang::FirstThread (main_group, klass, arg_vec);

  main_thread->start();
  _Jv_ThreadWait ();

  java::lang::Runtime::getRuntime ()->exit (0);
}



void *
_Jv_Malloc (jsize size)
{
  if (size == 0)
    size = 1;
  void *ptr = malloc ((size_t) size);
  if (ptr == 0 )
    JvThrow (no_memory);
  return ptr;
}

void
_Jv_Free (void* ptr)
{
  return free (ptr);
}
----------------------------------------------------------------------
Ciao
	Oliver

------=_NextPart_000_634f27d6_f3115a6$6c24e94f--





Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]