]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile: seed rand with time when race enabled
authorJosh Bleecher Snyder <josharian@gmail.com>
Wed, 17 May 2017 15:29:18 +0000 (08:29 -0700)
committerJosh Bleecher Snyder <josharian@gmail.com>
Wed, 17 May 2017 16:18:45 +0000 (16:18 +0000)
When the race detector is enabled,
the compiler randomizes the order in which functions are compiled,
in an attempt to shake out bugs.
But we never re-seed the rand source, so every execution is identical.
Fix that to get more coverage.

Change-Id: If5cdde03ef4f1bab5f45e07f03fb6614945481d7
Reviewed-on: https://go-review.googlesource.com/43572
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
src/cmd/compile/internal/gc/pgen.go

index fdf3bf78474476ac2e7cda16c7515b02455facd5..355df9d32660bf5db943cc581dc785879672ef1d 100644 (file)
@@ -16,6 +16,7 @@ import (
        "math/rand"
        "sort"
        "sync"
+       "time"
 )
 
 // "Portable" code generation.
@@ -249,6 +250,12 @@ func compileSSA(fn *Node, worker int) {
        pp.Free()
 }
 
+func init() {
+       if raceEnabled {
+               rand.Seed(time.Now().UnixNano())
+       }
+}
+
 // compileFunctions compiles all functions in compilequeue.
 // It fans out nBackendWorkers to do the work
 // and waits for them to complete.