- 09 Jun, 2015 8 commits
-
-
Josh Bleecher Snyder authored
Bool codegen was generating a temp for function calls and other complex expressions, but was not using it. This was a refactoring bug introduced by CL 7853. The cmp code used to do (in short): l, r := &n1, &n2 It was changed to: l, r := nl, nr But the requisite assignments: nl, nr = &n1, &n2 were only introduced on one of two code paths. Fixes #10654. Change-Id: Ie8de0b3a333842a048d4308e02911bb10c6915ce Reviewed-on: https://go-review.googlesource.com/10844Reviewed-by: Minux Ma <minux@golang.org> Run-TryBot: Minux Ma <minux@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Adam Langley authored
Previously we enforced both that the extended key usages of a client certificate chain allowed for client authentication, and that the client-auth EKU was in the leaf certificate. This change removes the latter requirement. It's still the case that the chain must be compatible with the client-auth EKU (i.e. that a parent certificate isn't limited to another usage, like S/MIME), but we'll now accept a leaf certificate with no EKUs for client-auth. While it would be nice if all client certificates were explicit in their intended purpose, I no longer feel that this battle is worthwhile. Fixes #11087. Change-Id: I777e695101cbeba069b730163533e2977f4dc1fc Reviewed-on: https://go-review.googlesource.com/10806Reviewed-by: Andrew Gerrand <adg@golang.org> Run-TryBot: Adam Langley <agl@golang.org>
-
Shenghou Ma authored
Change-Id: Icda8475a7879d49e3b8b873303eb0bed5dd5a238 Reviewed-on: https://go-review.googlesource.com/10792Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Mikio Hara authored
Change-Id: Ia7914156e4369113dea7c17b3aa51096e25f1901 Reviewed-on: https://go-review.googlesource.com/10834Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Brad Fitzpatrick authored
After a little build coordinator change, this will get us sharding of the race builder. Update #11074 Change-Id: I4c55267563b6f5e213def7dd6707c837ae2106bf Reviewed-on: https://go-review.googlesource.com/10845Reviewed-by: Andrew Gerrand <adg@golang.org>
-
Hyang-Ah (Hana) Kim authored
Change-Id: If11621985c0a5a1f2133cdc974f37fd944b93e5e Reviewed-on: https://go-review.googlesource.com/10808 Run-TryBot: Ian Lance Taylor <iant@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Josh Bleecher Snyder authored
Fixes #10977. Change-Id: I706c953c16daad48595c7fae2d82124614dfc3ad Reviewed-on: https://go-review.googlesource.com/10780Reviewed-by: David Chase <drchase@google.com> Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
-
Adam Langley authored
Change-Id: I358b17304f95fdd8e6c0a64fa29f185c701fe338 Reviewed-on: https://go-review.googlesource.com/10805Reviewed-by: Andrew Gerrand <adg@golang.org>
-
- 08 Jun, 2015 5 commits
-
-
Håvard Haugen authored
The documentation for quick.Value says that it "returns an arbitrary value of the given type." In spite of this, nil values for pointers were never generated, which seems more like an oversight than an intentional choice. The lack of nil values meant that testing recursive type like type Node struct { Next *Node } with testing/quick would lead to a stack overflow since the data structure would never terminate. This change may break tests that don't check for nil with pointers returned from quick.Value. Two such instances were found in the standard library, one of which was in the testing/quick package itself. Fixes #8818. Change-Id: Id390dcce649d12fbbaa801ce6f58f5defed77e60 Reviewed-on: https://go-review.googlesource.com/10821Reviewed-by: Adam Langley <agl@golang.org> Run-TryBot: Adam Langley <agl@golang.org>
-
Robert Griesemer authored
- remove TODO on non-existing fmt.Formatter type (type exists now) - guard uses of imported types against nil Change-Id: I9ae8e5a448e73c84dec1606ea9d9ed5ddeee8dc6 Reviewed-on: https://go-review.googlesource.com/10777Reviewed-by: Alan Donovan <adonovan@google.com>
-
Russ Cox authored
Change-Id: I0512e461de1f25cb2a1cb7f23e7a77d00700667c Reviewed-on: https://go-review.googlesource.com/10803Reviewed-by: Russ Cox <rsc@golang.org>
-
Alex Brainman authored
Add .exe to exectable name, so it can be executed on windows. Use proper windows paths when searching vet output. Replace Skip with Skipf. Fixes build Change-Id: Ife40d8f5ab9d7093ca61c50683a358d4d6a3ba34 Reviewed-on: https://go-review.googlesource.com/10742 Run-TryBot: Alex Brainman <alex.brainman@gmail.com> Reviewed-by: Patrick Mézard <patrick@mezard.eu> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Austin Clements authored
Commit 1303957d was supposed to enable write barriers during the concurrent scan phase, but it only enabled *calls* to the write barrier during this phase. It failed to update the redundant list of write-barrier-enabled phases in gcmarkwb_m, so it still wasn't greying objects during the scan phase. This commit fixes this by replacing the redundant list of phases in gcmarkwb_m with simply checking writeBarrierEnabled. This is almost certainly redundant with checks already done in callers, but the last time we tried to remove these redundant checks everything got much slower, so I'm leaving it alone for now. Fixes #11105. Change-Id: I00230a3cb80a008e749553a8ae901b409097e4be Reviewed-on: https://go-review.googlesource.com/10801 Run-TryBot: Austin Clements <austin@google.com> Reviewed-by: Minux Ma <minux@golang.org>
-
- 07 Jun, 2015 4 commits
-
-
Austin Clements authored
Stack barriers assume that writes through pointers to frames above the current frame will get write barriers, and hence these frames do not need to be re-scanned to pick up these changes. For normal writes, this is true. However, there are places in the runtime that use typedmemmove to potentially write through pointers to higher frames (such as mapassign1). Currently, typedmemmove does not execute write barriers if the destination is on the stack. If there's a stack barrier between the current frame and the frame being modified with typedmemmove, and the stack barrier is not otherwise hit, it's possible that the garbage collector will never see the updated pointer and incorrectly reclaim the object. Fix this by making heapBitsBulkBarrier (which lies behind typedmemmove and its variants) detect when the destination is in the stack and unwind stack barriers up to the point, forcing mark termination to later rescan the effected frame and collect these pointers. Fixes #11084. Might be related to #10240, #10541, #10941, #11023, #11027 and possibly others. Change-Id: I323d6cd0f1d29fa01f8fc946f4b90e04ef210efd Reviewed-on: https://go-review.googlesource.com/10791Reviewed-by: Russ Cox <rsc@golang.org>
-
Austin Clements authored
Currently, write barriers are only enabled after completion of the concurrent scan phase, as we enter the concurrent mark phase. However, stack barriers are installed during the scan phase and assume that write barriers will track changes to frames above the stack barriers. Since write barriers aren't enabled until after stack barriers are installed, we may miss modifications to the stack that happen after installing the stack barriers and before enabling write barriers. Fix this by enabling write barriers during the scan phase. This commit intentionally makes the minimal change to do this (there's only one line of code change; the rest are comment changes). At the very least, we should consider eliminating the ragged barrier that's intended to synchronize the enabling of write barriers, but now just wastes time. I've included a large comment about extensions and alternative designs. Change-Id: Ib20fede794e4fcb91ddf36f99bd97344d7f96421 Reviewed-on: https://go-review.googlesource.com/10795Reviewed-by: Russ Cox <rsc@golang.org>
-
Austin Clements authored
Currently checkmarks mode fails to rescan stacks because it sees the leftover state bits indicating that the stacks haven't changed since the last scan. As a result, it won't detect lost marks caused by failing to scan stacks correctly during regular garbage collection. Fix this by marking all stacks dirty before performing the checkmark phase. Change-Id: I1f06882bb8b20257120a4b8e7f95bb3ffc263895 Reviewed-on: https://go-review.googlesource.com/10794Reviewed-by: Russ Cox <rsc@golang.org>
-
Dominik Honnef authored
Change-Id: Ib43b21daef5d8291e03c0f0fbf56999e37e21e21 Reviewed-on: https://go-review.googlesource.com/10820Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
- 06 Jun, 2015 5 commits
-
-
Shenghou Ma authored
Change-Id: Ibf2879c0034250c5699e21ecea0eb76340597a2a Reviewed-on: https://go-review.googlesource.com/10810Reviewed-by: Austin Clements <austin@google.com>
-
Alex Brainman authored
Change-Id: I283ab238b60d3a47e86296e1fbfc73ba121bef19 Reviewed-on: https://go-review.googlesource.com/10745Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Austin Clements authored
Change-Id: I999b57ef5535c18e02cc27c9bc9f896d73126b50 Reviewed-on: https://go-review.googlesource.com/10674Reviewed-by: Russ Cox <rsc@golang.org> Reviewed-by: Minux Ma <minux@golang.org>
-
Austin Clements authored
obj.ARET is the portable return mnemonic. ppc64.ARETURN is a legacy alias. This was done with sed -i s/ppc64\.ARETURN/obj.ARET/ cmd/compile/**/*.go sed -i s/ARETURN/obj.ARET/ cmd/internal/obj/ppc64/obj9.go Change-Id: I4d8e83ff411cee764774a40ef4c7c34dcbca4e43 Reviewed-on: https://go-review.googlesource.com/10673Reviewed-by: Russ Cox <rsc@golang.org> Reviewed-by: Minux Ma <minux@golang.org>
-
Austin Clements authored
All of the architectures except ppc64 have only "RET" for the return mnemonic. ppc64 used to have only "RETURN", but commit cf06ea68 introduced RET as a synonym for RETURN to make ppc64 consistent with the other architectures. However, that commit was never followed up to make the code itself consistent by eliminating uses of RETURN. This commit replaces all uses of RETURN in the ppc64 assembly with RET. This was done with sed -i 's/\<RETURN\>/RET/' **/*_ppc64x.s plus one manual change to syscall/asm.s. Change-Id: I3f6c8d2be157df8841d48de988ee43f3e3087995 Reviewed-on: https://go-review.googlesource.com/10672Reviewed-by: Rob Pike <r@golang.org> Reviewed-by: Russ Cox <rsc@golang.org> Reviewed-by: Minux Ma <minux@golang.org>
-
- 05 Jun, 2015 18 commits
-
-
Robert Griesemer authored
Change-Id: I318c1ef75b18d4687f13499ac225dde2d053505e Reviewed-on: https://go-review.googlesource.com/10776Reviewed-by: Rob Pike <r@golang.org>
-
Robert Griesemer authored
Change-Id: I7d96ebcca5954152edb821bb41b6047a1c622949 Reviewed-on: https://go-review.googlesource.com/10731Reviewed-by: Andrew Gerrand <adg@golang.org> Reviewed-by: Rob Pike <r@golang.org>
-
Robert Griesemer authored
Port of https://go-review.googlesource.com/10773 from x/tools. Change-Id: I6aba6a63a5448b8fcbcc7f072c627c27965dbe20 Reviewed-on: https://go-review.googlesource.com/10774Reviewed-by: Alan Donovan <adonovan@google.com>
-
Alan Donovan authored
gc should ideally consider this an error too; see golang/go#8560. Change-Id: Ieee71c4ecaff493d7f83e15ba8c8a04ee90a4cf1 Reviewed-on: https://go-review.googlesource.com/10757Reviewed-by: Robert Griesemer <gri@golang.org>
-
Robert Griesemer authored
In x/tools, MethodSetCache was moved from x/tools/go/types to x/tools/go/types/typeutil. Mirror that change. Change-Id: Ib838a9518371473c83fa4abc2778d42f33947c98 Reviewed-on: https://go-review.googlesource.com/10771Reviewed-by: Alan Donovan <adonovan@google.com>
-
Austin Clements authored
Currently the stack barriers are installed at the next frame boundary after gp.sched.sp + 1024*2^n for n=0,1,2,... However, when a G is in a system call, we set gp.sched.sp to 0, which causes stack barriers to be installed at *every* frame. This easily overflows the slice we've reserved for storing the stack barrier information, and causes a "slice bounds out of range" panic in gcInstallStackBarrier. Fix this by using gp.syscallsp instead of gp.sched.sp if it's non-zero. This is the same logic that gentraceback uses to determine the current SP. Fixes #11049. Change-Id: Ie40eeee5bec59b7c1aa715a7c17aa63b1f1cf4e8 Reviewed-on: https://go-review.googlesource.com/10755Reviewed-by: Russ Cox <rsc@golang.org>
-
Brad Fitzpatrick authored
Change-Id: I12e6990b46ea9c733a5718dc5ca67f1fcd2dec66 Reviewed-on: https://go-review.googlesource.com/10754Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Russ Cox authored
Change-Id: I09257b8f5482cba10b5f4d3813c778d6e9e74d40 Reviewed-on: https://go-review.googlesource.com/10752Reviewed-by: Russ Cox <rsc@golang.org>
-
Alexis Imperial-Legrand authored
Change-Id: I95bf62c0f2d77dd67515921e6aefa511cce8d95d Reviewed-on: https://go-review.googlesource.com/10633Reviewed-by: Ian Lance Taylor <iant@golang.org>
-
Russ Cox authored
Change-Id: I0e6f1a39b3d6b15d05891c8b25ab6644356bde5f Reviewed-on: https://go-review.googlesource.com/10751Reviewed-by: Russ Cox <rsc@golang.org>
-
Aaron Jacobs authored
ContinueOnError is particularly confusing, because it causes FlagSet.Parse to return as soon as it sees an error. I gather that the intent is "continue the program" rather than "continue parsing", compared to exiting or panicking. Change-Id: I27370ce1f321ea4debcee5b03faff3532495c71a Reviewed-on: https://go-review.googlesource.com/10740Reviewed-by: Rob Pike <r@golang.org>
-
Rob Pike authored
Actually add all build flags, so we also get things like -race. Fixes #10228. Change-Id: I5f77dda9d1ee3208e1833702f12f68c2731c4b22 Reviewed-on: https://go-review.googlesource.com/10697Reviewed-by: Russ Cox <rsc@golang.org>
-
Russ Cox authored
Change-Id: I1d7b728bd161da7bd6dd460862d8be072921e8b9 Reviewed-on: https://go-review.googlesource.com/10763Reviewed-by: Russ Cox <rsc@golang.org>
-
Russ Cox authored
Change-Id: If969d7a06c83447ee38da30f1477a6cf4bfa1a03 Reviewed-on: https://go-review.googlesource.com/10691Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
-
Russ Cox authored
Also fix the interaction between -buildmode and -shared. It's okay for -shared to change the default build mode, but it's not okay for it to silently override an explicit -buildmode=exe. Change-Id: Id40f93d140cddf75b19e262b3ba4856ee09a07ba Reviewed-on: https://go-review.googlesource.com/10315Reviewed-by: Ian Lance Taylor <iant@golang.org> Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
-
Russ Cox authored
People invoking the linker directly already have to change their scripts to use the new "go tool link", so this is a good time to make the -X flag behave like all other Go flags and take just a single argument. The old syntax will continue to be accepted (it is rewritten into the new syntax before flag parsing). Maybe some day we will be able to retire it. Even if we never retire the old syntax, having the new syntax at least makes the rewriting much less of a kludge. Change-Id: I91e8df94f4c22b2186e81d7f1016b8767d777eac Reviewed-on: https://go-review.googlesource.com/10310Reviewed-by: Rob Pike <r@golang.org>
-
Russ Cox authored
These are the Go 1.4 docs but refreshed for Go 1.5. The most sigificant change is that all references to the Plan 9 toolchain are gone. The tools no longer bear any meaningful resemblance. Change-Id: I44f5cadb832a982323d7fee0b77673e55d761b35 Reviewed-on: https://go-review.googlesource.com/10298Reviewed-by: Rob Pike <r@golang.org>
-
Russ Cox authored
Change-Id: I5c991cad38c9e2c839314a56d3415a2aa09c1561 Reviewed-on: https://go-review.googlesource.com/10762Reviewed-by: Russ Cox <rsc@golang.org>
-