<p dir="ltr">Does the warning need fixing?</p>
<div class="gmail_quote">On Apr 13, 2013 6:20 AM, "Bob Wilson" <<a href="mailto:bob.wilson@apple.com">bob.wilson@apple.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Author: bwilson<br>
Date: Fri Apr 12 15:17:20 2013<br>
New Revision: 179406<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=179406&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=179406&view=rev</a><br>
Log:<br>
Define Neon intrinsics as "static inline" to avoid warning. rdar://<a href="tel:13108414" value="+13108414">13108414</a><br>
<br>
We had been defining Neon intrinsics as "static" with always_inline attributes.<br>
If you use them from an extern inline function, you get a warning, e.g.:<br>
<br>
static function 'vadd_u8' is used in an inline function with external linkage<br>
<br>
This change simply adds the inline keyword to avoid that warning.<br>
<br>
Modified:<br>
    cfe/trunk/test/Sema/arm-neon-types.c<br>
    cfe/trunk/utils/TableGen/NeonEmitter.cpp<br>
<br>
Modified: cfe/trunk/test/Sema/arm-neon-types.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Sema/arm-neon-types.c?rev=179406&r1=179405&r2=179406&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Sema/arm-neon-types.c?rev=179406&r1=179405&r2=179406&view=diff</a><br>

==============================================================================<br>
--- cfe/trunk/test/Sema/arm-neon-types.c (original)<br>
+++ cfe/trunk/test/Sema/arm-neon-types.c Fri Apr 12 15:17:20 2013<br>
@@ -1,4 +1,5 @@<br>
 // RUN: %clang_cc1 -triple thumbv7-apple-darwin10 -target-cpu cortex-a8 -fsyntax-only -Wvector-conversion -ffreestanding -verify %s<br>
+#ifndef INCLUDE<br>
<br>
 #include <arm_neon.h><br>
<br>
@@ -33,3 +34,14 @@ int16x8_t test5(int *p) {<br>
 void test6(float *p, int32x2_t v) {<br>
   return vst1_s32(p, v); // expected-warning {{incompatible pointer types}}<br>
 }<br>
+<br>
+#define INCLUDE<br>
+#include "arm-neon-types.c"<br>
+#else<br>
+<br>
+// Make sure we don't get a warning about using a static function in an<br>
+// extern inline function from a header.<br>
+extern inline uint8x8_t test7(uint8x8_t a, uint8x8_t b) {<br>
+  return vadd_u8(a, b);<br>
+}<br>
+#endif<br>
<br>
Modified: cfe/trunk/utils/TableGen/NeonEmitter.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/TableGen/NeonEmitter.cpp?rev=179406&r1=179405&r2=179406&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/utils/TableGen/NeonEmitter.cpp?rev=179406&r1=179405&r2=179406&view=diff</a><br>

==============================================================================<br>
--- cfe/trunk/utils/TableGen/NeonEmitter.cpp (original)<br>
+++ cfe/trunk/utils/TableGen/NeonEmitter.cpp Fri Apr 12 15:17:20 2013<br>
@@ -1342,7 +1342,7 @@ void NeonEmitter::run(raw_ostream &OS) {<br>
     }<br>
   }<br>
<br>
-  OS<<"#define __ai static __attribute__((__always_inline__, __nodebug__))\n\n";<br>
+  OS<<"#define __ai static inline __attribute__((__always_inline__, __nodebug__))\n\n";<br>
<br>
   std::vector<Record*> RV = Records.getAllDerivedDefinitions("Inst");<br>
<br>
<br>
<br>
_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
</blockquote></div>