mirror of
https://github.com/intel/llvm.git
synced 2026-02-05 13:21:04 +08:00
objc rewriter: start supporting modern objective-c abi
in objective-c rewriter. wip. llvm-svn: 149989
This commit is contained in:
@@ -31,6 +31,11 @@ ASTConsumer *CreateObjCRewriter(const std::string &InFile,
|
||||
DiagnosticsEngine &Diags,
|
||||
const LangOptions &LOpts,
|
||||
bool SilenceRewriteMacroWarning);
|
||||
ASTConsumer *CreateModernObjCRewriter(const std::string &InFile,
|
||||
raw_ostream *OS,
|
||||
DiagnosticsEngine &Diags,
|
||||
const LangOptions &LOpts,
|
||||
bool SilenceRewriteMacroWarning);
|
||||
|
||||
/// CreateHTMLPrinter - Create an AST consumer which rewrites source code to
|
||||
/// HTML with syntax highlighting suitable for viewing in a web-browser.
|
||||
|
||||
@@ -7,6 +7,7 @@ add_clang_library(clangRewrite
|
||||
HTMLPrint.cpp
|
||||
HTMLRewrite.cpp
|
||||
RewriteMacros.cpp
|
||||
RewriteModernObjC.cpp
|
||||
RewriteObjC.cpp
|
||||
RewriteRope.cpp
|
||||
RewriteTest.cpp
|
||||
|
||||
@@ -154,10 +154,15 @@ bool FixItRecompile::BeginInvocation(CompilerInstance &CI) {
|
||||
|
||||
ASTConsumer *RewriteObjCAction::CreateASTConsumer(CompilerInstance &CI,
|
||||
StringRef InFile) {
|
||||
if (raw_ostream *OS = CI.createDefaultOutputFile(false, InFile, "cpp"))
|
||||
if (raw_ostream *OS = CI.createDefaultOutputFile(false, InFile, "cpp")) {
|
||||
if (CI.getLangOpts().ObjCNonFragileABI)
|
||||
return CreateModernObjCRewriter(InFile, OS,
|
||||
CI.getDiagnostics(), CI.getLangOpts(),
|
||||
CI.getDiagnosticOpts().NoRewriteMacros);
|
||||
return CreateObjCRewriter(InFile, OS,
|
||||
CI.getDiagnostics(), CI.getLangOpts(),
|
||||
CI.getDiagnosticOpts().NoRewriteMacros);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
6102
clang/lib/Rewrite/RewriteModernObjC.cpp
Normal file
6102
clang/lib/Rewrite/RewriteModernObjC.cpp
Normal file
File diff suppressed because it is too large
Load Diff
@@ -590,12 +590,7 @@ ASTConsumer *clang::CreateObjCRewriter(const std::string& InFile,
|
||||
DiagnosticsEngine &Diags,
|
||||
const LangOptions &LOpts,
|
||||
bool SilenceRewriteMacroWarning) {
|
||||
if (true /*!LOpts.ObjCNonFragileABI*/)
|
||||
return new RewriteObjCFragileABI(InFile, OS, Diags, LOpts, SilenceRewriteMacroWarning);
|
||||
else {
|
||||
assert(false && "objective-C rewriter for nonfragile ABI = NYI");
|
||||
return 0;
|
||||
}
|
||||
return new RewriteObjCFragileABI(InFile, OS, Diags, LOpts, SilenceRewriteMacroWarning);
|
||||
}
|
||||
|
||||
void RewriteObjC::InitializeCommon(ASTContext &context) {
|
||||
|
||||
Reference in New Issue
Block a user