// Copyright 2022 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. // Issue 53989: the use of jump table caused a function // from the plugin jumps in the middle of the function // to the function with the same name in the main // executable. As these two functions may be compiled // differently as plugin needs to be PIC, this causes // crash. package main import ( "plugin" "testplugin/issue53989/p" ) func main() { p.Square(7) // call the function in main executable p, err := plugin.Open("issue53989.so") if err != nil { panic(err) } f, err := p.Lookup("Square") if err != nil { panic(err) } f.(func(int))(7) // call the plugin one }