title: Warning "Use of GNU statement expression extension"
body: <p>I have this Objective-C istruction:</p>
  
  <pre><code>NSRange range = NSMakeRange(i, MIN(a, b));
  </code></pre>
  
  <p>where <code>a</code> and <code>b</code>are <code>NSUInteger</code>s.</p>
  
  <p><code>MIN()</code> is the macro defined in the standard <code>NSObjCRuntime.h</code>header file as:</p>
  
  <pre><code>#if !defined(MIN)
     #define MIN(A,B) ({ __typeof__(A) __a = (A); __typeof__(B) __b = (B); __a &lt; __b ? __a : __b; })
  #endif
  </code></pre>
  
  <p>During the compilation, the LLVM Compiler 4.1 highlights my instruction showing the warning: "Use of GNU statement expression extension".</p>
  
  <p>What does this mean? Is it my fault? If yes, how can I fix it? If not, how can I remove the compiler warning?</p>