MCPcopy Create free account
hub / github.com/beefytech/Beef / Mangle

Method Mangle

IDEHelper/Compiler/BfMangler.cpp:412–698  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

410}
411
412void BfGNUMangler::Mangle(MangleContext& mangleContext, StringImpl& name, BfType* type, BfType* postfixType, bool isConst)
413{
414 static int sCallCount = 0;
415 sCallCount++;
416
417 if (type->IsPrimitiveType())
418 {
419 auto primType = (BfPrimitiveType*)type;
420
421 switch (primType->mTypeDef->mTypeCode)
422 {
423 case BfTypeCode_NullPtr:
424 {
425 auto pointerType = (BfPointerType*)type;
426 int startIdx = (int)name.length();
427 name += "v";
428 AddPrefix(mangleContext, name, startIdx, "P");
429 }
430 return;
431 case BfTypeCode_Dot:
432 name += "U3dot";
433 return;
434 case BfTypeCode_None:
435 if ((mangleContext.mCCompat) || (mangleContext.mInArgs))
436 name += "v";
437 else
438 name += "U4void";
439 return;
440 case BfTypeCode_Self:
441 if ((mangleContext.mCCompat) || (mangleContext.mInArgs))
442 name += "U8concrete";
443 else
444 name += "U4self";
445 return;
446 case BfTypeCode_Boolean:
447 name += "b"; return;
448 case BfTypeCode_Int8:
449 name += "a"; return;
450 case BfTypeCode_UInt8:
451 name += "h"; return;
452 case BfTypeCode_Int16:
453 name += "s"; return;
454 case BfTypeCode_UInt16:
455 name += "t"; return;
456 case BfTypeCode_Int32:
457 name += "i"; return;
458 case BfTypeCode_UInt32:
459 name += "j"; return;
460 case BfTypeCode_Int64:
461 if ((mangleContext.mModule == NULL) || (mangleContext.mModule->mCompiler->mOptions.mCLongSize == 8))
462 name += "l";
463 else
464 name += "x";
465 return;
466 case BfTypeCode_UInt64:
467 if ((mangleContext.mModule == NULL) || (mangleContext.mModule->mCompiler->mOptions.mCLongSize == 8))
468 name += "m";
469 else

Callers

nothing calls this directly

Calls 15

NameSubstituteClass · 0.85
HashEncode64Function · 0.85
AddStrFunction · 0.85
GetExplicitInterfaceMethod · 0.80
GetForeignTypeMethod · 0.80
IsExtensionMethod · 0.80
GetParamKindMethod · 0.80
GetFieldDefMethod · 0.80
GetOuterTypeMethod · 0.80
MethodToStringMethod · 0.80

Tested by

no test coverage detected