From cffa2f2980c6472a87a74abedc4766753cb460ce Mon Sep 17 00:00:00 2001 From: Stephane Del Pino <stephane.delpino44@gmail.com> Date: Tue, 9 Jan 2024 00:30:22 +0100 Subject: [PATCH] Fix storage of non initialized variables --- src/language/utils/SymbolTable.hpp | 4 ++-- src/utils/checkpointing/Checkpoint.cpp | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/language/utils/SymbolTable.hpp b/src/language/utils/SymbolTable.hpp index 38351f7ec..658c3a2be 100644 --- a/src/language/utils/SymbolTable.hpp +++ b/src/language/utils/SymbolTable.hpp @@ -314,7 +314,7 @@ class SymbolTable } std::vector<Symbol> - getBuiltinFunctionSymbolList(const std::string& symbol, const TAO_PEGTL_NAMESPACE::position& use_position) + getBuiltinFunctionSymbolList(const std::string& symbol, const TAO_PEGTL_NAMESPACE::position& use_position) const { std::vector<Symbol> builtin_function_symbol_list; @@ -338,7 +338,7 @@ class SymbolTable } bool - has(const std::string& symbol, const TAO_PEGTL_NAMESPACE::position& use_position) + has(const std::string& symbol, const TAO_PEGTL_NAMESPACE::position& use_position) const { for (auto i_stored_symbol : m_symbol_list) { // Symbol must be defined before the call diff --git a/src/utils/checkpointing/Checkpoint.cpp b/src/utils/checkpointing/Checkpoint.cpp index 16ea2d830..10c338fc4 100644 --- a/src/utils/checkpointing/Checkpoint.cpp +++ b/src/utils/checkpointing/Checkpoint.cpp @@ -54,7 +54,8 @@ checkpoint() break; } default: { - if ((symbol.attributes().dataType() != ASTNodeDataType::builtin_function_t) and + if ((symbol_table.has(symbol.name(), ASTExecutionStack::getInstance().currentNode().begin())) and + (symbol.attributes().dataType() != ASTNodeDataType::builtin_function_t) and (not symbol.attributes().isModuleVariable())) { std::visit( [&](auto&& data) { -- GitLab