diff options
| author | Hans Wennborg <hans@hanshq.net> | 2015-10-12 20:47:58 +0000 |
|---|---|---|
| committer | Hans Wennborg <hans@hanshq.net> | 2015-10-12 20:47:58 +0000 |
| commit | 7357bbc6c3625153d9c9d49a15e86a3963090c56 (patch) | |
| tree | e777e2c80d945ee83f2b1f75f7a0b6fa3690083e /clang/lib/Parse | |
| parent | a704d4bb27354a7ee54b8672808ebae9c13ba806 (diff) | |
| download | bcm5719-llvm-7357bbc6c3625153d9c9d49a15e86a3963090c56.tar.gz bcm5719-llvm-7357bbc6c3625153d9c9d49a15e86a3963090c56.zip | |
Parse and ignore #pragma runtime_checks in MS extensions mode (PR25138)
We already silently ignore the /RTC, which controls the same functionality.
llvm-svn: 250099
Diffstat (limited to 'clang/lib/Parse')
| -rw-r--r-- | clang/lib/Parse/ParsePragma.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/clang/lib/Parse/ParsePragma.cpp b/clang/lib/Parse/ParsePragma.cpp index 5ffce000364..ab2b52ec396 100644 --- a/clang/lib/Parse/ParsePragma.cpp +++ b/clang/lib/Parse/ParsePragma.cpp @@ -156,6 +156,10 @@ struct PragmaUnrollHintHandler : public PragmaHandler { Token &FirstToken) override; }; +struct PragmaMSRuntimeChecksHandler : public EmptyPragmaHandler { + PragmaMSRuntimeChecksHandler() : EmptyPragmaHandler("runtime_checks") {} +}; + } // end namespace void Parser::initializePragmaHandlers() { @@ -222,6 +226,8 @@ void Parser::initializePragmaHandlers() { PP.AddPragmaHandler(MSCodeSeg.get()); MSSection.reset(new PragmaMSPragma("section")); PP.AddPragmaHandler(MSSection.get()); + MSRuntimeChecks.reset(new PragmaMSRuntimeChecksHandler()); + PP.AddPragmaHandler(MSRuntimeChecks.get()); } OptimizeHandler.reset(new PragmaOptimizeHandler(Actions)); @@ -288,6 +294,8 @@ void Parser::resetPragmaHandlers() { MSCodeSeg.reset(); PP.RemovePragmaHandler(MSSection.get()); MSSection.reset(); + PP.RemovePragmaHandler(MSRuntimeChecks.get()); + MSRuntimeChecks.reset(); } PP.RemovePragmaHandler("STDC", FPContractHandler.get()); |

