]> granicus.if.org Git - clang/commitdiff
Update compatibility page for objective-c.
authorFariborz Jahanian <fjahanian@apple.com>
Fri, 22 Oct 2010 22:35:51 +0000 (22:35 +0000)
committerFariborz Jahanian <fjahanian@apple.com>
Fri, 22 Oct 2010 22:35:51 +0000 (22:35 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117168 91177308-0d34-0410-b5e6-96231b3b80d8

www/compatibility.html

index 4196e880ece82e9b37dcf3e625d2ed6bbc60e150..bd22f9a8dc3236e0b9ead436736d07d29f7cc0d8 100644 (file)
@@ -42,6 +42,7 @@
       <li><a href="#super-cast">Cast of super</a></li>
       <li><a href="#sizeof-interface">Size of interfaces</a></li>
       <li><a href="#objc_objs-cast">Internal Objective-C types</a></li>
+      <li><a href="#c_variables-class">C variables in @class or @protocol</a></li>
     </ul>
   </li>
   <li><a href="#c++">C++ compatibility</a>
@@ -282,6 +283,24 @@ void f(id x);
 <p>Code should use types <tt>id</tt>, <tt>SEL</tt>, and <tt>Class</tt>
 instead of the internal types.</p>
 
+<!-- ======================================================================= -->
+<h3 id="c_variables-class">C variables in @class or @protocol</h3>
+<!-- ======================================================================= -->
+
+<p>GCC allows declaration of C variables in a @class or @protocol, but not 
+C functions. Clang does not allow variable or C function declarations. External
+declarations, however, is allowed. Variables may only be declared in an
+@implementation.
+
+<pre>
+@interface XX
+int x;  //  not allowed in clang
+int one=1;  //  not allowed in clang
+extern int OK;
+@end
+
+</pre>
+
 <!-- ======================================================================= -->
 <h2 id="c++">C++ compatibility</h3>
 <!-- ======================================================================= -->