update fdvm, fixed routine'

This commit is contained in:
ALEXks
2023-11-15 11:13:26 +03:00
parent 5b4071b237
commit 768a280f09
6 changed files with 11 additions and 5 deletions

View File

@@ -438,6 +438,7 @@ DEFNODECODE(ACC_TARGETS_OP, "nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(ACC_ASYNC_OP, "nodetext",'e',0,LLNODE, '_','_','_','_','_') DEFNODECODE(ACC_ASYNC_OP, "nodetext",'e',0,LLNODE, '_','_','_','_','_')
DEFNODECODE(SHADOW_NAMES_OP, "nodetext",'e',1,LLNODE, '_','_','_','_','_') DEFNODECODE(SHADOW_NAMES_OP, "nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(ACC_TIE_OP, "nodetext",'e',1,LLNODE, '_','_','_','_','_') DEFNODECODE(ACC_TIE_OP, "nodetext",'e',1,LLNODE, '_','_','_','_','_')
DEFNODECODE(DUMMY_REF, "nodetext",'r',0,LLNODE, '_','_','s','_','_')
DEFNODECODE(ACC_CALL_STMT,"nodetext",'s',2,BIFNODE, '_','_','_','_','_') DEFNODECODE(ACC_CALL_STMT,"nodetext",'s',2,BIFNODE, '_','_','_','_','_')
DEFNODECODE(DVM_NEW_VALUE_DIR,"nodetext",'s',1,BIFNODE, '_','_','_','_','_') DEFNODECODE(DVM_NEW_VALUE_DIR,"nodetext",'s',1,BIFNODE, '_','_','_','_','_')

View File

@@ -253,7 +253,7 @@ DEFNODECODE(DVM_NEW_VALUE_DIR, "%CMNT!DVM$%PUTTABCOMTNEW_VALUE%NL",
DEFNODECODE(DVM_IO_MODE_DIR, "%CMNT!DVM$%PUTTABCOMTIO_MODE (%LL1)%NL", DEFNODECODE(DVM_IO_MODE_DIR, "%CMNT!DVM$%PUTTABCOMTIO_MODE (%LL1)%NL",
's',1,BIFNODE) 's',1,BIFNODE)
DEFNODECODE(DVM_SHADOW_ADD_DIR, "%CMNT!DVM$%PUTTABCOMTSHADOW_ADD (%LL1 = %LL2)%IF(%LL3!=%NULLL) INCLUDE_TO %LL3%ENDIF%NL", DEFNODECODE(DVM_SHADOW_ADD_DIR, "%CMNT!DVM$%PUTTABCOMTSHADOW_ADD (%LL1 = %LL2)%IF(%LL3!=%NULL) INCLUDE_TO %LL3%ENDIF%NL",
's',3,BIFNODE) 's',3,BIFNODE)
DEFNODECODE(DVM_LOCALIZE_DIR, "%CMNT!DVM$%PUTTABCOMTLOCALIZE (%LL1 => %LL2)%NL", DEFNODECODE(DVM_LOCALIZE_DIR, "%CMNT!DVM$%PUTTABCOMTLOCALIZE (%LL1 => %LL2)%NL",
's',2,BIFNODE) 's',2,BIFNODE)

View File

@@ -795,7 +795,9 @@ static void realocBuf(int minSize)
newSize = minSize + 1; newSize = minSize + 1;
Buf_address = UnpBuf = realloc(UnpBuf, newSize); Buf_address = UnpBuf = realloc(UnpBuf, newSize);
//printf(" realloc buffer from %lld to %lld\n", max_lenght_buf, newSize); memset(UnpBuf + max_lenght_buf, 0, newSize - max_lenght_buf);
//printf(" realloc buffer from %ld to %ld\n", max_lenght_buf, newSize);
max_lenght_buf = newSize; max_lenght_buf = newSize;
} }

View File

@@ -882,6 +882,8 @@ static bool filterFromList(SgStatement* st, const set<string>& idents, bool excl
bool empty = false; bool empty = false;
SgExpression* list = st->expr(0); SgExpression* list = st->expr(0);
vector<SgExpression*> newList; vector<SgExpression*> newList;
int total = 0;
while (list) while (list)
{ {
if (exclude) if (exclude)
@@ -894,12 +896,13 @@ static bool filterFromList(SgStatement* st, const set<string>& idents, bool excl
if (idents.find(list->lhs()->symbol()->identifier()) != idents.end()) if (idents.find(list->lhs()->symbol()->identifier()) != idents.end())
newList.push_back(list->lhs()); newList.push_back(list->lhs());
} }
total++;
list = list->rhs(); list = list->rhs();
} }
if (newList.size() == 0) if (newList.size() == 0)
empty = true; empty = true;
else else if (total != newList.size())
st->setExpression(0, makeExprList(newList)); st->setExpression(0, makeExprList(newList));
return empty; return empty;

View File

@@ -2611,7 +2611,7 @@ SgExpression* makeExprList(const vector<SgExpression*>& items, bool withSort)
int tmpVal = 0; int tmpVal = 0;
for (auto& elem : items) for (auto& elem : items)
{ {
if (elem->variant() == VAR_REF || elem->variant() == ARRAY_REF) if (elem->variant() == VAR_REF || elem->variant() == ARRAY_REF || elem->variant() == CONST_REF)
sorted.insert(make_pair(elem->unparse(), elem)); sorted.insert(make_pair(elem->unparse(), elem));
else if (elem->lhs() && elem->lhs()->variant() == VAR_REF || elem->lhs()->variant() == ARRAY_REF) else if (elem->lhs() && elem->lhs()->variant() == VAR_REF || elem->lhs()->variant() == ARRAY_REF)
sorted.insert(make_pair(elem->lhs()->unparse(), elem)); sorted.insert(make_pair(elem->lhs()->unparse(), elem));

View File

@@ -1,3 +1,3 @@
#pragma once #pragma once
#define VERSION_SPF "2236" #define VERSION_SPF "2237"