summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/modularize/Modularize.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang-tools-extra/modularize/Modularize.cpp')
-rw-r--r--clang-tools-extra/modularize/Modularize.cpp46
1 files changed, 8 insertions, 38 deletions
diff --git a/clang-tools-extra/modularize/Modularize.cpp b/clang-tools-extra/modularize/Modularize.cpp
index 45d825d4414..d68e855c70b 100644
--- a/clang-tools-extra/modularize/Modularize.cpp
+++ b/clang-tools-extra/modularize/Modularize.cpp
@@ -90,12 +90,10 @@
#include <iterator>
#include <string>
#include <vector>
-#include "PreprocessorTracker.h"
using namespace clang::tooling;
using namespace clang;
using namespace llvm;
-using namespace Modularize;
// Option to specify a file name for a list of header files to check.
cl::opt<std::string>
@@ -384,14 +382,8 @@ private:
class CollectEntitiesConsumer : public ASTConsumer {
public:
- CollectEntitiesConsumer(EntityMap &Entities,
- PreprocessorTracker &preprocessorTracker,
- Preprocessor &PP, StringRef InFile)
- : Entities(Entities), PPTracker(preprocessorTracker), PP(PP) {
- PPTracker.handlePreprocessorEntry(PP, InFile);
- }
-
- ~CollectEntitiesConsumer() { PPTracker.handlePreprocessorExit(); }
+ CollectEntitiesConsumer(EntityMap &Entities, Preprocessor &PP)
+ : Entities(Entities), PP(PP) {}
virtual void HandleTranslationUnit(ASTContext &Ctx) {
SourceManager &SM = Ctx.getSourceManager();
@@ -417,41 +409,33 @@ public:
private:
EntityMap &Entities;
- PreprocessorTracker &PPTracker;
Preprocessor &PP;
};
class CollectEntitiesAction : public SyntaxOnlyAction {
public:
- CollectEntitiesAction(EntityMap &Entities,
- PreprocessorTracker &preprocessorTracker)
- : Entities(Entities), PPTracker(preprocessorTracker) {}
+ CollectEntitiesAction(EntityMap &Entities) : Entities(Entities) {}
protected:
virtual clang::ASTConsumer *CreateASTConsumer(CompilerInstance &CI,
StringRef InFile) {
- return new CollectEntitiesConsumer(Entities, PPTracker,
- CI.getPreprocessor(), InFile);
+ return new CollectEntitiesConsumer(Entities, CI.getPreprocessor());
}
private:
EntityMap &Entities;
- PreprocessorTracker &PPTracker;
};
class ModularizeFrontendActionFactory : public FrontendActionFactory {
public:
- ModularizeFrontendActionFactory(EntityMap &Entities,
- PreprocessorTracker &preprocessorTracker)
- : Entities(Entities), PPTracker(preprocessorTracker) {}
+ ModularizeFrontendActionFactory(EntityMap &Entities) : Entities(Entities) {}
virtual CollectEntitiesAction *create() {
- return new CollectEntitiesAction(Entities, PPTracker);
+ return new CollectEntitiesAction(Entities);
}
private:
EntityMap &Entities;
- PreprocessorTracker &PPTracker;
};
int main(int argc, const char **argv) {
@@ -480,14 +464,10 @@ int main(int argc, const char **argv) {
Compilations.reset(
new FixedCompilationDatabase(Twine(PathBuf), CC1Arguments));
- // Create preprocessor tracker, to watch for macro and conditional problems.
- OwningPtr<PreprocessorTracker> PPTracker(PreprocessorTracker::create());
-
// Parse all of the headers, detecting duplicates.
EntityMap Entities;
ClangTool Tool(*Compilations, Headers);
- int HadErrors =
- Tool.run(new ModularizeFrontendActionFactory(Entities, *PPTracker));
+ int HadErrors = Tool.run(new ModularizeFrontendActionFactory(Entities));
// Create a place to save duplicate entity locations, separate bins per kind.
typedef SmallVector<Location, 8> LocationArray;
@@ -535,16 +515,6 @@ int main(int argc, const char **argv) {
}
}
- // Complain about macro instance in header files that differ based on how
- // they are included.
- if (PPTracker->reportInconsistentMacros(errs()))
- HadErrors = 1;
-
- // Complain about preprocessor conditional directives in header files that
- // differ based on how they are included.
- if (PPTracker->reportInconsistentConditionals(errs()))
- HadErrors = 1;
-
// Complain about any headers that have contents that differ based on how
// they are included.
// FIXME: Could we provide information about which preprocessor conditionals
@@ -560,7 +530,7 @@ int main(int argc, const char **argv) {
HadErrors = 1;
errs() << "error: header '" << H->first->getName()
- << "' has different contents depending on how it was included.\n";
+ << "' has different contents depending on how it was included\n";
for (unsigned I = 0, N = H->second.size(); I != N; ++I) {
errs() << "note: '" << H->second[I].Name << "' in "
<< H->second[I].Loc.File->getName() << " at "
OpenPOWER on IntegriCloud