summaryrefslogtreecommitdiffstats
path: root/clang/tools/libclang
diff options
context:
space:
mode:
Diffstat (limited to 'clang/tools/libclang')
-rw-r--r--clang/tools/libclang/CXType.cpp12
-rw-r--r--clang/tools/libclang/libclang.exports1
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
OpenPOWER on IntegriCloud