assertion with --enable-libgcj-debug

Gabriel Dos Reis gdr@integrable-solutions.net
Sun Jul 3 07:39:00 GMT 2005


Anthony Green <green@redhat.com> writes:

| Hi,
| 
| I wanted to poke at Azureus again, so I built a 4.0 branch toolchain with
| --enable-libgcj-debug.  I had to apply the following hack in order for libgcj
| to compile cleanly, since we have some assertions that try to read non-public
| fields.
| 
| Index: gcj/javaprims.h
| ===================================================================
| RCS file: /cvs/gcc/gcc/libjava/gcj/javaprims.h,v
| retrieving revision 1.55
| diff -u -p -r1.55 javaprims.h
| --- gcj/javaprims.h     23 Feb 2005 17:36:24 -0000      1.55
| +++ gcj/javaprims.h     3 Jul 2005 07:00:50 -0000
| @@ -535,6 +535,9 @@ typedef unsigned int _Jv_ulong __attribu
| 
|  class _Jv_Utf8Const
|  {
| +#ifdef DEBUG
| +  public:
| +#endif

Notice this results in ODR violation between DEBUG and non-DEBUG mode.
How serious it is  I don't know (I would say low, until GCC starts
taking access specifiers into account), but it definitely goes in the
undefined behaviour land.

-- Gaby



More information about the Java mailing list