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] | |
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] |