diff options
author | Reid Kleckner <reid@kleckner.net> | 2014-02-20 22:59:51 +0000 |
---|---|---|
committer | Reid Kleckner <reid@kleckner.net> | 2014-02-20 22:59:51 +0000 |
commit | 3f8bf21873f0276b3c991ab1ad3fb3d85781f6a5 (patch) | |
tree | ee81c920a86fd0d69e6247ca553113e8db13ab6f /include/clang/Lex/PPCallbacks.h | |
parent | 39f684003cf36ffb76435c6e1588f8d81f0f2748 (diff) |
Expand macros in pragmas with -fms-extensions and -E
gcc never expands macros in pragmas and MSVC always expands macros
before processing pragmas. Clang usually allows macro expansion, except
in a handful of pragmas, most of which are handled by the lexer.
Also remove PPCallbacks for pragmas that are currently handled in the
parser. Without a Parser, such as with clang -E, these callbacks would
never be called.
Fixes PR18576.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201821 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/clang/Lex/PPCallbacks.h')
-rw-r--r-- | include/clang/Lex/PPCallbacks.h | 25 |
1 files changed, 0 insertions, 25 deletions
diff --git a/include/clang/Lex/PPCallbacks.h b/include/clang/Lex/PPCallbacks.h index f1ed897251..dc58573352 100644 --- a/include/clang/Lex/PPCallbacks.h +++ b/include/clang/Lex/PPCallbacks.h @@ -161,18 +161,6 @@ public: PragmaIntroducerKind Introducer) { } - /// \brief Callback invoked when a \#pragma comment directive is read. - virtual void PragmaComment(SourceLocation Loc, const IdentifierInfo *Kind, - const std::string &Str) { - } - - /// \brief Callback invoked when a \#pragma detect_mismatch directive is - /// read. - virtual void PragmaDetectMismatch(SourceLocation Loc, - const std::string &Name, - const std::string &Value) { - } - /// \brief Callback invoked when a \#pragma clang __debug directive is read. /// \param Loc The location of the debug directive. /// \param DebugType The identifier following __debug. @@ -387,19 +375,6 @@ public: Second->Ident(Loc, str); } - virtual void PragmaComment(SourceLocation Loc, const IdentifierInfo *Kind, - const std::string &Str) { - First->PragmaComment(Loc, Kind, Str); - Second->PragmaComment(Loc, Kind, Str); - } - - virtual void PragmaDetectMismatch(SourceLocation Loc, - const std::string &Name, - const std::string &Value) { - First->PragmaDetectMismatch(Loc, Name, Value); - Second->PragmaDetectMismatch(Loc, Name, Value); - } - virtual void PragmaMessage(SourceLocation Loc, StringRef Namespace, PragmaMessageKind Kind, StringRef Str) { First->PragmaMessage(Loc, Namespace, Kind, Str); |