summaryrefslogtreecommitdiffstats
path: root/gcc/go/gofrontend/expressions.cc
Commit message (Collapse)AuthorAgeFilesLines
...
* compiler: Lower constant string comparisons.ian2012-02-161-4/+35
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184316 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: Fix crash: type T1 struct { F *[1]T2 } where T2 is a struct.ian2012-02-161-2/+2
| | | | | | | This will become bug417.go. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184299 138bc75d-0d04-0410-961f-82ee72b054a4
* math: Compile with -mfancy-math-387 -funsafe-optimizations on x86.ian2012-02-081-1/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184015 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler, runtime: Check make int64 args for overflow.ian2012-02-081-6/+26
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183994 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: Compare slice start and end with cap, not len.ian2012-02-021-13/+25
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183851 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: Fix parameter references in method expressions.ian2012-02-021-6/+17
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183825 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: Fix type checking for append.ian2012-02-011-6/+13
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183816 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: Do not allow slice of array literal.ian2012-01-241-16/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183499 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: Correct type of expressions involving character constants.ian2012-01-241-1/+29
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183490 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: Better handling of erroneous function signatures.ian2012-01-241-6/+14
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183479 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: Better error message for invalid use of predeclared function.ian2012-01-241-1/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183466 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: Give an error if a variable is defined but not used.ian2012-01-231-0/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183458 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: Change alias handling, change rune alias to int32.ian2012-01-211-10/+50
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183374 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: Handle recursive interfaces.ian2012-01-201-4/+4
| | | | | | | | | * go-gcc.cc (Gcc_backend::placeholder_struct_type): Permit name to be empty. (Gcc_backend::set_placeholder_struct_type): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183340 138bc75d-0d04-0410-961f-82ee72b054a4
* libgo: Update to weekly.2011-12-14.ian2012-01-121-1/+5
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183118 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: Permit type B byte; type S []B; var v = S("x").ian2012-01-111-20/+21
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183112 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: Don't use memcmp for structs/arrays with padding.ian2012-01-111-14/+9
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183109 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: Use backend interface for type sizes and alignments.ian2012-01-111-45/+34
| | | | | | | | | | | | * go-gcc.cc (Gcc_backend::type_size): New function. (Gcc_backend::type_alignment): New function. (Gcc_backend::type_field_alignment): New function. (Gcc_backend::type_field_offset): New function. * go-backend.c (go_type_alignment): Remove. * go-c.h (go_type_alignment): Don't declare. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183089 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler, runtime: Implement struct and array comparisons.ian2012-01-061-46/+289
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182971 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: Prohibit comparisons of funcs, maps, and slices to non-nil.ian2011-12-281-3/+16
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182703 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: Permit omitting &T in composite literal.ian2011-12-141-3/+17
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182331 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: Fix multiple conversions to different named slices.ian2011-12-131-2/+2
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182293 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: Permit converting between string and named []byte/[]rune.ian2011-12-131-12/+3
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182291 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: Another correction to hidden fields in composite literals.ian2011-12-091-8/+12
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182154 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: It's OK to assign a struct with hidden fields in a literal.ian2011-12-091-12/+0
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182144 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: Don't check for hidden fields on struct assignments.ian2011-12-081-1/+36
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182143 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler/runtime: Copy channel implementation from master library.ian2011-12-011-2/+7
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181874 138bc75d-0d04-0410-961f-82ee72b054a4
* compiler: Define and use backend-independent Location class.ian2011-11-291-282/+340
| | | | | | | | | | | | | | | | From Sanjoy Das. * go-location.h: New file. * go-linemap.cc: New file. * go-gcc.cc: Change all uses of source_location to Location. * Make-lang.in (GO_OBJS): Add go/go-linemap.o. (GO_LINEMAP_H): New variable. (GO_LEX_H): Use $(GO_LINEMAP_H). (GO_GOGO_H, GO_TYPES_H, GO_IMPORT_H): Likewise. (go/go-linemap.o): New target. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181813 138bc75d-0d04-0410-961f-82ee72b054a4
* Implement predeclared delete function.ian2011-10-251-48/+97
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180438 138bc75d-0d04-0410-961f-82ee72b054a4
* Don't permit close of receive-only channel.ian2011-10-251-0/+2
| | | | | | | Better panic on attempt to close nil channel. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180437 138bc75d-0d04-0410-961f-82ee72b054a4
* Implement new order of assignment rules.ian2011-10-251-0/+18
| | | | | | | | In "i, x[i] = 1, 2" the assigment to x[i] must use the value of i from before the assignment statement. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180421 138bc75d-0d04-0410-961f-82ee72b054a4
* Implement append([]byte, string...).ian2011-10-241-17/+48
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180364 138bc75d-0d04-0410-961f-82ee72b054a4
* Rename is_open_array_type to is_slice_type.ian2011-10-241-23/+22
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180361 138bc75d-0d04-0410-961f-82ee72b054a4
* Better error message for shift context types.ian2011-09-211-10/+59
| | | | | | | Fix shift of floating point constant to generate constant. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179057 138bc75d-0d04-0410-961f-82ee72b054a4
* Improve error for undefined name in imported package.ian2011-09-201-2/+7
| | | | | | | Avoid emitting some followon errors. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179020 138bc75d-0d04-0410-961f-82ee72b054a4
* Emit compiler errors for unused values.ian2011-09-201-8/+49
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179008 138bc75d-0d04-0410-961f-82ee72b054a4
* Improve errors for invalid use of [...]type.ian2011-09-171-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178921 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix handling of structs with embedded global types.ian2011-09-141-2/+15
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178870 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix inheriting hidden methods with arguments of hidden type.ian2011-09-131-1/+7
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178827 138bc75d-0d04-0410-961f-82ee72b054a4
* Fix using package name as composite literal struct key.ian2011-09-101-1/+0
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178747 138bc75d-0d04-0410-961f-82ee72b054a4
* Lower calls to bound method expressions.ian2011-08-291-155/+181
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178264 138bc75d-0d04-0410-961f-82ee72b054a4
* Change Bound_method_expression to refer to a constant method.ian2011-08-251-22/+38
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178091 138bc75d-0d04-0410-961f-82ee72b054a4
* gccgo: fixes to ast-dump, refactoring of export and ast-dumpian2011-08-241-82/+66
| | | | | | | | | | | | | | | | | | | | | to implement a common interface for writing basic type literals and added flags for optimization. * lang.opt: Add fgo-optimize-. * go-lang.c (go_langhook_handle_option): Handle OPT_fgo_optimize. * go-c.h (go_enable_optimize): Declare. * Make-lang.in (GO_OBJS): Add go/go-optimize.o. (GO_EXPORT_H): Define. (GO_IMPORT_H): Add $(GO_EXPORT_H). (GO_AST_DUMP_H): Define. (go/ast-dump.o, go/statements.o): Use GO_AST_DUMP_H. (go/export.o, go/gogo.o, go/import.o): Use GO_EXPORT_H. (go/types.o): Likewise. (go/expressions.o): Use GO_AST_DUMP_H and GO_EXPORT_H. (go/go-optimize.o): New target. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@178046 138bc75d-0d04-0410-961f-82ee72b054a4
* PR go/49889ian2011-08-041-0/+2
| | | | | | | | | | gccgo : Fixed bug 49889. Now the compiler emits a proper error when a function called in a tuple assignment statement can not be typed as a function. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177310 138bc75d-0d04-0410-961f-82ee72b054a4
* gccgo: Added code to dump the AST tree. The AST dump isian2011-08-031-0/+588
| | | | | | | | | | | | | | activated with -fgo-dump-ast. Initial version, it only dumps (most) constructs that are expected after the lowering transformation. * Make-lang.in (GO_OBJS): Add go/ast-dump.o. (go/ast-dump.o): New target. (go/expressions.o): Depend on go/gofrontend/ast-dump.h. (go/statements.o): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177225 138bc75d-0d04-0410-961f-82ee72b054a4
* Use temporary variables for calls with multiple results.ian2011-08-011-62/+162
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@176998 138bc75d-0d04-0410-961f-82ee72b054a4
* Change builtin make to runtime call at lowering time.ian2011-06-141-132/+220
| | | | | | | | | 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
* Use backend interface for map descriptors.ian2011-06-111-1/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@174943 138bc75d-0d04-0410-961f-82ee72b054a4
* Use backend interface for type descriptors.ian2011-06-111-7/+14
| | | | | | | | | | | * go-gcc.cc: Include "toplev.h". (Gcc_backend::immutable_struct): New function. (Gcc_backend::immutable_struct_set_init): New function. (Gcc_backend::immutable_struct_reference): New function. * Make-lang.in (go/go-gcc.o): Depend on toplev.h. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@174941 138bc75d-0d04-0410-961f-82ee72b054a4
* Use backend interface for zero initialization.ian2011-06-091-8/+25
| | | | | | | * go-gcc.cc (Gcc_backend::zero_expression): New function. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@174863 138bc75d-0d04-0410-961f-82ee72b054a4
OpenPOWER on IntegriCloud