diff options
Diffstat (limited to 'contrib/llvm/lib/Analysis/GlobalsModRef.cpp')
-rw-r--r-- | contrib/llvm/lib/Analysis/GlobalsModRef.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/contrib/llvm/lib/Analysis/GlobalsModRef.cpp b/contrib/llvm/lib/Analysis/GlobalsModRef.cpp index 94306d0f54ad..197aee9dacb7 100644 --- a/contrib/llvm/lib/Analysis/GlobalsModRef.cpp +++ b/contrib/llvm/lib/Analysis/GlobalsModRef.cpp @@ -65,7 +65,7 @@ class GlobalsAAResult::FunctionInfo { /// Build a wrapper struct that has 8-byte alignment. All heap allocations /// should provide this much alignment at least, but this makes it clear we /// specifically rely on this amount of alignment. - struct LLVM_ALIGNAS(8) AlignedMap { + struct alignas(8) AlignedMap { AlignedMap() {} AlignedMap(const AlignedMap &Arg) : Map(Arg.Map) {} GlobalInfoMapType Map; @@ -584,6 +584,10 @@ void GlobalsAAResult::AnalyzeCallGraph(CallGraph &CG, Module &M) { } else if (Function *Callee = CS.getCalledFunction()) { // The callgraph doesn't include intrinsic calls. if (Callee->isIntrinsic()) { + if (isa<DbgInfoIntrinsic>(I)) + // Don't let dbg intrinsics affect alias info. + continue; + FunctionModRefBehavior Behaviour = AAResultBase::getModRefBehavior(Callee); FI.addModRefInfo(createModRefInfo(Behaviour)); |