mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-25 03:44:04 +08:00
Objective-C++, Darwin : Make metadata 'extern "C"'.
For current system toolchains NeXT runtime metadata symbols are not mangled for Objective-C++ (i.e. they are considered to be 'extern "C"'). This change becomes essential when we start to emit metadata refs as hidden and weak which is required by later editions of the runtime and linkers. gcc/objc/ChangeLog: * objc-runtime-shared-support.c (start_var_decl): Make the decl_assembler_name follow the metadata name for C++ on NeXT runtime platforms.
This commit is contained in:
parent
1174b08b14
commit
1cc7476610
@ -117,14 +117,17 @@ add_field_decl (tree type, const char *name, tree **chain)
|
||||
tree
|
||||
start_var_decl (tree type, const char *name)
|
||||
{
|
||||
tree var = build_decl (input_location,
|
||||
VAR_DECL, get_identifier (name), type);
|
||||
TREE_STATIC (var) = 1;
|
||||
tree name_id = get_identifier (name);
|
||||
tree var = build_decl (input_location, VAR_DECL, name_id, type);
|
||||
DECL_INITIAL (var) = error_mark_node; /* A real initializer is coming... */
|
||||
TREE_STATIC (var) = 1;
|
||||
DECL_IGNORED_P (var) = 1;
|
||||
DECL_ARTIFICIAL (var) = 1;
|
||||
DECL_CONTEXT (var) = NULL_TREE;
|
||||
#ifdef OBJCPLUS
|
||||
/* Meta-data for the NeXT runtime is expected to be 'extern "C"'. */
|
||||
if (flag_next_runtime)
|
||||
SET_DECL_ASSEMBLER_NAME (var, name_id);
|
||||
DECL_THIS_STATIC (var) = 1; /* squash redeclaration errors */
|
||||
#endif
|
||||
return var;
|
||||
|
Loading…
Reference in New Issue
Block a user