http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49954
Tobias Burnus <burnus at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |burnus at gcc dot gnu.org --- Comment #2 from Tobias Burnus <burnus at gcc dot gnu.org> 2012-05-24 13:05:56 UTC --- (In reply to comment #1) > I thought about something like: > + tmp = rss->string_length; That's nonsense as "rss" should be "rse" and "rse" is not available in that function - just expr2. > However, that yields ".array_length" (i.e. the LHS) even for > array_string(:)(1:1) I think that problem is closely related to PR 51976: For deferred-length components, using ts.u.cl->backend_decl directly is not possible; one needs to have "var->component" and not "component". Here, the issue is rather similar. I believe that one needs some conversion function which makes string_length available by walking an expr. (It should also work for the "length" part of parameterized DT.)