]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: set invalidptr=1 by default, as documented go1.5beta3
authorRuss Cox <rsc@golang.org>
Wed, 29 Jul 2015 23:04:35 +0000 (19:04 -0400)
committerAndrew Gerrand <adg@golang.org>
Wed, 29 Jul 2015 23:50:20 +0000 (23:50 +0000)
Also make invalidptr control the recently added GC pointer check,
as documented.

Change-Id: Iccfdf49480219d12be8b33b8f03d8312d8ceabed
Reviewed-on: https://go-review.googlesource.com/12857
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: Rob Pike <r@golang.org>
src/runtime/mbitmap.go
src/runtime/runtime1.go

index b9b52a7bc416f8974a465534a9b9fa2579d0033c..c439158f078080f50d43685838cd24e6df01677d 100644 (file)
@@ -201,7 +201,7 @@ func heapBitsForObject(p uintptr) (base uintptr, hbits heapBits, s *mspan) {
                // The following ensures that we are rigorous about what data
                // structures hold valid pointers.
                // TODO(rsc): Check if this still happens.
-               if true {
+               if debug.invalidptr != 0 {
                        // Still happens sometimes. We don't know why.
                        printlock()
                        print("runtime:objectstart Span weird: p=", hex(p), " k=", hex(k))
index db269957033dc46d491f3fe54ca3cf192477b3dd..a50e5b618cfae4c7c19963e9eba3ed3af47e76d7 100644 (file)
@@ -299,8 +299,6 @@ type dbgVar struct {
        value *int32
 }
 
-// TODO(rsc): Make GC respect debug.invalidptr.
-
 // Holds variables parsed from GODEBUG env var,
 // except for "memprofilerate" since there is an
 // existing int var for that value, which may
@@ -340,6 +338,9 @@ var dbgvars = []dbgVar{
 }
 
 func parsedebugvars() {
+       // defaults
+       debug.invalidptr = 1
+
        for p := gogetenv("GODEBUG"); p != ""; {
                field := ""
                i := index(p, ",")