tinygo/compiler
Ayke van Laethem 4957db89f4
compiler: fix interface calls for big underlying values
When the underlying value of an interface does not fit in a pointer, a
pointer to the value was correctly inserted in the heap. However, the
receiving method still assumed it got the underlying value instead of a
pointer to it leading to a crash.

This commit inserts wrapper functions for method calls on interfaces.

The bug wasn't obvious as on a 64-bit system, the underlying value was
almost always put directly in the interface. However, it led to a crash
on the AVR platform where pointer are (usually) just 16 bits making it
far more likely that underlying values cannot be directly stored in an
interface.
2018-10-07 02:06:48 +02:00
..
calls.go all: use LLVM library provided by the system 2018-09-30 15:10:04 +02:00
compiler.go compiler: fix interface calls for big underlying values 2018-10-07 02:06:48 +02:00
optimizer.go compiler: move Optimize() function to a separate file 2018-10-06 19:57:41 +02:00
sizes.go compiler: refactor compiler into separate package 2018-09-22 20:32:28 +02:00
util.go compiler: refactor compiler into separate package 2018-09-22 20:32:28 +02:00