summaryrefslogtreecommitdiffstats
path: root/clang/lib/Rewrite/Frontend
diff options
context:
space:
mode:
authorEli Friedman <eli.friedman@gmail.com>2013-08-29 01:42:42 +0000
committerEli Friedman <eli.friedman@gmail.com>2013-08-29 01:42:42 +0000
commit80e45b8cd4cce838cd314cbbe83bea819e6e1d1e (patch)
treed352ebdecdaafc3edaad2d86e906adc79e355875 /clang/lib/Rewrite/Frontend
parent9a83a76b1b83e74143599717a930f27360355a7f (diff)
downloadbcm5719-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.cpp4
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)
OpenPOWER on IntegriCloud