diff options
Diffstat (limited to 'clang/tools/libclang')
| -rw-r--r-- | clang/tools/libclang/CXType.cpp | 12 | ||||
| -rw-r--r-- | clang/tools/libclang/libclang.exports | 1 |
2 files changed, 13 insertions, 0 deletions
diff --git a/clang/tools/libclang/CXType.cpp b/clang/tools/libclang/CXType.cpp index 5cde2360552..fbe1edae2ab 100644 --- a/clang/tools/libclang/CXType.cpp +++ b/clang/tools/libclang/CXType.cpp @@ -91,6 +91,7 @@ static CXTypeKind GetTypeKind(QualType T) { TKCASE(Vector); TKCASE(MemberPointer); TKCASE(Auto); + TKCASE(Elaborated); default: return CXType_Unexposed; } @@ -491,6 +492,7 @@ CXString clang_getTypeKindSpelling(enum CXTypeKind K) { TKIND(Vector); TKIND(MemberPointer); TKIND(Auto); + TKIND(Elaborated); } #undef TKIND return cxstring::createRef(s); @@ -987,4 +989,14 @@ unsigned clang_Cursor_isAnonymous(CXCursor C){ return 0; } +CXType clang_Type_getNamedType(CXType CT){ + QualType T = GetQualType(CT); + const Type *TP = T.getTypePtrOrNull(); + + if (TP && TP->getTypeClass() == Type::Elaborated) + return MakeCXType(cast<ElaboratedType>(TP)->getNamedType(), GetTU(CT)); + + return MakeCXType(QualType(), GetTU(CT)); +} + } // end: extern "C" diff --git a/clang/tools/libclang/libclang.exports b/clang/tools/libclang/libclang.exports index 14572f91544..c8fe0a21d09 100644 --- a/clang/tools/libclang/libclang.exports +++ b/clang/tools/libclang/libclang.exports @@ -87,6 +87,7 @@ clang_Type_getNumTemplateArguments clang_Type_getTemplateArgumentAsType clang_Type_getCXXRefQualifier clang_Type_visitFields +clang_Type_getNamedType clang_VerbatimBlockLineComment_getText clang_VerbatimLineComment_getText clang_HTMLTagComment_getAsString |

