diff --git a/compiler2/record_of.c b/compiler2/record_of.c index b4544edcb7efed1d8126659f58e312d323e2aa01..b5fc1ebb55f27b00de4277291ae7120598a2e84c 100644 --- a/compiler2/record_of.c +++ b/compiler2/record_of.c @@ -3643,13 +3643,18 @@ void defRecordOfTemplate1(const struct_of_def *sdef, output_struct *output) "const Restricted_Length_Template *template_ptr," " int index_value, int index_template, boolean legacy)\n" "{\n" - "if (value_ptr != NULL && template_ptr != NULL)" - "((const %s_template*)template_ptr)" - "->single_value.value_elements[index_template]" - "->log_match((*(const %s*)value_ptr)[index_value], legacy);\n" - "else if (value_ptr != NULL) (*(const %s*)value_ptr)[index_value].log();\n" - "else if (template_ptr != NULL) ((const %s_template*)template_ptr)" - "->single_value.value_elements[index_template]->log();\n" + "if (value_ptr == NULL) {\n" + "if (template_ptr != NULL) {\n" + "((const %s_template*)template_ptr)" + "->single_value.value_elements[index_template]->log();\n" + "}\n" + "} else if (template_ptr == NULL) {\n" + "(*(const %s*)value_ptr)[index_value].log();\n" + "} else {\n" + "((const %s_template*)template_ptr)" + "->single_value.value_elements[index_template]" + "->log_match((*(const %s*)value_ptr)[index_value], legacy);\n" + "}\n" "}\n\n", name, name, name, name, name); }