diff options
| author | Eli Friedman <eli.friedman@gmail.com> | 2013-08-29 01:42:42 +0000 |
|---|---|---|
| committer | Eli Friedman <eli.friedman@gmail.com> | 2013-08-29 01:42:42 +0000 |
| commit | 80e45b8cd4cce838cd314cbbe83bea819e6e1d1e (patch) | |
| tree | d352ebdecdaafc3edaad2d86e906adc79e355875 /clang/lib/Rewrite/Frontend | |
| parent | 9a83a76b1b83e74143599717a930f27360355a7f (diff) | |
| download | bcm5719-llvm-80e45b8cd4cce838cd314cbbe83bea819e6e1d1e.tar.gz bcm5719-llvm-80e45b8cd4cce838cd314cbbe83bea819e6e1d1e.zip | |
Properly escape filenames in line directives.
Fixes PR17018. Only partial test coverage because I don't want
to try to write a test which generates a file whose name contains a newline.
llvm-svn: 189557
Diffstat (limited to 'clang/lib/Rewrite/Frontend')
| -rw-r--r-- | clang/lib/Rewrite/Frontend/InclusionRewriter.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/clang/lib/Rewrite/Frontend/InclusionRewriter.cpp b/clang/lib/Rewrite/Frontend/InclusionRewriter.cpp index a2297f9179d..3fba6905e1e 100644 --- a/clang/lib/Rewrite/Frontend/InclusionRewriter.cpp +++ b/clang/lib/Rewrite/Frontend/InclusionRewriter.cpp @@ -114,7 +114,9 @@ void InclusionRewriter::WriteLineInfo(const char *Filename, int Line, } else { // Use GNU linemarkers as described here: // http://gcc.gnu.org/onlinedocs/cpp/Preprocessor-Output.html - OS << '#' << ' ' << Line << ' ' << '"' << Filename << '"'; + OS << '#' << ' ' << Line << ' ' << '"'; + OS.write_escaped(Filename); + OS << '"'; if (!Extra.empty()) OS << Extra; if (FileType == SrcMgr::C_System) |

