matrixMulDynlinkJIT: why different behaviour for 64 bit? sizeof(int) == sizeof(void *)?

In the new CUDA SDK 2.3 example there is a code section like this:

if (sizeof(int) == sizeof(void *))

{

  // in this branch we use compilation with parameters

   ...

} else

{

  // compile with default parameters

}

This is completely unnecessary, IMO. Compilation with parameters works perfectly fine on my 64 bit system, even though sizeof(int) isn’t sizeof(void).

I think the reason is a quite ugly workaround for this:

int jitLogBufferSize = 1024;

	jitOptVals[0] = (void *)jitLogBufferSize;

But this works fine even if the sizes don’t match, as this kind of casting takes the sizes of the arguments into account, and drops precision or sign-extends based on this; even this would be correct

unsigned char jitLogBufferSize = 255;

	jitOptVals[0] = (void *)jitLogBufferSize;