From 655da9962769e5dd1a3c6247bc74cb1eac6f8c78 Mon Sep 17 00:00:00 2001 From: Sebastien Binet Date: Wed, 19 Jan 2011 14:30:57 -0500 Subject: [PATCH] cgo: add complex float, complex double R=rsc CC=binet, golang-dev https://golang.org/cl/3906041 --- src/cmd/cgo/gcc.go | 34 ++++++++++++++++----- src/pkg/debug/dwarf/testdata/typedef.c | 7 +++++ src/pkg/debug/dwarf/testdata/typedef.elf | Bin 11546 -> 10837 bytes src/pkg/debug/dwarf/testdata/typedef.macho | Bin 4608 -> 5256 bytes src/pkg/debug/dwarf/type_test.go | 33 +++++++++++--------- 5 files changed, 52 insertions(+), 22 deletions(-) diff --git a/src/cmd/cgo/gcc.go b/src/cmd/cgo/gcc.go index be3b8fe64a..57dc4dc83d 100644 --- a/src/cmd/cgo/gcc.go +++ b/src/cmd/cgo/gcc.go @@ -27,13 +27,15 @@ var debugDefine = flag.Bool("debug-define", false, "print relevant #defines") var debugGcc = flag.Bool("debug-gcc", false, "print gcc invocations") var nameToC = map[string]string{ - "schar": "signed char", - "uchar": "unsigned char", - "ushort": "unsigned short", - "uint": "unsigned int", - "ulong": "unsigned long", - "longlong": "long long", - "ulonglong": "unsigned long long", + "schar": "signed char", + "uchar": "unsigned char", + "ushort": "unsigned short", + "uint": "unsigned int", + "ulong": "unsigned long", + "longlong": "long long", + "ulonglong": "unsigned long long", + "complexfloat": "float complex", + "complexdouble": "double complex", } // cname returns the C name to use for C.s. @@ -591,6 +593,7 @@ type typeConv struct { int8, int16, int32, int64 ast.Expr uint8, uint16, uint32, uint64, uintptr ast.Expr float32, float64 ast.Expr + complex64, complex128 ast.Expr void ast.Expr unsafePointer ast.Expr string ast.Expr @@ -617,6 +620,8 @@ func (c *typeConv) Init(ptrSize int64) { c.uintptr = c.Ident("uintptr") c.float32 = c.Ident("float32") c.float64 = c.Ident("float64") + c.complex64 = c.Ident("complex64") + c.complex128 = c.Ident("complex128") c.unsafePointer = c.Ident("unsafe.Pointer") c.void = c.Ident("void") c.string = c.Ident("string") @@ -648,6 +653,8 @@ var dwarfToName = map[string]string{ "long long int": "longlong", "long long unsigned int": "ulonglong", "signed char": "schar", + "float complex": "complexfloat", + "double complex": "complexdouble", } // Type returns a *Type with the same memory layout as @@ -749,6 +756,19 @@ func (c *typeConv) Type(dtype dwarf.Type) *Type { t.Align = c.ptrSize } + case *dwarf.ComplexType: + switch t.Size { + default: + fatal("unexpected: %d-byte complex type - %s", t.Size, dtype) + case 8: + t.Go = c.complex64 + case 16: + t.Go = c.complex128 + } + if t.Align = t.Size; t.Align >= c.ptrSize { + t.Align = c.ptrSize + } + case *dwarf.FuncType: // No attempt at translation: would enable calls // directly between worlds, but we need to moderate those. diff --git a/src/pkg/debug/dwarf/testdata/typedef.c b/src/pkg/debug/dwarf/testdata/typedef.c index 2ceb00ced8..664d021ced 100644 --- a/src/pkg/debug/dwarf/testdata/typedef.c +++ b/src/pkg/debug/dwarf/testdata/typedef.c @@ -9,6 +9,7 @@ gcc -gdwarf-2 -m64 -c typedef.c && gcc -gdwarf-2 -m64 -o typedef.elf typedef.o OS X Mach-O: gcc -gdwarf-2 -m64 -c typedef.c -o typedef.macho */ +#include typedef volatile int* t_ptr_volatile_int; typedef const char *t_ptr_const_char; @@ -16,6 +17,9 @@ typedef long t_long; typedef unsigned short t_ushort; typedef int t_func_int_of_float_double(float, double); typedef int (*t_ptr_func_int_of_float_double)(float, double); +typedef int (*t_ptr_func_int_of_float_complex)(float complex); +typedef int (*t_ptr_func_int_of_double_complex)(double complex); +typedef int (*t_ptr_func_int_of_long_double_complex)(long double complex); typedef int *t_func_ptr_int_of_char_schar_uchar(char, signed char, unsigned char); typedef void t_func_void_of_char(char); typedef void t_func_void_of_void(void); @@ -65,6 +69,9 @@ t_my_union *a12a; t_my_enum *a13; t_my_list *a14; t_my_tree *a15; +t_ptr_func_int_of_float_complex *a16; +t_ptr_func_int_of_double_complex *a17; +t_ptr_func_int_of_long_double_complex *a18; int main() { diff --git a/src/pkg/debug/dwarf/testdata/typedef.elf b/src/pkg/debug/dwarf/testdata/typedef.elf index ea9291fce7e484155980ce1441f0aab89e8cf0de..44df8da9bc7c4683d557a34bee8715ab754e2d34 100755 GIT binary patch literal 10837 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 diff --git a/src/pkg/debug/dwarf/type_test.go b/src/pkg/debug/dwarf/type_test.go index 6c2daaa56d..e01f7353a4 100644 --- a/src/pkg/debug/dwarf/type_test.go +++ b/src/pkg/debug/dwarf/type_test.go @@ -12,21 +12,24 @@ import ( ) var typedefTests = map[string]string{ - "t_ptr_volatile_int": "*volatile int", - "t_ptr_const_char": "*const char", - "t_long": "long int", - "t_ushort": "short unsigned int", - "t_func_int_of_float_double": "func(float, double) int", - "t_ptr_func_int_of_float_double": "*func(float, double) int", - "t_func_ptr_int_of_char_schar_uchar": "func(char, signed char, unsigned char) *int", - "t_func_void_of_char": "func(char) void", - "t_func_void_of_void": "func() void", - "t_func_void_of_ptr_char_dots": "func(*char, ...) void", - "t_my_struct": "struct my_struct {vi volatile int@0; x char@4 : 1@7; y int@4 : 4@27; array [40]long long int@8}", - "t_my_union": "union my_union {vi volatile int@0; x char@0 : 1@7; y int@0 : 4@28; array [40]long long int@0}", - "t_my_enum": "enum my_enum {e1=1; e2=2; e3=-5; e4=1000000000000000}", - "t_my_list": "struct list {val short int@0; next *t_my_list@8}", - "t_my_tree": "struct tree {left *struct tree@0; right *struct tree@8; val long long unsigned int@16}", + "t_ptr_volatile_int": "*volatile int", + "t_ptr_const_char": "*const char", + "t_long": "long int", + "t_ushort": "short unsigned int", + "t_func_int_of_float_double": "func(float, double) int", + "t_ptr_func_int_of_float_double": "*func(float, double) int", + "t_ptr_func_int_of_float_complex": "*func(complex float) int", + "t_ptr_func_int_of_double_complex": "*func(complex double) int", + "t_ptr_func_int_of_long_double_complex": "*func(complex long double) int", + "t_func_ptr_int_of_char_schar_uchar": "func(char, signed char, unsigned char) *int", + "t_func_void_of_char": "func(char) void", + "t_func_void_of_void": "func() void", + "t_func_void_of_ptr_char_dots": "func(*char, ...) void", + "t_my_struct": "struct my_struct {vi volatile int@0; x char@4 : 1@7; y int@4 : 4@27; array [40]long long int@8}", + "t_my_union": "union my_union {vi volatile int@0; x char@0 : 1@7; y int@0 : 4@28; array [40]long long int@0}", + "t_my_enum": "enum my_enum {e1=1; e2=2; e3=-5; e4=1000000000000000}", + "t_my_list": "struct list {val short int@0; next *t_my_list@8}", + "t_my_tree": "struct tree {left *struct tree@0; right *struct tree@8; val long long unsigned int@16}", } func elfData(t *testing.T, name string) *Data { -- 2.50.0