------- Comment #3 from burnus at gcc dot gnu dot org  2010-03-16 13:55 -------
Variant which also crashes on x86-64 systems:

   logical :: l1(4)
   logical :: l2(4)
   l1 = (/.TRUE.,.FALSE.,.TRUE.,.FALSE./)
   l2 = (/.FALSE.,.TRUE.,.FALSE.,.TRUE./)
   if (dot_product (l1, l2)) call abort ()
   l2 = .TRUE.
   if (.not.dot_product (l1, l2)) call abort ()
end


test2.f90:8:0: error: integral result type precision does not match field size
of BIT_FIELD_REF
BIT_FIELD_REF <vect_var_.37_73, 32, 0>
f951: note: in statement
stmp_var_.36_74 = BIT_FIELD_REF <vect_var_.37_73, 32, 0>;


Testing indicates with "gfortran -O3" on x86-64-linux:
working 2009-07-10-r149458
failing 2009-07-17-r149734
though builds might be tainted by local patches.

Thus, it looks like either a middle-end problem or at least an issue exposed by
middle-end modifications.


-- 

burnus at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
          Component|fortran                     |middle-end
 GCC target triplet|spu-unknown-elf             |
            Summary|logical_dot_product.f90:    |[4.5 Regression] ICE:
                   |error: integral result type |integral result type
                   |precision does  not match   |precision does  not match
                   |field size of BIT_FIELD_REF |field size of BIT_FIELD_REF
   Target Milestone|---                         |4.5.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43390

Reply via email to