------- Comment #7 from redi at gcc dot gnu dot org 2010-08-28 23:48 ------- (In reply to comment #6) > Thank you. Don't know about C, but this is C++ in which operators are > function.
Builtin operators are not functions. See e.g. footnote 12 on 1.9p18 in C++ 2003 which makes it clear that builtin operators have very different effects wrt sequence points from user-defined functions: 12) The operators indicated in this paragraph are the built-in operators, as described in clause 5. When one of these operators is over-loaded (clause 13) in a valid context, thus designating a user-defined operator function, the expression designates a function invocation, and the operands form an argument list, without an implied sequence point between them. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45437