forked from OSchip/llvm-project
Eliminate the internal command-line option for viewing inheritance in C++ classes, since it's only really worked for the trivial cases anyway due to lame pseudo-parsing of the class name. The viewInheritance() function is still available for use in the debugger, where this is far more useful
llvm-svn: 125762
This commit is contained in:
parent
e6be5e1c0d
commit
d6f8124c9c
|
@ -302,9 +302,6 @@ def help : Flag<"-help">,
|
|||
HelpText<"Print this help text">;
|
||||
def _help : Flag<"--help">, Alias<help>;
|
||||
def x : Separate<"-x">, HelpText<"Input language type">;
|
||||
def cxx_inheritance_view : Separate<"-cxx-inheritance-view">,
|
||||
MetaVarName<"<class name>">,
|
||||
HelpText<"View C++ inheritance for a specified class">;
|
||||
def o : Separate<"-o">, MetaVarName<"<path>">, HelpText<"Specify output file">;
|
||||
def load : Separate<"-load">, MetaVarName<"<dsopath>">,
|
||||
HelpText<"Load the named plugin (dynamic shared object)">;
|
||||
|
|
|
@ -61,10 +61,6 @@ ASTConsumer *CreateASTViewer();
|
|||
// to stderr; this is intended for debugging.
|
||||
ASTConsumer *CreateDeclContextPrinter();
|
||||
|
||||
// Inheritance viewer: for C++ code, creates a graph of the inheritance
|
||||
// tree for the given class and displays it with "dotty".
|
||||
ASTConsumer *CreateInheritanceViewer(const std::string& clsname);
|
||||
|
||||
} // end clang namespace
|
||||
|
||||
#endif
|
||||
|
|
|
@ -94,12 +94,6 @@ public:
|
|||
bool &Chaining);
|
||||
};
|
||||
|
||||
class InheritanceViewAction : public ASTFrontendAction {
|
||||
protected:
|
||||
virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI,
|
||||
llvm::StringRef InFile);
|
||||
};
|
||||
|
||||
class SyntaxOnlyAction : public ASTFrontendAction {
|
||||
protected:
|
||||
virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI,
|
||||
|
|
|
@ -39,7 +39,6 @@ namespace frontend {
|
|||
FixIt, ///< Parse and apply any fixits to the source.
|
||||
GeneratePCH, ///< Generate pre-compiled header.
|
||||
GeneratePTH, ///< Generate pre-tokenized header.
|
||||
InheritanceView, ///< View C++ inheritance for a specified class.
|
||||
InitOnly, ///< Only execute frontend initialization.
|
||||
ParseSyntaxOnly, ///< Parse and perform semantic analysis.
|
||||
PluginAction, ///< Run a plugin action, \see ActionName.
|
||||
|
@ -85,9 +84,6 @@ public:
|
|||
/// The output file, if any.
|
||||
std::string OutputFile;
|
||||
|
||||
/// If given, the name for a C++ class to view the inheritance of.
|
||||
std::string ViewClassInheritance;
|
||||
|
||||
/// If given, the new suffix for fix-it rewritten files.
|
||||
std::string FixItSuffix;
|
||||
|
||||
|
|
|
@ -427,34 +427,6 @@ ASTConsumer *clang::CreateDeclContextPrinter() {
|
|||
return new DeclContextPrinter();
|
||||
}
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
/// InheritanceViewer - C++ Inheritance Visualization
|
||||
|
||||
namespace {
|
||||
class InheritanceViewer : public ASTConsumer {
|
||||
const std::string clsname;
|
||||
public:
|
||||
InheritanceViewer(const std::string& cname) : clsname(cname) {}
|
||||
|
||||
void HandleTranslationUnit(ASTContext &C) {
|
||||
for (ASTContext::type_iterator I=C.types_begin(),E=C.types_end(); I!=E; ++I)
|
||||
if (RecordType *T = dyn_cast<RecordType>(*I)) {
|
||||
if (CXXRecordDecl *D = dyn_cast<CXXRecordDecl>(T->getDecl())) {
|
||||
// FIXME: This lookup needs to be generalized to handle namespaces and
|
||||
// (when we support them) templates.
|
||||
if (D->getNameAsString() == clsname) {
|
||||
D->viewInheritance(C);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
ASTConsumer *clang::CreateInheritanceViewer(const std::string& clsname) {
|
||||
return new InheritanceViewer(clsname);
|
||||
}
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
/// ASTDumperXML - In-depth XML dumping.
|
||||
|
||||
|
|
|
@ -335,7 +335,6 @@ static const char *getInputKindName(InputKind Kind) {
|
|||
static const char *getActionName(frontend::ActionKind Kind) {
|
||||
switch (Kind) {
|
||||
case frontend::PluginAction:
|
||||
case frontend::InheritanceView:
|
||||
llvm_unreachable("Invalid kind!");
|
||||
|
||||
case frontend::ASTDump: return "-ast-dump";
|
||||
|
@ -425,18 +424,13 @@ static void FrontendOptsToArgs(const FrontendOptions &Opts,
|
|||
Res.push_back("-o");
|
||||
Res.push_back(Opts.OutputFile);
|
||||
}
|
||||
if (!Opts.ViewClassInheritance.empty()) {
|
||||
Res.push_back("-cxx-inheritance-view");
|
||||
Res.push_back(Opts.ViewClassInheritance);
|
||||
}
|
||||
if (!Opts.CodeCompletionAt.FileName.empty()) {
|
||||
Res.push_back("-code-completion-at");
|
||||
Res.push_back(Opts.CodeCompletionAt.FileName + ":" +
|
||||
llvm::utostr(Opts.CodeCompletionAt.Line) + ":" +
|
||||
llvm::utostr(Opts.CodeCompletionAt.Column));
|
||||
}
|
||||
if (Opts.ProgramAction != frontend::InheritanceView &&
|
||||
Opts.ProgramAction != frontend::PluginAction)
|
||||
if (Opts.ProgramAction != frontend::PluginAction)
|
||||
Res.push_back(getActionName(Opts.ProgramAction));
|
||||
if (!Opts.ActionName.empty()) {
|
||||
Res.push_back("-plugin");
|
||||
|
@ -1170,7 +1164,6 @@ static InputKind ParseFrontendArgs(FrontendOptions &Opts, ArgList &Args,
|
|||
Opts.ShowStats = Args.hasArg(OPT_print_stats);
|
||||
Opts.ShowTimers = Args.hasArg(OPT_ftime_report);
|
||||
Opts.ShowVersion = Args.hasArg(OPT_version);
|
||||
Opts.ViewClassInheritance = Args.getLastArgValue(OPT_cxx_inheritance_view);
|
||||
Opts.ASTMergeFiles = Args.getAllArgValues(OPT_ast_merge);
|
||||
Opts.LLVMArgs = Args.getAllArgValues(OPT_mllvm);
|
||||
Opts.FixWhatYouCan = Args.hasArg(OPT_fix_what_you_can);
|
||||
|
|
|
@ -119,11 +119,6 @@ bool GeneratePCHAction::ComputeASTConsumerArguments(CompilerInstance &CI,
|
|||
return false;
|
||||
}
|
||||
|
||||
ASTConsumer *InheritanceViewAction::CreateASTConsumer(CompilerInstance &CI,
|
||||
llvm::StringRef InFile) {
|
||||
return CreateInheritanceViewer(CI.getFrontendOpts().ViewClassInheritance);
|
||||
}
|
||||
|
||||
ASTConsumer *SyntaxOnlyAction::CreateASTConsumer(CompilerInstance &CI,
|
||||
llvm::StringRef InFile) {
|
||||
return new ASTConsumer();
|
||||
|
|
|
@ -53,7 +53,6 @@ static FrontendAction *CreateFrontendBaseAction(CompilerInstance &CI) {
|
|||
case FixIt: return new FixItAction();
|
||||
case GeneratePCH: return new GeneratePCHAction();
|
||||
case GeneratePTH: return new GeneratePTHAction();
|
||||
case InheritanceView: return new InheritanceViewAction();
|
||||
case InitOnly: return new InitOnlyAction();
|
||||
case ParseSyntaxOnly: return new SyntaxOnlyAction();
|
||||
|
||||
|
|
Loading…
Reference in New Issue