--- a/stage3/fill_candidate_datatypes.cc Fri May 06 11:48:02 2016 +0300
+++ b/stage3/fill_candidate_datatypes.cc Thu Sep 08 17:44:44 2016 +0100
@@ -1831,7 +1831,8 @@
/* NOTE: The parameter 'called_function_declaration' is used to pass data between the stage 3 and stage 4. */
// SYM_REF2(il_formal_funct_call_c, function_name, il_param_list, symbol_c *called_function_declaration; int extensible_param_count;)
void *fill_candidate_datatypes_c::visit(il_formal_funct_call_c *symbol) {
- symbol->il_param_list->accept(*this);
+ /* non-standard extension allowing functions with no input parameters => il_param_list may be NULL !!! */
+ if (NULL != symbol->il_param_list) symbol->il_param_list->accept(*this);
generic_function_call_t fcall_param = {
/* fcall_param.function_name = */ symbol->function_name,
@@ -2170,7 +2171,7 @@
void *fill_candidate_datatypes_c::visit(function_invocation_c *symbol) {
if (NULL != symbol->formal_param_list) symbol-> formal_param_list->accept(*this);
else if (NULL != symbol->nonformal_param_list) symbol->nonformal_param_list->accept(*this);
- else ERROR;
+ // else ERROR; NOTE-> We support the non-standard feature of POUS with no in, out and inout parameters, so this is no longer an internal error!
generic_function_call_t fcall_param = {
function_name: symbol->function_name,