llvm-project

Форк
0
/
undef-spell-corrector.s 
117 строк · 4.0 Кб
1
# REQUIRES: x86
2

3
# RUN: rm -rf %t && split-file %s %t
4
# RUN: llvm-mc -filetype=obj -triple=x86_64-apple-macos %t/test.s -o %t/test.o
5
# RUN: llvm-mc -filetype=obj -triple=x86_64-apple-macos %t/bcde-abcd-abde.s -o %t/bcde-abcd-abde.o
6
# RUN: llvm-mc -filetype=obj -triple=x86_64-apple-macos %t/bbcde-abcdd.s -o %t/bbcde-abcdd.o
7
# RUN: llvm-mc -filetype=obj -triple=x86_64-apple-macos %t/aabcde-abcdee.s -o %t/aabcde-abcdee.o
8
# RUN: llvm-mc -filetype=obj -triple=x86_64-apple-macos %t/bacde.s -o %t/bacde.o
9
# RUN: llvm-mc -filetype=obj -triple=x86_64-apple-macos %t/__Z3fooPi.s -o %t/__Z3fooPi.o
10
# RUN: llvm-mc -filetype=obj -triple=x86_64-apple-macos %t/__Z3fooPKi-__Z3fooPi.s -o %t/__Z3fooPKi-__Z3fooPi.o
11
# RUN: llvm-mc -filetype=obj -triple=x86_64-apple-macos %t/__Z3FOOPKi.s -o %t/__Z3FOOPKi.o
12
# RUN: llvm-mc -filetype=obj -triple=x86_64-apple-macos %t/__Z3fooPKi-__Z3FOOPKi.s -o %t/__Z3fooPKi-__Z3FOOPKi.o
13

14
## Insert a character.
15
## The spell corrector is enabled for the first two "undefined symbol" diagnostics.
16
# RUN: not %lld %t/test.o %t/bcde-abcd-abde.o -o /dev/null 2>&1 | FileCheck --check-prefix=INSERT %s -DFILE=%t/test.o
17

18
## Symbols defined in DSO can be suggested.
19
# RUN: %lld %t/test.o -dylib -o %t.dylib
20
# RUN: not %lld %t.dylib %t/bcde-abcd-abde.o -o /dev/null 2>&1 | FileCheck --check-prefix=INSERT %s -DFILE=%t.dylib
21

22
# INSERT:      error: undefined symbol: abde
23
# INSERT-NEXT: >>> referenced by {{.*}}
24
# INSERT-NEXT: >>> did you mean: abcde
25
# INSERT-NEXT: >>> defined in: [[FILE]]
26
# INSERT:      error: undefined symbol: abcd
27
# INSERT-NEXT: >>> referenced by {{.*}}
28
# INSERT-NEXT: >>> did you mean: abcde
29
# INSERT-NEXT: >>> defined in: [[FILE]]
30
# INSERT:      error: undefined symbol: bcde
31
# INSERT-NEXT: >>> referenced by {{.*}}
32
# INSERT-NOT:  >>>
33

34
## Substitute a character.
35
# RUN: not %lld %t/test.o %t/bbcde-abcdd.o -o /dev/null 2>&1 | FileCheck --check-prefix=SUBST %s
36

37
# SUBST:      error: undefined symbol: abcdd
38
# SUBST-NEXT: >>> referenced by {{.*}}
39
# SUBST-NEXT: >>> did you mean: abcde
40
# SUBST:      error: undefined symbol: bbcde
41
# SUBST-NEXT: >>> referenced by {{.*}}
42
# SUBST-NEXT: >>> did you mean: abcde
43

44
## Delete a character.
45
# RUN: not %lld %t/test.o %t/aabcde-abcdee.o -o /dev/null 2>&1 | FileCheck --check-prefix=DELETE %s
46

47
# DELETE:      error: undefined symbol: abcdee
48
# DELETE-NEXT: >>> referenced by {{.*}}
49
# DELETE-NEXT: >>> did you mean: abcde
50
# DELETE:      error: undefined symbol: aabcde
51
# DELETE-NEXT: >>> referenced by {{.*}}
52
# DELETE-NEXT: >>> did you mean: abcde
53

54
## Transpose.
55
# RUN: not %lld %t/test.o %t/bacde.o -o /dev/null 2>&1 | FileCheck --check-prefix=TRANSPOSE %s
56

57
# TRANSPOSE:      error: undefined symbol: bacde
58
# TRANSPOSE-NEXT: >>> referenced by {{.*}}
59
# TRANSPOSE-NEXT: >>> did you mean: abcde
60

61
## Missing const qualifier.
62
# RUN: not %lld %t/test.o %t/__Z3fooPi.o -demangle -o /dev/null 2>&1 | FileCheck --check-prefix=CONST %s
63
## Local defined symbols.
64
# RUN: not %lld %t/__Z3fooPKi-__Z3fooPi.o -demangle -o /dev/null 2>&1 | FileCheck --check-prefix=CONST %s
65

66
# CONST:      error: undefined symbol: foo(int*)
67
# CONST-NEXT: >>> referenced by {{.*}}
68
# CONST-NEXT: >>> did you mean: foo(int const*)
69

70
## Case mismatch.
71
# RUN: not %lld %t/test.o %t/__Z3FOOPKi.o -demangle -o /dev/null 2>&1 | FileCheck --check-prefix=CASE %s
72
# RUN: not %lld %t/__Z3fooPKi-__Z3FOOPKi.o -demangle -o /dev/null 2>&1 | FileCheck --check-prefix=CASE %s
73

74
# CASE:      error: undefined symbol: FOO(int const*)
75
# CASE-NEXT: >>> referenced by {{.*}}
76
# CASE-NEXT: >>> did you mean: foo(int const*)
77

78
#--- test.s
79
.globl _main, abcde, __Z3fooPKi
80
_main:
81
abcde:
82
__Z3fooPKi:
83

84
#--- bcde-abcd-abde.s
85
call bcde
86
call abcd
87
call abde
88

89
# Creates a nullptr entry in ObjFile::symbols, to test we don't crash on that.
90
.section  __DWARF,__debug_aranges,regular,debug
91
ltmp1:
92
  .byte 0
93

94
.subsections_via_symbols
95

96
#--- bbcde-abcdd.s
97
call bbcde
98
call abcdd
99

100
#--- aabcde-abcdee.s
101
call aabcde
102
call abcdee
103

104
#--- bacde.s
105
call bacde
106

107
#--- __Z3fooPi.s
108
call __Z3fooPi
109

110
#--- __Z3fooPKi-__Z3fooPi.s
111
__Z3fooPKi: call __Z3fooPi
112

113
#--- __Z3FOOPKi.s
114
call __Z3FOOPKi
115

116
#--- __Z3fooPKi-__Z3FOOPKi.s
117
__Z3fooPKi: call __Z3FOOPKi
118

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.