diff options
| author | Dmitri Gribenko <gribozavr@gmail.com> | 2013-12-19 01:58:52 +0000 |
|---|---|---|
| committer | Dmitri Gribenko <gribozavr@gmail.com> | 2013-12-19 01:58:52 +0000 |
| commit | 092ab4a9fe43493b3d884baee34b9c0373f22c3b (patch) | |
| tree | 384269302059578bb5deb8e003229eb83846aa88 | |
| parent | feae63d8572f9e79896aaf4c3945b050db7a5035 (diff) | |
| download | bcm5719-llvm-092ab4a9fe43493b3d884baee34b9c0373f22c3b.tar.gz bcm5719-llvm-092ab4a9fe43493b3d884baee34b9c0373f22c3b.zip | |
Simplify CXXMethodDecl::isVirtual() for __interface case
llvm-svn: 197643
| -rw-r--r-- | clang/include/clang/AST/DeclCXX.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/clang/include/clang/AST/DeclCXX.h b/clang/include/clang/AST/DeclCXX.h index 53c127e2cc9..75f20e2462c 100644 --- a/clang/include/clang/AST/DeclCXX.h +++ b/clang/include/clang/AST/DeclCXX.h @@ -1692,9 +1692,9 @@ public: CXXMethodDecl *CD = cast<CXXMethodDecl>(const_cast<CXXMethodDecl*>(this)->getCanonicalDecl()); - // Methods declared in interfaces are automatically (pure) virtual. - if (CD->isVirtualAsWritten() || - (CD->getParent()->isInterface() && CD->isUserProvided())) + // Member function is virtual if it is marked explicitly so, or if it is + // declared in __interface -- then it is automatically pure virtual. + if (CD->isVirtualAsWritten() || CD->isPure()) return true; return (CD->begin_overridden_methods() != CD->end_overridden_methods()); |

