diff options
| author | Daniel Dunbar <daniel@zuster.org> | 2009-03-13 23:46:19 +0000 |
|---|---|---|
| committer | Daniel Dunbar <daniel@zuster.org> | 2009-03-13 23:46:19 +0000 |
| commit | 1bb3b2ccf3ea6d8e2e8fd634824ff840991173f3 (patch) | |
| tree | 07158dbb1b7e3ab1169637c77aa4a4ec3bfee98b | |
| parent | 313c29126908bc9154f23e371b43ceea2924d653 (diff) | |
| download | bcm5719-llvm-1bb3b2ccf3ea6d8e2e8fd634824ff840991173f3.tar.gz bcm5719-llvm-1bb3b2ccf3ea6d8e2e8fd634824ff840991173f3.zip | |
Driver: Add types::{isAcceptedByClang,isCXX} predicates.
llvm-svn: 66986
| -rw-r--r-- | clang/include/clang/Driver/Types.h | 6 | ||||
| -rw-r--r-- | clang/lib/Driver/Types.cpp | 31 |
2 files changed, 37 insertions, 0 deletions
diff --git a/clang/include/clang/Driver/Types.h b/clang/include/clang/Driver/Types.h index 9d2313c62bc..92520a77b33 100644 --- a/clang/include/clang/Driver/Types.h +++ b/clang/include/clang/Driver/Types.h @@ -56,6 +56,12 @@ namespace types { /// types). bool canLipoType(ID Id); + /// isAcceptedByClang - Can clang handle this input type. + bool isAcceptedByClang(ID Id); + + /// isCXX - Is this a "C++" input (C++ and Obj-C++ sources and headers). + bool isCXX(ID Id); + /// lookupTypeForExtension - Lookup the type to use for the file /// extension \arg Ext. ID lookupTypeForExtension(const char *Ext); diff --git a/clang/lib/Driver/Types.cpp b/clang/lib/Driver/Types.cpp index cef5c811b7b..e89e973f3f5 100644 --- a/clang/lib/Driver/Types.cpp +++ b/clang/lib/Driver/Types.cpp @@ -69,6 +69,37 @@ bool types::canLipoType(ID Id) { Id == TY_Object); } +bool types::isAcceptedByClang(ID Id) { + switch (Id) { + default: + return false; + + case TY_Asm: + case TY_C: case TY_PP_C: + case TY_ObjC: case TY_PP_ObjC: + case TY_CXX: case TY_PP_CXX: + case TY_ObjCXX: case TY_PP_ObjCXX: + case TY_CHeader: case TY_PP_CHeader: + case TY_ObjCHeader: case TY_PP_ObjCHeader: + case TY_CXXHeader: case TY_PP_CXXHeader: + case TY_ObjCXXHeader: case TY_PP_ObjCXXHeader: + return true; + } +} + +bool types::isCXX(ID Id) { + switch (Id) { + default: + return false; + + case TY_CXX: case TY_PP_CXX: + case TY_ObjCXX: case TY_PP_ObjCXX: + case TY_CXXHeader: case TY_PP_CXXHeader: + case TY_ObjCXXHeader: case TY_PP_ObjCXXHeader: + return true; + } +} + types::ID types::lookupTypeForExtension(const char *Ext) { unsigned N = strlen(Ext); |

