Lines Matching full:mangler
689 // That said, from the mangler's perspective we have a structure like this:
694 // What we do is we create a new mangler, mangle the same type (without
695 // a namespace suffix) to a string using the extra mangler and then use
2170 MicrosoftCXXNameMangler Mangler(*this, Out);
2171 return Mangler.mangle(D);
2200 MicrosoftCXXNameMangler &Mangler,
2219 Mangler.mangleNumber(
2221 Mangler.mangleNumber(
2223 Mangler.mangleNumber(
2225 Mangler.mangleNumber(static_cast<uint32_t>(Adjustment.NonVirtual));
2228 Mangler.mangleNumber(
2230 Mangler.mangleNumber(-static_cast<uint32_t>(Adjustment.NonVirtual));
2245 Mangler.mangleNumber(-static_cast<uint32_t>(Adjustment.NonVirtual));
2270 MicrosoftCXXNameMangler Mangler(*this, Out);
2271 Mangler.getStream() << "\01?";
2272 Mangler.mangleVirtualMemPtrThunk(MD, ML);
2278 MicrosoftCXXNameMangler Mangler(*this, Out);
2280 Mangler.mangleName(MD);
2281 mangleThunkThisAdjustment(MD, Thunk.This, Mangler, Out);
2287 Mangler.mangleFunctionType(
2298 MicrosoftCXXNameMangler Mangler(*this, Out, DD, Type);
2300 Mangler.mangleName(DD->getParent());
2301 mangleThunkThisAdjustment(DD, Adjustment, Mangler, Out);
2302 Mangler.mangleFunctionType(DD->getType()->castAs<FunctionProtoType>(), DD);
2312 MicrosoftCXXNameMangler Mangler(*this, Out);
2313 Mangler.getStream() << "\01??_7";
2314 Mangler.mangleName(Derived);
2315 Mangler.getStream() << "6B"; // '6' for vftable, 'B' for const.
2317 Mangler.mangleName(RD);
2318 Mangler.getStream() << '@';
2328 MicrosoftCXXNameMangler Mangler(*this, Out);
2329 Mangler.getStream() << "\01??_8";
2330 Mangler.mangleName(Derived);
2331 Mangler.getStream() << "7B"; // '7' for vbtable, 'B' for const.
2333 Mangler.mangleName(RD);
2334 Mangler.getStream() << '@';
2338 MicrosoftCXXNameMangler Mangler(*this, Out);
2339 Mangler.getStream() << "\01??_R0";
2340 Mangler.mangleType(T, SourceRange(), MicrosoftCXXNameMangler::QMM_Result);
2341 Mangler.getStream() << "@8";
2346 MicrosoftCXXNameMangler Mangler(*this, Out);
2347 Mangler.getStream() << '.';
2348 Mangler.mangleType(T, SourceRange(), MicrosoftCXXNameMangler::QMM_Result);
2354 MicrosoftCXXNameMangler Mangler(*this, Out);
2355 Mangler.getStream() << "llvm.eh.handlertype.";
2356 Mangler.mangleType(T, SourceRange(), MicrosoftCXXNameMangler::QMM_Result);
2357 Mangler.getStream() << '.' << Flags;
2365 MicrosoftCXXNameMangler Mangler(*this, Out);
2366 Mangler.getStream() << "_TI";
2368 Mangler.getStream() << 'C';
2370 Mangler.getStream() << 'V';
2371 Mangler.getStream() << NumEntries;
2372 Mangler.mangleType(T, SourceRange(), MicrosoftCXXNameMangler::QMM_Result);
2377 MicrosoftCXXNameMangler Mangler(*this, Out);
2378 Mangler.getStream() << "_CTA";
2379 Mangler.getStream() << NumEntries;
2380 Mangler.mangleType(T, SourceRange(), MicrosoftCXXNameMangler::QMM_Result);
2387 MicrosoftCXXNameMangler Mangler(*this, Out);
2388 Mangler.getStream() << "_CT";
2395 Mangler.getStream() << RTTIMangling.substr(1);
2405 Mangler.getStream() << CopyCtorMangling.substr(1);
2407 Mangler.getStream() << Size;
2410 Mangler.getStream() << NVOffset;
2413 Mangler.getStream() << NVOffset;
2414 Mangler.getStream() << VBPtrOffset;
2415 Mangler.getStream() << VBIndex;
2422 MicrosoftCXXNameMangler Mangler(*this, Out);
2423 Mangler.getStream() << "\01??_R1";
2424 Mangler.mangleNumber(NVOffset);
2425 Mangler.mangleNumber(VBPtrOffset);
2426 Mangler.mangleNumber(VBTableOffset);
2427 Mangler.mangleNumber(Flags);
2428 Mangler.mangleName(Derived);
2429 Mangler.getStream() << "8";
2434 MicrosoftCXXNameMangler Mangler(*this, Out);
2435 Mangler.getStream() << "\01??_R2";
2436 Mangler.mangleName(Derived);
2437 Mangler.getStream() << "8";
2442 MicrosoftCXXNameMangler Mangler(*this, Out);
2443 Mangler.getStream() << "\01??_R3";
2444 Mangler.mangleName(Derived);
2445 Mangler.getStream() << "8";
2455 MicrosoftCXXNameMangler Mangler(*this, Out);
2456 Mangler.getStream() << "\01??_R4";
2457 Mangler.mangleName(Derived);
2458 Mangler.getStream() << "6B"; // '6' for vftable, 'B' for const.
2460 Mangler.mangleName(RD);
2461 Mangler.getStream() << '@';
2466 MicrosoftCXXNameMangler Mangler(*this, Out);
2471 Mangler.getStream() << "\01?filt$" << SEHFilterIds[EnclosingDecl]++ << "@0@";
2472 Mangler.mangleName(EnclosingDecl);
2477 MicrosoftCXXNameMangler Mangler(*this, Out);
2482 Mangler.getStream() << "\01?fin$" << SEHFinallyIds[EnclosingDecl]++ << "@0@";
2483 Mangler.mangleName(EnclosingDecl);
2489 MicrosoftCXXNameMangler Mangler(*this, Out);
2490 Mangler.getStream() << '?';
2491 Mangler.mangleType(T, SourceRange());
2497 MicrosoftCXXNameMangler mangler(*this, Out, D, Type);
2498 mangler.mangle(D);
2504 MicrosoftCXXNameMangler mangler(*this, Out, D, Type);
2505 mangler.mangle(D);
2536 MicrosoftCXXNameMangler Mangler(*this, Out);
2540 Mangler.getStream() << (Visible ? "\01??_B" : "\01?$S1@");
2546 Mangler.mangle(VD, "");
2548 Mangler.mangleNestedName(VD);
2549 Mangler.getStream() << (Visible ? "@5" : "@4IA");
2551 Mangler.mangleNumber(ScopeDepth);
2557 MicrosoftCXXNameMangler Mangler(*this, Out);
2558 Mangler.getStream() << "\01??__" << CharCode;
2559 Mangler.mangleName(D);
2561 Mangler.mangleVariableEncoding(D);
2562 Mangler.getStream() << '@';
2566 Mangler.getStream() << "YAXXZ";
2603 MicrosoftCXXNameMangler Mangler(*this, Out);
2604 Mangler.getStream() << "\01??_C@_";
2608 Mangler.getStream() << '1';
2610 Mangler.getStream() << '0';
2617 Mangler.mangleNumber(SL->getByteLength() + SL->getCharByteWidth());
2641 auto GetLittleEndianByte = [&Mangler, &SL](unsigned Index) {
2648 auto GetBigEndianByte = [&Mangler, &SL](unsigned Index) {
2671 Mangler.mangleNumber(CRC);
2677 auto MangleByte = [&Mangler](char Byte) {
2685 Mangler.getStream() << Byte;
2687 Mangler.getStream() << '?' << static_cast<char>(Byte & 0x7f);
2694 Mangler.getStream() << '?' << (Pos - std::begin(SpecialChars));
2696 Mangler.getStream() << "?$";
2697 Mangler.getStream() << static_cast<char>('A' + ((Byte >> 4) & 0xf));
2698 Mangler.getStream() << static_cast<char>('A' + (Byte & 0xf));
2718 Mangler.getStream() << '@';