Unbreak #pragma pack on non-darwin. 4.0 will follow.
llvm-svn: 41865
diff --git a/llvm-gcc-4.2/gcc/c-pragma.c b/llvm-gcc-4.2/gcc/c-pragma.c
index 554bdce..424bbdf 100644
--- a/llvm-gcc-4.2/gcc/c-pragma.c
+++ b/llvm-gcc-4.2/gcc/c-pragma.c
@@ -53,8 +53,10 @@
static GTY(()) struct align_stack * alignment_stack;
-/* APPLE LOCAL Macintosh alignment */
-#if 0
+/* LLVM LOCAL begin */
+#ifndef TARGET_OVERRIDE_PRAGMA_PACK_HANDLER
+/* LLVM LOCAL end */
+
#ifdef HANDLE_PRAGMA_PACK
static void handle_pragma_pack (cpp_reader *);
@@ -246,8 +248,10 @@
}
}
#endif /* HANDLE_PRAGMA_PACK */
-/* APPLE LOCAL Macintosh alignment */
-#endif
+
+/* LLVM LOCAL begin */
+#endif /* TARGET_OVERRIDE_PRAGMA_PACK_HANDLER */
+/* LLVM LOCAL end */
static GTY(()) tree pending_weaks;
@@ -816,11 +820,9 @@
cpp_register_deferred_pragma (parse_in, "GCC", "pch_preprocess",
PRAGMA_GCC_PCH_PREPROCESS, false, false);
-/* APPLE LOCAL begin Macintosh alignment 2002-1-22 --ff */
- /* Remove the handling of pragma pack here because it is handled
- in config/darwin-c.c. */
-#if 0
-/* APPLE LOCAL end Macintosh alignment 2002-1-22 --ff */
+/* LLVM LOCAL begin */
+#ifndef TARGET_OVERRIDE_PRAGMA_PACK_HANDLER
+/* LLVM LOCAL end */
#ifdef HANDLE_PRAGMA_PACK
#ifdef HANDLE_PRAGMA_PACK_WITH_EXPANSION
c_register_pragma_with_expansion (0, "pack", handle_pragma_pack);
@@ -828,8 +830,9 @@
c_register_pragma (0, "pack", handle_pragma_pack);
#endif
#endif
-/* APPLE LOCAL Macintosh alignment 2002-1-22 --ff */
+/* LLVM LOCAL begin */
#endif
+/* LLVM LOCAL end */
#ifdef HANDLE_PRAGMA_WEAK
c_register_pragma (0, "weak", handle_pragma_weak);
#endif
diff --git a/llvm-gcc-4.2/gcc/config/darwin.h b/llvm-gcc-4.2/gcc/config/darwin.h
index d5ad9c1..e661eeb 100644
--- a/llvm-gcc-4.2/gcc/config/darwin.h
+++ b/llvm-gcc-4.2/gcc/config/darwin.h
@@ -1115,6 +1115,11 @@
#define HANDLE_PRAGMA_PACK_PUSH_POP 1
+/* LLVM LOCAL begin */
+/* Handle pragma pack separately */
+#define TARGET_OVERRIDE_PRAGMA_PACK_HANDLER 1
+/* LLVM LOCAL end */
+
#define DARWIN_REGISTER_TARGET_PRAGMAS() \
do { \
c_register_pragma (0, "mark", darwin_pragma_ignore); \