Next: , Previous: Compound Lvalues, Up: Operands   [Contents][Index]


12.6.3 Conditional Expressions

A C ?: expression is converted into an if statement with each branch assigning to the same temporary. So,

a = b ? c : d;

becomes

if (b == 1)
  T1 = c;
else
  T1 = d;
a = T1;

The GIMPLE level if-conversion pass re-introduces ?: expression, if appropriate. It is used to vectorize loops with conditions using vector conditional operations.

Note that in GIMPLE, if statements are represented using GIMPLE_COND, as described below.