This is the mail archive of the
mailing list for the GCC project.
Re: [PATCH] Fold VIEW_CONVERT_EXPR <type, STRING_CST> generated by Fortran FE a lot (PR target/35366)
Jakub Jelinek wrote:
On Tue, Nov 11, 2008 at 05:21:36PM +0100, Tobias Schlüter wrote:
Hm, I haven't found Richard Maine's post that is mentioned in the old
thread, but Fortran has the notion of storage unit. LOGICAL*4,
INTEGER*4 and REAL*4 all occupy 4 storage units. If a circular
transfer(transfer (...) ...) between types with the same number of
storage units is required to return the original value (as Richard Maine
apparently argued), then we'll probably have no choice but to stop using
BOOLEAN_TYPE for LOGICALs.
That's pretty sad. Stopping using BOOLEAN_TYPE is going to break
basically everything, so certainly can't be done for 4.4. I expect
that you'd need to add a lot of conversions everywhere, from the
logical*N INTEGER_TYPE to correspondingly sized BOOLEAN_TYPE and back
all the time.
Maybe setting TYPE_PRECISION to bit_size in gfc_build_logical_type()
would do the trick without any further changes? This depends on how the
middle-end deals with BOOLEAN_TYPES with TYPE_PRECISION > 1.