From 7866d3e0df9ff10643ee934a94e4d1268e0e5318 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Wed, 5 Mar 2014 10:31:16 -0500 Subject: [PATCH] Xcode 4 comes with a version of clang that treats inline differently: it requires exactly one definition of the inline function in the linked unit. static inline is C99-compliant (according to LeoNerd in freenode/##c) and does not have this problem, so use that in objc_darwin.h instead. Fixes issue 1. --- objc_darwin.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/objc_darwin.h b/objc_darwin.h index 1208e0e..e2d9d92 100644 --- a/objc_darwin.h +++ b/objc_darwin.h @@ -26,7 +26,7 @@ extern Class NilClass; /* for listbox_darwin.go */ extern id *_NSObservedObjectKey; -inline id objc_msgSend_noargs(id obj, SEL sel) +static inline id objc_msgSend_noargs(id obj, SEL sel) { return objc_msgSend(obj, sel); } @@ -52,25 +52,25 @@ extern uintptr_t objc_msgSend_uintret_noargs(id objc, SEL sel); extern intptr_t objc_msgSend_intret_noargs(id obj, SEL sel); #define m1(name, type1) \ - inline id objc_msgSend_ ## name (id obj, SEL sel, type1 a) \ + static inline id objc_msgSend_ ## name (id obj, SEL sel, type1 a) \ { \ return objc_msgSend(obj, sel, a); \ } #define m2(name, type1, type2) \ - inline id objc_msgSend_ ## name (id obj, SEL sel, type1 a, type2 b) \ + static inline id objc_msgSend_ ## name (id obj, SEL sel, type1 a, type2 b) \ { \ return objc_msgSend(obj, sel, a, b); \ } #define m3(name, type1, type2, type3) \ - inline id objc_msgSend_ ## name (id obj, SEL sel, type1 a, type2 b, type3 c) \ + static inline id objc_msgSend_ ## name (id obj, SEL sel, type1 a, type2 b, type3 c) \ { \ return objc_msgSend(obj, sel, a, b, c); \ } #define m4(name, type1, type2, type3, type4) \ - inline id objc_msgSend_ ## name (id obj, SEL sel, type1 a, type2 b, type3 c, type4 d) \ + static inline id objc_msgSend_ ## name (id obj, SEL sel, type1 a, type2 b, type3 c, type4 d) \ { \ return objc_msgSend(obj, sel, a, b, c, d); \ }