diff options
author | Reid Kleckner <rnk@google.com> | 2019-03-14 18:12:17 +0000 |
---|---|---|
committer | Reid Kleckner <rnk@google.com> | 2019-03-14 18:12:17 +0000 |
commit | 0f56b22614c824bb09acebd96381b2bdb1b45a70 (patch) | |
tree | 284f5caaf36ad5ff3fc1a50e9d573ac2f664c173 /clang-tools-extra/pp-trace | |
parent | 81abc7fb0c76b840937adf201b4a8b765844c667 (diff) | |
download | llvm-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.cpp | 16 | ||||
-rw-r--r-- | clang-tools-extra/pp-trace/PPCallbacksTracker.h | 3 |
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; |