This is a GNU extension to C, documented here. Note that it evaluates the expression only once, and reuses the result (useful when your expression has side effects). clang includes it but I can't find any related documentation on that.
Edit: Here's the class reference for the implementation with LLVM: http://clang.llvm.org/doxygen/classclang_1_1BinaryConditionalOperator.html
Note that is says:
BinaryConditionalOperator - The GNU extension to the conditional operator which allows the middle operand to be omitted.