- 09 May, 2018 1 commit
-
-
Several recent changes to the gc version of cmd/go improve the gofrontend support. These changes are partially copies of existing gofrontend differences, and partially new code. This CL makes the gofrontend match the upstream code. The changes included here come from: https://golang.org/cl/111575 https://golang.org/cl/111595 https://golang.org/cl/111635 https://golang.org/cl/111636 For the record, the following recent gc changes are based on code already present in the gofrontend repo: https://golang.org/cl/110915 https://golang.org/cl/111615 For the record, a gc change, partially based on earlier gofrontend work, also with new gc code, was already copied to gofrontend repo in CL 111099: https://golang.org/cl/111097 This moves the generated list of standard library packages from cmd/go/internal/load to go/build. Reviewed-on: https://go-review.googlesource.com/112475 gotools/: * Makefile.am (check-go-tool): Don't copy zstdpkglist.go. * Makefile.in: Rebuild. From-SVN: r260097
Ian Lance Taylor committed
-
- 04 May, 2018 5 commits
-
-
Reviewed-on: https://go-review.googlesource.com/111535 From-SVN: r259946
Ian Lance Taylor committed -
Change code to work properly reading unaligned data on architectures that don't support unaliged reads. This fixes a regression (broke Solaris/sparc) introduced in https://golang.org/cl/90235. Reviewed-on: https://go-review.googlesource.com/111296 From-SVN: r259935
Ian Lance Taylor committed -
Update mkalldocs.sh from the current master sources, replacing the old mkdoc.sh. Reviewed-on: https://go-review.googlesource.com/111096 From-SVN: r259920
Ian Lance Taylor committed -
Since gofrontend does have the vet tool now, we can test it. Reviewed-on: https://go-review.googlesource.com/111095 From-SVN: r259919
Ian Lance Taylor committed -
In https://golang.org/cl/111097 the gc version of cmd/go was updated to include some gofrontend-specific changes. The gofrontend code already has different versions of those changes; this CL makes the gofrontend match the upstream code. Reviewed-on: https://go-review.googlesource.com/111099 From-SVN: r259918
Ian Lance Taylor committed
-
- 03 May, 2018 2 commits
-
-
Tweak the array type checking code to avoid crashing on array types whose length expressions are explicit non-integer types (for example, "float64(10)"). If such constructs are seen, issue an "invalid array bound" error. Fixes golang/go#13486. Reviewed-on: https://go-review.googlesource.com/91975 From-SVN: r259900
Ian Lance Taylor committed -
These tests used to be disabled in the gofrontend since the go tool didn't support build IDs for the gofrontend. It does now, so enable the tests again. Reviewed-on: https://go-review.googlesource.com/111098 From-SVN: r259875
Ian Lance Taylor committed
-
- 02 May, 2018 2 commits
-
-
This patch adds explicit references to various types and constants defined by the header files included by sysinfo.c (used to drive the generation of gen-sysinfo.go as part of the libgo build via the GCC "-fdump-go-spec" option). The intent is to enable clients to gather the same info generated by "-fdump-go-spec" by instead reading the generated DWARF from a sysinfo.o object file compiled with "-g". Some compilers (notably clang) try to omit DWARF records for a given type unless there is an explicit use of it in the translation unit; the additional references are to insure that everything we want to see in the DWARF shows up. Reviewed-on: https://go-review.googlesource.com/99063 From-SVN: r259868
Ian Lance Taylor committed -
Reviewed-on: https://go-review.googlesource.com/90775 From-SVN: r259866
Ian Lance Taylor committed
-
- 01 May, 2018 1 commit
-
-
PR go/85429 cmd/go: support more Solaris assembler syntaxes Patch by Rainer Orth. Reviewed-on: https://go-review.googlesource.com/110563 From-SVN: r259797
Ian Lance Taylor committed
-
- 27 Apr, 2018 1 commit
-
-
PR go/85429 cmd/go: add Solaris assembler syntax for gccgo buildid file The Solaris assembler uses a different syntax for section directives. This is https://golang.org/cl/109140 ported over to gccgo. Reviewed-on: https://go-review.googlesource.com/109141 From-SVN: r259719
Ian Lance Taylor committed
-
- 20 Apr, 2018 1 commit
-
-
Reviewed-on: https://go-review.googlesource.com/108457 From-SVN: r259531
Ian Lance Taylor committed
-
- 17 Apr, 2018 2 commits
-
-
Bring in https://golang.org/cl/98616 from gc tip. Original CL description: This change modifies Go to disable loading of users' shell history for TestTerminalSignal tests. TestTerminalSignal, as part of its workload, will execute a new interactive bash shell. Bash will attempt to load the user's history from the file pointed to by the HISTFILE environment variable. For users with large histories that may take up to several seconds, pushing the whole test past the 5 second timeout and causing it to fail. Reviewed-on: https://go-review.googlesource.com/107624 From-SVN: r259452
Ian Lance Taylor committed -
Reviewed-on: https://go-review.googlesource.com/100955 From-SVN: r259445
Ian Lance Taylor committed
-
- 26 Mar, 2018 1 commit
-
-
The gccgo runtime is never stale, and on a system with gc sources in ~/go the test may wind up checking whether the gc runtime is stale. Reviewed-on: https://go-review.googlesource.com/102282 From-SVN: r258865
Ian Lance Taylor committed
-
- 16 Mar, 2018 1 commit
-
-
Also add noinst_DATA to CHECK_DEPS; it's not needed in practice since `make` will build noinst_DATA, but it's logically required and will make a difference if any of the noinst_DATA sources change between `make` and `make check`. Tony Reix figured out why omitting packages from noinst_DATA didn't seem to matter: because if gccgo can't find foo.gox, it will fall back to reading the export data in foo.o, and foo.o will exist because these packages go into libgo.a. Reviewed-on: https://go-review.googlesource.com/101077 From-SVN: r258606
Ian Lance Taylor committed
-
- 15 Mar, 2018 1 commit
-
-
Tested by installing the gcc-locales package and running LANG=de_DE.utf8 go build hello.go Without this change, that fails, as described at https://gcc.gnu.org/PR84765. Reviewed-on: https://go-review.googlesource.com/100737 From-SVN: r258565
Ian Lance Taylor committed
-
- 09 Mar, 2018 1 commit
-
-
Makefile: add internal/trace to noinst_DATA The internal/trace package is only imported by tests (specifically the tests in runtime/trace) so it must be in noinst_DATA to ensure that it is built before running the tests. This was mostly working because internal/trace has tests itself, and is listed in check-packages.txt before runtime/trace, so typical invocations of make would build internal/trace for checking purposes before checking runtime/trace. But we need this change to make that reliable. Reviewed-on: https://go-review.googlesource.com/99836 From-SVN: r258392
Ian Lance Taylor committed
-
- 07 Mar, 2018 2 commits
-
-
Reviewed-on: https://go-review.googlesource.com/99117 From-SVN: r258337
Ian Lance Taylor committed -
This implements the same choices made in the gc runtime, except that for 32-bit x86 we only use the fence instruction if the processor supports SSE2. The code here is hacked up for speed; the gc runtime uses straight assembler. Reviewed-on: https://go-review.googlesource.com/97715 From-SVN: r258336
Ian Lance Taylor committed
-
- 05 Mar, 2018 1 commit
-
-
Fix a small typo in the mksysinfo.sh script (incorrect input file for a grep command). Reviewed-on: https://go-review.googlesource.com/98635 From-SVN: r258259
Ian Lance Taylor committed
-
- 01 Mar, 2018 1 commit
-
-
The compiler was crashing partway through emitting an error for a bad self-referential struct type (which refers to one of its own fields via an unsafe.Offset expression). Tweak the offset logic to check for this class of type error and exit cleanly. Fixes golang/go#24180 Reviewed-on: https://go-review.googlesource.com/97855 From-SVN: r258112
Ian Lance Taylor committed
-
- 28 Feb, 2018 2 commits
-
-
Reviewed-on: https://go-review.googlesource.com/97357 From-SVN: r258052
Ian Lance Taylor committed -
Reviewed-on: https://go-review.googlesource.com/97517 From-SVN: r258051
Ian Lance Taylor committed
-
- 23 Feb, 2018 1 commit
-
-
We want to track references to fields in the real struct, not in aliases to the struct. Reviewed-on: https://go-review.googlesource.com/96816 From-SVN: r257954
Ian Lance Taylor committed
-
- 22 Feb, 2018 2 commits
-
-
Copy the idea of https://golang.org/cl/92756 to funcfileline, which is used by runtime.FuncForPC, runtime.(*Frames).Next, and others. Reviewed-on: https://go-review.googlesource.com/96175 From-SVN: r257913
Ian Lance Taylor committed -
Fixes https://gcc.gnu.org/PR84484 Reviewed-on: https://go-review.googlesource.com/95436 From-SVN: r257911
Ian Lance Taylor committed
-
- 20 Feb, 2018 2 commits
-
-
Let a fast syscall return be a preemption point. This helps with tight loops that make system calls, as in BenchmarkSyscallExcessWork. Reviewed-on: https://go-review.googlesource.com/94895 From-SVN: r257848
Ian Lance Taylor committed -
Aliases are supposed to be identical to the type being aliased, so questions about type compatibility need to always ignore aliases, except for error messages involving the type name. The test case for this is https://golang.org/cl/94995. Fixes golang/go#23912 Reviewed-on: https://go-review.googlesource.com/94996 From-SVN: r257845
Ian Lance Taylor committed
-
- 16 Feb, 2018 1 commit
-
-
In particular this lets BenchmarkPingPongHog in runtime/proc_test.go complete. Reviewed-on: https://go-review.googlesource.com/94735 From-SVN: r257743
Ian Lance Taylor committed
-
- 13 Feb, 2018 1 commit
-
-
They aren't needed, and could potentially cause unlikely symbol name collisions. Also, the runtime package's reference to main could cause the runtime package to define main.main..f, which could also be defined in the main package if it does something like fmt.Print(main). That will normally work but will fail with a multiple symbol definition error when using -static-libgo. Reviewed-on: https://go-review.googlesource.com/93656 From-SVN: r257637
Ian Lance Taylor committed
-
- 12 Feb, 2018 2 commits
-
-
Long long long ago Go permitted writing func F() in one file and writing func F() {} in another file. This was removed from the language, and that is now considered to be a multiple definition error. Gccgo never caught up to that, and it has been permitting this invalid code for some time. Stop permitting it, so that we give correct errors. Since we've supported it for a long time, the compiler uses it in a couple of cases: it predeclares the hash/equal methods if it decides to create them while compiling another function, and it predeclares main.main as a mechanism for getting the right warning if a program uses the wrong signature for main. For simplicity, keep those existing uses. This required a few minor changes in libgo which were relying, unnecessarily, on the current behavior. Reviewed-on: https://go-review.googlesource.com/93083 From-SVN: r257600
Ian Lance Taylor committed -
PR go/84215 runtime, sync/atomic: use write barrier for atomic pointer functions This copies atomic_pointer.go from 1.10rc2. It was omitted during the transition of the runtime from C to Go, and I forgot about it. This may help with https://gcc.gnu.org/PR84215. Reviewed-on: https://go-review.googlesource.com/93197 From-SVN: r257599
Ian Lance Taylor committed
-
- 09 Feb, 2018 1 commit
-
-
The magic //go:nointerface comment, used for field tracking, was only implemented for conversions to interface types in the same package. Record it in the export data, so that it works as expected for types imported from a different package. Reviewed-on: https://go-review.googlesource.com/93075 From-SVN: r257540
Ian Lance Taylor committed
-
- 08 Feb, 2018 2 commits
-
-
If we trace back through code that has no debug info, as when calling through C code compiled with -g0, we won't have a function name. Try to fetch the function name using the symbol table. Adding the test case revealed that gotest failed to use the gccgo tag when matching files, so add that. Reviewed-on: https://go-review.googlesource.com/92756 From-SVN: r257495
Ian Lance Taylor committed -
Reviewed-on: https://go-review.googlesource.com/92736 From-SVN: r257493
Ian Lance Taylor committed
-
- 07 Feb, 2018 2 commits
-
-
The escape analysis support is not yet good enough to avoid escaping the argument to funcPC. This causes unnecessary and often harmful memory allocation. E.g., (*cpuProfile).addExtra can be called from a signal handler, and it must not allocate memory. Move the calls to funcPC to use variables instead. This was done in the original migration to using funcPC, but was not done for newer code. In one case, in signal handling code, use getSigtramp. Reviewed-on: https://go-review.googlesource.com/92735 From-SVN: r257463
Ian Lance Taylor committed -
Normally we ensure to build a single Btype for identical types. We did not do this for methods table of identical interface types, however. If there are two identical interface type I, I2, they have the same Btype BI, but different Btypes for their methods tables, BM and BM2. From the backend's point of view only one of them is linked to BI. This can cause inconsitency in the backend's type system, like unresolved placeholder. This CL ensures we create a single Btype for methods table of identical interface type. Reviewed-on: https://go-review.googlesource.com/92436 From-SVN: r257436
Ian Lance Taylor committed
-
- 06 Feb, 2018 1 commit
-
-
Check for negative numbers with very small magnitudes that will round to negative zero, and force them to positive zero instead. This implements the spec clarification in https://golang.org/cl/14727. The test is in https://golang.org/cl/91895. Fixes golang/go#12621 Reviewed-on: https://go-review.googlesource.com/92175 From-SVN: r257415
Ian Lance Taylor committed
-