mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 06:38:20 +00:00
Merge remote-tracking branch 'origin/topic/vern/CPP-Oct22-maint'
* origin/topic/vern/CPP-Oct22-maint: -O C++ maintenance updates to test suite -O gen-C++ maintenance: fixes for attributes & initializing globals
This commit is contained in:
commit
0143d0cb86
18 changed files with 109 additions and 13 deletions
|
@ -206,12 +206,7 @@ void CPPCompile::InitializeGlobals()
|
|||
auto& init = ginit.Init();
|
||||
|
||||
if ( ic == INIT_NONE )
|
||||
{
|
||||
IDPtr gid = {NewRef{}, const_cast<ID*>(g)};
|
||||
auto gn = make_intrusive<RefExpr>(make_intrusive<NameExpr>(gid));
|
||||
auto ae = make_intrusive<AssignExpr>(gn, init, true);
|
||||
Emit(GenExpr(ae.get(), GEN_NATIVE, true) + ";");
|
||||
}
|
||||
Emit(GenExpr(init, GEN_NATIVE, true) + ";");
|
||||
|
||||
else
|
||||
{
|
||||
|
@ -227,6 +222,15 @@ void CPPCompile::InitializeGlobals()
|
|||
|
||||
Emit("%s->SetValue(%s, %s);", globals[g->Name()], GenExpr(init, GEN_NATIVE, true), ics);
|
||||
}
|
||||
|
||||
const auto& attrs = g->GetAttrs();
|
||||
if ( attrs )
|
||||
{
|
||||
string attr_tags;
|
||||
string attr_vals;
|
||||
BuildAttrs(attrs, attr_tags, attr_vals);
|
||||
Emit("assign_attrs__CPP(%s, %s, %s);", globals[g->Name()], attr_tags, attr_vals);
|
||||
}
|
||||
}
|
||||
|
||||
EndBlock();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue