summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/Expr.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2008-12-12 06:57:03 +0000
committerChris Lattner <sabre@nondot.org>2008-12-12 06:57:03 +0000
commitd260aa03b526d15593a6f839f3406d968c517338 (patch)
tree5c39e5deb84af0671209941b44ad8bfbeff317ec /clang/lib/AST/Expr.cpp
parent85b25bc34461552733a03c1c31ad7a922ca56878 (diff)
downloadbcm5719-llvm-d260aa03b526d15593a6f839f3406d968c517338.tar.gz
bcm5719-llvm-d260aa03b526d15593a6f839f3406d968c517338.zip
add a fixme.
llvm-svn: 60935
Diffstat (limited to 'clang/lib/AST/Expr.cpp')
-rw-r--r--clang/lib/AST/Expr.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/clang/lib/AST/Expr.cpp b/clang/lib/AST/Expr.cpp
index 8d113569259..bdc5096584a 100644
--- a/clang/lib/AST/Expr.cpp
+++ b/clang/lib/AST/Expr.cpp
@@ -1029,6 +1029,10 @@ bool Expr::isIntegerConstantExpr(llvm::APSInt &Result, ASTContext &Ctx,
// If the condition (ignoring parens) is a __builtin_constant_p call,
// then only the true side is actually considered in an integer constant
// expression. This is an important GNU extension.
+ //
+ // FIXME: ?: with a conditional expr should arguably be an i-c-e if the true
+ // side can be folded in any way to a constant. See GCC PR38377 for
+ // discussion.
if (const CallExpr *CallCE = dyn_cast<CallExpr>(Cond->IgnoreParenCasts()))
if (CallCE->isBuiltinCall() == Builtin::BI__builtin_constant_p)
FalseExp = 0;
OpenPOWER on IntegriCloud