An inline assembly instruction might explicitly or implicitly
attempt to update the processor condition flags. Inline assembly
instructions that involve only virtual register operands or simple
expression operands (see Operands) have predictable behavior. The condition
flags are set by the instruction if either an implicit or an explicit
update is specified. The condition flags are unchanged if no update
is specified. If any of the instruction operands are not simple
operands, then the condition flags might be corrupted unless the
instruction updates them. In general, the compiler cannot easily diagnose
potential corruption of the condition flags. However, for operands
that require the construction and subsequent destruction of C++
temporaries the compiler gives a warning if the instruction attempts
to update the condition flags. This is because the destruction might
corrupt the condition flags.