summaryrefslogtreecommitdiff
path: root/clang-tools-extra/pp-trace
diff options
context:
space:
mode:
authorReid Kleckner <rnk@google.com>2019-03-14 18:12:17 +0000
committerReid Kleckner <rnk@google.com>2019-03-14 18:12:17 +0000
commit0f56b22614c824bb09acebd96381b2bdb1b45a70 (patch)
tree284f5caaf36ad5ff3fc1a50e9d573ac2f664c173 /clang-tools-extra/pp-trace
parent81abc7fb0c76b840937adf201b4a8b765844c667 (diff)
downloadllvm-0f56b22614c824bb09acebd96381b2bdb1b45a70.tar.gz
Add PragmaHandler for MSVC pragma execution_character_set
__pragma(execution_character_set(push, "UTF-8")) is used in TraceLoggingProvider.h. This commit implements a no-op handler for compatability, similar to how the flag -fexec_charset is handled. Patch by Matt Gardner! Differential Revision: https://reviews.llvm.org/D58530 llvm-svn: 356185
Diffstat (limited to 'clang-tools-extra/pp-trace')
-rw-r--r--clang-tools-extra/pp-trace/PPCallbacksTracker.cpp16
-rw-r--r--clang-tools-extra/pp-trace/PPCallbacksTracker.h3
2 files changed, 19 insertions, 0 deletions
diff --git a/clang-tools-extra/pp-trace/PPCallbacksTracker.cpp b/clang-tools-extra/pp-trace/PPCallbacksTracker.cpp
index 4ed40b389c9b..e2d8738e638b 100644
--- a/clang-tools-extra/pp-trace/PPCallbacksTracker.cpp
+++ b/clang-tools-extra/pp-trace/PPCallbacksTracker.cpp
@@ -297,6 +297,22 @@ void PPCallbacksTracker::PragmaWarningPop(clang::SourceLocation Loc) {
appendArgument("Loc", Loc);
}
+// Callback invoked when a #pragma execution_character_set(push) directive
+// is read.
+void PPCallbacksTracker::PragmaExecCharsetPush(clang::SourceLocation Loc,
+ clang::StringRef Str) {
+ beginCallback("PragmaExecCharsetPush");
+ appendArgument("Loc", Loc);
+ appendArgument("Charset", Str);
+}
+
+// Callback invoked when a #pragma execution_character_set(pop) directive
+// is read.
+void PPCallbacksTracker::PragmaExecCharsetPop(clang::SourceLocation Loc) {
+ beginCallback("PragmaExecCharsetPop");
+ appendArgument("Loc", Loc);
+}
+
// Called by Preprocessor::HandleMacroExpandedIdentifier when a
// macro invocation is found.
void
diff --git a/clang-tools-extra/pp-trace/PPCallbacksTracker.h b/clang-tools-extra/pp-trace/PPCallbacksTracker.h
index ec52feec1323..afb8d37a0c10 100644
--- a/clang-tools-extra/pp-trace/PPCallbacksTracker.h
+++ b/clang-tools-extra/pp-trace/PPCallbacksTracker.h
@@ -134,6 +134,9 @@ public:
llvm::ArrayRef<int> Ids) override;
void PragmaWarningPush(clang::SourceLocation Loc, int Level) override;
void PragmaWarningPop(clang::SourceLocation Loc) override;
+ void PragmaExecCharsetPush(clang::SourceLocation Loc,
+ clang::StringRef Str) override;
+ void PragmaExecCharsetPop(clang::SourceLocation Loc) override;
void MacroExpands(const clang::Token &MacroNameTok,
const clang::MacroDefinition &MD, clang::SourceRange Range,
const clang::MacroArgs *Args) override;