[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