summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis
diff options
context:
space:
mode:
authorHal Finkel <hfinkel@anl.gov>2015-08-19 17:26:07 +0000
committerHal Finkel <hfinkel@anl.gov>2015-08-19 17:26:07 +0000
commitff08a2ecad56a03c763031901ea8a6ea70b5d75e (patch)
tree581defa2088718bb9cf7c82fd1af99fabd2188f3 /llvm/lib/Analysis
parentcdb791cd336af50191660da5d9071474425b4863 (diff)
downloadbcm5719-llvm-ff08a2ecad56a03c763031901ea8a6ea70b5d75e.tar.gz
bcm5719-llvm-ff08a2ecad56a03c763031901ea8a6ea70b5d75e.zip
[SCEV] Fix GCC 4.8.0 ICE in lambda function
Rewrite some code to not use a lambda function. The non-lambda code is just about as clean as the original, and not any longer. The lambda function causes an internal compiler error in GCC 4.8.0, and it is not worth breaking support for that compiler over this. NFC. llvm-svn: 245466
Diffstat (limited to 'llvm/lib/Analysis')
-rw-r--r--llvm/lib/Analysis/ScalarEvolution.cpp10
1 files changed, 3 insertions, 7 deletions
diff --git a/llvm/lib/Analysis/ScalarEvolution.cpp b/llvm/lib/Analysis/ScalarEvolution.cpp
index 363731a0b6c..37141c33009 100644
--- a/llvm/lib/Analysis/ScalarEvolution.cpp
+++ b/llvm/lib/Analysis/ScalarEvolution.cpp
@@ -7351,13 +7351,9 @@ static bool IsKnownPredicateViaAddRecStart(ScalarEvolution &SE,
if (LAR->getStepRecurrence(SE) != RAR->getStepRecurrence(SE))
return false;
- auto CheckWrap = [Pred](const SCEVAddRecExpr *AR) -> bool {
- if (ICmpInst::isSigned(Pred))
- return AR->getNoWrapFlags(SCEV::FlagNSW);
- return AR->getNoWrapFlags(SCEV::FlagNUW);
- };
-
- if (!CheckWrap(LAR) || !CheckWrap(RAR))
+ SCEV::NoWrapFlags NW = ICmpInst::isSigned(Pred) ?
+ SCEV::FlagNSW : SCEV::FlagNUW;
+ if (!LAR->getNoWrapFlags(NW) || !RAR->getNoWrapFlags(NW))
return false;
return SE.isKnownPredicate(Pred, LAR->getStart(), RAR->getStart());
OpenPOWER on IntegriCloud