OSDN Git Service

llvm-undname: Fix crash on invalid name in a template parameter pointer to member arg
[android-x86/external-llvm.git] / test / Demangle / invalid-manglings.test
1 ; Run llvm-undname with invalid inputs and make sure it doesn't crash.
2 ; RUN: llvm-undname < %s 2>&1 | FileCheck %s
3
4 ?ff@@$$J0YAXAU?$AS_@$0A@PEAU?$AS_@$0A@H@__clang@@@__clang@@@Z
5 ; CHECK: ?ff@@$$J0YAXAU?$AS_@$0A@PEAU?$AS_@$0A@H@__clang@@@__clang@@@Z
6 ; CHECK-NEXT: error: Invalid mangled name
7
8 ?f0@@YAXPEU?$AS_@$00$$CAD@__clang@@@Z
9 ; CHECK-EMPTY:
10 ; CHECK-NEXT: ?f0@@YAXPEU?$AS_@$00$$CAD@__clang@@@Z
11 ; CHECK-NEXT: error: Invalid mangled name
12
13 ?@@8
14 ; CHECK-EMPTY:
15 ; CHECK-NEXT: ?@@8
16 ; CHECK-NEXT: error: Invalid mangled name
17
18 ??
19 ; CHECK-EMPTY:
20 ; CHECK-NEXT: ??
21 ; CHECK-NEXT: error: Invalid mangled name
22
23 ??0@
24 ; CHECK-EMPTY:
25 ; CHECK-NEXT: ??0@
26 ; CHECK-NEXT: error: Invalid mangled name
27
28 ? @@   YC@
29 ; CHECK-EMPTY:
30 ; CHECK-NEXT: ? @@   YC@
31 ; CHECK-NEXT: error: Invalid mangled name
32
33 ??B@$$J0
34 ; CHECK-EMPTY:
35 ; CHECK-NEXT: ??B@$$J0
36 ; CHECK-NEXT: error: Invalid mangled name
37
38 ??B@4
39 ; CHECK-EMPTY:
40 ; CHECK-NEXT: ??B@4
41 ; CHECK-NEXT: error: Invalid mangled name
42
43 ?A?@?@???B@4D
44 ; CHECK-EMPTY:
45 ; CHECK-NEXT: ?A?@?@???B@4D
46 ; CHECK-NEXT: error: Invalid mangled name
47
48 ?A?@?@???B@4DD
49 ; CHECK-EMPTY:
50 ; CHECK-NEXT: ?A?@?@???B@4DD
51 ; CHECK-NEXT: error: Invalid mangled name
52
53 ??$A@P15@
54 ; CHECK-EMPTY:
55 ; CHECK-NEXT: ??$A@P15@
56 ; CHECK-NEXT: error: Invalid mangled name
57
58 ??$A@P
59 ; CHECK-EMPTY:
60 ; CHECK-NEXT: ??$A@P
61 ; CHECK-NEXT: error: Invalid mangled name
62
63 ?A@@
64 ; CHECK-EMPTY:
65 ; CHECK-NEXT: ?A@@
66 ; CHECK-NEXT: error: Invalid mangled name
67
68 ?A@@P
69 ; CHECK-EMPTY:
70 ; CHECK-NEXT: ?A@@P
71 ; CHECK-NEXT: error: Invalid mangled name
72
73 ?A@@4PQA@@
74 ; CHECK-EMPTY:
75 ; CHECK-NEXT: ?A@@4PQA@@
76 ; CHECK-NEXT: error: Invalid mangled name
77
78 ??__E
79 ; CHECK-EMPTY:
80 ; CHECK-NEXT: ??__E
81 ; CHECK-NEXT: error: Invalid mangled name
82
83 ??__E@@
84 ; CHECK-EMPTY:
85 ; CHECK-NEXT: ??__E@@
86 ; CHECK-NEXT: error: Invalid mangled name
87
88 ??__E?Foo@@0HA@@
89 ; CHECK-EMPTY:
90 ; CHECK-NEXT: ??__E?Foo@@0HA@@
91 ; CHECK-NEXT: error: Invalid mangled name
92
93 ??8@8
94 ; CHECK-EMPTY:
95 ; CHECK-NEXT: ??8@8
96 ; CHECK-NEXT: error: Invalid mangled name
97
98 ?B@?$?K$H?
99 ; CHECK-EMPTY:
100 ; CHECK-NEXT: ?B@?$?K$H?
101 ; CHECK-NEXT: error: Invalid mangled name