Opened 10 years ago
Last modified 4 years ago
#2712 closed defect
Accessing connector array with dynamic index results in C code compile error — at Version 1
Reported by: | Owned by: | Lennart Ochel | |
---|---|---|---|
Priority: | normal | Milestone: | 1.16.0 |
Component: | Code Generation | Version: | 1.9.0Beta |
Keywords: | Cc: |
Description (last modified by )
The simple model below results in bad C code generation (does not compile). It was tested with OpenModelica 1.9.0 (r17628).
The problem seems to be acessing a connector in an array of connections by an index integer variable that changes with time:
cValue = if condition then inConnections[index].value else 0;
model ConnectionArrayBug connector RealConn Real value; end RealConn; model ValueSource parameter Real value; RealConn connection; equation connection.value = value; end ValueSource; model BuggedModel parameter Integer nConn; RealConn inConnections[nConn]; protected Boolean condition; Integer index; Real cValue; equation condition = true; index = if time > 0.5 then 1 else 2; cValue = if condition then inConnections[index].value else 0; end BuggedModel; ValueSource s1(value = 1); ValueSource s2(value = 2); BuggedModel m1(nConn = 2); equation connect(s1.connection,m1.inConnections[1]); connect(s2.connection,m1.inConnections[2]); end ConnectionArrayBug;
Note:
See TracTickets
for help on using tickets.