File tree 2 files changed +30
-6
lines changed
2 files changed +30
-6
lines changed Original file line number Diff line number Diff line change @@ -238,10 +238,10 @@ demanglePointerCVQualifiers(StringView &MangledName) {
238
238
case ' S' :
239
239
return std::make_pair (Qualifiers (Q_Const | Q_Volatile),
240
240
PointerAffinity::Pointer);
241
- default :
242
- assert (false && " Ty is not a pointer type!" );
243
241
}
244
- return std::make_pair (Q_None, PointerAffinity::Pointer);
242
+ // This function is only called if isPointerType() returns true,
243
+ // and it only returns true for the six cases listed above.
244
+ DEMANGLE_UNREACHABLE;
245
245
}
246
246
247
247
StringView Demangler::copyString (StringView Borrowed) {
@@ -1694,7 +1694,7 @@ CallingConv Demangler::demangleCallingConvention(StringView &MangledName) {
1694
1694
}
1695
1695
1696
1696
StorageClass Demangler::demangleVariableStorageClass (StringView &MangledName) {
1697
- assert (std::isdigit ( MangledName.front ()) );
1697
+ assert (MangledName. front () >= ' 0 ' && MangledName.front () <= ' 4 ' );
1698
1698
1699
1699
switch (MangledName.popFront ()) {
1700
1700
case ' 0' :
@@ -1708,8 +1708,7 @@ StorageClass Demangler::demangleVariableStorageClass(StringView &MangledName) {
1708
1708
case ' 4' :
1709
1709
return StorageClass::FunctionLocalStatic;
1710
1710
}
1711
- Error = true ;
1712
- return StorageClass::None;
1711
+ DEMANGLE_UNREACHABLE;
1713
1712
}
1714
1713
1715
1714
std::pair<Qualifiers, bool >
Original file line number Diff line number Diff line change 249
249
; CHECK-EMPTY:
250
250
; CHECK-NEXT: ?x@@3PEAY02$$CRHEA
251
251
; CHECK-NEXT: error: Invalid mangled name
252
+
253
+ ?foo@@3_
254
+ ; CHECK-EMPTY:
255
+ ; CHECK-NEXT: ?foo@@3_
256
+ ; CHECK-NEXT: error: Invalid mangled name
257
+
258
+ ?foo@@3_XA
259
+ ; CHECK-EMPTY:
260
+ ; CHECK-NEXT: ?foo@@3_XA
261
+ ; CHECK-NEXT: error: Invalid mangled name
262
+
263
+ ?foo@@3Vbar
264
+ ; CHECK-EMPTY:
265
+ ; CHECK-NEXT: ?foo@@3Vbar
266
+ ; CHECK-NEXT: error: Invalid mangled name
267
+
268
+ ?foo@@3Vbar@
269
+ ; CHECK-EMPTY:
270
+ ; CHECK-NEXT: ?foo@@3Vbar@
271
+ ; CHECK-NEXT: error: Invalid mangled name
272
+
273
+ ?foo@?A
274
+ ; CHECK-EMPTY:
275
+ ; CHECK-NEXT: ?foo@?A
276
+ ; CHECK-NEXT: error: Invalid mangled name
You can’t perform that action at this time.
0 commit comments