Brent Austin | ba3052e | 2015-04-21 16:08:23 -0700 | [diff] [blame] | 1 | // skip |
| 2 | |
Dan Willemsen | 38f2dba | 2016-07-08 14:54:35 -0700 | [diff] [blame] | 3 | // Copyright 2012 The Go Authors. All rights reserved. |
Brent Austin | ba3052e | 2015-04-21 16:08:23 -0700 | [diff] [blame] | 4 | // Use of this source code is governed by a BSD-style |
| 5 | // license that can be found in the LICENSE file. |
| 6 | |
| 7 | // Test the -X facility of the gc linker (6l etc.). |
| 8 | // This test is run by linkx_run.go. |
| 9 | |
| 10 | package main |
| 11 | |
Dan Willemsen | 09eb3b1 | 2015-09-16 14:34:17 -0700 | [diff] [blame] | 12 | import "fmt" |
| 13 | |
Brent Austin | ba3052e | 2015-04-21 16:08:23 -0700 | [diff] [blame] | 14 | var tbd string |
| 15 | var overwrite string = "dibs" |
| 16 | |
Patrice Arruda | 748609c | 2020-06-25 12:12:21 -0700 | [diff] [blame] | 17 | var tbdcopy = tbd |
| 18 | var overwritecopy = overwrite |
| 19 | var arraycopy = [2]string{tbd, overwrite} |
| 20 | |
Dan Willemsen | 09eb3b1 | 2015-09-16 14:34:17 -0700 | [diff] [blame] | 21 | var b bool |
| 22 | var x int |
| 23 | |
Brent Austin | ba3052e | 2015-04-21 16:08:23 -0700 | [diff] [blame] | 24 | func main() { |
Dan Willemsen | 09eb3b1 | 2015-09-16 14:34:17 -0700 | [diff] [blame] | 25 | fmt.Println(tbd) |
Patrice Arruda | 748609c | 2020-06-25 12:12:21 -0700 | [diff] [blame] | 26 | fmt.Println(tbdcopy) |
| 27 | fmt.Println(arraycopy[0]) |
| 28 | |
Dan Willemsen | 09eb3b1 | 2015-09-16 14:34:17 -0700 | [diff] [blame] | 29 | fmt.Println(overwrite) |
Patrice Arruda | 748609c | 2020-06-25 12:12:21 -0700 | [diff] [blame] | 30 | fmt.Println(overwritecopy) |
| 31 | fmt.Println(arraycopy[1]) |
| 32 | |
| 33 | // Check non-string symbols are not overwritten. |
| 34 | // This also make them used. |
| 35 | if b || x != 0 { |
| 36 | panic("b or x overwritten") |
| 37 | } |
Brent Austin | ba3052e | 2015-04-21 16:08:23 -0700 | [diff] [blame] | 38 | } |