diff options
Diffstat (limited to 'contrib/llvm-project/llvm/tools/llvm-diff/DifferenceEngine.cpp')
| -rw-r--r-- | contrib/llvm-project/llvm/tools/llvm-diff/DifferenceEngine.cpp | 9 | 
1 files changed, 9 insertions, 0 deletions
| diff --git a/contrib/llvm-project/llvm/tools/llvm-diff/DifferenceEngine.cpp b/contrib/llvm-project/llvm/tools/llvm-diff/DifferenceEngine.cpp index bc93ece86490..564ce7870592 100644 --- a/contrib/llvm-project/llvm/tools/llvm-diff/DifferenceEngine.cpp +++ b/contrib/llvm-project/llvm/tools/llvm-diff/DifferenceEngine.cpp @@ -732,5 +732,14 @@ void DifferenceEngine::diff(Module *L, Module *R) {  bool DifferenceEngine::equivalentAsOperands(GlobalValue *L, GlobalValue *R) {    if (globalValueOracle) return (*globalValueOracle)(L, R); + +  if (isa<GlobalVariable>(L) && isa<GlobalVariable>(R)) { +    GlobalVariable *GVL = cast<GlobalVariable>(L); +    GlobalVariable *GVR = cast<GlobalVariable>(R); +    if (GVL->hasLocalLinkage() && GVL->hasUniqueInitializer() && +        GVR->hasLocalLinkage() && GVR->hasUniqueInitializer()) +      return GVL->getInitializer() == GVR->getInitializer(); +  } +    return L->getName() == R->getName();  } | 
