File tree Expand file tree Collapse file tree 2 files changed +8
-0
lines changed Expand file tree Collapse file tree 2 files changed +8
-0
lines changed Original file line number Diff line number Diff line change @@ -112,6 +112,8 @@ Type& ClangTypeParser::enumerateType(const clang::Type& ty) {
112
112
case clang::Type::MemberPointer:
113
113
return enumerateMemberPointer (
114
114
llvm::cast<const clang::MemberPointerType>(ty));
115
+ case clang::Type::Attributed:
116
+ return enumerateAttributed (llvm::cast<const clang::AttributedType>(ty));
115
117
116
118
default :
117
119
throw std::logic_error (std::string (" unsupported TypeClass `" ) +
@@ -395,6 +397,10 @@ Type& ClangTypeParser::enumerateMemberPointer(
395
397
return makeType<Primitive>(ty, Primitive::Kind::StubbedPointer);
396
398
}
397
399
400
+ Type& ClangTypeParser::enumerateAttributed (const clang::AttributedType& ty) {
401
+ return enumerateType (*ty.getEquivalentType ());
402
+ }
403
+
398
404
Type& ClangTypeParser::enumerateSubstTemplateTypeParm (
399
405
const clang::SubstTemplateTypeParmType& ty) {
400
406
// 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 22
22
#include " oi/type_graph/TypeGraph.h"
23
23
24
24
namespace clang {
25
+ class AttributedType ;
25
26
class ASTContext ;
26
27
class BuiltinType ;
27
28
class ConstantArrayType ;
@@ -108,6 +109,7 @@ class ClangTypeParser {
108
109
Typedef& enumerateUsing (const clang::UsingType&);
109
110
Type& enumerateUnaryTransformType (const clang::UnaryTransformType&);
110
111
Type& enumerateDecltypeType (const clang::DecltypeType&);
112
+ Type& enumerateAttributed (const clang::AttributedType&);
111
113
112
114
Array& enumerateArray (const clang::ConstantArrayType&);
113
115
Enum& enumerateEnum (const clang::EnumType&);
You can’t perform that action at this time.
0 commit comments