diff options
| author | Dmitri Gribenko <gribozavr@gmail.com> | 2012-12-04 15:13:46 +0000 |
|---|---|---|
| committer | Dmitri Gribenko <gribozavr@gmail.com> | 2012-12-04 15:13:46 +0000 |
| commit | b506ba1d799f4b122bf6fdc497babc6d9a66fea4 (patch) | |
| tree | 9132ba98c1cf33acf3f7a0338d33600ed09fe6e2 /clang/tools/libclang | |
| parent | 242b6305f08c7f4d17acf74bc03d44e39e0027d6 (diff) | |
| download | bcm5719-llvm-b506ba1d799f4b122bf6fdc497babc6d9a66fea4.tar.gz bcm5719-llvm-b506ba1d799f4b122bf6fdc497babc6d9a66fea4.zip | |
libclang: Add a function to libclang for retrieving the bit width value
Patch by Jyun-Yan You.
llvm-svn: 169276
Diffstat (limited to 'clang/tools/libclang')
| -rw-r--r-- | clang/tools/libclang/CXType.cpp | 15 | ||||
| -rw-r--r-- | clang/tools/libclang/libclang.exports | 1 |
2 files changed, 16 insertions, 0 deletions
diff --git a/clang/tools/libclang/CXType.cpp b/clang/tools/libclang/CXType.cpp index c4b8a09a547..e2fbc0be82e 100644 --- a/clang/tools/libclang/CXType.cpp +++ b/clang/tools/libclang/CXType.cpp @@ -265,6 +265,21 @@ unsigned long long clang_getEnumConstantDeclUnsignedValue(CXCursor C) { return ULLONG_MAX; } +int clang_getFieldDeclBitWidth(CXCursor C) { + using namespace cxcursor; + + if (clang_isDeclaration(C.kind)) { + Decl *D = getCursorDecl(C); + + if (FieldDecl *FD = dyn_cast_or_null<FieldDecl>(D)) { + if (FD->isBitField()) + return FD->getBitWidthValue(getCursorContext(C)); + } + } + + return -1; +} + CXType clang_getCanonicalType(CXType CT) { if (CT.kind == CXType_Invalid) return CT; diff --git a/clang/tools/libclang/libclang.exports b/clang/tools/libclang/libclang.exports index ee34edcbb2d..68bfb71f18f 100644 --- a/clang/tools/libclang/libclang.exports +++ b/clang/tools/libclang/libclang.exports @@ -160,6 +160,7 @@ clang_getElementType clang_getEnumConstantDeclUnsignedValue clang_getEnumConstantDeclValue clang_getEnumDeclIntegerType +clang_getFieldDeclBitWidth clang_getExpansionLocation clang_getFile clang_getFileName |

