The width was not being set on the address, which meant
that the optimizer could not find variables that overlapped
with it and mark them as having had their address taken.
This let to the compiler believing variables had been set
but never used and then optimizing away the set.
Joel Sing [Fri, 21 Sep 2012 02:51:39 +0000 (12:51 +1000)]
cmd/{ld,5l,6l,8l}: add support for OpenBSD ELF signatures
OpenBSD now requires ELF binaries to have a PT_NOTE that identifies
it as an OpenBSD binary. Refactor the existing NetBSD ELF signature
code and implement support for OpenBSD ELF signatures.
Previously we tried to parse email constraints as the maximum base
distance (which is unused and must be omitted according to RFC 5280)
because they share the same tag number. Rather than complicate the
code further, this CL just ignores the unused values.
Joel Sing [Thu, 20 Sep 2012 03:20:33 +0000 (13:20 +1000)]
cgo: process DWARF info even when debug data is used for value
Always process the DWARF info, even when the const value is determined
using the debug data block. This ensures that the injected enum is
removed and future loads of the same constant do not trigger
inconsistent definitions.
David Symonds [Wed, 19 Sep 2012 22:12:47 +0000 (08:12 +1000)]
vet: fix rangeloop.
In a range loop, the presence of a value implies the presence of a key.
However, the presence of a value as an *ast.Ident does not imply that
the key is also an *ast.Ident, thus leading to a panic any time the
two argument form is used where the key is not an identifier.
R=golang-dev, adg, r
CC=golang-dev
https://golang.org/cl/6540045
Robert Griesemer [Wed, 19 Sep 2012 21:14:21 +0000 (14:14 -0700)]
gofmt: added testcase for files containing \r\n line endings
(see also issue 3961).
hexdump -c testdata/crlf.input 0000000 / * \r \n \t S o u r c e c o n t 0000010 a i n i n g C R / L F l i n 0000020 e e n d i n g s . \r \n \t T h e 0000030 g o f m t ' e d o u t p u t 0000040 m u s t o n l y h a v e 0000050 L F \r \n \t l i n e e n d i n g 0000060 s . \r \n * / \r \n p a c k a g e 0000070 m a i n \r \n \r \n f u n c m a i 0000080 n ( ) { \r \n \t / / l i n e 0000090 c o m m e n t \r \n \t p r i n t l 00000a0 n ( " h e l l o , w o r l d ! 00000b0 " ) / / a n o t h e r l i 00000c0 n e c o m m e n t \r \n \t p r i 00000d0 n t l n ( ) \r \n } \r \n 00000db
hexdump -c testdata/crlf.golden 0000000 / * \n \t S o u r c e c o n t a 0000010 i n i n g C R / L F l i n e 0000020 e n d i n g s . \n \t T h e g 0000030 o f m t ' e d o u t p u t m 0000040 u s t o n l y h a v e L F 0000050 \n \t l i n e e n d i n g s . \n 0000060 * / \n p a c k a g e m a i n \n 0000070 \n f u n c m a i n ( ) { \n \t 0000080 / / l i n e c o m m e n t \n 0000090 \t p r i n t l n ( " h e l l o , 00000a0 w o r l d ! " ) / / a n o 00000b0 t h e r l i n e c o m m e n 00000c0 t \n \t p r i n t l n ( ) \n } \n 00000cf
Shenghou Ma [Wed, 19 Sep 2012 16:58:34 +0000 (00:58 +0800)]
src/all.bat: fix banner
we need to restore %PATH% before calling "dist banner", so that
it could suggest the user to add %GOROOT%/bin to %PATH% if necessary.
Shenghou Ma [Wed, 19 Sep 2012 16:27:23 +0000 (00:27 +0800)]
misc/cgo/stdio: make it work on Windows and also test it
use a function to get stdout and stderr, instead of depending
on a specific libc implementation.
also make test/run.go replace \r\n by \n before comparing
output.
api: fix build; regenerate api.txt with fixed signatures
Update to tip (to get 6475062 and 6525047)
Rebuild cmd/api.
Switch to a go1 release branch.
Run go tool api > api/go1.txt.new in release branch.
Back to tip.
race: linker changes
This is the second part of a bigger change that adds data race detection feature:
https://golang.org/cl/6456044
This change makes the linker emit dependency on runtime/race package when supplied with -b flag.
race: build system changes
This is the first part of a bigger change that adds data race detection feature:
https://golang.org/cl/6456044
Adds -race flag to go command.
API change:
+pkg go/build, type Context struct, InstallTag string
race: cmd/cgo changes
This is a part of a bigger change that adds data race detection feature:
https://golang.org/cl/6456044
This change breaks circular dependency between runtime/race and syscall packages.
runtime: refactor goroutine blocking
The change is a preparation for the new scheduler.
It introduces runtime.park() function,
that will atomically unlock the mutex and park the goroutine.
It will allow to remove the racy readyonstop flag
that is difficult to implement w/o the global scheduler mutex.
R=rsc, remyoudompheng, dave
CC=golang-dev
https://golang.org/cl/6501077
Daniel Morsing [Tue, 18 Sep 2012 15:40:53 +0000 (17:40 +0200)]
cmd/gc: fix double evaluation in interface comparison
During interface compare, the operands will be evaluated twice. The operands might include function calls for conversion, so make them cheap before comparing them.
Dave Cheney [Mon, 17 Sep 2012 23:55:07 +0000 (09:55 +1000)]
runtime: arm: abort if VFPv3 support missing
Fixes #3456.
This proposal is a reformulation of CL 5987063. This CL resets
the default GOARM value to 6 and allows the use of the VFPv3
optimisation if GOARM=7. Binaries built with this CL in place
will abort if GOARM=7 was used and the target host does not
support VFPv3.
Robert Griesemer [Mon, 17 Sep 2012 19:23:41 +0000 (12:23 -0700)]
spec: unsafe.Alignof/Sizeof also accept non-variable arguments
Both gc and gccgo permit calls such as unsafe.Sizeof(42). The
spec only permits variable arguments. This is a (backward-compatible)
spec change reflecting the status quo. Seems preferrable over
restricting the compilers.
R=r, rsc, iant, ken
CC=golang-dev
https://golang.org/cl/6494140
Rob Pike [Fri, 14 Sep 2012 22:25:37 +0000 (15:25 -0700)]
text/template: towards better errors
Give the right name for errors, and add a test to check we're
getting the errors we expect.
Also fix an ordering bug (calling add after stopParse) that
caused a nil indirection rather than a helpful error.
Fixes #3280.
Command.Start could crash before if no fds were available
because a nil *os.File of /dev/null was added to the cleanup
list, which crashed before returning the proper error.
Robert Griesemer [Fri, 14 Sep 2012 18:31:56 +0000 (11:31 -0700)]
spec: clarify section on string types
Strings happen to be represented similarly to
byte slices internally, but they don't quite
behave like them: While strings can be indexed,
sliced, and have their len() taken like byte
slices, string elements are not addressable,
make() and cap() is not supported, range loops
operate differently, and they are immutable (and
thus behave like values rather then references).
Fixes #4018.
R=r, rsc, iant, ken
CC=golang-dev
https://golang.org/cl/6503116
exp/locale/collate: changed API to allow access to different locales through New(),
instead of variables. Several reasons:
- Encourage users of the API to minimize the number of creations and reuse Collate objects.
- Don't rule out the possibility of using initialization code for collators. For some locales
it will be possible to have very compact representations that can be quickly expanded
into a proper table on demand.
Other changes:
- Change name of root* vars to main*, as the tables are shared between locales.
- Added Locales() method to get a list of supported locales.
Alex Brainman [Fri, 14 Sep 2012 02:53:30 +0000 (12:53 +1000)]
misc/dashboard/builder: use c:\ as default buildroot on windows
We have some tests (misc/cgo/test) that are disabled only because
they will fail to run on go builder - see issue 3358 for details.
This change will allow us to enable these tests.
Adam Langley [Thu, 13 Sep 2012 15:00:16 +0000 (11:00 -0400)]
crypto/tls: allow certificates and key to be in either order.
X509KeyPair wasn't really supposed to allow the certificate and
key to be in the same file, but it did work if you put the key
first. Since some HTTPS servers support loading keys and certs
like this, this change makes it work in either order.
crypto/rsa: reject PublicKey.E if it won't fit in a 32-bit int
Right now we only have 32-bit ints so that's a no-op.
Took the opportunity to check for some other invalid values too.
Suggestions for additions or modifications welcome.
This change messes with anchor links. It obscures the item being linked to.
I don't see a way around it. Undoing for now.
Fixes #4071.
««« original CL description
doc css: topbar sticks to the top of large windows.
Rationale: for large screens, the convenience of not having to scroll
to the top of the page to do a search outweighs having less vertical
space.
Tested with Chrome, Firefox, Safari with various window and text sizes.
go tool dist env -w is supposed to print a Windows batch file.
Normally Windows will execute batch files without \r before \n,
but issue 3060 reports that if the file ends up containing paths
written in Chinese, Windows 7 cannot execute it without the \r.
So add the \r.