MCPcopy Create free account
hub / github.com/GaijinEntertainment/daScript / appendLocalVariables

Method appendLocalVariables

src/ast/ast_debug_info_helper.cpp:48–67  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

46 }
47
48 void DebugInfoHelper::appendLocalVariables ( FuncInfo * info, ExpressionPtr body ) {
49 CollectLocalVariables lv;
50 body->visit(lv);
51 info->localCount = uint32_t(lv.locals.size());
52 info->locals = (LocalVariableInfo **) debugInfo->allocate(sizeof(VarInfo *) * info->localCount);
53 uint32_t i = 0;
54 for ( auto & var_vis : lv.locals ) {
55 auto var = get<0>(var_vis);
56 LocalVariableInfo * lvar = (LocalVariableInfo *) debugInfo->allocate(sizeof(LocalVariableInfo));
57 info->locals[i] = lvar;
58 makeTypeInfo(lvar, var->type);
59 if ( get<2>(var_vis) ) lvar->flags |= TypeInfo::flag_ref;
60 lvar->name = debugInfo->allocateCachedName(var->name);
61 lvar->stackTop = var->stackTop;
62 lvar->visibility = get<1>(var_vis);
63 lvar->localFlags = 0;
64 lvar->cmres = var->aliasCMRES;
65 i ++ ;
66 }
67 }
68
69 EnumInfo * DebugInfoHelper::makeEnumDebugInfo ( const Enumeration & en ) {
70 auto mangledName = en.getMangledName();

Callers 2

visitMethod · 0.80
simulateMethod · 0.80

Calls 5

makeTypeInfoFunction · 0.85
allocateCachedNameMethod · 0.80
visitMethod · 0.45
sizeMethod · 0.45
allocateMethod · 0.45

Tested by

no test coverage detected