summaryrefslogtreecommitdiffstats
path: root/gcc/go/gofrontend
Commit message (Collapse)AuthorAgeFilesLines
...
* compiler: Use backend interface for function declarations.ian2013-10-117-309/+290
| | | | | | | | | | * go-gcc.cc (Backend::error_function): New function. (Backend::function): New function. (Backend::make_function): New function. (function_to_tree): New function. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@203403 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: Avoid extra error for anonymous embedded type.ian2013-10-111-6/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@203402 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: Fix test for constant argument too large for make.ian2013-10-101-2/+17
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@203338 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: Don't inherit logical operator operand type from context.ian2013-10-101-0/+9
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@203337 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: A type conversion of a constant is not always a constant.ian2013-10-101-2/+22
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@203332 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler, runtime: Fix complex division of NaN / 0.ian2013-10-093-0/+50
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@203331 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: Error for qualified ID as field name in struct literal.ian2013-10-083-9/+50
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@203292 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: Use backend interface for temporary reference expressions.ian2013-10-042-8/+13
| | | | | | | * go-gcc.cc (Backend::convert_expression): New function. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@203209 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: Use backend interface for numeric expressions.ian2013-10-024-123/+113
| | | | | | | | | | * go-gcc.cc: Include "real.h" and "realmpfr.h". (Backend::integer_constant_expression): New function. (Backend::float_constant_expression): New function. (Backend::complex_constant_expression): New function. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@203127 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: Use backend interface for variable expressions.ian2013-09-302-8/+21
| | | | | | | | | * go-gcc.cc (Backend::error_expression): New function. (Backend::var_expression): New function. (Backend::indirect_expression): New function. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@203038 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: Avoid knockon errors for invalid uses of _.ian2013-09-285-6/+47
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@203006 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: don't permit nil assignment to blank identifier.ian2013-09-252-5/+14
| | | | | | | Fixes https://code.google.com/p/go/issues/detail?id=6005. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202881 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: Fix inconsistent check for structs using memcmp for ==.ian2013-09-192-5/+1
| | | | | | | Test is bug479. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202751 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: Fix name of unexported method of embedded imported type.ian2013-09-181-1/+25
| | | | | | | Test case is fixedbugs/bug478.go in master testsuite. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202726 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: Correctly handle identical unnamed structs with methods.ian2013-09-182-11/+33
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202723 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: Fix type of result of shortcut calculation.ian2013-09-181-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202717 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: expand arguments with multiple results for built-in functions.ian2013-09-041-21/+15
| | | | | | | Fixed https://code.google.com/p/go/issues/detail?id=5796. Official fixedbug will be added with change to gc. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202239 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler, runtime: Use runtime functions to pass closure value.ian2013-09-039-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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202233 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: don't export embedded builtins.ian2013-08-232-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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@201951 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: Don't generate value reference in range clause if receiver is a sink.ian2013-08-171-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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@201815 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: Fix "missing return" error for case T1, T2 in type switches.ian2013-08-072-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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@201579 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: Always put descriptor wrappers in their own section.ian2013-08-021-0/+6
| | | | | | | This lets the linker GC them. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@201442 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: adjust closure field indexesian2013-07-161-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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200990 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: structs inherit all methods from embedded pointer fields.ian2013-06-271-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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200493 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: more consistent error message for [...]T(x)ian2013-06-271-1/+1
| | | | | | | | The message should be similar to the one for "var x [...]T", not to the message for []T(x...). git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200490 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: disallow fallthrough in last case of switch.ian2013-06-261-0/+3
| | | | | | | | In spec: A "fallthrough" statement may appear as the last statement of all but the last clause of an expression switch. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200440 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: reject integer division by zero constant.ian2013-06-261-0/+14
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200436 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: forbid identifiers named "init" in package scope.ian2013-06-261-0/+8
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200426 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: Fix type determination issues.ian2013-06-252-3/+22
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200398 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: generate dummy names for blank-named constants.ian2013-06-243-9/+30
| | | | | | | Otherwise such const declarations are not checked. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200381 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: Add support for method values.ian2013-06-247-161/+699
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200379 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: do not skip compilation of blank-named functions.ian2013-06-213-3/+22
| | | | | | | Fixes issue 22. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200316 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: Really only make descriptors when needed.ian2013-06-212-21/+0
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200280 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: Only make function descriptors if needed.ian2013-06-215-109/+252
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200273 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: reject incorrect unsafe.Offsetof expressions.ian2013-06-192-1/+21
| | | | | | | | | | The x.Field argument to Offsetof may not involve hidden dereferences of embedded pointer fields. Also correct uninitialized implicit_ field. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200221 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler, runtime: Use function descriptors.ian2013-06-1811-286/+942
| | | | | | | | | | | | | | | | 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
* compiler: fix computation of Offsetof.ian2013-06-143-12/+37
| | | | | | | | The implied offsets must be taken into account when the selector involves anonymous fields. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200098 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: implement Go 1.1 spec of terminating statements.ian2013-06-123-42/+136
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200047 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler, libgo: Permit testing package when test imports it circularly.ian2013-02-101-9/+16
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195931 138bc75d-0d04-0410-961f-82ee72b054a4
* PR bootstrap/56198ian2013-02-051-3/+2
| | | | | | | compiler: Always initialize *nested_off in interpret_header. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195747 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: Don't emit multiple methods for identical unnamed structs.ian2013-02-012-0/+26
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195638 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: Correct initialization order determination.ian2013-01-293-30/+53
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195526 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: Provide location for initialization function.ian2013-01-171-5/+7
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195259 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: Error if name defined in both package and file blocks.ian2012-12-212-4/+46
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@194685 138bc75d-0d04-0410-961f-82ee72b054a4
* PR bootstrap/54659ian2012-12-217-12/+0
| | | | | | | | | compiler: Don't include <gmp.h>, now included by go-system.h. * go-system.h: Don't include <cstdio>. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@194669 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: Better error message for invalid shift operations.ian2012-12-141-6/+3
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@194501 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: Accept trailing comma after varargs parameter.ian2012-12-135-20/+87
| | | | | | | | Also fix handling of interfaces seen only in a function or method declaration. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@194492 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: Correct test for whether go/defer arg is parenthesized.ian2012-12-062-46/+87
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@194240 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: Accept trailing comma after expression in type conversion.ian2012-12-051-0/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@194176 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: Make sure we produce an error for a call to a non-function.ian2012-12-051-0/+10
| | | | | | | Fixes issue 19. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@194174 138bc75d-0d04-0410-961f-82ee72b054a4
OpenPOWER on IntegriCloud