[Patch, RFC, c*, ObjC* ] make the translation unit decl avail. via a lang hook
IainS
developer@sandoe-acoustics.co.uk
Fri Oct 29 16:48:00 GMT 2010
Hi Richard,
On 29 Oct 2010, at 16:28, Richard Guenther wrote:
> On Fri, Oct 29, 2010 at 3:44 PM, IainS <developer@sandoe-acoustics.co.uk
> > wrote:
>> given that my current understanding is:
>> (a) we should make vars file-scope by setting DECL_CONTEXT =
>> translation
>> unit decl
>> (b) there should only be one translation unit decl per TU
>> (c) at present none of the FEs export the t_u_d where other parts
>> of the
>> machinery can see it.
>>
>> would the following patch be appropriate?
>> (it can be extended to fortran and java, I believe, fairly easily).
>
> Sounds like a hack. Note that frontends might end up with multiple
> TUs (for example for things in fortran modules).
One would assume that a built-in that wishes to push an item to the
'file scope' would still use 'current_translation_unit_decl'.
(to attach the decl to the 'file scope' of the current module).
[and I guess the name mangling must take care of different module
ordering in different fortran source files?]
> It's a hack because
> it's a frontend hook that is only used by the frontend (which means
> a single global variable does do it as well,
OK, I had a global originally (called current_translation_unit_decl)
- but that means defining it also in lto which seemed unnecessary.
> like other FEs do it
none of the FEs make the t_u_d available outside the file in which
it's created.
and, AFAICT, ObjC* must use the t_u_d created in c* - since they are
sharing spaces.
If this seems reasonable
I can re-do the patch as I had it originally - with a global.
(or if I'm missing something fundamental, a pointer would be
appreciated).
Iain
> Richard.
More information about the Gcc-patches
mailing list