Author: ddunbar
Date: Wed Nov 12 16:37:10 2008
New Revision: 59184
URL: http://llvm.org/viewvc/llvm-project?rev=59184&view=rev
Log:
Quick fix for crash in IRgen when we can tryEvaluate a condition to
something that is not an int.
- Ignore these cases for now, added FIXME that we should also boolize
them.
Modified:
cfe/trunk/lib/CodeGen/CodeGenFunction.cpp
Modified: cfe/trunk/lib/CodeGen/CodeGenFunction.cpp
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenFunction.cpp?rev=59184&r1=59183&r2=59184&view=diff
==============================================================================
--- cfe/trunk/lib/CodeGen/CodeGenFunction.cpp (original)
+++ cfe/trunk/lib/CodeGen/CodeGenFunction.cpp Wed Nov 12 16:37:10 2008
@@ -194,8 +194,11 @@
/// to 'false' and does not contain a label, return -1.
int CodeGenFunction::ConstantFoldsToSimpleInteger(const Expr *Cond) {
APValue V;
- if (!Cond->tryEvaluate(V, getContext()))
- return 0; // Not foldable.
+
+ // FIXME: Rename and handle conversion of other evaluatable things
+ // to bool.
+ if (!Cond->tryEvaluate(V, getContext()) || !V.isInt())
+ return 0; // Not foldable or not integer.
if (CodeGenFunction::ContainsLabel(Cond))
return 0; // Contains a label.
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits