aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/link/testdata
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2014-01-13 23:08:10 -0500
committerRuss Cox <rsc@golang.org>2014-01-13 23:08:10 -0500
commit7dcc652f10a5ca74101381bb27b6755ee2ab4691 (patch)
tree90dbd3a0bf718ea001aa47a21d1f9f0268f57e9d /src/cmd/link/testdata
parent7cecac3cbbd16baf80c9d15b92fc55444bf2870e (diff)
downloadgo-7dcc652f10a5ca74101381bb27b6755ee2ab4691.tar.xz
cmd/link: implement dead code removal
R=iant CC=golang-codereviews https://golang.org/cl/51470043
Diffstat (limited to 'src/cmd/link/testdata')
-rw-r--r--src/cmd/link/testdata/dead.6bin0 -> 1062 bytes
-rw-r--r--src/cmd/link/testdata/dead.s49
2 files changed, 49 insertions, 0 deletions
diff --git a/src/cmd/link/testdata/dead.6 b/src/cmd/link/testdata/dead.6
new file mode 100644
index 0000000000..f8eaf7ab8d
--- /dev/null
+++ b/src/cmd/link/testdata/dead.6
Binary files differ
diff --git a/src/cmd/link/testdata/dead.s b/src/cmd/link/testdata/dead.s
new file mode 100644
index 0000000000..832ddaff60
--- /dev/null
+++ b/src/cmd/link/testdata/dead.s
@@ -0,0 +1,49 @@
+// Copyright 2014 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.
+
+// Test of dead code removal.
+// Symbols with names beginning with dead_ should be discarded.
+// Others should be kept.
+
+TEXT start(SB),7,$0 // start symbol
+ MOVQ $data1<>(SB), AX
+ CALL text1(SB)
+ MOVQ $text2(SB), BX
+ RET
+
+TEXT text1(SB),7,$0
+ FUNCDATA $1, funcdata+4(SB)
+ RET
+
+TEXT text2(SB),7,$0
+ MOVQ $edata(SB),BX
+ RET
+
+DATA data1<>+0(SB)/8, $data2(SB)
+DATA data1<>+8(SB)/8, $data3(SB)
+GLOBL data1<>(SB), $16
+GLOBL data2(SB), $1
+GLOBL data3(SB), $1
+GLOBL funcdata(SB), $8
+
+TEXT dead_start(SB),7,$0
+ MOVQ $dead_data1(SB), AX
+ CALL dead_text1(SB)
+ MOVQ $dead_text2(SB), BX
+ RET
+
+TEXT dead_text1(SB),7,$0
+ FUNCDATA $1, dead_funcdata+4(SB)
+ RET
+
+TEXT dead_text2(SB),7,$0
+ RET
+
+DATA dead_data1+0(SB)/8, $dead_data2(SB)
+DATA dead_data1+8(SB)/8, $dead_data3(SB)
+GLOBL dead_data1(SB), $16
+GLOBL dead_data2(SB), $1
+GLOBL dead_data3(SB), $1
+GLOBL dead_funcdata(SB), $8
+