Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#1827 closed defect (fixed)

BackendDAE cannot represent NORETCALL equations

Reported by: Martin Sjölund Owned by: somebody
Priority: high Milestone: 1.9.0
Component: Backend Version:
Keywords: Cc: Jens Frenkel, Willi Braun, Martin Sjölund

Description

From: https://openmodelica.org/index.php?option=com_agora&task=topic&id=716&Itemid=87

BackendDAE cannot represent NORETCALL equations, which means I have no easy way to make the following code run :( We seem to store assert, terminate, etc on the side of the assertion. That might be possible here as well, I don't know these things...

model M
  Integer i;
equation
  when sample(0,0.1) then
    Modelica.Utilities.Streams.print("printing at time: " + String(time));
    i = pre(i) + 1;
  end when;
end M;

Change History (3)

comment:1 by Jens Frenkel, 12 years ago

added support for it in r13351 with example testsuite/mosfiles/WhenNoRetCall

Example does not work because

undefined reference to `Modelica_Utilities_Streams_print'

comment:2 by Jens Frenkel, 12 years ago

Cc: Martin Sjölund added
Resolution: fixed
Status: newclosed
  • works in r13361, maybe EQ_NORETCALL needs information about buildin function

comment:3 by Martin Sjölund, 12 years ago

Like this:

record STMT_NORETCALL
  Exp exp;
  ElementSource source "the origin of the component/equation/algorithm";
end STMT_NORETCALL;

Then you can inline it, too :p

Note: See TracTickets for help on using tickets.