[llvm-commits] [llvm-gcc-4.2] r55670 - in /llvm-gcc-4.2/trunk/gcc/config: darwin-protos.h darwin.c darwin.h
Bill Wendling
isanbard at gmail.com
Tue Sep 2 15:08:00 PDT 2008
Author: void
Date: Tue Sep 2 17:08:00 2008
New Revision: 55670
URL: http://llvm.org/viewvc/llvm-project?rev=55670&view=rev
Log:
Handle NSObject attribute.
Modified:
llvm-gcc-4.2/trunk/gcc/config/darwin-protos.h
llvm-gcc-4.2/trunk/gcc/config/darwin.c
llvm-gcc-4.2/trunk/gcc/config/darwin.h
Modified: llvm-gcc-4.2/trunk/gcc/config/darwin-protos.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/darwin-protos.h?rev=55670&r1=55669&r2=55670&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/darwin-protos.h (original)
+++ llvm-gcc-4.2/trunk/gcc/config/darwin-protos.h Tue Sep 2 17:08:00 2008
@@ -95,6 +95,8 @@
/* APPLE LOCAL ObjC GC */
extern tree darwin_handle_objc_gc_attribute (tree *, tree, tree, int, bool *);
+/* APPLE LOCAL file radar 5595352 */
+extern tree darwin_handle_nsobject_attribute (tree *, tree, tree, int, bool *);
extern void darwin_file_start (void);
extern void darwin_file_end (void);
Modified: llvm-gcc-4.2/trunk/gcc/config/darwin.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/darwin.c?rev=55670&r1=55669&r2=55670&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/darwin.c (original)
+++ llvm-gcc-4.2/trunk/gcc/config/darwin.c Tue Sep 2 17:08:00 2008
@@ -1772,6 +1772,40 @@
}
/* APPLE LOCAL end ObjC GC */
+/* APPLE LOCAL begin radar 5595352 */
+tree
+darwin_handle_nsobject_attribute (tree *node,
+ tree name,
+ tree args ATTRIBUTE_UNUSED,
+ int flags ATTRIBUTE_UNUSED,
+ bool *no_add_attrs)
+{
+ tree orig = *node, type;
+ if (!POINTER_TYPE_P (orig) || TREE_CODE (TREE_TYPE (orig)) != RECORD_TYPE)
+ {
+ error ("__attribute ((NSObject)) is for pointer types only");
+ return NULL_TREE;
+ }
+ type = build_type_attribute_variant (orig,
+ tree_cons (name, NULL_TREE,
+ TYPE_ATTRIBUTES (orig)));
+ /* The main variant must be preserved no matter what. What ever
+ main variant comes out of the call to build_type_attribute_variant
+ is bogus here. */
+ if (TYPE_MAIN_VARIANT (orig) != TYPE_MAIN_VARIANT (type))
+ {
+ TYPE_MAIN_VARIANT (type) = TYPE_MAIN_VARIANT (orig);
+ TYPE_NEXT_VARIANT (type) = TYPE_NEXT_VARIANT (orig);
+ TYPE_NEXT_VARIANT (orig) = type;
+ }
+
+ *node = type;
+ /* No need to hang on to the attribute any longer. */
+ *no_add_attrs = true;
+ return NULL_TREE;
+}
+/* APPLE LOCAL end radar 5595352 */
+
/* APPLE LOCAL begin darwin_set_section_for_var_p 20020226 --turly */
/* This is specifically for any initialised static class constants
Modified: llvm-gcc-4.2/trunk/gcc/config/darwin.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/darwin.h?rev=55670&r1=55669&r2=55670&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/darwin.h (original)
+++ llvm-gcc-4.2/trunk/gcc/config/darwin.h Tue Sep 2 17:08:00 2008
@@ -453,9 +453,8 @@
%{nomultidefs} \
%{Zmulti_module:-multi_module} %{Zsingle_module:-single_module} \
%{Zmultiply_defined*:-multiply_defined %*} \
- %{!Zmultiply_defined*:%{shared-libgcc: \
- %:version-compare(< 10.5 mmacosx-version-min= -multiply_defined) \
- %:version-compare(< 10.5 mmacosx-version-min= suppress)}} \
+ "/* APPLE LOCAL begin deletion 5023884 */" \
+ "/* APPLE LOCAL end deletion 5023884 */" \
%{Zmultiplydefinedunused*:-multiply_defined_unused %*} \
"/* APPLE LOCAL mainline 2007-06-01 5238485 */" \
%{fpie:-pie} \
@@ -1073,15 +1072,15 @@
} while (0)
#else
/* LLVM LOCAL end */
-#define ASM_DECLARE_CLASS_REFERENCE(FILE,NAME) \
- do { \
- if (FILE) { \
- fprintf (FILE, "\t"); \
- assemble_name (FILE, NAME); \
- fprintf (FILE, "=0\n"); \
- (*targetm.asm_out.globalize_label) (FILE, NAME); \
- } \
- } while (0)
+#define ASM_DECLARE_CLASS_REFERENCE(FILE,NAME) \
+ do { \
+ if (FILE) { \
+ fprintf (FILE, "\t"); \
+ assemble_name (FILE, NAME); \
+ fprintf (FILE, "=0\n"); \
+ (*targetm.asm_out.globalize_label) (FILE, NAME); \
+ } \
+ } while (0)
/* LLVM LOCAL */
#endif /*ENABLE_LLVM*/
@@ -1109,6 +1108,8 @@
darwin_handle_kext_attribute }, \
/* APPLE LOCAL ObjC GC */ \
{ "objc_gc", 1, 1, false, true, false, darwin_handle_objc_gc_attribute }, \
+ /* APPLE LOCAL radar 5595352 */ \
+ { "NSObject", 0, 0, false, true, false, darwin_handle_nsobject_attribute },\
{ "weak_import", 0, 0, true, false, false, \
darwin_handle_weak_import_attribute }
More information about the llvm-commits
mailing list