[cfe-commits] r53174 - in /cfe/trunk: lib/AST/Expr.cpp lib/Sema/SemaDecl.cpp test/Sema/compound-literal.c
Neil Booth
neil at daikokuya.co.uk
Mon Jul 7 13:01:24 PDT 2008
Nuno Lopes wrote:-
> /// expression. The generalization of the wording to include any subexpression
> /// that is not evaluated (C99 6.6p3) means that nonconstant subexpressions
> /// can appear as operands to other operators (e.g. &&, ||, ?:). For instance,
> -/// "0 || f()" can be treated as a constant expression. In C90 this expression,
> +/// "1 || f()" can be treated as a constant expression. In C90 this expression,
> /// occurring in a context requiring a constant, would have been a constraint
> /// violation. FIXME: This routine currently implements C90 semantics.
> /// To properly implement C99 semantics this routine will need to evaluate
1 || f()
is never a constant expression.
Neil.
More information about the cfe-commits
mailing list