-O gen-C++ maintenance: fixes for attributes & initializing globals

This commit is contained in:
Vern Paxson 2022-10-14 08:37:45 -05:00
parent 6fcbb55ccd
commit 26dae9a5ae
9 changed files with 54 additions and 12 deletions

View file

@ -211,6 +211,16 @@ TableConstInfo::TableConstInfo(CPPCompile* c, ValPtr v) : CompoundItemInfo(c, v)
{
auto tv = cast_intrusive<TableVal>(v);
auto gi = c->RegisterAttributes(tv->GetAttrs());
int attrs = -1;
if ( gi )
{
init_cohort = max(init_cohort, gi->InitCohort() + 1);
attrs = gi->Offset();
}
vals.emplace_back(std::to_string(attrs));
for ( auto& tv_i : tv->ToMap() )
{
vals.emplace_back(ValElem(c, tv_i.first)); // index