Go patch committed: fix check for notinheap conversion

2017-09-13 Thread Ian Lance Taylor
In the Go frontend, a normal pointer may not be converted to a notinheap pointer. The frontend was erroneously permitting a conversion from a normal pointer to a notinheap unsafe.Pointer, which is useless since unsafe.Pointer is not marked notinheap. This patch corrects the test to permit a conve

Go patch committed: Fix struct field names for embedded aliases

2017-09-13 Thread Ian Lance Taylor
This patch to the Go frontend adds much of https://golang.org/cl/35731 and https://golang.org/cl/35732, patches to the gc toolchain, to the gofrontend code. This is a step toward updating libgo to the 1.9 release. The gofrontend already supports type aliases, and this is required for correct supp

Go patch committed: emit type specific functions for aliases

2017-09-13 Thread Ian Lance Taylor
When the Go frontend has an alias for a struct or array that requires a type-specific function, don't emit the function with the alias name. Emit it with the struct/array as usual. The test case is for this is https://golang.org/cl/62531. Bootstrapped and ran Go testsuite on x86_64-pc-linux-gnu.

Go patch committed: avoid compiler crash on invalid programs

2017-09-13 Thread Ian Lance Taylor
This minor patch to the Go frontend avoids crashing the compiler on some invalid programs. Bootstrapped and ran Go testsuite on x86_64-pc-linux-gnu. Committed to mainline. Ian Index: gcc/go/gofrontend/MERGE === --- gcc/go/gofrontend

Go patch committed: simplify select and channel operations

2017-09-13 Thread Ian Lance Taylor
In preparation for upgrading libgo to the 1.9 release, this patch to the Go frontend approximately incorporates https://golang.org/cl/37661 and https://golang.org/cl/38351 from the gc toolchain. CL 37661 changed the gc compiler such that the select statement simply returns an integer which is then

[PATCH] [i386, libgcc] PR 82196 -mcall-ms2sysv-xlogues emits wrong AVX/SSE MOV

2017-09-13 Thread Daniel Santos
I made a silly mistake in libgcc by testing the cpp macro __AVX__ to determine rather to use movaps or vmovaps in the stubs. This resulted in the stubs choice of instruction being decided by the machine flags when the compiler was built rather than those being supplied at the command line. This p

<    1   2