﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
2712	Accessing connector array with dynamic index results in C code compile error	Metello <metello@…>	Lennart Ochel	"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;


-----------CODE------------
{{{#!mo
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;
}}}"	defect	new	normal	1.9.1	Code Generation	1.9.0Beta			
