fixed Segfault in decmatch confomance test cases (artf764443)
[deliverable/titan.core.git] / compiler2 / Value.cc
index e6cf738b27d5264e879c4869842a69aa9c9f5f7b..56a05debd9441488a562d67e3a32a0b7a0936572 100644 (file)
@@ -952,6 +952,8 @@ namespace Common {
     case OPTYPE_TTCN2STRING:
       if(!p_ti1) FATAL_ERROR("Value::Value()");
       u.expr.ti1=p_ti1;
+      // Needed in the case of OPTYPE_ENCVALUE_UNICHAR
+      u.expr.v2=NULL;
       break;
     default:
       FATAL_ERROR("Value::Value()");
@@ -1342,6 +1344,8 @@ namespace Common {
       if(!p_r1 || !p_r2) FATAL_ERROR("Value::Value()");
       u.expr.r1=p_r1;
       u.expr.r2=p_r2;
+      // Needed in the case of OPTYPE_DECVALUE_UNICHAR
+      u.expr.v3=NULL;
       break;
     default:
       FATAL_ERROR("Value::Value()");
@@ -10085,6 +10089,9 @@ error:
       break; // self-ref can't happen
     case Ttcn::Template::TEMPLATE_INVOKE:
       break; // assume self-ref can't happen
+    case Ttcn::Template::DECODE_MATCH:
+      self_ref |= chk_expr_self_ref_templ(t->get_decode_target()->get_Template(), lhs);
+      break;
     case Ttcn::Template::TEMPLATE_ERROR:
       //FATAL_ERROR("Value::chk_expr_self_ref_templ()");
       break;
@@ -10107,7 +10114,7 @@ error:
       }
     }
     return gov->chk_this_value(v, lhs, Type::EXPECTED_DYNAMIC_VALUE,
-      INCOMPLETE_NOT_ALLOWED, OMIT_NOT_ALLOWED, NO_SUB_CHK, NOT_IMPLICIT_OMIT,
+      INCOMPLETE_NOT_ALLOWED, OMIT_ALLOWED, NO_SUB_CHK, NOT_IMPLICIT_OMIT,
       is_str_elem);
   }
 
This page took 0.025174 seconds and 5 git commands to generate.