diff options
author | Chris Lattner <sabre@nondot.org> | 2009-04-19 21:20:35 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-04-19 21:20:35 +0000 |
commit | 958ee043683e7d493f3d0eef6d24d63b4491c1a5 (patch) | |
tree | 075b01426b97148ad75aed3a30c66fa4572da664 /clang/lib/Lex/Pragma.cpp | |
parent | f5e9b1f5d06cfbecf6acebbaf9c330e90a26a23a (diff) | |
download | bcm5719-llvm-958ee043683e7d493f3d0eef6d24d63b4491c1a5.tar.gz bcm5719-llvm-958ee043683e7d493f3d0eef6d24d63b4491c1a5.zip |
stub out STDC #pragmas.
llvm-svn: 69550
Diffstat (limited to 'clang/lib/Lex/Pragma.cpp')
-rw-r--r-- | clang/lib/Lex/Pragma.cpp | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/clang/lib/Lex/Pragma.cpp b/clang/lib/Lex/Pragma.cpp index 6cea5fbe734..be610a500b4 100644 --- a/clang/lib/Lex/Pragma.cpp +++ b/clang/lib/Lex/Pragma.cpp @@ -509,6 +509,42 @@ struct PragmaCommentHandler : public PragmaHandler { PP.HandlePragmaComment(CommentTok); } }; + +// Pragma STDC implementations. + +/// PragmaSTDC_FP_CONTRACTHandler - "#pragma STDC FP_CONTRACT ...". +struct PragmaSTDC_FP_CONTRACTHandler : public PragmaHandler { + PragmaSTDC_FP_CONTRACTHandler(const IdentifierInfo *ID) : PragmaHandler(ID) {} + virtual void HandlePragma(Preprocessor &PP, Token &CommentTok) { + //PP.HandlePragmaComment(CommentTok); + } +}; + +/// PragmaSTDC_FENV_ACCESSHandler - "#pragma STDC FENV_ACCESS ...". +struct PragmaSTDC_FENV_ACCESSHandler : public PragmaHandler { + PragmaSTDC_FENV_ACCESSHandler(const IdentifierInfo *ID) : PragmaHandler(ID) {} + virtual void HandlePragma(Preprocessor &PP, Token &CommentTok) { + //PP.HandlePragmaComment(CommentTok); + } +}; + +/// PragmaSTDC_CX_LIMITED_RANGEHandler - "#pragma STDC CX_LIMITED_RANGE ...". +struct PragmaSTDC_CX_LIMITED_RANGEHandler : public PragmaHandler { + PragmaSTDC_CX_LIMITED_RANGEHandler(const IdentifierInfo *ID) + : PragmaHandler(ID) {} + virtual void HandlePragma(Preprocessor &PP, Token &CommentTok) { + //PP.HandlePragmaComment(CommentTok); + } +}; + +/// PragmaSTDC_UnknownHandler - "#pragma STDC ...". +struct PragmaSTDC_UnknownHandler : public PragmaHandler { + PragmaSTDC_UnknownHandler() : PragmaHandler(0) {} + virtual void HandlePragma(Preprocessor &PP, Token &CommentTok) { + //PP.HandlePragmaComment(CommentTok); + } +}; + } // end anonymous namespace @@ -523,6 +559,14 @@ void Preprocessor::RegisterBuiltinPragmas() { AddPragmaHandler("GCC", new PragmaDependencyHandler( getIdentifierInfo("dependency"))); + AddPragmaHandler("STDC", new PragmaSTDC_FP_CONTRACTHandler( + getIdentifierInfo("FP_CONTRACT"))); + AddPragmaHandler("STDC", new PragmaSTDC_FENV_ACCESSHandler( + getIdentifierInfo("FENV_ACCESS"))); + AddPragmaHandler("STDC", new PragmaSTDC_CX_LIMITED_RANGEHandler( + getIdentifierInfo("CX_LIMITED_RANGE"))); + AddPragmaHandler("STDC", new PragmaSTDC_UnknownHandler()); + // MS extensions. if (Features.Microsoft) AddPragmaHandler(0, new PragmaCommentHandler(getIdentifierInfo("comment"))); |