Symtab cleanups 4/17 - ICE in GUPC due to use of init section
Gary Funck
gary@intrepid.com
Wed Jun 19 20:59:00 GMT 2013
On 06/19/13 09:26:30, Gary Funck wrote:
> The variable declaration tree node looks about right to me.
> However, it never makes it into the output assembler file.
>
> What is the recommended method for making sure that the
> static variable created above is associated with the current
> translation unit and that its initialization makes it into
> the assembler output file?
Adding this call to the upc_create_static_var() routine
implemented the necessary binding:
pushdecl_top_level (decl);
pushdecl_top_level() is defined in c/c-decl.c:
/* Record X as belonging to file scope.
This is used only internally by the Objective-C front end,
and is limited to its needs. duplicate_decls is not called;
if there is any preexisting decl for this identifier, it is an ICE. */
tree
pushdecl_top_level (tree x)
[...]
This also required that the temporary variable being created
needs to be named (have a non-null DECL_NAME()).
This doesn't seem ideal, but does generate the desired code.
More information about the Gcc-patches
mailing list