summaryrefslogtreecommitdiff
path: root/compilerplugins/clang/dynexcspec.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'compilerplugins/clang/dynexcspec.cxx')
-rw-r--r--compilerplugins/clang/dynexcspec.cxx14
1 files changed, 6 insertions, 8 deletions
diff --git a/compilerplugins/clang/dynexcspec.cxx b/compilerplugins/clang/dynexcspec.cxx
index 7ca7ba0ac576..b06245e0ff03 100644
--- a/compilerplugins/clang/dynexcspec.cxx
+++ b/compilerplugins/clang/dynexcspec.cxx
@@ -21,7 +21,12 @@
namespace {
bool isOverriding(FunctionDecl const * decl) {
- return decl->hasAttr<OverrideAttr>();
+ if (decl->hasAttr<OverrideAttr>()) {
+ return true;
+ }
+ auto m = dyn_cast<CXXMethodDecl>(decl);
+ return m != nullptr
+ && m->begin_overridden_methods() != m->end_overridden_methods();
}
class DynExcSpec:
@@ -31,13 +36,6 @@ public:
explicit DynExcSpec(InstantiationData const & data): RewritePlugin(data) {}
void run() override {
- // See the mail thread mentioned above for why !LIBO_INTERNAL_ONLY is
- // excluded for now:
- if (!compiler.getPreprocessor().getIdentifierInfo("LIBO_INTERNAL_ONLY")
- ->hasMacroDefinition())
- {
- return;
- }
if (compiler.getLangOpts().CPlusPlus) {
TraverseDecl(compiler.getASTContext().getTranslationUnitDecl());
}