function attribute syntax question

Per Bothner per@bothner.com
Wed Jun 23 22:51:00 GMT 2004


libjava/jni.cc contains function definitions like the following:

static jint
(JNICALL _Jv_JNI_GetVersion) (JNIEnv *)
{
   return JNI_VERSION_1_4;
}

which on MingGW expands to:

static int
(__attribute__((__stdcall__)) _Jv_JNI_GetVersion) (void)
{
   return 0x00010004;
}

The attribute seems to be ignored, leading to
lots of pedwarns.  My question is: *is* this syntax supposed
to be recognized?  I.e. is this a C++ parser regression?

Removing the extra parentheses seems to fix the problem:

static jint JNICALL
_Jv_JNI_GetVersion (JNIEnv *)
{
   return JNI_VERSION_1_4;
}

Since this is more readable anyway, it seems like the obvious fix,
though I'm puzzled as to what changed to break the existing code.
-- 
	--Per Bothner
per@bothner.com   http://per.bothner.com/



More information about the Java mailing list