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

--- Comment #4 from Tobias Burnus <burnus at gcc dot gnu.org> 2010-11-13 
19:01:00 UTC ---
(In reply to comment #3)
> This avoids the segfault.  But what is lang_specific and why is it not set in
> problem case?  Where does it normally get set?

lang_specific allows to attach front-end specific data to a middle-end tree.
The lang-specific part can be obtained by using
  DECL_LANG_SPECIFIC (decl)
thus, your check should rather use
  DECL_LANG_SPECIFIC (expr1->symtree->n.sym->backend_decl)

See trans.h for the access macros for this data. In the given case, one uses
  GFC_DECL_SPAN (decl)
Thus searching for GFC_DECL_SPAN should show all files in which the value
should have been set.

If I recall correctly, it allows for
  pointer => dt(:)%element
which currently cannot be properly represented as on used a sm (stride
multiplier) of sizeof(dt) rather than a stride in bytes, thus a subpointer with
a span has been introduced. But I might also misremember.

Regarding the program:
  axis => p(:)%r%vec(1)
is what I have described. (I have added the "(:)" for clarity.) That's an array
to the the component "r%vec(1)" of all elements of the array "p".

Reply via email to