aboutsummaryrefslogtreecommitdiffhomepage
path: root/cgo/libclang.go
diff options
context:
space:
mode:
Diffstat (limited to 'cgo/libclang.go')
-rw-r--r--cgo/libclang.go8
1 files changed, 7 insertions, 1 deletions
diff --git a/cgo/libclang.go b/cgo/libclang.go
index cca4487ec..ce6df7667 100644
--- a/cgo/libclang.go
+++ b/cgo/libclang.go
@@ -613,9 +613,15 @@ func (p *cgoPackage) makeASTType(typ C.CXType, pos token.Pos) ast.Expr {
}
}
if typeName == "" {
+ // Report this as an error.
+ spelling := getString(C.clang_getTypeSpelling(typ))
+ p.errors = append(p.errors, scanner.Error{
+ Pos: p.fset.PositionFor(pos, true),
+ Msg: fmt.Sprintf("unknown C type: %v (libclang type kind %d)", spelling, typ.kind),
+ })
// Fallback, probably incorrect but at least the error points to an odd
// type name.
- typeName = "C." + getString(C.clang_getTypeSpelling(typ))
+ typeName = "C." + spelling
}
return &ast.Ident{
NamePos: pos,