forked from OSchip/llvm-project
parent
68d2ca7ecc
commit
48b812854e
|
@ -83,31 +83,31 @@ public:
|
|||
}
|
||||
};
|
||||
|
||||
/// \brief Checks deserialized declarations and emits error if a name
|
||||
/// matches one given in command-line using -error-on-deserialized-decl.
|
||||
class DeserializedDeclsChecker : public DelegatingDeserializationListener {
|
||||
ASTContext &Ctx;
|
||||
std::set<std::string> NamesToCheck;
|
||||
/// \brief Checks deserialized declarations and emits error if a name
|
||||
/// matches one given in command-line using -error-on-deserialized-decl.
|
||||
class DeserializedDeclsChecker : public DelegatingDeserializationListener {
|
||||
ASTContext &Ctx;
|
||||
std::set<std::string> NamesToCheck;
|
||||
|
||||
public:
|
||||
DeserializedDeclsChecker(ASTContext &Ctx,
|
||||
const std::set<std::string> &NamesToCheck,
|
||||
ASTDeserializationListener *Previous)
|
||||
: DelegatingDeserializationListener(Previous),
|
||||
Ctx(Ctx), NamesToCheck(NamesToCheck) { }
|
||||
public:
|
||||
DeserializedDeclsChecker(ASTContext &Ctx,
|
||||
const std::set<std::string> &NamesToCheck,
|
||||
ASTDeserializationListener *Previous)
|
||||
: DelegatingDeserializationListener(Previous),
|
||||
Ctx(Ctx), NamesToCheck(NamesToCheck) { }
|
||||
|
||||
virtual void DeclRead(serialization::DeclID ID, const Decl *D) {
|
||||
if (const NamedDecl *ND = dyn_cast<NamedDecl>(D))
|
||||
if (NamesToCheck.find(ND->getNameAsString()) != NamesToCheck.end()) {
|
||||
unsigned DiagID
|
||||
= Ctx.getDiagnostics().getCustomDiagID(DiagnosticsEngine::Error,
|
||||
"%0 was deserialized");
|
||||
Ctx.getDiagnostics().Report(Ctx.getFullLoc(D->getLocation()), DiagID)
|
||||
<< ND->getNameAsString();
|
||||
}
|
||||
virtual void DeclRead(serialization::DeclID ID, const Decl *D) {
|
||||
if (const NamedDecl *ND = dyn_cast<NamedDecl>(D))
|
||||
if (NamesToCheck.find(ND->getNameAsString()) != NamesToCheck.end()) {
|
||||
unsigned DiagID
|
||||
= Ctx.getDiagnostics().getCustomDiagID(DiagnosticsEngine::Error,
|
||||
"%0 was deserialized");
|
||||
Ctx.getDiagnostics().Report(Ctx.getFullLoc(D->getLocation()), DiagID)
|
||||
<< ND->getNameAsString();
|
||||
}
|
||||
|
||||
DelegatingDeserializationListener::DeclRead(ID, D);
|
||||
}
|
||||
DelegatingDeserializationListener::DeclRead(ID, D);
|
||||
}
|
||||
};
|
||||
|
||||
} // end anonymous namespace
|
||||
|
|
Loading…
Reference in New Issue