fix PR6936: don't generate line marker directives when preprocessing
.S files. "# 123" is passed through as-is, not treated as a line marker in this mode. No testcase, because it would be nasty and isn't worth it. llvm-svn: 102391
This commit is contained in:
@@ -501,7 +501,11 @@ void clang::InitializePreprocessor(Preprocessor &PP,
|
||||
InitializeFileRemapping(PP.getDiagnostics(), PP.getSourceManager(),
|
||||
PP.getFileManager(), InitOpts);
|
||||
|
||||
Builder.append("# 1 \"<built-in>\" 3");
|
||||
// Emit line markers for various builtin sections of the file. We don't do
|
||||
// this in asm preprocessor mode, because "# 4" is not a line marker directive
|
||||
// in this mode.
|
||||
if (!PP.getLangOptions().AsmPreprocessor)
|
||||
Builder.append("# 1 \"<built-in>\" 3");
|
||||
|
||||
// Install things like __POWERPC__, __GNUC__, etc into the macro table.
|
||||
if (InitOpts.UsePredefines)
|
||||
@@ -510,7 +514,8 @@ void clang::InitializePreprocessor(Preprocessor &PP,
|
||||
|
||||
// Add on the predefines from the driver. Wrap in a #line directive to report
|
||||
// that they come from the command line.
|
||||
Builder.append("# 1 \"<command line>\" 1");
|
||||
if (!PP.getLangOptions().AsmPreprocessor)
|
||||
Builder.append("# 1 \"<command line>\" 1");
|
||||
|
||||
// Process #define's and #undef's in the order they are given.
|
||||
for (unsigned i = 0, e = InitOpts.Macros.size(); i != e; ++i) {
|
||||
@@ -536,7 +541,8 @@ void clang::InitializePreprocessor(Preprocessor &PP,
|
||||
}
|
||||
|
||||
// Exit the command line and go back to <built-in> (2 is LC_LEAVE).
|
||||
Builder.append("# 1 \"<built-in>\" 2");
|
||||
if (!PP.getLangOptions().AsmPreprocessor)
|
||||
Builder.append("# 1 \"<built-in>\" 2");
|
||||
|
||||
// Copy PredefinedBuffer into the Preprocessor.
|
||||
PP.setPredefines(Predefines.str());
|
||||
|
||||
Reference in New Issue
Block a user