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

Fichier attachéTaille
Télécharger test.f90604 octets
Télécharger result-gfortran.228 octets
Télécharger result-ifort.224 octets
5 posts / 0 nouveau(x)
Dernière contribution
Reportez-vous à notre Notice d'optimisation pour plus d'informations sur les choix et l'optimisation des performances dans les produits logiciels Intel.
Portrait de Steve Lionel (Intel)

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

Steve

I was using ifort 12.1.3

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

talziary

Portrait de Steve Lionel (Intel)

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
Portrait de Steve Lionel (Intel)

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

Connectez-vous pour laisser un commentaire.