public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* Re: libgcj/6554: cni compiler bug
@ 2002-05-09 18:56 Tom Tromey
0 siblings, 0 replies; 2+ messages in thread
From: Tom Tromey @ 2002-05-09 18:56 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR libgcj/6554; it has been noted by GNATS.
From: Tom Tromey <tromey@redhat.com>
To: Chris Inacio <inacio@wayne.spinnakernet.com>
Cc: gcc-gnats@gcc.gnu.org, inacio@spinnakernet.com
Subject: Re: libgcj/6554: cni compiler bug
Date: 09 May 2002 18:20:00 -0600
>>>>> "Chris" == Chris Inacio <inacio@wayne.spinnakernet.com> writes:
Chris> Number: 6554
Chris> Synopsis: Java cni bug finding class$
I looked at this a little bit.
I have a question about something:
Chris> # 1 "/tmp/bigClass.h" 1
Chris> #pragma interface
Chris> extern "Java"
Chris> {
Chris> namespace com
Chris> {
Chris> namespace spinnakernet
Chris> {
Chris> namespace bogus
Chris> {
Chris> namespace here
Chris> {
Chris> class bigClass;
Chris> }
Chris> }
Chris> }
Chris> }
Chris> }
Note how this is lacking a trailing `;'.
Why is that? As far as I know, gcjh always puts a `;' here.
Tom
^ permalink raw reply [flat|nested] 2+ messages in thread
* libgcj/6554: cni compiler bug
@ 2002-05-03 15:16 Chris Inacio
0 siblings, 0 replies; 2+ messages in thread
From: Chris Inacio @ 2002-05-03 15:16 UTC (permalink / raw)
To: gcc-gnats; +Cc: inacio
>Number: 6554
>Category: libgcj
>Synopsis: Java cni bug finding class$
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: ice-on-legal-code
>Submitter-Id: net
>Arrival-Date: Fri May 03 15:16:01 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator: Chris Inacio
>Release: 3.1 20020430 (prerelease)
>Organization:
Spinnaker Networks
>Environment:
System: Linux wayne 2.4.2-2 #1 Sun Apr 8 20:41:30 EDT 2001 i686 unknown
Architecture: i686
host: i686-pc-linux-gnu
build: i686-pc-linux-gnu
target: i686-pc-linux-gnu
configured with: ../gcc/configure --host=i686-pc-linux-gnu --prefix=/spin/awk/compilers/gcc-3.1-hol --enable-shared --enable-threads=posix --enable-languages=c,c++,java --enable-version-specific-runtime-libs
>Description:
/tmp/tesla.cc: In member function `virtual JArray<java::lang::String*>*
com::spinnakernet::bogus::here::bigClass::getPortAttr(__java_int)':
/tmp/tesla.cc:15: can't find class$
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
>How-To-Repeat:
# 1 "/tmp/tesla.cc"
# 1 "<built-in>"
# 1 "<command line>"
# 1 "/tmp/tesla.cc"
# 1 "/usr/local/include/gcj/cni.h" 1 3
# 16 "/usr/local/include/gcj/cni.h" 3
# 1 "/usr/local/include/java/lang/Object.h" 1 3
# 14 "/usr/local/include/java/lang/Object.h" 3
#pragma interface
# 1 "/usr/local/include/gcj/javaprims.h" 1 3
# 15 "/usr/local/include/gcj/javaprims.h" 3
#pragma GCC java_exceptions
# 27 "/usr/local/include/gcj/javaprims.h" 3
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 Externalizable;
class File;
class FileDescriptor;
class FileFilter;
class FileInputStream;
class FileNotFoundException;
class FileOutputStream;
class FilePermission;
class FileReader;
class FileWriter;
class FilenameFilter;
class FilterInputStream;
class FilterOutputStream;
class FilterReader;
class FilterWriter;
class IOException;
class InputStream;
class InputStreamReader;
class InterfaceComparator;
class InterruptedIOException;
class InvalidClassException;
class InvalidObjectException;
class LineNumberInputStream;
class LineNumberReader;
class MemberComparator;
class NotActiveException;
class NotSerializableException;
class ObjectInput;
class ObjectInputStream;
class ObjectInputStream$GetField;
class ObjectInputValidation;
class ObjectOutput;
class ObjectOutputStream;
class ObjectOutputStream$PutField;
class ObjectStreamClass;
class ObjectStreamConstants;
class ObjectStreamException;
class ObjectStreamField;
class OptionalDataException;
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 SerializablePermission;
class StreamCorruptedException;
class StreamTokenizer;
class StringBufferInputStream;
class StringReader;
class StringWriter;
class SyncFailedException;
class UTFDataFormatException;
class UnsupportedEncodingException;
class ValidatorAndPriority;
class WriteAbortedException;
class Writer;
};
namespace lang
{
class AbstractMethodError;
class ArithmeticException;
class ArrayIndexOutOfBoundsException;
class ArrayStoreException;
class Boolean;
class Byte;
class CPlusPlusDemangler;
class Character;
class Character$Subset;
class Character$UnicodeBlock;
class Class;
class ClassCastException;
class ClassCircularityError;
class ClassFormatError;
class ClassLoader;
class ClassNotFoundException;
class CloneNotSupportedException;
class Cloneable;
class Comparable;
class Compiler;
class ConcreteProcess;
class Double;
class Error;
class Exception;
class ExceptionInInitializerError;
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 RuntimePermission;
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 ref
{
class PhantomReference;
class Reference;
class ReferenceQueue;
class SoftReference;
class WeakReference;
};
namespace reflect
{
class AccessibleObject;
class Array;
class Constructor;
class Field;
class InvocationTargetException;
class Member;
class Method;
class Modifier;
class ReflectPermission;
};
};
namespace util
{
class AbstractCollection;
class AbstractList;
class AbstractList$AbstractListItr;
class AbstractMap;
class AbstractSequentialList;
class AbstractSet;
class ArrayList;
class Arrays;
class Arrays$ListImpl;
class BasicMapEntry;
class BitSet;
class Calendar;
class Collection;
class Collections;
class Collections$ReverseComparator;
class Collections$SynchronizedCollection;
class Collections$SynchronizedIterator;
class Collections$SynchronizedList;
class Collections$SynchronizedListIterator;
class Collections$SynchronizedMap;
class Collections$SynchronizedSet;
class Collections$SynchronizedSortedMap;
class Collections$SynchronizedSortedSet;
class Collections$UnmodifiableCollection;
class Collections$UnmodifiableIterator;
class Collections$UnmodifiableList;
class Collections$UnmodifiableListIterator;
class Collections$UnmodifiableMap;
class Collections$UnmodifiableSet;
class Collections$UnmodifiableSortedMap;
class Collections$UnmodifiableSortedSet;
class Comparator;
class ConcurrentModificationException;
class Date;
class Dictionary;
class EmptyStackException;
class Enumeration;
class EventListener;
class EventObject;
class GregorianCalendar;
class HashMap;
class HashMap$Entry;
class HashMap$HashIterator;
class HashSet;
class Hashtable;
class Hashtable$Entry;
class Hashtable$Enumerator;
class Hashtable$HashIterator;
class Iterator;
class LinkedList;
class LinkedList$Entry;
class LinkedList$LinkedListItr;
class List;
class ListIterator;
class ListResourceBundle;
class Locale;
class Map;
class Map$Entry;
class MissingResourceException;
class NoSuchElementException;
class Observable;
class Observer;
class Properties;
class PropertyPermission;
class PropertyResourceBundle;
class Random;
class ResourceBundle;
class Set;
class SimpleTimeZone;
class SortedMap;
class SortedSet;
class Stack;
class StringTokenizer;
class SubList;
class TimeZone;
class Timer;
class Timer$Scheduler;
class Timer$TaskQueue;
class TimerTask;
class TooManyListenersException;
class TreeMap;
class TreeMap$Node;
class TreeMap$SubMap;
class TreeMap$TreeIterator;
class TreeMap$VerifyResult;
class TreeSet;
class Vector;
class WeakHashMap;
class WeakHashMap$Entry;
class WeakHashMap$WeakBucket;
class WeakHashMap$WeakEntrySet;
namespace jar
{
class Attributes;
class Attributes$Name;
class JarEntry;
class JarException;
class JarFile;
class JarFile$JarEnumeration;
class JarInputStream;
class JarOutputStream;
class Manifest;
};
namespace zip
{
class Adler32;
class CRC32;
class CheckedInputStream;
class CheckedOutputStream;
class Checksum;
class DataFormatException;
class Deflater;
class DeflaterOutputStream;
class GZIPInputStream;
class GZIPOutputStream;
class Inflater;
class InflaterInputStream;
class ZipConstants;
class ZipEntry;
class ZipEnumeration;
class ZipException;
class ZipFile;
class ZipInputStream;
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) __attribute__((__malloc__));
extern "C" jboolean _Jv_IsInstanceOf(jobject, jclass);
extern "C" jstring _Jv_AllocString(jsize) __attribute__((__malloc__));
extern "C" jstring _Jv_NewString (const jchar*, jsize)
__attribute__((__malloc__));
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)
__attribute__((__malloc__));
extern "C" jsize _Jv_GetStringUTFLength (jstring);
extern "C" jsize _Jv_GetStringUTFRegion (jstring, jsize, jsize, char *);
extern "C" void _Jv_Throw (jthrowable) __attribute__ ((__noreturn__));
extern "C" void* _Jv_Malloc (jsize) __attribute__((__malloc__));
extern "C" void* _Jv_Realloc (void *, 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];
};
# 17 "/usr/local/include/java/lang/Object.h" 2 3
struct _JvObjectPrefix
{
protected:
virtual void nacd_1 (void) {};
virtual void nacd_2 (void) {};
};
class java::lang::Object : public _JvObjectPrefix
{
protected:
virtual void finalize (void);
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);
# 57 "/usr/local/include/java/lang/Object.h" 3
static java::lang::Class class$;
protected:
virtual jobject clone (void);
private:
jobject sync_info;
void sync_init (void);
};
# 17 "/usr/local/include/gcj/cni.h" 2 3
# 1 "/usr/local/include/java/lang/Class.h" 1 3
# 15 "/usr/local/include/java/lang/Class.h" 3
#pragma interface
# 1 "/home/spin_test/awk/compilers/gcc-3.1-hol/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 1 3
# 147 "/home/spin_test/awk/compilers/gcc-3.1-hol/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 3
typedef int ptrdiff_t;
# 201 "/home/spin_test/awk/compilers/gcc-3.1-hol/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 3
typedef unsigned int size_t;
# 18 "/usr/local/include/java/lang/Class.h" 2 3
# 1 "/usr/local/include/java/lang/String.h" 1 3
#pragma interface
# 1 "/usr/local/include/gcj/array.h" 1 3
# 16 "/usr/local/include/gcj/array.h" 3
extern "Java" {
class __JArray : public java::lang::Object
{
protected:
__JArray () : length (0)
{
}
public:
const jsize 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>
inline T* elements(JArray<T>& x) { return x.data; }
template<class T>
inline 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;
extern java::lang::Class _Jv_byteClass, _Jv_shortClass, _Jv_intClass,
_Jv_longClass, _Jv_booleanClass, _Jv_charClass, _Jv_floatClass,
_Jv_doubleClass, _Jv_voidClass;
extern "C" jobjectArray _Jv_NewObjectArray(jsize length, jclass, jobject init);
extern "C" jobject _Jv_NewPrimArray (jclass eltype, jint count);
extern inline jobjectArray
JvNewObjectArray (jsize length, jclass cls, jobject init)
{
return _Jv_NewObjectArray (length, cls, init);
}
extern inline jcharArray
JvNewCharArray (jint length)
{
return (jcharArray) _Jv_NewPrimArray ((& _Jv_charClass), length);
}
extern inline jbooleanArray
JvNewBooleanArray (jint length)
{
return (jbooleanArray) _Jv_NewPrimArray ((& _Jv_booleanClass), length);
}
extern inline jbyteArray
JvNewByteArray (jint length)
{
return (jbyteArray) _Jv_NewPrimArray ((& _Jv_byteClass), length);
}
extern inline jshortArray
JvNewShortArray (jint length)
{
return (jshortArray) _Jv_NewPrimArray ((& _Jv_shortClass), length);
}
extern inline jintArray
JvNewIntArray (jint length)
{
return (jintArray) _Jv_NewPrimArray ((& _Jv_intClass), length);
}
extern inline jlongArray
JvNewLongArray (jint length)
{
return (jlongArray) _Jv_NewPrimArray ((& _Jv_longClass), length);
}
extern inline jfloatArray
JvNewFloatArray (jint length)
{
return (jfloatArray) _Jv_NewPrimArray ((& _Jv_floatClass), length);
}
extern inline jdoubleArray
JvNewDoubleArray (jint length)
{
return (jdoubleArray) _Jv_NewPrimArray ((& _Jv_doubleClass), length);
}
extern "C" jstringArray JvConvertArgv(int argc, const char **argv);
inline jsize JvGetArrayLength (jarray array) { return array->length; }
# 10 "/usr/local/include/java/lang/String.h" 2 3
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 *);
jint compareTo (::java::lang::Object *);
jint compareToIgnoreCase (::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::util::Locale *);
::java::lang::String *toUpperCase (::java::util::Locale *);
::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 *);
static void rehash ();
::java::lang::Object *data;
jint boffset;
jint count;
static const jlong serialVersionUID = -6849794470754667710LL;
public:
static ::java::util::Comparator *CASE_INSENSITIVE_ORDER;
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);
static ::java::lang::Class class$;
};
# 20 "/usr/local/include/java/lang/Class.h" 2 3
# 1 "/usr/local/include/java/net/URL.h" 1 3
#pragma interface
extern "Java"
{
namespace java
{
namespace net
{
class URLConnection;
class URL;
class URLStreamHandlerFactory;
class URLStreamHandler;
}
}
};
class ::java::net::URL : public ::java::lang::Object
{
public:
URL (::java::lang::String *, ::java::lang::String *, jint, ::java::lang::String *);
URL (::java::lang::String *, ::java::lang::String *, ::java::lang::String *);
URL (::java::lang::String *, ::java::lang::String *, jint, ::java::lang::String *, ::java::net::URLStreamHandler *);
URL (::java::lang::String *);
URL (::java::net::URL *, ::java::lang::String *);
URL (::java::net::URL *, ::java::lang::String *, ::java::net::URLStreamHandler *);
jboolean equals (::java::lang::Object *);
::java::lang::Object *getContent ();
::java::lang::String *getFile () { return file; }
::java::lang::String *getHost () { return host; }
jint getPort () { return port; }
::java::lang::String *getProtocol () { return protocol; }
::java::lang::String *getRef () { return ref; }
jint hashCode ();
::java::net::URLConnection *openConnection ();
::java::io::InputStream *openStream ();
jboolean sameFile (::java::net::URL *);
public:
void set (::java::lang::String *, ::java::lang::String *, jint, ::java::lang::String *, ::java::lang::String *);
public:
static void setURLStreamHandlerFactory (::java::net::URLStreamHandlerFactory *);
::java::lang::String *toExternalForm ();
::java::lang::String *toString ();
private:
::java::net::URLStreamHandler *setURLStreamHandler (::java::lang::String *);
void readObject (::java::io::ObjectInputStream *);
void writeObject (::java::io::ObjectOutputStream *);
::java::lang::String *protocol;
::java::lang::String *host;
jint port;
::java::lang::String *file;
::java::lang::String *ref;
jint hashCode__;
::java::net::URLStreamHandler *handler;
static ::java::util::Hashtable *handlers;
static ::java::net::URLStreamHandlerFactory *factory;
static const jlong serialVersionUID = -7627629688361524110LL;
public:
static ::java::lang::Class class$;
};
# 21 "/usr/local/include/java/lang/Class.h" 2 3
# 1 "/usr/local/include/java/lang/reflect/Modifier.h" 1 3
#pragma interface
class ::java::lang::reflect::Modifier : public ::java::lang::Object
{
public:
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 isStrict (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:
Modifier ();
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;
static const jint STRICT = 2048L;
public:
static const jint ALL_FLAGS = 4095L;
public:
static ::java::lang::Class class$;
};
# 22 "/usr/local/include/java/lang/Class.h" 2 3
extern "C" void _Jv_InitClass (jclass klass);
extern "C" void _Jv_RegisterClasses (jclass *classes);
extern "C" void *_Jv_LookupInterfaceMethodIdx (jclass klass, jclass iface,
int meth_idx);
enum
{
JV_STATE_NOTHING = 0,
JV_STATE_PRELOADING = 1,
JV_STATE_LOADING = 3,
JV_STATE_LOADED = 5,
JV_STATE_COMPILED = 6,
JV_STATE_PREPARED = 7,
JV_STATE_LINKED = 9,
JV_STATE_IN_PROGRESS = 10,
JV_STATE_DONE = 12,
JV_STATE_ERROR = 14
};
struct _Jv_Field;
struct _Jv_VTable;
union _Jv_word;
struct _Jv_Constants
{
jint size;
jbyte *tags;
_Jv_word *data;
};
struct _Jv_Method
{
_Jv_Utf8Const *name;
_Jv_Utf8Const *signature;
_Jv_ushort accflags;
void *ncode;
_Jv_Method *getNextMethod ()
{ return this + 1; }
};
union _Jv_IDispatchTable
{
struct
{
jshort iindex;
jshort itable_length;
void **itable;
} cls;
struct
{
jshort *ioffsets;
} iface;
};
struct _Jv_ifaces
{
jclass *list;
jshort len;
jshort count;
};
union _Jv_Self
{
char *vtable_ptr;
jclass self;
};
class java::lang::Class : public java::lang::Object
{
public:
static jclass forName (jstring className, jboolean initialize,
java::lang::ClassLoader *loader);
static jclass forName (jstring className);
JArray<jclass> *getClasses (void);
java::lang::ClassLoader *getClassLoader (void)
{
return loader;
}
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:
jint _getFields (JArray<java::lang::reflect::Field *> *result, jint offset);
JArray<java::lang::reflect::Constructor *> *_getConstructors (jboolean);
java::lang::reflect::Field *getField (jstring, jint);
jint _getMethods (JArray<java::lang::reflect::Method *> *result,
jint offset);
java::lang::reflect::Field *getPrivateField (jstring);
java::lang::reflect::Method *getPrivateMethod (jstring, JArray<jclass> *);
public:
JArray<java::lang::reflect::Field *> *getFields (void);
JArray<jclass> *getInterfaces (void);
void getSignature (java::lang::StringBuffer *buffer);
static jstring getSignature (JArray<jclass> *, jboolean is_constructor);
java::lang::reflect::Method *getMethod (jstring, JArray<jclass> *);
JArray<java::lang::reflect::Method *> *getMethods (void);
inline jint getModifiers (void)
{
return accflags;
}
jstring getName (void);
java::net::URL *getResource (jstring resourceName);
java::io::InputStream *getResourceAsStream (jstring resourceName);
JArray<jobject> *getSigners (void);
inline jclass getSuperclass (void)
{
return superclass;
}
inline jboolean isArray (void)
{
return name->data[0] == '[';
}
inline jclass getComponentType (void)
{
return isArray () ? (* (jclass *) &methods) : 0;
}
jboolean isAssignableFrom (jclass cls);
jboolean isInstance (jobject obj);
inline jboolean isInterface (void)
{
return (accflags & java::lang::reflect::Modifier::INTERFACE) != 0;
}
inline jboolean isPrimitive (void)
{
return vtable == ((_Jv_VTable *) -1);
}
jobject newInstance (void);
jstring toString (void);
jint size (void)
{
return size_in_bytes;
}
void finalize ();
Class (jobject cname, jbyte sig, jint len, jobject array_vtable)
{
using namespace java::lang::reflect;
_Jv_Utf8Const *_Jv_makeUtf8Const (char *s, int len);
((_Jv_Self *)this)->vtable_ptr -= 2 * sizeof (void *);
name = _Jv_makeUtf8Const ((char *) cname, -1);
accflags = Modifier::PUBLIC | Modifier::FINAL | Modifier::ABSTRACT;
method_count = sig;
size_in_bytes = len;
vtable = ((_Jv_VTable *) -1);
state = JV_STATE_DONE;
depth = -1;
if (method_count != 'V')
_Jv_NewArrayClass (this, __null, (_Jv_VTable *) array_vtable);
}
static java::lang::Class class$;
private:
Class ();
void checkMemberAccess (jint flags);
void initializeClass (void);
friend _Jv_Method *_Jv_GetMethodLocal (jclass klass, _Jv_Utf8Const *name,
_Jv_Utf8Const *signature);
friend jboolean _Jv_IsAssignableFrom(jclass, jclass);
friend jboolean _Jv_InterfaceAssignableFrom (jclass, jclass);
friend void *_Jv_LookupInterfaceMethodIdx (jclass klass, jclass iface,
int method_idx);
inline friend void
_Jv_InitClass (jclass klass)
{
if (__builtin_expect (klass->state == JV_STATE_DONE, true))
return;
klass->initializeClass ();
}
friend _Jv_Method* _Jv_LookupDeclaredMethod (jclass, _Jv_Utf8Const *,
_Jv_Utf8Const*);
friend jfieldID JvGetFirstInstanceField (jclass);
friend jint JvNumInstanceFields (jclass);
friend jfieldID JvGetFirstStaticField (jclass);
friend jint JvNumStaticFields (jclass);
friend jobject _Jv_AllocObject (jclass, jint);
friend void *_Jv_AllocObj (jint, jclass);
friend void *_Jv_AllocArray (jint, jclass);
friend jobject _Jv_JNI_ToReflectedField (_Jv_JNIEnv *, jclass, jfieldID,
jboolean);
friend jobject _Jv_JNI_ToReflectedMethod (_Jv_JNIEnv *, jclass, jmethodID,
jboolean);
friend jfieldID _Jv_FromReflectedField (java::lang::reflect::Field *);
friend jmethodID _Jv_FromReflectedMethod (java::lang::reflect::Method *);
friend jmethodID _Jv_FromReflectedConstructor (java::lang::reflect::Constructor *);
friend jint JvNumMethods (jclass);
friend jmethodID JvGetFirstMethod (jclass);
friend class java::lang::ClassLoader;
friend class java::io::ObjectOutputStream;
friend class java::io::ObjectInputStream;
friend class java::io::ObjectStreamClass;
friend void _Jv_WaitForState (jclass, int);
friend void _Jv_RegisterClasses (jclass *classes);
friend void _Jv_RegisterInitiatingLoader (jclass,java::lang::ClassLoader*);
friend void _Jv_UnregisterClass (jclass);
friend jclass _Jv_FindClass (_Jv_Utf8Const *name,
java::lang::ClassLoader *loader);
friend jclass _Jv_FindClassInCache (_Jv_Utf8Const *name,
java::lang::ClassLoader *loader);
friend void _Jv_NewArrayClass (jclass element,
java::lang::ClassLoader *loader,
_Jv_VTable *array_vtable = 0);
friend jclass _Jv_NewClass (_Jv_Utf8Const *name, jclass superclass,
java::lang::ClassLoader *loader);
friend void _Jv_PrepareCompiledClass (jclass);
friend void _Jv_PrepareConstantTimeTables (jclass);
friend jshort _Jv_GetInterfaces (jclass, _Jv_ifaces *);
friend void _Jv_GenerateITable (jclass, _Jv_ifaces *, jshort *);
friend jstring _Jv_GetMethodString(jclass, _Jv_Utf8Const *);
friend jshort _Jv_AppendPartialITable (jclass, jclass, void **, jshort);
friend jshort _Jv_FindIIndex (jclass *, jshort *, jshort);
inline friend jclass
_Jv_GetArrayClass (jclass klass, java::lang::ClassLoader *loader)
{
if (__builtin_expect (!klass->arrayclass, false))
_Jv_NewArrayClass (klass, loader);
return klass->arrayclass;
}
# 344 "/usr/local/include/java/lang/Class.h" 3
jclass next;
_Jv_Utf8Const *name;
_Jv_ushort accflags;
jclass superclass;
_Jv_Constants constants;
_Jv_Method *methods;
jshort method_count;
jshort vtable_method_count;
_Jv_Field *fields;
jint size_in_bytes;
jshort field_count;
jshort static_field_count;
_Jv_VTable *vtable;
jclass *interfaces;
java::lang::ClassLoader *loader;
jshort interface_count;
jbyte state;
java::lang::Thread *thread;
jshort depth;
jclass *ancestors;
_Jv_IDispatchTable *idt;
jclass arrayclass;
};
# 18 "/usr/local/include/gcj/cni.h" 2 3
# 1 "/usr/include/string.h" 1 3
# 26 "/usr/include/string.h" 3
# 1 "/usr/include/features.h" 1 3
# 283 "/usr/include/features.h" 3
# 1 "/usr/include/sys/cdefs.h" 1 3
# 284 "/usr/include/features.h" 2 3
# 312 "/usr/include/features.h" 3
# 1 "/usr/include/gnu/stubs.h" 1 3
# 313 "/usr/include/features.h" 2 3
# 27 "/usr/include/string.h" 2 3
extern "C" {
# 1 "/home/spin_test/awk/compilers/gcc-3.1-hol/lib/gcc-lib/i686-pc-linux-gnu/3.1/include/stddef.h" 1 3
# 34 "/usr/include/string.h" 2 3
extern void *memcpy (void *__restrict __dest,
__const void *__restrict __src, size_t __n) throw ();
extern void *memmove (void *__dest, __const void *__src, size_t __n)
throw ();
extern void *memccpy (void *__restrict __dest, __const void *__restrict __src,
int __c, size_t __n)
throw ();
extern void *memset (void *__s, int __c, size_t __n) throw ();
extern int memcmp (__const void *__s1, __const void *__s2, size_t __n)
throw () __attribute__ ((__pure__));
extern void *memchr (__const void *__s, int __c, size_t __n)
throw () __attribute__ ((__pure__));
extern void *rawmemchr (__const void *__s, int __c) throw () __attribute__ ((__pure__));
extern void *memrchr (__const void *__s, int __c, size_t __n)
throw () __attribute__ ((__pure__));
extern char *strcpy (char *__restrict __dest, __const char *__restrict __src)
throw ();
extern char *strncpy (char *__restrict __dest,
__const char *__restrict __src, size_t __n) throw ();
extern char *strcat (char *__restrict __dest, __const char *__restrict __src)
throw ();
extern char *strncat (char *__restrict __dest, __const char *__restrict __src,
size_t __n) throw ();
extern int strcmp (__const char *__s1, __const char *__s2)
throw () __attribute__ ((__pure__));
extern int strncmp (__const char *__s1, __const char *__s2, size_t __n)
throw () __attribute__ ((__pure__));
extern int strcoll (__const char *__s1, __const char *__s2)
throw () __attribute__ ((__pure__));
extern size_t strxfrm (char *__restrict __dest,
__const char *__restrict __src, size_t __n) throw ();
# 1 "/usr/include/xlocale.h" 1 3
# 28 "/usr/include/xlocale.h" 3
typedef struct __locale_struct
{
struct locale_data *__locales[13];
const unsigned short int *__ctype_b;
const int *__ctype_tolower;
const int *__ctype_toupper;
} *__locale_t;
# 109 "/usr/include/string.h" 2 3
extern int __strcoll_l (__const char *__s1, __const char *__s2, __locale_t __l)
throw () __attribute__ ((__pure__));
extern size_t __strxfrm_l (char *__dest, __const char *__src, size_t __n,
__locale_t __l) throw ();
extern char *strdup (__const char *__s) throw () __attribute__ ((__malloc__));
extern char *strndup (__const char *__string, size_t __n)
throw () __attribute__ ((__malloc__));
# 155 "/usr/include/string.h" 3
extern char *strchr (__const char *__s, int __c) throw () __attribute__ ((__pure__));
extern char *strrchr (__const char *__s, int __c) throw () __attribute__ ((__pure__));
extern char *strchrnul (__const char *__s, int __c) throw () __attribute__ ((__pure__));
extern size_t strcspn (__const char *__s, __const char *__reject)
throw () __attribute__ ((__pure__));
extern size_t strspn (__const char *__s, __const char *__accept)
throw () __attribute__ ((__pure__));
extern char *strpbrk (__const char *__s, __const char *__accept)
throw () __attribute__ ((__pure__));
extern char *strstr (__const char *__haystack, __const char *__needle)
throw () __attribute__ ((__pure__));
extern char *strcasestr (__const char *__haystack, __const char *__needle)
throw () __attribute__ ((__pure__));
extern char *strtok (char *__restrict __s, __const char *__restrict __delim)
throw ();
extern char *__strtok_r (char *__restrict __s,
__const char *__restrict __delim,
char **__restrict __save_ptr) throw ();
extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim,
char **__restrict __save_ptr) throw ();
extern void *memmem (__const void *__haystack, size_t __haystacklen,
__const void *__needle, size_t __needlelen)
throw () __attribute__ ((__pure__));
extern void *__mempcpy (void *__restrict __dest,
__const void *__restrict __src, size_t __n) throw ();
extern void *mempcpy (void *__restrict __dest,
__const void *__restrict __src, size_t __n) throw ();
extern size_t strlen (__const char *__s) throw () __attribute__ ((__pure__));
extern size_t strnlen (__const char *__string, size_t __maxlen)
throw () __attribute__ ((__pure__));
extern char *strerror (int __errnum) throw ();
extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) throw ();
extern void __bzero (void *__s, size_t __n) throw ();
extern void bcopy (__const void *__src, void *__dest, size_t __n) throw ();
extern void bzero (void *__s, size_t __n) throw ();
extern int bcmp (__const void *__s1, __const void *__s2, size_t __n)
throw () __attribute__ ((__pure__));
extern char *index (__const char *__s, int __c) throw () __attribute__ ((__pure__));
extern char *rindex (__const char *__s, int __c) throw () __attribute__ ((__pure__));
extern int ffs (int __i) throw () __attribute__ ((__const__));
extern int ffsl (long int __l) throw () __attribute__ ((__const__));
__extension__ extern int ffsll (long long int __ll)
throw () __attribute__ ((__const__));
extern int strcasecmp (__const char *__s1, __const char *__s2)
throw () __attribute__ ((__pure__));
extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n)
throw () __attribute__ ((__pure__));
extern int __strcasecmp_l (__const char *__s1, __const char *__s2,
__locale_t __loc) throw () __attribute__ ((__pure__));
extern int __strncasecmp_l (__const char *__s1, __const char *__s2,
size_t __n, __locale_t __loc)
throw () __attribute__ ((__pure__));
extern char *strsep (char **__restrict __stringp,
__const char *__restrict __delim) throw ();
extern int strverscmp (__const char *__s1, __const char *__s2)
throw () __attribute__ ((__pure__));
extern char *strsignal (int __sig) throw ();
extern char *__stpcpy (char *__restrict __dest, __const char *__restrict __src)
throw ();
extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src)
throw ();
extern char *__stpncpy (char *__restrict __dest,
__const char *__restrict __src, size_t __n) throw ();
extern char *stpncpy (char *__restrict __dest,
__const char *__restrict __src, size_t __n) throw ();
extern char *strfry (char *__string) throw ();
extern void *memfrob (void *__s, size_t __n) throw ();
extern char *basename (__const char *__filename) throw ();
# 364 "/usr/include/string.h" 3
}
# 22 "/usr/local/include/gcj/cni.h" 2 3
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);
}
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 ((jthrowable) obj);
}
extern inline void *
JvMalloc (jsize size)
{
return _Jv_Malloc (size);
}
extern inline void
JvFree (void *ptr)
{
return _Jv_Free (ptr);
}
# 2 "/tmp/tesla.cc" 2
# 1 "/tmp/bigClass.h" 1
#pragma interface
extern "Java"
{
namespace com
{
namespace spinnakernet
{
namespace bogus
{
namespace here
{
class bigClass;
}
}
}
}
}
class com::spinnakernet::bogus::here::bigClass : public ::java::lang::Object
{
public:
virtual JArray< ::java::lang::String *> *getPortAttr (jint);
public:
bigClass();
static ::java::lang::Class class$;
};
# 6 "/tmp/tesla.cc" 2
using namespace ::com::spinnakernet::bogus::here;
JArray< ::java::lang::String *> *
bigClass::getPortAttr(jint ifNum)
{
typedef ::java::lang::String *JavaStringPtr;
JArray<JavaStringPtr> *resultArray = new JArray<JavaStringPtr>;
return __null;
}
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2002-05-10 1:56 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-05-09 18:56 libgcj/6554: cni compiler bug Tom Tromey
-- strict thread matches above, loose matches on Subject: below --
2002-05-03 15:16 Chris Inacio
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).