1// run
2
3// Copyright 2016 The Go Authors.  All rights reserved.
4// Use of this source code is governed by a BSD-style
5// license that can be found in the LICENSE file.
6
7// This test makes sure that we use all 64 bits of an
8// index, even on 32 bit machines.  It also tests that nacl
9// can compile 64 bit indexes loaded from ODOTPTR properly.
10
11package main
12
13type T struct {
14	i int64
15}
16
17func f(t *T) byte {
18	b := [2]byte{3, 4}
19	return b[t.i]
20}
21
22func main() {
23	t := &T{0x100000001}
24	defer func() {
25		r := recover()
26		if r == nil {
27			panic("panic wasn't recoverable")
28		}
29	}()
30	f(t)
31	panic("index didn't panic")
32}
33