// $G $D/$F.go && $L $F.$A && (! ./$A.out || echo BUG: should fail)

// Copyright 2009 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

package main

import "unsafe"

var dummy [512<<20]byte;	// give us a big address space
func main() {
	// the test only tests what we intend to test
	// if dummy starts in the first 256 MB of memory.
	// otherwise there might not be anything mapped
	// at the address that might be accidentally
	// dereferenced below.
	if uintptr(unsafe.Pointer(&dummy)) > 256<<20 {
		panic("dummy too far out");
	}

	// The problem here is that indexing into p[] with a large
	// enough index jumps out of the unmapped section
	// at the beginning of memory and into valid memory.
	// Pointer offsets and array indices, if they are
	// very large, need to dereference the base pointer
	// to trigger a trap.
	var p *[1<<30]byte = nil;
	println(p[256<<20]);	// very likely to be inside dummy, but should crash
}
