diff options
Diffstat (limited to 'lib/Rewrite/Frontend/RewriteModernObjC.cpp')
-rw-r--r-- | lib/Rewrite/Frontend/RewriteModernObjC.cpp | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/lib/Rewrite/Frontend/RewriteModernObjC.cpp b/lib/Rewrite/Frontend/RewriteModernObjC.cpp index a3a4afc6bb..68babb4ef0 100644 --- a/lib/Rewrite/Frontend/RewriteModernObjC.cpp +++ b/lib/Rewrite/Frontend/RewriteModernObjC.cpp @@ -163,6 +163,7 @@ namespace { // Needed for header files being rewritten bool IsHeader; bool SilenceRewriteMacroWarning; + bool GenerateLineInfo; bool objc_impl_method; bool DisableReplaceStmt; @@ -224,7 +225,7 @@ namespace { void HandleDeclInMainFile(Decl *D); RewriteModernObjC(std::string inFile, raw_ostream *OS, DiagnosticsEngine &D, const LangOptions &LOpts, - bool silenceMacroWarn); + bool silenceMacroWarn, bool LineInfo); ~RewriteModernObjC() {} @@ -633,9 +634,10 @@ static bool IsHeaderFile(const std::string &Filename) { RewriteModernObjC::RewriteModernObjC(std::string inFile, raw_ostream* OS, DiagnosticsEngine &D, const LangOptions &LOpts, - bool silenceMacroWarn) + bool silenceMacroWarn, + bool LineInfo) : Diags(D), LangOpts(LOpts), InFileName(inFile), OutFile(OS), - SilenceRewriteMacroWarning(silenceMacroWarn) { + SilenceRewriteMacroWarning(silenceMacroWarn), GenerateLineInfo(LineInfo) { IsHeader = IsHeaderFile(inFile); RewriteFailedDiag = Diags.getCustomDiagID(DiagnosticsEngine::Warning, "rewriting sub-expression within a macro (may not be correct)"); @@ -654,8 +656,10 @@ ASTConsumer *clang::CreateModernObjCRewriter(const std::string& InFile, raw_ostream* OS, DiagnosticsEngine &Diags, const LangOptions &LOpts, - bool SilenceRewriteMacroWarning) { - return new RewriteModernObjC(InFile, OS, Diags, LOpts, SilenceRewriteMacroWarning); + bool SilenceRewriteMacroWarning, + bool LineInfo) { + return new RewriteModernObjC(InFile, OS, Diags, LOpts, + SilenceRewriteMacroWarning, LineInfo); } void RewriteModernObjC::InitializeCommon(ASTContext &context) { @@ -1654,7 +1658,7 @@ Stmt *RewriteModernObjC::RewriteBreakStmt(BreakStmt *S) { void RewriteModernObjC::ConvertSourceLocationToLineDirective( SourceLocation Loc, std::string &LineString) { - if (Loc.isFileID()) { + if (Loc.isFileID() && GenerateLineInfo) { LineString += "\n#line "; PresumedLoc PLoc = SM->getPresumedLoc(Loc); LineString += utostr(PLoc.getLine()); @@ -3147,7 +3151,7 @@ void RewriteModernObjC::RewriteLineDirective(const Decl *D) { SourceLocation Location = D->getLocation(); - if (Location.isFileID()) { + if (Location.isFileID() && GenerateLineInfo) { std::string LineString("\n#line "); PresumedLoc PLoc = SM->getPresumedLoc(Location); LineString += utostr(PLoc.getLine()); |