problem with C interoperability

problem with C interoperability

Here a small example giving incorrect result with ifort and correct result with gfortran
It seems that the c_char result of the g_ascii_tolower function of glib which return the lower case character
corresponding to the upper case character argument is not returned properly

AttachmentSize
Downloadapplication/octet-stream test.f90604 bytes
Downloadapplication/octet-stream result-gfortran.228 bytes
Downloadapplication/octet-stream result-ifort.224 bytes
5 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

I think this is a bug we've fixed for a release later this year, but I will have to confirm that.

Steve - Intel Developer Support

I was using ifort 12.1.3

and just check that, unfortunately, ifort 12.1.4 (build 319) gives the same problem

talziary

This is a different problem than before, and is not yet fixed. The compiler is treating the interoperable function as if it were a Fortran function and is passing two hidden arguments for the function retiurn value, which is incorrect. I have escalated this as issue DPD200233166 and will let you know of any progress. Thanks for providing a nice test case.

Steve - Intel Developer Support

The new problem has been fixed, and I expect the fix to appear in update 2, scheduled for late January. It affects interoperable functions that return a character result (has to be a single character, as nothing else is interoperable).

Steve - Intel Developer Support

Leave a Comment

Please sign in to add a comment. Not a member? Join today