mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
cmd/cgo: give __uint128_t type [16]uint8
The __uint128_t type appears in darwin/arm header files processed by cgo -godefs in http://golang.org/cl/16045. Change-Id: I666194c65dee8ea0ae933d2f02a3abe4581c4697 Reviewed-on: https://go-review.googlesource.com/16046 Reviewed-by: Ian Lance Taylor <iant@golang.org> Run-TryBot: David Crawshaw <crawshaw@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
parent
996c540be2
commit
fd8592859b
2 changed files with 11 additions and 0 deletions
|
|
@ -119,6 +119,7 @@ C.short, C.ushort (unsigned short), C.int, C.uint (unsigned int),
|
||||||
C.long, C.ulong (unsigned long), C.longlong (long long),
|
C.long, C.ulong (unsigned long), C.longlong (long long),
|
||||||
C.ulonglong (unsigned long long), C.float, C.double.
|
C.ulonglong (unsigned long long), C.float, C.double.
|
||||||
The C type void* is represented by Go's unsafe.Pointer.
|
The C type void* is represented by Go's unsafe.Pointer.
|
||||||
|
The C types __int128_t and __uint128_t are represented by [16]byte.
|
||||||
|
|
||||||
To access a struct, union, or enum type directly, prefix it with
|
To access a struct, union, or enum type directly, prefix it with
|
||||||
struct_, union_, or enum_, as in C.struct_stat.
|
struct_, union_, or enum_, as in C.struct_stat.
|
||||||
|
|
|
||||||
|
|
@ -1227,6 +1227,11 @@ func (c *typeConv) Type(dtype dwarf.Type, pos token.Pos) *Type {
|
||||||
t.Go = c.int32
|
t.Go = c.int32
|
||||||
case 8:
|
case 8:
|
||||||
t.Go = c.int64
|
t.Go = c.int64
|
||||||
|
case 16:
|
||||||
|
t.Go = &ast.ArrayType{
|
||||||
|
Len: c.intExpr(t.Size),
|
||||||
|
Elt: c.uint8,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if t.Align = t.Size; t.Align >= c.ptrSize {
|
if t.Align = t.Size; t.Align >= c.ptrSize {
|
||||||
t.Align = c.ptrSize
|
t.Align = c.ptrSize
|
||||||
|
|
@ -1384,6 +1389,11 @@ func (c *typeConv) Type(dtype dwarf.Type, pos token.Pos) *Type {
|
||||||
t.Go = c.uint32
|
t.Go = c.uint32
|
||||||
case 8:
|
case 8:
|
||||||
t.Go = c.uint64
|
t.Go = c.uint64
|
||||||
|
case 16:
|
||||||
|
t.Go = &ast.ArrayType{
|
||||||
|
Len: c.intExpr(t.Size),
|
||||||
|
Elt: c.uint8,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if t.Align = t.Size; t.Align >= c.ptrSize {
|
if t.Align = t.Size; t.Align >= c.ptrSize {
|
||||||
t.Align = c.ptrSize
|
t.Align = c.ptrSize
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue