This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch] fix wrong gimple code with ptr to forward vla


Olivier Hainque wrote:
>  Experimenting variants around a track ...

Back after some delay introduced by various events, attached is a
first attempt which passes testing on x86-linux with languages=all,ada.

As discussed, the idea here is not to recurse into pointed-to types from
gimplify_type_sizes any more, and have the C front-end attach an artificial
pointed-to type declaration node when necessary instead.

A key aspect is the call to finish_decl, which builds the DECL_EXPR node
required to push the gimplifier into gimplify_type_sizes.

First dive into the C front-end, so I might very well have overlooked
a number of rules or issues. Suggestions for rework or improvements
welcome :-)

Thanks in advance,

Olivier


2006-09-25  Olivier Hainque  <hainque@adacore.com>

        * gimplify.c (gimplify_type_sizes) [POINTER_TYPE, REFERENCE_TYPE]:
        Don't recurse on the pointed-to type.
        * c-decl.c (grokdeclarator) [cdk_pointer]: If the pointed-to type
        is anonymous and involves components of variable size, build an
        artificial TYPE_DECL for it to force the size evaluation at the
        pointer declaration point.

        testsuite/
        * gnat.dg/forward_vla.adb: New case.




Attachment: gimple-sizes.dif
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]