From adfb842fc19b4f51f4cdce15bf556ef7a88373c0 Mon Sep 17 00:00:00 2001 From: Douglas Gregor Date: Fri, 13 Apr 2012 16:03:00 +0000 Subject: [PATCH] Remove the -cc1-level option "-pubnames-dump". Such things should stay out of the tree and use the tooling infrastructure. llvm-svn: 154668 --- clang/include/clang/Driver/CC1Options.td | 3 - .../include/clang/Frontend/FrontendActions.h | 9 --- .../include/clang/Frontend/FrontendOptions.h | 1 - clang/lib/Frontend/CompilerInvocation.cpp | 3 - clang/lib/Frontend/FrontendActions.cpp | 72 ------------------- .../ExecuteCompilerInvocation.cpp | 1 - clang/test/Misc/pubnames.c | 19 ----- 7 files changed, 108 deletions(-) delete mode 100644 clang/test/Misc/pubnames.c diff --git a/clang/include/clang/Driver/CC1Options.td b/clang/include/clang/Driver/CC1Options.td index 3ab8f8348183..83c988abd13d 100644 --- a/clang/include/clang/Driver/CC1Options.td +++ b/clang/include/clang/Driver/CC1Options.td @@ -428,9 +428,6 @@ def ast_view : Flag<"-ast-view">, HelpText<"Build ASTs and view them with GraphViz">; def print_decl_contexts : Flag<"-print-decl-contexts">, HelpText<"Print DeclContexts and their Decls">; -def pubnames_dump : Flag<"-pubnames-dump">, - HelpText<"Print all of the public (global) names in the source, e.g., the " - "names of all global declarations and macros">; def emit_module : Flag<"-emit-module">, HelpText<"Generate pre-compiled module file from a module map">; def emit_pth : Flag<"-emit-pth">, diff --git a/clang/include/clang/Frontend/FrontendActions.h b/clang/include/clang/Frontend/FrontendActions.h index 8817c5af564e..8f7fe87ee67d 100644 --- a/clang/include/clang/Frontend/FrontendActions.h +++ b/clang/include/clang/Frontend/FrontendActions.h @@ -173,15 +173,6 @@ protected: virtual bool usesPreprocessorOnly() const { return true; } }; -class PubnamesDumpAction : public ASTFrontendAction { -protected: - virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI, - StringRef InFile); - -public: - virtual bool hasCodeCompletionSupport() const { return false; } -}; - //===----------------------------------------------------------------------===// // Preprocessor Actions //===----------------------------------------------------------------------===// diff --git a/clang/include/clang/Frontend/FrontendOptions.h b/clang/include/clang/Frontend/FrontendOptions.h index a051d7ff629e..888388c310e4 100644 --- a/clang/include/clang/Frontend/FrontendOptions.h +++ b/clang/include/clang/Frontend/FrontendOptions.h @@ -42,7 +42,6 @@ namespace frontend { PrintDeclContext, ///< Print DeclContext and their Decls. PrintPreamble, ///< Print the "preamble" of the input file PrintPreprocessedInput, ///< -E mode. - PubnamesDump, ///< Print all of the "public" names in the source. RewriteMacros, ///< Expand macros but not #includes. RewriteObjC, ///< ObjC->C Rewriter. RewriteTest, ///< Rewriter playground diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp index 02947c778c32..4c5b063f7d41 100644 --- a/clang/lib/Frontend/CompilerInvocation.cpp +++ b/clang/lib/Frontend/CompilerInvocation.cpp @@ -429,7 +429,6 @@ static const char *getActionName(frontend::ActionKind Kind) { case frontend::PrintDeclContext: return "-print-decl-contexts"; case frontend::PrintPreamble: return "-print-preamble"; case frontend::PrintPreprocessedInput: return "-E"; - case frontend::PubnamesDump: return "-pubnames-dump"; case frontend::RewriteMacros: return "-rewrite-macros"; case frontend::RewriteObjC: return "-rewrite-objc"; case frontend::RewriteTest: return "-rewrite-test"; @@ -1369,8 +1368,6 @@ static InputKind ParseFrontendArgs(FrontendOptions &Opts, ArgList &Args, Opts.ProgramAction = frontend::PrintPreamble; break; case OPT_E: Opts.ProgramAction = frontend::PrintPreprocessedInput; break; - case OPT_pubnames_dump: - Opts.ProgramAction = frontend::PubnamesDump; break; case OPT_rewrite_macros: Opts.ProgramAction = frontend::RewriteMacros; break; case OPT_rewrite_objc: diff --git a/clang/lib/Frontend/FrontendActions.cpp b/clang/lib/Frontend/FrontendActions.cpp index b4a439d4237e..737ee4a098bb 100644 --- a/clang/lib/Frontend/FrontendActions.cpp +++ b/clang/lib/Frontend/FrontendActions.cpp @@ -25,7 +25,6 @@ #include "llvm/Support/MemoryBuffer.h" #include "llvm/Support/raw_ostream.h" #include "llvm/Support/system_error.h" -#include using namespace clang; @@ -355,77 +354,6 @@ ASTConsumer *SyntaxOnlyAction::CreateASTConsumer(CompilerInstance &CI, return new ASTConsumer(); } -namespace { - class PubnamesDumpConsumer : public ASTConsumer { - Preprocessor &PP; - - /// \brief Determine whether the given identifier provides a 'public' name. - bool isPublicName(IdentifierInfo *II) { - // If there are any top-level declarations associated with this - // identifier, it is a public name. - if (II->getFETokenInfo()) - return true; - - // If this identifier is the name of a non-builtin macro that isn't - // defined on the command line or implicitly by the front end, it is a - // public name. - if (II->hasMacroDefinition()) { - if (MacroInfo *M = PP.getMacroInfo(II)) - if (!M->isBuiltinMacro()) { - SourceLocation Loc = M->getDefinitionLoc(); - FileID File = PP.getSourceManager().getFileID(Loc); - if (PP.getSourceManager().getFileEntryForID(File)) - return true; - } - } - - return false; - } - - public: - PubnamesDumpConsumer(Preprocessor &PP) : PP(PP) { } - - virtual void HandleTranslationUnit(ASTContext &Ctx) { - std::set Pubnames; - - // Add the names of any non-builtin macros. - for (IdentifierTable::iterator I = Ctx.Idents.begin(), - IEnd = Ctx.Idents.end(); - I != IEnd; ++I) { - if (isPublicName(I->second)) - Pubnames.insert(I->first()); - } - - // If there is an external identifier lookup source, consider those - // identifiers as well. - if (IdentifierInfoLookup *External - = Ctx.Idents.getExternalIdentifierLookup()) { - OwningPtr Iter(External->getIdentifiers()); - do { - StringRef Name = Iter->Next(); - if (Name.empty()) - break; - - if (isPublicName(PP.getIdentifierInfo(Name))) - Pubnames.insert(Name); - } while (true); - } - - // Print the names, in lexicographical order. - for (std::set::iterator N = Pubnames.begin(), - NEnd = Pubnames.end(); - N != NEnd; ++N) { - llvm::outs() << *N << '\n'; - } - } - }; -} - -ASTConsumer *PubnamesDumpAction::CreateASTConsumer(CompilerInstance &CI, - StringRef InFile) { - return new PubnamesDumpConsumer(CI.getPreprocessor()); -} - //===----------------------------------------------------------------------===// // Preprocessor Actions //===----------------------------------------------------------------------===// diff --git a/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp b/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp index 20665051808b..07d2b8d19f24 100644 --- a/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp +++ b/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp @@ -72,7 +72,6 @@ static FrontendAction *CreateFrontendBaseAction(CompilerInstance &CI) { case PrintDeclContext: return new DeclContextPrintAction(); case PrintPreamble: return new PrintPreambleAction(); case PrintPreprocessedInput: return new PrintPreprocessedAction(); - case PubnamesDump: return new PubnamesDumpAction(); case RewriteMacros: return new RewriteMacrosAction(); case RewriteObjC: return new RewriteObjCAction(); case RewriteTest: return new RewriteTestAction(); diff --git a/clang/test/Misc/pubnames.c b/clang/test/Misc/pubnames.c deleted file mode 100644 index 03048972c002..000000000000 --- a/clang/test/Misc/pubnames.c +++ /dev/null @@ -1,19 +0,0 @@ -// RUN: %clang_cc1 -pubnames-dump %s | FileCheck %s -#define FOO -#define BAR -#undef FOO -#define WIBBLE - -int foo(); -int bar(float); -int wibble; - -// CHECK: BAR -// CHECK-NOT: FOO -// CHECK: WIBBLE -// CHECK-NOT: __clang_major__ -// CHECK: bar -// CHECK: foo -// CHECK: wibble - -