Enable loplugin:dynexcspec rewriting mode

Change-Id: I73404287c387a36e224683f75e967d51d911175b
This commit is contained in:
Stephan Bergmann
2017-01-27 10:47:16 +01:00
parent 38da1ed919
commit 1a90a23d9f

View File

@@ -58,9 +58,23 @@ public:
" no corresponding documentation comment"), " no corresponding documentation comment"),
decl->getLocation()) decl->getLocation())
<< decl->getSourceRange(); << decl->getSourceRange();
return true;
} }
#if 0 // will be enabled later if (rewriter != nullptr) {
if (!(decl->isDefined() || decl->isPure())) {
return true;
}
if (auto m = dyn_cast<CXXMethodDecl>(decl)) {
for (auto i = m->begin_overridden_methods();
i != m->end_overridden_methods(); ++i)
{
auto proto2 = (*i)->getType()->getAs<FunctionProtoType>();
assert(proto2 != nullptr);
if (proto2->getExceptionSpecType() == EST_Dynamic) {
return true;
}
}
}
}
bool dtor = isa<CXXDestructorDecl>(decl); bool dtor = isa<CXXDestructorDecl>(decl);
auto source = decl->getExceptionSpecSourceRange(); auto source = decl->getExceptionSpecSourceRange();
if (rewriter != nullptr && source.isValid()) { if (rewriter != nullptr && source.isValid()) {
@@ -93,6 +107,9 @@ public:
} }
} }
if (!s.empty() && s != "\\") { if (!s.empty() && s != "\\") {
if (s.startswith("//")) {
beg = source.getBegin();
}
break; break;
} }
beg = prev; beg = prev;
@@ -110,7 +127,6 @@ public:
: "remove dynamic exception specification"), : "remove dynamic exception specification"),
source.isValid() ? source.getBegin() : decl->getLocation()) source.isValid() ? source.getBegin() : decl->getLocation())
<< (source.isValid() ? source : decl->getSourceRange()); << (source.isValid() ? source : decl->getSourceRange());
#endif
return true; return true;
} }