http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60722
Marek Polacek <mpolacek at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED CC| |mpolacek at gcc dot gnu.org Resolution|--- |INVALID --- Comment #1 from Marek Polacek <mpolacek at gcc dot gnu.org> --- So this is basically: void foo (void) { const int ci = 12; int i; i = __builtin_choose_expr (ci, 1, 23); } but as ci is not an integer constant expression, we don't want to allow this one in C, and C++ doesn't support __builtin_choose_expr since it has templates. (Yes, there's decl_constant_value that would work for this particular example, but I'm afraid it can't work e.g. for PARM_DECLs.) So, closing.