Skip to content

Commit

Permalink
Merge pull request #3613 from alainmarcel/alainmarcel-patch-1
Browse files Browse the repository at this point in the history
struct field decode
  • Loading branch information
alaindargelas authored Apr 24, 2023
2 parents 6601256 + a376f0c commit b36e264
Show file tree
Hide file tree
Showing 5 changed files with 654 additions and 8 deletions.
25 changes: 25 additions & 0 deletions src/DesignCompile/CompileExpression.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4774,6 +4774,31 @@ UHDM::any *CompileHelper::compileComplexFuncCall(
result->VpiParent(param);
else
result = param;
} else if ((fC->Type(List_of_arguments) ==
VObjectType::slStringConst)) {
hier_path *path = s.MakeHier_path();
VectorOfany *elems = s.MakeAnyVec();
path->Path_elems(elems);
ref_obj *ref = s.MakeRef_obj();
ref->VpiName(StrCat(packagename, "::", functionname));
ref->VpiFullName(StrCat(packagename, "::", functionname));
ref->Actual_group(param);
ref->VpiParent(pexpr);
fC->populateCoreMembers(name, name, ref);
elems->push_back(ref);
while (List_of_arguments) {
if ((fC->Type(List_of_arguments) ==
VObjectType::slStringConst)) {
ref_obj *ref = s.MakeRef_obj();
ref->VpiName(fC->SymName(List_of_arguments));
ref->VpiParent(pexpr);
fC->populateCoreMembers(List_of_arguments, List_of_arguments,
ref);
elems->push_back(ref);
}
List_of_arguments = fC->Sibling(List_of_arguments);
}
result = path;
} else {
ref_obj *ref = s.MakeRef_obj();
ref->VpiName(StrCat(packagename, "::", functionname));
Expand Down
Loading

0 comments on commit b36e264

Please sign in to comment.