diff options
author | Gabor Marton <martongabesz@gmail.com> | 2019-02-08 08:55:32 +0000 |
---|---|---|
committer | Gabor Marton <martongabesz@gmail.com> | 2019-02-08 08:55:32 +0000 |
commit | fc638d64e8f0826c5206f430a6b7ef1294ead3da (patch) | |
tree | ba835ae42c42fda30d2db2c4a9002667ef8ac4e6 /clang/lib/AST/ASTStructuralEquivalence.cpp | |
parent | ee21a66a7b807150148bf61167df87a2eb1689e0 (diff) | |
download | bcm5719-llvm-fc638d64e8f0826c5206f430a6b7ef1294ead3da.tar.gz bcm5719-llvm-fc638d64e8f0826c5206f430a6b7ef1294ead3da.zip |
[AST] Fix structural inequivalence of operators
Summary: Operators kind was not checked, so we reported e.g. op- to be equal with op+
Reviewers: shafik, a_sidorin, aaron.ballman
Subscribers: rnkovacs, dkrupp, Szelethus, gamesh411, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D57902
llvm-svn: 353504
Diffstat (limited to 'clang/lib/AST/ASTStructuralEquivalence.cpp')
-rw-r--r-- | clang/lib/AST/ASTStructuralEquivalence.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/clang/lib/AST/ASTStructuralEquivalence.cpp b/clang/lib/AST/ASTStructuralEquivalence.cpp index 9f83c5110f6..4a1f6da14e3 100644 --- a/clang/lib/AST/ASTStructuralEquivalence.cpp +++ b/clang/lib/AST/ASTStructuralEquivalence.cpp @@ -1650,6 +1650,12 @@ bool StructuralEquivalenceContext::CheckKindSpecificEquivalence( } } else if (FunctionDecl *FD1 = dyn_cast<FunctionDecl>(D1)) { if (FunctionDecl *FD2 = dyn_cast<FunctionDecl>(D2)) { + if (FD1->isOverloadedOperator()) { + if (!FD2->isOverloadedOperator()) + return false; + if (FD1->getOverloadedOperator() != FD2->getOverloadedOperator()) + return false; + } if (!::IsStructurallyEquivalent(FD1->getIdentifier(), FD2->getIdentifier())) return false; |