[llvm-commits] [llvm-gcc-4.2] r46293 - /llvm-gcc-4.2/trunk/gcc/objc/objc-act.c

Dale Johannesen dalej at apple.com
Wed Jan 23 16:34:13 PST 2008


Author: johannes
Date: Wed Jan 23 18:34:12 2008
New Revision: 46293

URL: http://llvm.org/viewvc/llvm-project?rev=46293&view=rev
Log:
Make sure initializers for OBJC_PROTOCOLs don't
get lost at -O0.


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=46293&r1=46292&r2=46293&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/objc/objc-act.c (original)
+++ llvm-gcc-4.2/trunk/gcc/objc/objc-act.c Wed Jan 23 18:34:12 2008
@@ -9342,8 +9342,11 @@
       /* Force 4 byte alignment for protocols */
       DECL_ALIGN(decl) = 32;
       DECL_USER_ALIGN(decl) = 1;
-      /* LLVM LOCAL end */
       finish_var_decl (decl, initlist);
+      /* At -O0, we may have emitted references to the decl earlier. */
+      if (!optimize)
+        reset_initializer_llvm(decl);
+      /* LLVM LOCAL end */
     }
 }
 
@@ -13638,6 +13641,11 @@
 
   proto_name = synth_id_with_class_suffix ("_OBJC_PROTOCOL", p);
   decl = start_var_decl (objc_protocol_template, proto_name);
+  /* LLVM LOCAL begin */
+  /* Force 4 byte alignment for protocols */
+  DECL_ALIGN(decl) = 32;
+  DECL_USER_ALIGN(decl) = 1;
+  /* LLVM LOCAL end */
 
   PROTOCOL_FORWARD_DECL (p) = decl;
 }





More information about the llvm-commits mailing list