aboutsummaryrefslogtreecommitdiff
path: root/gcc/go
AgeCommit message (Collapse)AuthorFilesLines
2013-09-04compiler: expand arguments with multiple results for built-in functions.Ian Lance Taylor1-21/+15
Fixed https://code.google.com/p/go/issues/detail?id=5796. Official fixedbug will be added with change to gc. From-SVN: r202239
2013-09-03compiler, runtime: Use runtime functions to pass closure value.Ian Lance Taylor9-316/+201
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. From-SVN: r202233
2013-08-29go-gcc.cc (Gcc_backend::immutable_struct): Set TREE_PUBLIC if the struct is ↵Ian Lance Taylor2-10/+12
not hidden. * go-gcc.cc (Gcc_backend::immutable_struct): Set TREE_PUBLIC if the struct is not hidden. (Gcc_backend::immutable_struct_set_init): Don't set TREE_PUBLIC. From-SVN: r202065
2013-08-23compiler: don't export embedded builtins.Ian Lance Taylor2-3/+28
The panic in test/fixedbugs/bug461.go was caused by the fact that reflect expects unexported fields in a struct to have a valid package path. If a struct field is an embedded built-in type, it is now given the package name of the currently compiling package, so it remains unexported for purposes of reflect. Fixed Issue 25. From-SVN: r201951
2013-08-17compiler: Don't generate value reference in range clause if receiver is a sink.Ian Lance Taylor1-1/+2
The panic in test/fixedbugs/bug454.go was caused by the generation of an unnecessary var reference when writing a range value into a sink. If the receiving variable is a sink, there's no need to dereference a possible NULL pointer. Fixes Issue 24. From-SVN: r201815
2013-08-07compiler: Fix "missing return" error for case T1, T2 in type switches.Ian Lance Taylor2-1/+12
Also change the "missing return" text and report it at the end of the function, rather than the start, to match the gc compiler. From-SVN: r201579
2013-08-06go-gcc.cc (Gcc_backend::immutable_struct_set_init): Use ↵Ian Lance Taylor2-1/+8
compute_reloc_for_constant. * go-gcc.cc (Gcc_backend::immutable_struct_set_init): Use compute_reloc_for_constant. From-SVN: r201535
2013-08-02go-gcc.cc (immutable_struct_set_init): Always call resolve_unique_section.Ian Lance Taylor2-4/+10
* go-gcc.cc (immutable_struct_set_init): Always call resolve_unique_section. From-SVN: r201446
2013-08-02compiler: Always put descriptor wrappers in their own section.Ian Lance Taylor1-0/+6
This lets the linker GC them. From-SVN: r201442
2013-07-24go-gcc.cc (Gcc_backend::non_zero_size_type): If a struct has a fields...Ian Lance Taylor2-14/+41
* go-gcc.cc (Gcc_backend::non_zero_size_type): If a struct has a fields, recreate those fields with the first one with a non-zero size. From-SVN: r201222
2013-07-23go-backend.c: Don't #include "rtl.h".Ian Lance Taylor3-8/+7
* go-backend.c: Don't #include "rtl.h". (go_imported_unsafe): Don't call init_varasm_once. * Make-lang.in (go/go-backend.o): Don't depend on $(RTL_H). From-SVN: r201176
2013-07-23go-lang.c: Don't #include "except.h".Ian Lance Taylor3-2/+6
* go-lang.c: Don't #include "except.h". * Make-lang.in (go/go-lang.o): Don't depend on $(EXCEPT_H). From-SVN: r201171
2013-07-16compiler: adjust closure field indexesIan Lance Taylor1-1/+1
This corrects the code that handles composite literals where the key is a variable in an enclosing function. See bug475.go in the testsuite. From-SVN: r200990
2013-06-27compiler: structs inherit all methods from embedded pointer fields.Ian Lance Taylor1-1/+6
Previously if a struct S contained an embedded field *T, a method with receiver *T would not be promoted to a method with value receiver S. From-SVN: r200493
2013-06-27compiler: more consistent error message for [...]T(x)Ian Lance Taylor1-1/+1
The message should be similar to the one for "var x [...]T", not to the message for []T(x...). From-SVN: r200490
2013-06-26compiler: disallow fallthrough in last case of switch.Ian Lance Taylor1-0/+3
In spec: A "fallthrough" statement may appear as the last statement of all but the last clause of an expression switch. From-SVN: r200440
2013-06-26compiler: reject integer division by zero constant.Ian Lance Taylor1-0/+14
From-SVN: r200436
2013-06-26compiler: forbid identifiers named "init" in package scope.Ian Lance Taylor1-0/+8
From-SVN: r200426
2013-06-25compiler: Fix type determination issues.Ian Lance Taylor2-3/+22
From-SVN: r200398
2013-06-24compiler: generate dummy names for blank-named constants.Ian Lance Taylor3-9/+30
Otherwise such const declarations are not checked. From-SVN: r200381
2013-06-24compiler: Add support for method values.Ian Lance Taylor7-161/+699
From-SVN: r200379
2013-06-21compiler: do not skip compilation of blank-named functions.Ian Lance Taylor3-3/+22
Fixes issue 22. From-SVN: r200316
2013-06-21compiler: Really only make descriptors when needed.Ian Lance Taylor2-21/+0
From-SVN: r200280
2013-06-21compiler: Only make function descriptors if needed.Ian Lance Taylor5-109/+252
From-SVN: r200273
2013-06-19compiler: reject incorrect unsafe.Offsetof expressions.Ian Lance Taylor2-1/+21
The x.Field argument to Offsetof may not involve hidden dereferences of embedded pointer fields. Also correct uninitialized implicit_ field. From-SVN: r200221
2013-06-18compiler, runtime: Use function descriptors.Ian Lance Taylor13-292/+957
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. From-SVN: r200181
2013-06-14compiler: fix computation of Offsetof.Ian Lance Taylor3-12/+37
The implied offsets must be taken into account when the selector involves anonymous fields. From-SVN: r200098
2013-06-12compiler: implement Go 1.1 spec of terminating statements.Ian Lance Taylor3-42/+136
From-SVN: r200047
2013-05-16Makefile.in (LLINKER): New variable.Jason Merrill2-1/+5
* Makefile.in (LLINKER): New variable. (mostlyclean): Remove link mutex. * configure.ac: Handle --enable-link-mutex. * lock-and-run.sh: New script. From-SVN: r198977
2013-02-10compiler, libgo: Permit testing package when test imports it circularly.Ian Lance Taylor1-9/+16
From-SVN: r195931
2013-02-05re PR bootstrap/56198 (Go profiledbootstrap error)Ian Lance Taylor1-3/+2
PR bootstrap/56198 compiler: Always initialize *nested_off in interpret_header. From-SVN: r195747
2013-02-01compiler: Don't emit multiple methods for identical unnamed structs.Ian Lance Taylor2-0/+26
From-SVN: r195638
2013-01-29compiler: Correct initialization order determination.Ian Lance Taylor3-30/+53
From-SVN: r195526
2013-01-17compiler: Provide location for initialization function.Ian Lance Taylor1-5/+7
From-SVN: r195259
2013-01-16* gospec.c: pass -u pthread_create to linker when static linking.Shenghou Ma2-1/+19
From-SVN: r195244
2013-01-10Update copyright years in gcc/Richard Sandiford11-11/+11
From-SVN: r195098
2013-01-04Update Copyright years for files modified in 2011 and/or 2012.Jakub Jelinek2-2/+2
From-SVN: r194903
2012-12-21compiler: Error if name defined in both package and file blocks.Ian Lance Taylor2-4/+46
From-SVN: r194685
2012-12-21re PR bootstrap/54659 (Bootstrap with --disable-nls broken under Windows)Ian Lance Taylor9-21/+5
PR bootstrap/54659 compiler: Don't include <gmp.h>, now included by go-system.h. * go-system.h: Don't include <cstdio>. From-SVN: r194669
2012-12-18libgo: Link against libatomic_convenience.la.Ian Lance Taylor2-8/+5
gcc/go: PR go/55201 * gospec.c: Revert last patch. gcc/testsuite: PR go/55201 * lib/go.exp: Revert last patch. From-SVN: r194593
2012-12-18libgo: Link against libatomic.Andreas Schwab2-0/+15
./: PR go/55201 * Makefile.def (all-target-libgo): Depend on all-target-libatomic. * Makefile.in: Regenerate. gcc/go: PR go/55201 * gospec.c (LIBATOMIC): Define. (LIBATOMIC_PROFILE): Define. (lang_specific_driver): Add LIBATOMIC[_PROFILE] option. gcc/testsuite: * lib/go.exp (go_link_flags): Add libatomic location to flags and ld_library_path. From-SVN: r194581
2012-12-14compiler: Better error message for invalid shift operations.Ian Lance Taylor1-6/+3
From-SVN: r194501
2012-12-13compiler: Accept trailing comma after varargs parameter.Ian Lance Taylor5-20/+87
Also fix handling of interfaces seen only in a function or method declaration. From-SVN: r194492
2012-12-06compiler: Correct test for whether go/defer arg is parenthesized.Ian Lance Taylor2-46/+87
From-SVN: r194240
2012-12-05compiler: Accept trailing comma after expression in type conversion.Ian Lance Taylor1-0/+2
From-SVN: r194176
2012-12-05compiler: Make sure we produce an error for a call to a non-function.Ian Lance Taylor1-0/+10
Fixes issue 19. From-SVN: r194174
2012-12-05compiler: Check for negative or inverted arguments to make.Ian Lance Taylor1-18/+43
From-SVN: r194173
2012-12-04compiler: Give error for constant inverted slice range.Ian Lance Taylor1-2/+12
From-SVN: r194124
2012-12-04compiler: Reject invalid nil == nil comparisons.Ian Lance Taylor1-0/+5
From-SVN: r194119
2012-12-04compiler: Fix crash in go/defer of some builtin functions.Ian Lance Taylor3-27/+38
From-SVN: r194114