From 5c0369eceb2c64b80bf2db57ca6cac7db3e3957b Mon Sep 17 00:00:00 2001 From: Matthias Kramm Date: Thu, 21 Oct 2021 21:30:31 +0000 Subject: [PATCH] Fix escaping in RewriterGen.cpp. When we escape strings for C++, make sure we use C++ escape sequences. (In particular, \x22 instead of \22) Reviewed By: Mogball Differential Revision: https://reviews.llvm.org/D112269 --- mlir/tools/mlir-tblgen/RewriterGen.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mlir/tools/mlir-tblgen/RewriterGen.cpp b/mlir/tools/mlir-tblgen/RewriterGen.cpp index 9ce6eea4259c..617e6b29254b 100644 --- a/mlir/tools/mlir-tblgen/RewriterGen.cpp +++ b/mlir/tools/mlir-tblgen/RewriterGen.cpp @@ -50,10 +50,12 @@ struct format_provider { }; } // end namespace llvm +// Escape a string for use inside a C++ literal. +// E.g. foo"bar -> foo\x22bar. static std::string escapeString(StringRef value) { std::string ret; llvm::raw_string_ostream os(ret); - llvm::printEscapedString(value, os); + os.write_escaped(value, /*use_hex_escapes=*/true); return os.str(); }