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".