406 lines · plain
1; Run llvm-undname with invalid inputs and make sure it doesn't crash.2; RUN: not llvm-undname < %s 2>&1 | FileCheck %s3 4?ff@@$$J0YAXAU?$AS_@$0A@PEAU?$AS_@$0A@H@__clang@@@__clang@@@Z5; CHECK: ?ff@@$$J0YAXAU?$AS_@$0A@PEAU?$AS_@$0A@H@__clang@@@__clang@@@Z6; CHECK-NEXT: error: Invalid mangled name7 8?f0@@YAXPEU?$AS_@$00$$CAD@__clang@@@Z9; CHECK-EMPTY:10; CHECK-NEXT: ?f0@@YAXPEU?$AS_@$00$$CAD@__clang@@@Z11; CHECK-NEXT: error: Invalid mangled name12 13?@@814; CHECK-EMPTY:15; CHECK-NEXT: ?@@816; CHECK-NEXT: error: Invalid mangled name17 18??19; CHECK-EMPTY:20; CHECK-NEXT: ??21; CHECK-NEXT: error: Invalid mangled name22 23??0@24; CHECK-EMPTY:25; CHECK-NEXT: ??0@26; CHECK-NEXT: error: Invalid mangled name27 28? @@ YC@29; CHECK-EMPTY:30; CHECK-NEXT: ? @@ YC@31; CHECK-NEXT: error: Invalid mangled name32 33??B@$$J034; CHECK-EMPTY:35; CHECK-NEXT: ??B@$$J036; CHECK-NEXT: error: Invalid mangled name37 38??B@439; CHECK-EMPTY:40; CHECK-NEXT: ??B@441; CHECK-NEXT: error: Invalid mangled name42 43?A?@?@???B@4D44; CHECK-EMPTY:45; CHECK-NEXT: ?A?@?@???B@4D46; CHECK-NEXT: error: Invalid mangled name47 48?A?@?@???B@4DD49; CHECK-EMPTY:50; CHECK-NEXT: ?A?@?@???B@4DD51; CHECK-NEXT: error: Invalid mangled name52 53??$A@P15@54; CHECK-EMPTY:55; CHECK-NEXT: ??$A@P15@56; CHECK-NEXT: error: Invalid mangled name57 58??$A@P59; CHECK-EMPTY:60; CHECK-NEXT: ??$A@P61; CHECK-NEXT: error: Invalid mangled name62 63?A@@64; CHECK-EMPTY:65; CHECK-NEXT: ?A@@66; CHECK-NEXT: error: Invalid mangled name67 68?A@@P69; CHECK-EMPTY:70; CHECK-NEXT: ?A@@P71; CHECK-NEXT: error: Invalid mangled name72 73?A@@4PQA@@74; CHECK-EMPTY:75; CHECK-NEXT: ?A@@4PQA@@76; CHECK-NEXT: error: Invalid mangled name77 78??__E79; CHECK-EMPTY:80; CHECK-NEXT: ??__E81; CHECK-NEXT: error: Invalid mangled name82 83??__E@@84; CHECK-EMPTY:85; CHECK-NEXT: ??__E@@86; CHECK-NEXT: error: Invalid mangled name87 88??__E?Foo@@0HA@@89; CHECK-EMPTY:90; CHECK-NEXT: ??__E?Foo@@0HA@@91; CHECK-NEXT: error: Invalid mangled name92 93??__E?i@C@@0HA@94; CHECK-EMPTY:95; CHECK-NEXT: ??__E?i@C@@0HA@96; CHECK-NEXT: error: Invalid mangled name97 98??__E?Foo@@YAXXZ99; CHECK-EMPTY:100; CHECK-NEXT: ??__E?Foo@@YAXXZ101; CHECK-NEXT: error: Invalid mangled name102 103?foo@@YAH0@Z104; CHECK-EMPTY:105; CHECK-NEXT: ?foo@@YAH0@Z106; CHECK-NEXT: error: Invalid mangled name107 108?foo@@YAHH109; CHECK-EMPTY:110; CHECK-NEXT: ?foo@@YAHH111; CHECK-NEXT: error: Invalid mangled name112 113??8@8114; CHECK-EMPTY:115; CHECK-NEXT: ??8@8116; CHECK-NEXT: error: Invalid mangled name117 118?B@?$?K$H?119; CHECK-EMPTY:120; CHECK-NEXT: ?B@?$?K$H?121; CHECK-NEXT: error: Invalid mangled name122 123??C@$124; CHECK-EMPTY:125; CHECK-NEXT: ??C@$126; CHECK-NEXT: error: Invalid mangled name127 128?x@@3PAW129; CHECK-EMPTY:130; CHECK-NEXT: ?x@@3PAW131; CHECK-NEXT: error: Invalid mangled name132 133??}134; CHECK-EMPTY:135; CHECK-NEXT: ??}136; CHECK-NEXT: error: Invalid mangled name137 138?foo@?$?_139; CHECK-EMPTY:140; CHECK-NEXT: ?foo@?$?_141; CHECK-NEXT: error: Invalid mangled name142 143??_R4144; CHECK-EMPTY:145; CHECK-NEXT: ??_R4146; CHECK-NEXT: error: Invalid mangled name147 148??_R4foo@@149; CHECK-EMPTY:150; CHECK-NEXT: ??_R4foo@@151; CHECK-NEXT: error: Invalid mangled name152 153?foo@?$?BH@@QAEHXZ154; CHECK-EMPTY:155; CHECK-NEXT: ?foo@?$?BH@@QAEHXZ156; CHECK-NEXT: error: Invalid mangled name157 158?foo@?$?0H@159; CHECK-EMPTY:160; CHECK-NEXT: ?foo@?$?0H@161; CHECK-NEXT: error: Invalid mangled name162 163??_C@_0A@01234567@a164; CHECK-EMPTY:165; CHECK-NEXT: ??_C@_0A@01234567@a166; CHECK-NEXT: error: Invalid mangled name167 168??_C@_1A@01234567@a169; CHECK-EMPTY:170; CHECK-NEXT: ??_C@_1A@01234567@a171; CHECK-NEXT: error: Invalid mangled name172 173??_C@_0301234567@a174; CHECK-EMPTY:175; CHECK-NEXT: ??_C@_0301234567@a176; CHECK-NEXT: error: Invalid mangled name177 178??_C@_1301234567@a179; CHECK-EMPTY:180; CHECK-NEXT: ??_C@_1301234567@a181; CHECK-NEXT: error: Invalid mangled name182 183??_C@_0601234567@abcdefghijklmnopqrtsuvwxyzABCDEFGHIJKLMNOPQRTSUVWXYZabcdefghijklmnopqrtsuvwxyzABCDEFGHIJKLMNOPQRTSUVWXYZabcdefghijklmnopqrtsuvwxyz184; CHECK-EMPTY:185; CHECK-NEXT: ??_C@_0601234567@abcdefghijklmnopqrtsuvwxyzABCDEFGHIJKLMNOPQRTSUVWXYZabcdefghijklmnopqrtsuvwxyzABCDEFGHIJKLMNOPQRTSUVWXYZabcdefghijklmnopqrtsuvwxyz186; CHECK-NEXT: error: Invalid mangled name187 188??_C@_12@?z189; CHECK-EMPTY:190; CHECK-NEXT: ??_C@_12@?z191; CHECK-NEXT: error: Invalid mangled name192 193??$foo@$1??_C@_02PCEFGMJL@hi?$AA@@194; CHECK-EMPTY:195; CHECK-NEXT: ??$foo@$1??_C@_02PCEFGMJL@hi?$AA@@196; CHECK-NEXT: error: Invalid mangled name197 198??_C@199; CHECK-EMPTY:200; CHECK-NEXT: ??_C@201; CHECK-NEXT: error: Invalid mangled name202 203??_C@_204; CHECK-EMPTY:205; CHECK-NEXT: ??_C@_206; CHECK-NEXT: error: Invalid mangled name207 208??_C@_3209; CHECK-EMPTY:210; CHECK-NEXT: ??_C@_3211; CHECK-NEXT: error: Invalid mangled name212 213??_C@_01214; CHECK-EMPTY:215; CHECK-NEXT: ??_C@_01216; CHECK-NEXT: error: Invalid mangled name217 218??_C@_0101234567@219; CHECK-EMPTY:220; CHECK-NEXT: ??_C@_0101234567@221; CHECK-NEXT: error: Invalid mangled name222 223??_C@_0101234567@?224; CHECK-EMPTY:225; CHECK-NEXT: ??_C@_0101234567@?226; CHECK-NEXT: error: Invalid mangled name227 228??_C@_0101234567@?$229; CHECK-EMPTY:230; CHECK-NEXT: ??_C@_0101234567@?$231; CHECK-NEXT: error: Invalid mangled name232 233??_C@_0101234567@?$za234; CHECK-EMPTY:235; CHECK-NEXT: ??_C@_0101234567@?$za236; CHECK-NEXT: error: Invalid mangled name237 238??_C@_0101234567@?$az239; CHECK-EMPTY:240; CHECK-NEXT: ??_C@_0101234567@?$az241; CHECK-NEXT: error: Invalid mangled name242 243??_C@_1201234567@a?$az244; CHECK-EMPTY:245; CHECK-NEXT: ??_C@_1201234567@a?$az246; CHECK-NEXT: error: Invalid mangled name247 248??@foo249; CHECK-EMPTY:250; CHECK-NEXT: ??@foo251; CHECK-NEXT: error: Invalid mangled name252 253?foo@@3YA@A254; CHECK-EMPTY:255; CHECK-NEXT: ?foo@@3YA@A256; CHECK-NEXT: error: Invalid mangled name257 258?foo@@3Y~01KA259; CHECK-EMPTY:260; CHECK-NEXT: ?foo@@3Y~01KA261; CHECK-NEXT: error: Invalid mangled name262 263?foo@@3Y0~1KA264; CHECK-EMPTY:265; CHECK-NEXT: ?foo@@3Y0~1KA266; CHECK-NEXT: error: Invalid mangled name267 268?x@@3PEAY02$$CRHEA269; CHECK-EMPTY:270; CHECK-NEXT: ?x@@3PEAY02$$CRHEA271; CHECK-NEXT: error: Invalid mangled name272 273?foo@@3_274; CHECK-EMPTY:275; CHECK-NEXT: ?foo@@3_276; CHECK-NEXT: error: Invalid mangled name277 278?foo@@3_XA279; CHECK-EMPTY:280; CHECK-NEXT: ?foo@@3_XA281; CHECK-NEXT: error: Invalid mangled name282 283?foo@@3Vbar284; CHECK-EMPTY:285; CHECK-NEXT: ?foo@@3Vbar286; CHECK-NEXT: error: Invalid mangled name287 288?foo@@3Vbar@289; CHECK-EMPTY:290; CHECK-NEXT: ?foo@@3Vbar@291; CHECK-NEXT: error: Invalid mangled name292 293?foo@?A294; CHECK-EMPTY:295; CHECK-NEXT: ?foo@?A296; CHECK-NEXT: error: Invalid mangled name297 298?foo@?299; CHECK-EMPTY:300; CHECK-NEXT: ?foo@?301; CHECK-NEXT: error: Invalid mangled name302 303?foo@??304; CHECK-EMPTY:305; CHECK-NEXT: ?foo@??306; CHECK-NEXT: error: Invalid mangled name307 308?foo@?XX?309; CHECK-EMPTY:310; CHECK-NEXT: ?foo@?XX?311; CHECK-NEXT: error: Invalid mangled name312 313?foo@?A@?314; CHECK-EMPTY:315; CHECK-NEXT: ?foo@?A@?316; CHECK-NEXT: error: Invalid mangled name317 318?foo@?Q@?319; CHECK-EMPTY:320; CHECK-NEXT: ?foo@?Q@?321; CHECK-NEXT: error: Invalid mangled name322 323?foo@?BQ@?324; CHECK-EMPTY:325; CHECK-NEXT: ?foo@?BQ@?326; CHECK-NEXT: error: Invalid mangled name327 328?foo@?0?329; CHECK-EMPTY:330; CHECK-NEXT: ?foo@?0?331; CHECK-NEXT: error: Invalid mangled name332 333??_Sfoo@@1Abar@@334; CHECK-EMPTY:335; CHECK-NEXT: ??_Sfoo@@1Abar@@336; CHECK-NEXT: error: Invalid mangled name337 338??_Bfoo@@1339; CHECK-EMPTY:340; CHECK-NEXT: ??_Bfoo@@1341; CHECK-NEXT: error: Invalid mangled name342 343??_R0344; CHECK-EMPTY:345; CHECK-NEXT: ??_R0346; CHECK-NEXT: error: Invalid mangled name347 348??_R0H349; CHECK-EMPTY:350; CHECK-NEXT: ??_R0H351; CHECK-NEXT: error: Invalid mangled name352 353??_R0H@8foo354; CHECK-EMPTY:355; CHECK-NEXT: ??_R0H@8foo356; CHECK-NEXT: error: Invalid mangled name357 358??_R1012?3foo@@359; CHECK-EMPTY:360; CHECK-NEXT: ??_R1012?3foo@@361; CHECK-NEXT: error: Invalid mangled name362 363??_R2foo@@1364; CHECK-EMPTY:365; CHECK-NEXT: ??_R2foo@@1366; CHECK-NEXT: error: Invalid mangled name367 368??_A369; CHECK-EMPTY:370; CHECK-NEXT: ??_A371; CHECK-NEXT: error: Invalid mangled name372 373??_P374; CHECK-EMPTY:375; CHECK-NEXT: ??_P376; CHECK-NEXT: error: Invalid mangled name377 378.?AUBase@@@8379; CHECK-EMPTY:380; CHECK-NEXT: .?AUBase@@@8381; CHECK-NEXT: error: Invalid mangled name382 383; Begin GH129970384 385??_C@_12EEHFKJGG@?$AAt?$AAe?$AAx@386; CHECK-EMPTY:387; CHECK-NEXT: ??_C@_12EEHFKJGG@?$AAt?$AAe?$AAx@388; CHECK-NEXT: error: Invalid mangled name389 390??_C@_16EEHFKJGG@?$AAt?$AAe?$AAx@391; CHECK-EMPTY:392; CHECK-NEXT: ??_C@_16EEHFKJGG@?$AAt?$AAe?$AAx@393; CHECK-NEXT: error: Invalid mangled name394 395??_C@_18EEHFKJGG@?$AAt?$AAe?$AAx@396; CHECK-EMPTY:397; CHECK-NEXT: ??_C@_18EEHFKJGG@?$AAt?$AAe?$AAx@398; CHECK-NEXT: error: Invalid mangled name399 400??_C@_15EEHFKJGG@?$AAt?$AAe?$AAx?$AAx@401; CHECK-EMPTY:402; CHECK-NEXT: ??_C@_15EEHFKJGG@?$AAt?$AAe?$AAx?$AAx@403; CHECK-NEXT: error: Invalid mangled name404 405; End GH129970406