// Copyright 2016 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 // // No C code required. import "C" import ( "reflect" "testplugin/common" ) func F() int { _ = make([]byte, 1<<21) // trigger stack unwind, Issue #18190. return 3 } func ReadCommonX() int { return common.X } var Seven int func call(fn func()) { fn() } func g() { common.X *= Seven } func init() { Seven = 7 call(g) } type sameNameReusedInPlugins struct { X string } type sameNameHolder struct { F *sameNameReusedInPlugins } func UnexportedNameReuse() { h := sameNameHolder{} v := reflect.ValueOf(&h).Elem().Field(0) newval := reflect.New(v.Type().Elem()) v.Set(newval) } func main() { panic("plugin1.main called") }