Opened 11 years ago
Closed 11 years ago
#3173 closed defect (invalid)
Array index not detected as integer
| Reported by: | Henning Kiel | Owned by: | somebody | 
|---|---|---|---|
| Priority: | high | Milestone: | |
| Component: | Frontend | Version: | trunk | 
| Keywords: | Cc: | 
Description (last modified by )
The following model does not flatten:
model demo
  Real x[8] = {1, 2, 3, 4, 5, 6, 7, 8};
  Real y;
algorithm
  y := 0;
  for j in 1:3 loop
    y := y + x[j * (j + 1) / 2];
  end for;
end demo;
[demo.mo:7:5-7:32:writable] Error: Subscript j * (j + 1) / 2 of type Real is not a subtype of Integer, Boolean or enumeration. [demo.mo:7:5-7:32:writable] Error: Variable x[j * (j + 1) / 2] not found in scope demo.$for loop scope$. Error: Error occurred while flattening model demo
Change History (2)
comment:1 by , 11 years ago
| Description: | modified (diff) | 
|---|
comment:2 by , 11 years ago
| Component: | Unknown → Frontend | 
|---|---|
| Milestone: | Future | 
| Resolution: | → invalid | 
| Status: | new → closed | 
  Note:
 See   TracTickets
 for help on using tickets.
    
Division in Modelica always returns a Real, never an Integer. Use div() for integer division.