Warning "Use of GNU statement expression extension"

cocoa-touch, compiler-construction, llvm, llvm-4.0, objective-c

Solution

It’s a late answer, I know, but you can avoid this message by adding `-Wno-gnu` to your compiler flags.

(In Xcode 5 I believe you can change this by going to your project’s Build Settings and adding `-Wno-gnu` to the “Other C Flags”, which are in the “Apple LLVM 5.0 – Custom Compiler Flags” section.)

Problem

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

Original source