A simple question: is the unary & operator the only one operator that allows operand of incomplete object type w/o triggering undefined behavior?
UPD. Reason of the question: I was reading Sun Studio 12: C User's Guide:
Most expression operators require complete object types. The only three exceptions are the unary & operator, the first operand of the comma operator, and the second and third operands of the ?: operator.
The ?: operator being used with the second and third operands of incomplete types leads to undefined behavior. This is due to lvalue conversion. The same for the comma operator. By analyzing exceptions of lvalue conversion (C11, 6.3.2.1p2) I've concluded that the unary & operator is the only one operator that allows operand of incomplete object type w/o triggering undefined behavior. However, I'm not sure whether it is correct.