Opened 9 years ago

Closed 9 years ago

Last modified 6 years ago

#3245 closed defect (fixed)

OMEdit crashes: When set record parameter in Function

Reported by: arnesinnema@… Owned by: perost
Priority: high Milestone: 1.9.4
Component: Run-time Version: trunk
Keywords: crash, record, function Cc:

Description (last modified by perost)

OMEdit crashes when a record parameter is set in a function (see code below), it looks very similar to bug #3082.

model TestRecord 
  function setRecordFunction 
    output Real[3] y; 
  protected 
    Rec[3] x; 
  algorithm 
    for i in 1:3 loop 
      x[i].r := i; 
      y[i] := x[i].r; 
    end for; 
  end setRecordFunction; 

  record Rec 
    Real r; 
  end Rec; 

  model CallRecordFunction 
    Real[3] y; 
    //Real[4] y2; 
  equation 
    y = setRecordFunction(); 
    //y2 = setRecordFunction2(4); 
  end CallRecordFunction; 

  function setRecordFunction2 
    input Integer N; 
    output Real[N] y; 
  protected 
    Rec[N] x; 
  algorithm 
    for i in 1:N loop 
      x[i].r := i; 
      y[i] := x[i].r; 
    end for; 
  end setRecordFunction2; 
end TestRecord;

Change History (5)

comment:1 Changed 9 years ago by janK

  • Description modified (diff)

comment:2 Changed 9 years ago by perost

  • Component changed from Unknown to Run-time
  • Description modified (diff)
  • Owner changed from somebody to perost
  • Status changed from new to accepted

Seems like the run-time is having some issues with assigning record components like that. A workaround is to rewrite

for i in 1:3 loop
  x[i].r := i;
  y[i] := x[i].r;
end for;

as

x.r := 1:3;
y := x.r;

Of course, your example is simplified, so maybe it's not possible for you to get rid of the loop in your actual model.

comment:3 Changed 9 years ago by perost

  • Resolution set to fixed
  • Status changed from accepted to closed

Fixed in r25245.

comment:4 Changed 8 years ago by dietmarw

  • Milestone changed from Future to pre1.9.4

It doesn't make sense to keep closed ticket in the "Future" milestone that were simply forgotten to assign to the correct milestone in the past.

comment:5 Changed 6 years ago by sjoelund.se

  • Milestone changed from pre1.9.4 to 1.9.4

Removing the pre1.9.4 milestone in favor of 1.9.4.

Note: See TracTickets for help on using tickets.