• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright 2022 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// Issue 53989: the use of jump table caused a function
6// from the plugin jumps in the middle of the function
7// to the function with the same name in the main
8// executable. As these two functions may be compiled
9// differently as plugin needs to be PIC, this causes
10// crash.
11
12package main
13
14import (
15	"plugin"
16
17	"testplugin/issue53989/p"
18)
19
20func main() {
21	p.Square(7) // call the function in main executable
22
23	p, err := plugin.Open("issue53989.so")
24	if err != nil {
25		panic(err)
26	}
27	f, err := p.Lookup("Square")
28	if err != nil {
29		panic(err)
30	}
31	f.(func(int))(7) // call the plugin one
32}
33