Go patch committed: Fix initialization order

2014-11-18 Thread Ian Taylor
The Go frontend was slightly incorrect in the way that it handled the order of initialization (http://golang.org/issue/8052). Fortunately it rarely made a difference in real code. This patch by Chris Manghane fixes it. Bootstrapped and ran Go testsuite on x86_64-unknown-linux-gnu. Committed to

Re: [gofrontend-dev] [PATCH 4/4] Gccgo port to s390[x] -- part II

2014-11-15 Thread Ian Taylor
On Thu, Nov 13, 2014 at 2:58 AM, Dominik Vogt wrote: > > What do you think about the attached patches? They work for me, but I'm > not sure whether the patch to go-test.exp is good because I know > nothing about tcl. Looks plausible to me. Ian

Install llgo version of libgo under a different name

2014-11-14 Thread Ian Taylor
This patch from Peter Collingbourne installs libgo under a different name when it is built using llgo. Bootstrapped and ran Go testsuite on x86_64-unknown-linux-gnu. Committed to mainline. Ian diff -r ed47faa83681 libgo/Makefile.am --- a/libgo/Makefile.am Wed Nov 12 16:07:28 2014 -0800 +++ b/lib

Go patch committed: Report unused packages correctly for ambiguous lookups

2014-11-12 Thread Ian Taylor
This patch from Chris Manghane fixes the Go frontend to correctly report unused packages when there are ambiguous lookups. Previously some cases involving composite literals could cause a package to be considered as used, when it was really not used. That is, in some cases, the compiler did not r

libgo patch committed: Update libtool support

2014-11-11 Thread Ian Taylor
This patch to libgo updates the libtool support to that currently found in the gcc trunk. This includes a patch for support of OS X 10.10. Bootstrapped and ran Go testsuite on x86_64-unknown-linux-gnu. Committed to mainline. This is Go issue 9089. Ian diff -r 1c308e945873 libgo/config/libtool.m

Re: [gofrontend-dev] [PATCH 4/4] Gccgo port to s390[x] -- part II

2014-11-10 Thread Ian Taylor
On Mon, Nov 10, 2014 at 6:00 AM, Dominik Vogt wrote: >> I'd still like to avoid the rampant duplication if possible. One >> approach would be to put most of the test in something like >> nilptr_tests.go marked with "// skip". Then we can have top-level >> nilptrXX.go tests with +build lines that

Re: [gofrontend-dev] [PATCH 4/4] Gccgo port to s390[x] -- part II

2014-11-07 Thread Ian Taylor
On Fri, Nov 7, 2014 at 12:51 AM, Dominik Vogt wrote: > On Thu, Nov 06, 2014 at 09:06:18AM -0800, Ian Taylor wrote: >> On Thu, Nov 6, 2014 at 4:04 AM, Dominik Vogt wrote: >> > On Tue, Nov 04, 2014 at 08:16:51PM -0800, Ian Taylor wrote: >> >> The way to do it is not

Re: [gofrontend-dev] Re: [PATCH 00/13] Go closures, libffi, and the static chain

2014-11-07 Thread Ian Taylor
On Thu, Nov 6, 2014 at 11:38 PM, Richard Henderson wrote: > On 11/06/2014 06:45 PM, Ian Taylor wrote: >> On Thu, Nov 6, 2014 at 5:04 AM, Richard Henderson wrote: >>> >>> That said, this *may* not actually be a problem. It's not the direct >>> (possi

Re: [gofrontend-dev] Re: [PATCH 00/13] Go closures, libffi, and the static chain

2014-11-06 Thread Ian Taylor
On Thu, Nov 6, 2014 at 5:04 AM, Richard Henderson wrote: > > That said, this *may* not actually be a problem. It's not the direct > (possibly > lazy bound) call into libffi that needs a static chain, it's the indirect call > that libffi produces. And the indirect calls that Go produces. > > I'm

Re: [gofrontend-dev] [PATCH 4/4] Gccgo port to s390[x] -- part II

2014-11-06 Thread Ian Taylor
On Thu, Nov 6, 2014 at 4:04 AM, Dominik Vogt wrote: > On Tue, Nov 04, 2014 at 08:16:51PM -0800, Ian Taylor wrote: >> The way to do it is not by >> copying the test. If the test needs to be customized, add additional >> files that use // +build lines to pick which files is

Re: [gofrontend-dev] [PATCH 1/4] Gccgo port to s390[x] -- part II

2014-11-06 Thread Ian Taylor
On Wed, Nov 5, 2014 at 4:55 AM, Dominik Vogt wrote: > On Wed, Nov 05, 2014 at 11:31:28AM +0100, Dominik Vogt wrote: >> On Tue, Nov 04, 2014 at 02:39:34PM -0800, Ian Taylor wrote: >> > Note that libgo/runtime/runtime.c now refers to S390_HAVE_STCKF. It's >> >

Re: [gofrontend-dev] [PATCH 1/4] Gccgo port to s390[x] -- part II

2014-11-06 Thread Ian Taylor
On Thu, Nov 6, 2014 at 7:34 AM, Dominik Vogt wrote: > On Thu, Nov 06, 2014 at 03:02:13PM +0100, Rainer Orth wrote: >> Ian Taylor writes: >> > Committed patch 0001 with various formatting fixes, as attached. >> >> Unfortunately, the mksysinfo.sh part broke Solaris

Re: [gofrontend-dev] [PATCH 4/4] Gccgo port to s390[x] -- part II

2014-11-05 Thread Ian Taylor
On Wed, Nov 5, 2014 at 2:05 AM, Dominik Vogt wrote: > On Tue, Nov 04, 2014 at 08:16:51PM -0800, Ian Taylor wrote: >> I committed the change to go-test.exp. Thanks. >> >> The other changes are not OK. As described in >> gcc/testsuite/go.test/test/README.gcc, the files

Re: [gofrontend-dev] [PATCH 4/4] Gccgo port to s390[x] -- part II

2014-11-04 Thread Ian Taylor
I committed the change to go-test.exp. Thanks. The other changes are not OK. As described in gcc/testsuite/go.test/test/README.gcc, the files in gcc/testsuite/go.test/test are an exact copy of the master Go testsuite. Any changes must be made to the master Go testsuite first. I don't know what

Re: [gofrontend-dev] [PATCH 0/4] Gccgo port to s390[x] -- part II

2014-11-04 Thread Ian Taylor
On Tue, Nov 4, 2014 at 4:15 AM, Dominik Vogt wrote: > > This is the second set of patches to support s390[x] with Gccgo, > containing mostly architecture dependent parts that affect the > following directories: > Summary of this series: > --- > > 0001: Ports libgo to s390[x].

Re: [gofrontend-dev] [PATCH 3/4] Gccgo port to s390[x] -- part II

2014-11-04 Thread Ian Taylor
I committed this patch. Thanks. I changed the ChangeLog entry to this, since your ChangeLog entry didn't seem accurate to me. 2014-11-04 Dominik Vogt * go.test/go-test.exp: In +build lines, require whitespace around expected strings, fix check for negation. Ian

Re: [gofrontend-dev] [PATCH 2/4] Gccgo port to s390[x] -- part II

2014-11-04 Thread Ian Taylor
For the rest of this patch, I replied on the bug (http://gcc.gnu.org/PR63269). I'm not persuaded that the approach this patch takes is correct. Ian

Re: [gofrontend-dev] [PATCH 2/4] Gccgo port to s390[x] -- part II

2014-11-04 Thread Ian Taylor
Part of this patch duplicates a patch that is already applied to the master Go library, so I explicitly backported that patch (https://codereview.appspot.com/111320044) instead. Bootstrapped and ran Go testsuite on x86_64-unknown-linux-gnu. Committed to mainline. Ian diff -r 3b8f536b76d8 libgo/go

Re: [gofrontend-dev] [PATCH 1/4] Gccgo port to s390[x] -- part II

2014-11-04 Thread Ian Taylor
On Tue, Nov 4, 2014 at 4:15 AM, Dominik Vogt wrote: > See commit comment and ChangeLog for details. Committed patch 0001 with various formatting fixes, as attached. Note that libgo/runtime/runtime.c now refers to S390_HAVE_STCKF. It's not obvious to me that that is defined anywhere. Perhaps it

Re: [gofrontend-dev] [PATCH 1/4] Gccgo port to s390[x] -- part II

2014-11-04 Thread Ian Taylor
On Tue, Nov 4, 2014 at 4:15 AM, Dominik Vogt wrote: > See commit comment and ChangeLog for details. > case "amd64", "386": > + case "s390", "s390x": Note that this doesn't do what you want. In Go, unlike C, cases do not fall through by default. So doing this means that the amd64 and

Go patch committed: untyped bool for logical operators

2014-11-04 Thread Ian Taylor
The Go language was tweaked to permit logical operators to return an untyped boolean value, which means that code like type myBool bool var b myBool = a < b || c < d is now permitted (previously the || operator would return the named type "bool" and an explicit conversion was required for t

Re: Recent go changes broke alpha bootstrap

2014-11-03 Thread Ian Taylor
On Mon, Nov 3, 2014 at 9:02 AM, Dominik Vogt wrote: > On Thu, Oct 30, 2014 at 08:05:14AM -0700, Ian Taylor wrote: >> On Thu, Oct 30, 2014 at 5:46 AM, Dominik Vogt >> wrote: >> > I'm not quite sure about the best approach. The attempt to >> > represent C u

libgo patch committed: Use -dumpversion rather than looking at BASE-VER

2014-11-03 Thread Ian Taylor
This patch from Peter Collingbourne changes the libgo install to get the version number from gccgo -dumpversion rather than looking at the BASE-VER file in the gcc source directory. Bootstrapped on x86_64-unknown-linux-gnu. Committed to mainline. Ian diff -r 21b8b46b67f2 libgo/Makefile.am --- a/

Re: [gofrontend-dev] Re: [PATCH 7/9] Gccgo port to s390[x] -- part I

2014-10-31 Thread Ian Taylor
On Fri, Oct 31, 2014 at 2:11 AM, Dominik Vogt wrote: > On Thu, Oct 30, 2014 at 07:51:45AM -0700, Ian Taylor wrote: >> On Thu, Oct 30, 2014 at 12:25 AM, Dominik Vogt >> wrote: >> > See attached patch. >> >> I don't mind skipping the test on other platfor

Re: [PATCH] config-list.mk: Build Go only for supported targets (was: Patch RFA: Top-level configure patch: disable go on systems where it doesn't work)

2014-10-30 Thread Ian Taylor
On Thu, Oct 30, 2014 at 12:14 PM, Jan-Benedict Glaw wrote: > On Thu, 2014-10-30 08:08:51 -0700, Ian Taylor wrote: >> On Thu, Oct 30, 2014 at 6:19 AM, Jan-Benedict Glaw wrote: >> > >> > This updates contrib/config-list.mk to build Go for all but >> > kno

Re: [gofrontend-dev] Re: [PATCH 7/9] Gccgo port to s390[x] -- part I

2014-10-30 Thread Ian Taylor
On Thu, Oct 30, 2014 at 8:05 AM, Uros Bizjak wrote: > > /* { dg-options "-c -fdump-go-spec=godump-1.out" } */ > /* { dg-do compile } */ > +/* { dg-skip-if "not supported for target" { ! "s390*-*-* x86_64-*-*" } } */ > > x86_64 also needs && lp64, otherwise -m32 will defeat this condition. Thank

Re: [PATCH] config-list.mk: Build Go only for supported targets (was: Patch RFA: Top-level configure patch: disable go on systems where it doesn't work)

2014-10-30 Thread Ian Taylor
On Thu, Oct 30, 2014 at 6:19 AM, Jan-Benedict Glaw wrote: > > This updates contrib/config-list.mk to build Go for all but > known-non-working targets. A comment to configure{.ac,} is also added. > diff --git a/contrib/config-list.mk b/contrib/config-list.mk > index 94884d9..16900e1 100644 > ---

Re: [gofrontend-dev] Re: [PATCH 7/9] Gccgo port to s390[x] -- part I

2014-10-30 Thread Ian Taylor
On Thu, Oct 30, 2014 at 12:25 AM, Dominik Vogt wrote: > On Wed, Oct 29, 2014 at 10:16:40AM -0700, Ian Taylor wrote: >> Thanks. Part of the problem is that the m68k max alignment is 16 >> bits, but the godump test expects it to be at least 64 bits. This is >> BIGGEST_ALI

Re: [gofrontend-dev] Re: [PATCH 7/9] Gccgo port to s390[x] -- part I

2014-10-29 Thread Ian Taylor
Thanks. Part of the problem is that the m68k max alignment is 16 bits, but the godump test expects it to be at least 64 bits. This is BIGGEST_ALIGNMENT in config/m68k/m68k.h. Another part of the problem seems to be that structs are sometimes aligned to 16 bits although there is no obvious reason

Re: [gofrontend-dev] Re: [PATCH 7/9] Gccgo port to s390[x] -- part I

2014-10-29 Thread Ian Taylor
On Wed, Oct 29, 2014 at 9:38 AM, Andreas Schwab wrote: > I'm getting these test failures on m68k-linux: Can you send the file BUILDDIR/gcc/testsuite/gcc/godump-1.out? Ian

Re: [gofrontend-dev] [PATCH 8/9] Gccgo port to s390[x] -- part I

2014-10-29 Thread Ian Taylor
On Wed, Oct 29, 2014 at 12:01 AM, Dominik Vogt wrote: > Patch updated to remove conflicts with changed tests in patch 7. Thanks. Approved and committed. Ian

libgo patch committed: Recognize PPC relocs

2014-10-28 Thread Ian Taylor
This patch to libgo recognizes PPC relocations in the debug/elf package. This is a backport of https://codereview.appspot.com/125910043 which was applied to the PPC development branch of the master Go repository. For this patch bootstrapped and ran Go testsuite on x86_64-unknown-linux-gnu. Commit

libgo patch committed: Add consts for ioctl

2014-10-28 Thread Ian Taylor
This patch from Lynn Boger ensures that some ioctl constants are available on more systems. Bootstrapped and ran Go testsuite on x86_64-unknown-linux-gnu. Committed to mainline. Ian diff -r ec3c929aae72 libgo/mksysinfo.sh --- a/libgo/mksysinfo.shTue Oct 28 10:34:18 2014 -0700 +++ b/libgo

Re: [gofrontend-dev] [PATCH 7/9] Gccgo port to s390[x] -- part I

2014-10-28 Thread Ian Taylor
On Tue, Oct 28, 2014 at 7:31 AM, Dominik Vogt wrote: > > The attached patch contains all the discussed changes. I made a few formatting changes. I patched the test to work on x86, by making the char types accept either int8 or uint8, and making the long double tests accept any floating point siz

libgo patch committed: Update to 1.3.3

2014-10-27 Thread Ian Taylor
This patch to libgo updates it to the Go 1.3.3 release. This is just a few bug fixes. Bootstrapped and ran Go testsuite on x86_64-unknown-linux-gnu. Committed to mainline. Ian diff -r 03219f2d0191 libgo/MERGE --- a/libgo/MERGE Thu Oct 23 21:57:37 2014 -0700 +++ b/libgo/MERGE Mon Oct

Re: Patch RFA: Top-level configure patch: disable go on systems where it doesn't work

2014-10-27 Thread Ian Taylor
On Mon, Oct 27, 2014 at 9:02 AM, Jan-Benedict Glaw wrote: > On Mon, 2014-10-27 08:19:34 -0700, Ian Taylor wrote: >> On Mon, Oct 27, 2014 at 8:06 AM, Jan-Benedict Glaw wrote: >> > On Wed, 2014-10-22 20:36:53 -0700, Ian Taylor wrote: >> > > This patch to the

Re: Patch RFA: Top-level configure patch: disable go on systems where it doesn't work

2014-10-27 Thread Ian Taylor
On Mon, Oct 27, 2014 at 8:06 AM, Jan-Benedict Glaw wrote: > > On Wed, 2014-10-22 20:36:53 -0700, Ian Taylor wrote: >> This patch to the top level GCC configure script disables the go >> languages on some systems where it is known to not work. Bootstrapped >> on x86_64-

Re: Patch committed: Don't define TARGET_HAS_F_SETLKW

2014-10-24 Thread Ian Taylor
On Fri, Oct 24, 2014 at 6:26 AM, Andreas Schwab wrote: > Ian Taylor writes: > >> 2014-10-23 Ian Lance Taylor >> >> * config/mep/mep.h (TARGET_HAS_F_SETLKW): Don't define. > > s/define/undefine/ Thanks. Fixed. (Changes to ChangeLog files do not themselv

Go patch committed: Use MPC library for complex numbers

2014-10-23 Thread Ian Taylor
This patch to the Go frontend changes it to use the MPC library for complex numbers, rather than using pairs of MPFR values. This is a boilerplate change that lets us get rid of a bunch of code handling complex constant multiplication and division. Bootstrapped and ran Go testsuite on x86_64-unkn

Go patch committed: Simplify making a constant integer expression

2014-10-23 Thread Ian Taylor
The Go frontend currently only makes integer expressions using the mpz_t type, which is awkward when building an expression for a constant or other ordinary C integer. This patch adds a couple of helper functions and changes the frontend to use them. Bootstrapped and ran Go testsuite on x86_64-un

Patch committed: Fix typo in comment in tree-vrp.c

2014-10-23 Thread Ian Taylor
This patch fixes a typo in a comment in tree-vrp.c. Committed as obvious. Ian 2014-10-23 Ian Lance Taylor * tree-vrp.c (extract_range_from_assert): Fix typo in comment. Index: gcc/tree-vrp.c === --- gcc/tree-vrp.c (revisio

Patch committed: Don't define TARGET_HAS_F_SETLKW

2014-10-23 Thread Ian Taylor
The target macro TARGET_HAS_F_SETLKW was removed from GCC back in 2005 (https://gcc.gnu.org/ml/gcc-patches/2005-07/msg00917.html). I happened to notice a dreg in mep.h. After so long without a meaning, it can't be necessary now. This patch removes it. Committed as obvious. Ian 2014-10-23 Ia

libbacktrace patch committed: Fix load_pointer if no atomic or sync functions

2014-10-23 Thread Ian Taylor
This patch to libbacktrace fixes the type returned by the backup definition of backtrace_atomic_load_pointer for the case where libbacktrace is compiled with neither the atomic nor the sync functions available. This case does not arise in general but could arise from other uses of the library, or

Re: Patch RFA: Top-level configure patch: disable go on systems where it doesn't work

2014-10-23 Thread Ian Taylor
On Thu, Oct 23, 2014 at 8:39 AM, Pedro Alves wrote: > On 10/23/2014 04:31 PM, Ian Taylor wrote: >> >> My patch was, of course, just building on the existing >> unsupported_languages support. You are suggesting that we move that >> support from the top level confi

Re: Patch RFA: Top-level configure patch: disable go on systems where it doesn't work

2014-10-23 Thread Ian Taylor
On Thu, Oct 23, 2014 at 8:27 AM, Pedro Alves wrote: > > I think it'd be better if knowledge specific to subdirs was pushed down to > the subdirs, rather than being kept in the top level, in the direction > of how we disable libatomic, libsanitizer, etc. That is, by sourcing > something in the sub

Patch RFA: Top-level configure patch: disable go on systems where it doesn't work

2014-10-22 Thread Ian Taylor
This patch to the top level GCC configure script disables the go languages on some systems where it is known to not work. Bootstrapped on x86_64-unknown-gnu-linux. OK for mainline? Ian 2014-10-22 Ian Lance Taylor * configure.ac: Disable the Go frontend on systems where it is known to not wo

Patch committed: Add missing ChangeLog entry

2014-10-22 Thread Ian Taylor
I committed this patch to the top-level ChangeLog to add a missing entry. I forgot to commit the ChangeLog patch with the real change over a year ago, and just came across it. Ian Index: ChangeLog === --- ChangeLog (revision 216522

Go patch committed: Remove old hidden_fields_are_ok code

2014-10-21 Thread Ian Taylor
Back in December 2011 I changed the Go frontend to permit assigning structs with hidden fields (https://gcc.gnu.org/ml/gcc-patches/2011-12/msg00632.html). At the time the language change was somewhat experimental, so I left the old code. The language change has clearly stuck, and that old code is

Go patch committed: Pass type information to heap allocations

2014-10-20 Thread Ian Taylor
This patch by Chris Manghane passes type information to compiler-generated heap allocations in gccgo. This gives us precise type information for much of the gccgo heap, and means that garbage collection is much more precise and less prone to errors due to mistaking integer or float values as point

libgo patch committed: Allocate correct types in refect for interface conversions

2014-10-20 Thread Ian Taylor
This patch to libgo is a copy of a patch I recently made to the master Go library. This changes the reflect package to allocate memory using the correct types for interface conversions. The code was incorrectly allocating an empty interface type to hold a non-empty interface value. This was work