annotate lld/test/ELF/vs-diagnostics-duplicate.s @ 192:d7606dcf6fce

Added tag llvm10 for changeset 0572611fdcc8
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 14 Dec 2020 18:01:34 +0900
parents 0572611fdcc8
children 2e18cbf3894f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 // REQUIRES: x86
anatofuz
parents:
diff changeset
2 // RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t1.o
anatofuz
parents:
diff changeset
3 // RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %S/Inputs/vs-diagnostics-duplicate2.s -o %t2.o
anatofuz
parents:
diff changeset
4 // RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %S/Inputs/vs-diagnostics-duplicate3.s -o %t3.o
173
0572611fdcc8 reorgnization done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 150
diff changeset
5 // RUN: not ld.lld --vs-diagnostics %t1.o %t2.o %t3.o -o /dev/null 2>&1 | FileCheck %s
150
anatofuz
parents:
diff changeset
6
anatofuz
parents:
diff changeset
7 // Case 1. Both symbols have full source location.
anatofuz
parents:
diff changeset
8 // CHECK: duplicate.s(15): error: duplicate symbol: bar
anatofuz
parents:
diff changeset
9 // CHECK-NEXT: >>> defined at duplicate.s:15
anatofuz
parents:
diff changeset
10 // CHECK-NEXT: >>>{{.*}}1.o:(.text+0x{{.+}})
anatofuz
parents:
diff changeset
11 // CHECK: duplicate2.s(20): error: duplicate symbol: bar
anatofuz
parents:
diff changeset
12 // CHECK-NEXT: >>> defined at duplicate2.s:20
anatofuz
parents:
diff changeset
13 // CHECK-NEXT: >>>{{.*}}2.o:(.text+0x{{.+}})
anatofuz
parents:
diff changeset
14
anatofuz
parents:
diff changeset
15 // Case 2. The source locations are unknown for both symbols.
anatofuz
parents:
diff changeset
16 // CHECK: {{.*}}ld.lld{{.*}}: error: duplicate symbol: foo
anatofuz
parents:
diff changeset
17 // CHECK-NEXT: >>> defined at {{.*}}1.o:(.text+0x{{.+}})
anatofuz
parents:
diff changeset
18 // CHECK-NEXT: >>> defined at {{.*}}2.o:(.text+0x{{.+}})
anatofuz
parents:
diff changeset
19
anatofuz
parents:
diff changeset
20 // Case 3. For the second definition of `baz` we know only the source file found in a STT_FILE symbol.
anatofuz
parents:
diff changeset
21 // CHECK: duplicate.s(30): error: duplicate symbol: baz
anatofuz
parents:
diff changeset
22 // CHECK-NEXT: >>> defined at duplicate.s:30
anatofuz
parents:
diff changeset
23 // CHECK-NEXT: >>> {{.*}}1.o:(.text+0x{{.+}})
anatofuz
parents:
diff changeset
24 // CHECK-NEXT: >>> defined at duplicate3.s
anatofuz
parents:
diff changeset
25 // CHECK-NEXT: >>> {{.*}}3.o:(.text+0x{{.+}})
anatofuz
parents:
diff changeset
26
anatofuz
parents:
diff changeset
27 // Check that we prefer using the full path of a source file.
anatofuz
parents:
diff changeset
28 // CHECK: /tmp{{/|\\}}duplicate.s(33): error: duplicate symbol: qux
anatofuz
parents:
diff changeset
29 // CHECK-NEXT: >>> defined at duplicate.s:33 (/tmp{{/|\\}}duplicate.s:33)
anatofuz
parents:
diff changeset
30 // CHECK-NEXT: >>> {{.*}}1.o:(.text+0x{{.+}})
anatofuz
parents:
diff changeset
31 // CHECK-NEXT: >>> defined at duplicate3.s
anatofuz
parents:
diff changeset
32 // CHECK-NEXT: >>> {{.*}}3.o:(.text+0x{{.+}})
anatofuz
parents:
diff changeset
33
anatofuz
parents:
diff changeset
34 .global _start, foo, bar, baz, qux
anatofuz
parents:
diff changeset
35 .text
anatofuz
parents:
diff changeset
36 _start:
anatofuz
parents:
diff changeset
37 nop
anatofuz
parents:
diff changeset
38
anatofuz
parents:
diff changeset
39 foo:
anatofuz
parents:
diff changeset
40 nop
anatofuz
parents:
diff changeset
41
anatofuz
parents:
diff changeset
42 .file 1 "duplicate.s"
anatofuz
parents:
diff changeset
43 .loc 1 15
anatofuz
parents:
diff changeset
44
anatofuz
parents:
diff changeset
45 bar:
anatofuz
parents:
diff changeset
46 nop
anatofuz
parents:
diff changeset
47
anatofuz
parents:
diff changeset
48 .loc 1 30
anatofuz
parents:
diff changeset
49 baz:
anatofuz
parents:
diff changeset
50 nop
anatofuz
parents:
diff changeset
51
anatofuz
parents:
diff changeset
52 .file 2 "/tmp" "duplicate.s"
anatofuz
parents:
diff changeset
53 .loc 2 33
anatofuz
parents:
diff changeset
54 qux:
anatofuz
parents:
diff changeset
55 nop
anatofuz
parents:
diff changeset
56
anatofuz
parents:
diff changeset
57 .section .debug_abbrev,"",@progbits
anatofuz
parents:
diff changeset
58 .byte 1 # Abbreviation Code
anatofuz
parents:
diff changeset
59 .byte 17 # DW_TAG_compile_unit
anatofuz
parents:
diff changeset
60 .byte 0 # DW_CHILDREN_no
anatofuz
parents:
diff changeset
61 .byte 16 # DW_AT_stmt_list
anatofuz
parents:
diff changeset
62 .byte 23 # DW_FORM_sec_offset
anatofuz
parents:
diff changeset
63 .byte 0 # EOM(1)
anatofuz
parents:
diff changeset
64 .byte 0 # EOM(2)
anatofuz
parents:
diff changeset
65 .byte 0 # EOM(3)
anatofuz
parents:
diff changeset
66
anatofuz
parents:
diff changeset
67 .section .debug_info,"",@progbits
anatofuz
parents:
diff changeset
68 .long .Lend0 - .Lbegin0 # Length of Unit
anatofuz
parents:
diff changeset
69 .Lbegin0:
anatofuz
parents:
diff changeset
70 .short 4 # DWARF version number
anatofuz
parents:
diff changeset
71 .long .debug_abbrev # Offset Into Abbrev. Section
anatofuz
parents:
diff changeset
72 .byte 8 # Address Size (in bytes)
anatofuz
parents:
diff changeset
73 .byte 1 # Abbrev [1] 0xb:0x1f DW_TAG_compile_unit
anatofuz
parents:
diff changeset
74 .long .debug_line # DW_AT_stmt_list
anatofuz
parents:
diff changeset
75 .Lend0:
anatofuz
parents:
diff changeset
76 .section .debug_line,"",@progbits