diff options
Diffstat (limited to 'lib/Analysis/IPA')
-rw-r--r-- | lib/Analysis/IPA/Andersens.cpp | 4 | ||||
-rw-r--r-- | lib/Analysis/IPA/GlobalsModRef.cpp | 3 |
2 files changed, 4 insertions, 3 deletions
diff --git a/lib/Analysis/IPA/Andersens.cpp b/lib/Analysis/IPA/Andersens.cpp index 037f33145a..399ce1f45d 100644 --- a/lib/Analysis/IPA/Andersens.cpp +++ b/lib/Analysis/IPA/Andersens.cpp @@ -139,7 +139,7 @@ namespace { Constraint(ConstraintType Ty, unsigned D, unsigned S, unsigned O = 0) : Type(Ty), Dest(D), Src(S), Offset(O) { - assert(Offset == 0 || Ty != AddressOf && + assert((Offset == 0 || Ty != AddressOf) && "Offset is illegal on addressof constraints"); } @@ -1931,7 +1931,7 @@ void Andersens::RewriteConstraints() { C.Src = FindEquivalentNode(RHSNode, RHSLabel); C.Dest = FindEquivalentNode(FindNode(LHSNode), LHSLabel); - if (C.Src == C.Dest && C.Type == Constraint::Copy + if ((C.Src == C.Dest && C.Type == Constraint::Copy) || Seen.count(C)) continue; diff --git a/lib/Analysis/IPA/GlobalsModRef.cpp b/lib/Analysis/IPA/GlobalsModRef.cpp index 880298ec02..9aafe375b4 100644 --- a/lib/Analysis/IPA/GlobalsModRef.cpp +++ b/lib/Analysis/IPA/GlobalsModRef.cpp @@ -115,11 +115,12 @@ namespace { /// case the most generic behavior of this function should be returned. virtual ModRefBehavior getModRefBehavior(Function *F, CallSite CS, std::vector<PointerAccessInfo> *Info) { - if (FunctionRecord *FR = getFunctionInfo(F)) + if (FunctionRecord *FR = getFunctionInfo(F)) { if (FR->FunctionEffect == 0) return DoesNotAccessMemory; else if ((FR->FunctionEffect & Mod) == 0) return OnlyReadsMemory; + } return AliasAnalysis::getModRefBehavior(F, CS, Info); } |