[gfortran] Support INTEGER<->LOGICAL conversion (take 3)
Tobias Schlüter
tobias.schlueter@physik.uni-muenchen.de
Mon May 30 20:24:00 GMT 2005
Roger Sayle wrote:
>>This won't work with the patch, as the matcher for IF expects a logical /
>>integer expression and rejects the code otherwise, whereas the implicit
>>conversions are inserted during resolution, i.e. much later in the process.
>
>
> Hi Tobi,
>
> Not by design. My selfish and far less ambitious goal was purely
> to support assignment of .TRUE. and .FALSE. to integer types for
> the time being. Yesterday on IRC, StevenB mentioned an impressively
> long list of commerical compilers that supported logical <-> integer
> conversions, but I've no idea if any (or how many) of them support
> the two cases, you list above. However, doing the experiment with
> "g77 -fugly-logint" I see that g77 does support both of the above
> cases!
>
>
> In that case, I should probably change the wording to indicate that
> gfortran has "some support for" or "partial support for" implicit
> conversion between logical and integer types to handle legacy codes?
>
>
> If another of the gfortran contributors is motivated enough to add
> the missing support (a regression from g77), I'd say go for it. My
> modest patch simply hooked into the existing gfortran implicit conversion
> machinery and therefore avoided many potential difficult semantic
> interactions associated with tweaking the grammar/parser.
>
> I hope this answer is satisfactory. I'm happy to come back to this
> issue at some point in the future, if nobody beats me to it.
g77's -fno-ugly-logint seems to make LOGICAL and INTEGER completely
interchangeable. I certainly won't ask you to implement that misfeature. If
ever somebody asks for something which goes beyond what you implemented we can
look at this again, but I do hope all those commercial compilers are mistaken
in their belief that there's a real need for this extension :-)
- Tobi
More information about the Fortran
mailing list