diff options
Diffstat (limited to 'cgo/libclang.go')
-rw-r--r-- | cgo/libclang.go | 8 |
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, |