github.com/guyezi/gofrontend@v0.0.0-20200228202240-7a62a49e62c0/libgo/misc/cgo/testplugin/testdata/plugin2/plugin2.go (about) 1 // Copyright 2016 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package main 6 7 //#include <errno.h> 8 //#include <string.h> 9 import "C" 10 11 // #include 12 // void cfunc() {} // uses cgo_topofstack 13 14 import ( 15 "reflect" 16 "strings" 17 18 "testplugin/common" 19 ) 20 21 func init() { 22 _ = strings.NewReplacer() // trigger stack unwind, Issue #18190. 23 C.strerror(C.EIO) // uses cgo_topofstack 24 common.X = 2 25 } 26 27 type sameNameReusedInPlugins struct { 28 X string 29 } 30 31 type sameNameHolder struct { 32 F *sameNameReusedInPlugins 33 } 34 35 func UnexportedNameReuse() { 36 h := sameNameHolder{} 37 v := reflect.ValueOf(&h).Elem().Field(0) 38 newval := reflect.New(v.Type().Elem()) 39 v.Set(newval) 40 } 41 42 func main() { 43 panic("plugin1.main called") 44 }