diff options
author | Saleem Abdulrasool <compnerd@compnerd.org> | 2015-10-27 15:50:22 +0000 |
---|---|---|
committer | Saleem Abdulrasool <compnerd@compnerd.org> | 2015-10-27 15:50:22 +0000 |
commit | 6ea75dbeb089bb398f611256320fc9a88d830f2f (patch) | |
tree | 8587a7755a8e4c08a4d13d8d8217d4dfe75527bc /clang/tools | |
parent | c7cb88066990d9b794c208252e13ef48a56b2439 (diff) | |
download | bcm5719-llvm-6ea75dbeb089bb398f611256320fc9a88d830f2f.tar.gz bcm5719-llvm-6ea75dbeb089bb398f611256320fc9a88d830f2f.zip |
Index: expose is_mutable_field
Expose isMutable via libClang and python bindings.
Patch by Jonathan B Coe!
llvm-svn: 251410
Diffstat (limited to 'clang/tools')
-rw-r--r-- | clang/tools/c-index-test/c-index-test.c | 2 | ||||
-rw-r--r-- | clang/tools/libclang/CIndex.cpp | 10 | ||||
-rw-r--r-- | clang/tools/libclang/libclang.exports | 1 |
3 files changed, 13 insertions, 0 deletions
diff --git a/clang/tools/c-index-test/c-index-test.c b/clang/tools/c-index-test/c-index-test.c index 7155d8c7808..26ef5f204b6 100644 --- a/clang/tools/c-index-test/c-index-test.c +++ b/clang/tools/c-index-test/c-index-test.c @@ -767,6 +767,8 @@ static void PrintCursor(CXCursor Cursor, const char *CommentSchemaFile) { clang_disposeString(DeprecatedMessage); clang_disposeString(UnavailableMessage); + if (clang_CXXField_isMutable(Cursor)) + printf(" (mutable)"); if (clang_CXXMethod_isStatic(Cursor)) printf(" (static)"); if (clang_CXXMethod_isVirtual(Cursor)) diff --git a/clang/tools/libclang/CIndex.cpp b/clang/tools/libclang/CIndex.cpp index 96923dc7def..be53b822744 100644 --- a/clang/tools/libclang/CIndex.cpp +++ b/clang/tools/libclang/CIndex.cpp @@ -6888,6 +6888,16 @@ CXFile clang_Module_getTopLevelHeader(CXTranslationUnit TU, //===----------------------------------------------------------------------===// extern "C" { +unsigned clang_CXXField_isMutable(CXCursor C) { + if (!clang_isDeclaration(C.kind)) + return 0; + + if (const auto D = cxcursor::getCursorDecl(C)) + if (const auto FD = dyn_cast_or_null<FieldDecl>(D)) + return FD->isMutable() ? 1 : 0; + return 0; +} + unsigned clang_CXXMethod_isPureVirtual(CXCursor C) { if (!clang_isDeclaration(C.kind)) return 0; diff --git a/clang/tools/libclang/libclang.exports b/clang/tools/libclang/libclang.exports index 5179b96fc61..fd157bc4951 100644 --- a/clang/tools/libclang/libclang.exports +++ b/clang/tools/libclang/libclang.exports @@ -2,6 +2,7 @@ clang_CXCursorSet_contains clang_CXCursorSet_insert clang_CXIndex_getGlobalOptions clang_CXIndex_setGlobalOptions +clang_CXXField_isMutable clang_CXXMethod_isConst clang_CXXMethod_isPureVirtual clang_CXXMethod_isStatic |