c/clang:typedef

This commit is contained in:
luoliwoshang
2024-08-21 16:29:15 +08:00
parent 64b582e397
commit 8d30e51603
2 changed files with 33 additions and 0 deletions

View File

@@ -53,10 +53,16 @@ void wrap_clang_getElementType(CXType *Typ, CXType *elemTyp) { *elemTyp = clang_
long long wrap_clang_getArraySize(CXType *arrayTyp) { return clang_getArraySize(*arrayTyp); }
void wrap_clang_Type_getNamedType(CXType *typ, CXType *namedTyp) { *namedTyp = clang_Type_getNamedType(*typ); }
void wrap_clang_getCanonicalType(CXType *typ, CXType *canonicalType) { *canonicalType = clang_getCanonicalType(*typ); }
CXString wrap_clang_getTypeSpelling(CXType *typ) { return clang_getTypeSpelling(*typ); }
void wrap_clang_getTypedefDeclUnderlyingType(CXCursor *cur, CXType *typ) {
*typ = clang_getTypedefDeclUnderlyingType(*cur);
}
CXString wrap_clang_getTokenSpelling(CXTranslationUnit unit, CXToken *token) {
return clang_getTokenSpelling(unit, *token);
}

View File

@@ -1863,6 +1863,20 @@ func (t Type) String() (ret String) {
return t.wrapString()
}
/**
* Retrieve the underlying type of a typedef declaration.
*
* If the cursor does not reference a typedef declaration, an invalid type is
* returned.
*/
// llgo:link (*Cursor).wrapTypedefDeclUnderlyingType C.wrap_clang_getTypedefDeclUnderlyingType
func (c *Cursor) wrapTypedefDeclUnderlyingType(ret *Type) { return }
func (c Cursor) TypedefDeclUnderlyingType() (ret Type) {
c.wrapTypedefDeclUnderlyingType(&ret)
return
}
/**
* Retrieve the return type associated with a function type.
*
@@ -1954,6 +1968,19 @@ func (t Type) ArraySize() (ret c.LongLong) {
return t.wrapArraySize()
}
/**
* Retrieve the type named by the qualified-id.
*
* If a non-elaborated type is passed in, an invalid type is returned.
*/
// llgo:link (*Type).wrapNamedType C.wrap_clang_Type_getNamedType
func (t *Type) wrapNamedType(ret *Type) { return }
func (t Type) NamedType() (ret Type) {
t.wrapNamedType(&ret)
return
}
/**
* Return the canonical type for a CXType.
*