diff --git a/src/language/utils/SymbolTable.hpp b/src/language/utils/SymbolTable.hpp index 38351f7ecdf568e3482b1561152ae5a07276182f..658c3a2be2ab232408066a17f68ebbf00aded70d 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 16ea2d830766d141cfb8c499e3454bdb581e5996..10c338fc4aeae1a1b0d7a593e17b3339c372f7d3 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) {