[llvm-commits] [llvm-gcc-4.2] r45544 - /llvm-gcc-4.2/trunk/gcc/objc/objc-act.c
Bill Wendling
isanbard at gmail.com
Thu Jan 3 11:31:39 PST 2008
Author: void
Date: Thu Jan 3 13:31:37 2008
New Revision: 45544
URL: http://llvm.org/viewvc/llvm-project?rev=45544&view=rev
Log:
We need to set the decl assembler name for this newly created variable, or else
it will be treated as a local and then bad things will happen.
Modified:
llvm-gcc-4.2/trunk/gcc/objc/objc-act.c
Modified: llvm-gcc-4.2/trunk/gcc/objc/objc-act.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/objc/objc-act.c?rev=45544&r1=45543&r2=45544&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/objc/objc-act.c (original)
+++ llvm-gcc-4.2/trunk/gcc/objc/objc-act.c Thu Jan 3 13:31:37 2008
@@ -6089,15 +6089,25 @@
decl = build_objc_string_decl (section);
type = build_array_type
- (char_type_node,
- build_index_type
- (build_int_cst (NULL_TREE,
- IDENTIFIER_LENGTH (ident))));
+ (char_type_node,
+ build_index_type
+ (build_int_cst (NULL_TREE,
+ IDENTIFIER_LENGTH (ident))));
decl = start_var_decl (type, IDENTIFIER_POINTER (DECL_NAME (decl)));
string_expr = my_build_string (IDENTIFIER_LENGTH (ident) + 1,
- IDENTIFIER_POINTER (ident));
+ IDENTIFIER_POINTER (ident));
finish_var_decl (decl, string_expr);
+ /* LLVM LOCAL begin */
+#ifdef ENABLE_LLVM
+ /* This decl's name is special, it uses 'L' as a prefix. Ask llvm to not
+ add leading underscore by setting it as a user supplied asm name. */
+ set_user_assembler_name (decl, IDENTIFIER_POINTER (DECL_NAME (decl)));
+ /* Let optimizer know that this decl is not removable. */
+ DECL_PRESERVE_P (decl) = 1;
+#endif
+ /* LLVM LOCAL end */
+
hsh = hash_ident_enter (hash_table, ident);
hash_add_attr (hsh, decl);
*chain = tree_cons (decl, ident, *chain);
More information about the llvm-commits
mailing list