summaryrefslogtreecommitdiffstats
path: root/libgo/runtime/go-reflect-call.c
Commit message (Collapse)AuthorAgeFilesLines
* reflect: Handle calls to functions that take or return empty structsian2013-11-191-1/+4
| | | | | | | | | | | | Fixes issue 6761 This simple change seems to work fine, slightly to my surprise. This includes the tests I submitted to the main Go repository at https://codereview.appspot.com/26570046 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205001 138bc75d-0d04-0410-961f-82ee72b054a4
* libgo: Update to October 24 version of master library.ian2013-11-061-1/+15
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204466 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler, runtime: Use runtime functions to pass closure value.ian2013-09-031-12/+5
| | | | | | | | | | | | This changes the compiler and runtime to not pass a closure value as the last argument, but to instead pass it via __go_set_closure and retrieve it via __go_get_closure. This eliminates the need for function descriptor wrapper functions. It will make it possible to retrieve the closure value in a reflect.MakeFunc function. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202233 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler, runtime: Use function descriptors.ian2013-06-181-6/+27
| | | | | | | | | | | | | | | | This changes the representation of a Go value of function type from being a pointer to function code (like a C function pointer) to being a pointer to a struct. The first field of the struct points to the function code. The remaining fields, if any, are the addresses of variables referenced in enclosing functions. For each call to a function, the address of the function descriptor is passed as the last argument. This lets us avoid generating trampolines, and removes the use of writable/executable sections of the heap. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200181 138bc75d-0d04-0410-961f-82ee72b054a4
* runtime, testing/quick: libffi doesn't handle complex on Alpha.ian2013-03-011-1/+11
| | | | | | | From Uros Bizjak. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@196389 138bc75d-0d04-0410-961f-82ee72b054a4
* runtime: Fix reflect.Call support for 64-bit ints.ian2012-11-021-7/+7
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193110 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler, runtime: More steps toward separating int and intgo.ian2012-11-011-10/+12
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193059 138bc75d-0d04-0410-961f-82ee72b054a4
* PR go/48407ian2012-02-141-1/+22
| | | | | | | runtime: Permit building libgo without libffi. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184234 138bc75d-0d04-0410-961f-82ee72b054a4
* runtime: Handle FFI promoting result types.ian2012-02-111-1/+99
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184123 138bc75d-0d04-0410-961f-82ee72b054a4
* Change builtin make to runtime call at lowering time.ian2011-06-141-1/+1
| | | | | | | | | Use kindNoPointers as 6g does. * Make-lang.in (go/expressions.o): Depend on $(GO_RUNTIME_H). git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@175008 138bc75d-0d04-0410-961f-82ee72b054a4
* Update to current version of Go library.ian2011-05-201-13/+42
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@173931 138bc75d-0d04-0410-961f-82ee72b054a4
* Remove the types float and complex.ian2011-01-211-4/+21
| | | | | | | | | | | | | Update to current version of Go library. Update testsuite for removed types. * go-lang.c (go_langhook_init): Omit float_type_size when calling go_create_gogo. * go-c.h: Update declaration of go_create_gogo. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@169098 138bc75d-0d04-0410-961f-82ee72b054a4
* Add Go frontend, libgo library, and Go testsuite.ian2010-12-031-0/+358
gcc/: * gcc.c (default_compilers): Add entry for ".go". * common.opt: Add -static-libgo as a driver option. * doc/install.texi (Configuration): Mention libgo as an option for --enable-shared. Mention go as an option for --enable-languages. * doc/invoke.texi (Overall Options): Mention .go as a file name suffix. Mention go as a -x option. * doc/frontends.texi (G++ and GCC): Mention Go as a supported language. * doc/sourcebuild.texi (Top Level): Mention libgo. * doc/standards.texi (Standards): Add section on Go language. Move references for other languages into their own section. * doc/contrib.texi (Contributors): Mention that I contributed the Go frontend. gcc/testsuite/: * lib/go.exp: New file. * lib/go-dg.exp: New file. * lib/go-torture.exp: New file. * lib/target-supports.exp (check_compile): Match // Go. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@167407 138bc75d-0d04-0410-961f-82ee72b054a4
OpenPOWER on IntegriCloud