------- Comment #9 from burnus at gcc dot gnu dot org  2010-03-06 22:58 -------
(In reply to comment #8)
> Created an attachment (id=20037)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20037&action=view) -- 
reduced test case

/dev/shm/test/domi14.f90:7:0: error: type mismatch between an SSA_NAME and its
symbol
while verifying SSA_NAME hts_1 in statement
hts_1 = (real(kind=4)[0:D.1549] * restrict) &gridws;

(In reply to comment #2)
The SSA name has GFC_ARRAY_TYPE_P set on the pointer type while the var decl
has not.


Some debugging: If one looks at gfc_get_symbol_decl, "hts" and "gridws" have
GFC_ARRAY_TYPE_P == 1  (i.e. TYPE (sym->backend_decl / s->backend_decl)).

In gfc_conv_procedure_call, TYPE (parmse.expr) (created via
gfc_conv_array_parameter) has GFC_ARRAY_TYPE_P == 0; however, manually setting
it to 1 does not seem to help.

The expression looses (in gfc_conv_array_parameter) the GFC_ARRAY_TYPE_P
attribute via the call to gfc_build_addr_expr; while the basetype is 1, the
natural type is 0. But as written above: manually setting it to 1 does not seem
to help.


-- 

burnus at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  GCC build triplet|*-apple-darwin9             |
   GCC host triplet|*-apple-darwin9             |
 GCC target triplet|*-apple-darwin9             |


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

Reply via email to