File tree Expand file tree Collapse file tree 2 files changed +11
-0
lines changed Expand file tree Collapse file tree 2 files changed +11
-0
lines changed Original file line number Diff line number Diff line change @@ -109,6 +109,9 @@ Type& ClangTypeParser::enumerateType(const clang::Type& ty) {
109
109
return enumerateArray (llvm::cast<const clang::ConstantArrayType>(ty));
110
110
case clang::Type::Enum:
111
111
return enumerateEnum (llvm::cast<const clang::EnumType>(ty));
112
+ case clang::Type::MemberPointer:
113
+ return enumerateMemberPointer (
114
+ llvm::cast<const clang::MemberPointerType>(ty));
112
115
113
116
default :
114
117
throw std::logic_error (std::string (" unsupported TypeClass `" ) +
@@ -385,6 +388,12 @@ Type& ClangTypeParser::enumeratePointer(const clang::PointerType& ty) {
385
388
return makeType<Reference>(ty, t);
386
389
}
387
390
391
+ Type& ClangTypeParser::enumerateMemberPointer (
392
+ const clang::MemberPointerType& ty) {
393
+ // TODO: chase anything not a function pointer (same as regular pointers).
394
+ return makeType<Primitive>(ty, Primitive::Kind::StubbedPointer);
395
+ }
396
+
388
397
Type& ClangTypeParser::enumerateSubstTemplateTypeParm (
389
398
const clang::SubstTemplateTypeParmType& ty) {
390
399
// Clang wraps any type that was substituted from e.g. `T` in this type. It
Original file line number Diff line number Diff line change @@ -29,6 +29,7 @@ class DecltypeType;
29
29
class ElaboratedType ;
30
30
class EnumType ;
31
31
class LValueReferenceType ;
32
+ class MemberPointerType ;
32
33
class PointerType ;
33
34
class RecordType ;
34
35
class Sema ;
@@ -97,6 +98,7 @@ class ClangTypeParser {
97
98
Type& enumerateClass (const clang::RecordType&);
98
99
Type& enumerateReference (const clang::LValueReferenceType&);
99
100
Type& enumeratePointer (const clang::PointerType&);
101
+ Type& enumerateMemberPointer (const clang::MemberPointerType&);
100
102
Type& enumerateSubstTemplateTypeParm (const clang::SubstTemplateTypeParmType&);
101
103
Primitive& enumeratePrimitive (const clang::BuiltinType&);
102
104
Type& enumerateElaboratedType (const clang::ElaboratedType&);
You can’t perform that action at this time.
0 commit comments