cmd/gc: Don't export embedded builtins

Fixes issue 4124.

R=golang-dev, dave, minux.ma, remyoudompheng, rsc
CC=golang-dev
http://codereview.appspot.com/6543057
cmd/gc: don't dereference a nil Type pointer in widstruct

The nil dereference in the next few lines doesn't seem
to cause a segmentation fault on Unix, but does seem
to halt the Go compiler.

The following is a test case:

>>>
package main

func mine(int b) int {
        return b + 2
}

func main() {
        mine()

        c = mine()
}
<<<

Without this change only the following is caught:

typecheck.go:3: undefined: b
typecheck.go:4: undefined: b

with it, we catch all the errors:

typecheck.go:3: undefined: b
typecheck.go:4: undefined: b
typecheck.go:10: undefined: c
typecheck.go:10: cannot assign to c .

R=rsc, minux.ma
CC=golang-dev
http://codereview.appspot.com/6542060

Committer: Shenghou Ma <minux.ma@gmail.com>
cmd/gc: fix output filename generation on Windows

R=golang-dev, rsc
CC=golang-dev
http://codereview.appspot.com/6610060
image/jpeg: move the huffman bit decoder state higher up in the
decoder struct, inside the unmappedzero limit, to eliminate some
TESTB instructions in the inner decoding loop.

benchmark          old ns/op    new ns/op    delta
BenchmarkDecode      2943204      2746360   -6.69%

R=r, dave
CC=golang-dev
http://codereview.appspot.com/6625058
cmd/gc: Don't accept qualified names as literal keys

Fixes issue 4067.

R=golang-dev, minux.ma, dave, rsc
CC=golang-dev
http://codereview.appspot.com/6622056
cmd/gc: replace "typechecking loop" by nicer errors in some cases.

For issue 3757:
BEFORE:  test/fixedbugs/bug463.go:12: typechecking loop involving a
             test/fixedbugs/bug463.go:12 a
             test/fixedbugs/bug463.go:12 <node DCLCONST>
AFTER:   test/fixedbugs/bug463.go:12: constant definition loop
             test/fixedbugs/bug463.go:12: a uses a

For issue 3937:
BEFORE: test/fixedbugs/bug464.go:12: typechecking loop involving foo
            test/fixedbugs/bug464.go:12 <T>
            test/fixedbugs/bug464.go:12 foo
            test/fixedbugs/bug464.go:12 <node DCLFUNC>
AFTER:  test/fixedbugs/bug464.go:12: foo is not a type

Fixes issue 3757.
Fixes issue 3937.

R=golang-dev, rsc
CC=golang-dev
http://codereview.appspot.com/6614058
syscall: fix Statfs and Fstatfs on Linux/ARM

R=golang-dev, dave, rsc
CC=golang-dev
http://codereview.appspot.com/6615055
testing: fix extra tabs when t.Log("string")

t.Log("line 1\nline 2\nline 3")

Old output:
=== RUN TestLine3
--- PASS: TestLine3 (0.00 seconds)
testing_test.go:25: 	line 1
		line 2
		line 3
		PASS

New output:
=== RUN TestLine3
--- PASS: TestLine3 (0.00 seconds)
testing_test.go:24: 	line 1
		line 2
		line 3
PASS

R=golang-dev, rsc
CC=golang-dev
http://codereview.appspot.com/6613069
test: use rundir and errorcheckdir for a few more tests.

Update issue 4139.

R=golang-dev, minux.ma
CC=golang-dev
http://codereview.appspot.com/6620070
net/http/httptest: mimic the normal HTTP server's ResponseWriter more closely

Also adds tests, which didn't exist before.

Fixes issue 4188

R=golang-dev, rsc
CC=golang-dev
http://codereview.appspot.com/6613062
os: make TestMkdirAllWithSymlink more robust

Don't assume the test has a clean environment within /tmp.
Use an actual new tempdir for its tests.

Fixes FreeBSD build failure as seen at:
http://build.golang.org/log/396738676356d7fb6bab6eaf1b97cac820f8a90f

--- FAIL: TestMkdirAllWithSymlink (0.00 seconds)
path_test.go:178:                 Mkdir /tmp/dir: mkdir /tmp/dir: file exists
FAIL
FAIL    os      1.091s

R=golang-dev, minux.ma
CC=golang-dev
http://codereview.appspot.com/6615057
test/run.go: use correct executable filename on Windows, fix build

R=golang-dev, daniel.morsing
CC=golang-dev
http://codereview.appspot.com/6624060
runtime: disable TestParForParallel for now on 32-bit hosts
Also add call to GC() to make it easier to re-enable the test.

Update issue 4155.
When we have precise GC merged, re-enable this test.

R=golang-dev, bradfitz
CC=golang-dev
http://codereview.appspot.com/6622058
race: runtime changes
This is a part of a bigger change that adds data race detection feature:
http://codereview.appspot.com/6456044

R=rsc
CC=gobot, golang-dev
http://codereview.appspot.com/6535050
race: sync changes
This is a part of a bigger change that adds data race detection feature:
http://codereview.appspot.com/6456044

R=rsc, minux.ma
CC=gobot, golang-dev
http://codereview.appspot.com/6529053
race: sync/atomic changes
This is a part of a bigger change that adds data race detection feature:
http://codereview.appspot.com/6456044

R=rsc, remyoudompheng
CC=gobot, golang-dev
http://codereview.appspot.com/6536059
io/ioutil: fix data race under the race detector
See issue 3970 (it's already marked as Fixed).

R=rsc, minux.ma
CC=golang-dev
http://codereview.appspot.com/6624059
cmd/gc: avoid crash in %N print

R=ken2
CC=golang-dev
http://codereview.appspot.com/6609052
cmd/gc: more graceful handling of invalid fields in widstruct.

The protection against segfaults does not completely solve
crashes and breaks test/fixedbugs/bug365.go

R=golang-dev, rsc
CC=golang-dev
http://codereview.appspot.com/6615058
test/bench/shootout: match gcc architecture to GOARCH

If we're benchmarking 8g, use gcc -m32.
If we're benchmarking 6g, use gcc -m64.

R=golang-dev, bradfitz, minux.ma, remyoudompheng
CC=golang-dev
http://codereview.appspot.com/6625061