diff options
Diffstat (limited to 'test/codegen/retpoline.go')
-rw-r--r-- | test/codegen/retpoline.go | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/test/codegen/retpoline.go b/test/codegen/retpoline.go new file mode 100644 index 0000000..0e8f661 --- /dev/null +++ b/test/codegen/retpoline.go @@ -0,0 +1,43 @@ +// asmcheck -gcflags=-spectre=ret + +//go:build amd64 + +package codegen + +func CallFunc(f func()) { + // amd64:`CALL\truntime.retpoline` + f() +} + +func CallInterface(x interface{ M() }) { + // amd64:`CALL\truntime.retpoline` + x.M() +} + +// Check to make sure that jump tables are disabled +// when retpoline is on. See issue 57097. +func noJumpTables(x int) int { + switch x { + case 0: + return 0 + case 1: + return 1 + case 2: + return 2 + case 3: + return 3 + case 4: + return 4 + case 5: + return 5 + case 6: + return 6 + case 7: + return 7 + case 8: + return 8 + case 9: + return 9 + } + return 10 +} |