source:
CIVL/examples/languageFeatures/dynamicStruct.cvl@
bb03188
| Last change on this file since bb03188 was ea777aa, checked in by , 3 years ago | |
|---|---|
|
|
| File size: 492 bytes | |
| Rev | Line | |
|---|---|---|
| [36b5ada] | 1 | /* Commandline execution: |
| 2 | * civl verify dynamicStruct.cvl | |
| 3 | * */ | |
| [e6b02c8] | 4 | #include <civlc.cvh> |
| [0d850b0] | 5 | |
| 6 | void f(int n) { | |
| 7 | int sum; | |
| [48bfab9] | 8 | $proc fp = $proc_null; |
| [0d850b0] | 9 | typedef struct foo { |
| 10 | int sum; | |
| 11 | int bar[n]; | |
| 12 | } foo; | |
| 13 | ||
| 14 | foo s; | |
| [ee41939] | 15 | sum = (n * (n - 1)) / 2; |
| [0d850b0] | 16 | if (n > 1) { |
| [48bfab9] | 17 | fp = $spawn f(n-1); |
| [0d850b0] | 18 | } |
| 19 | s.sum = 0; | |
| 20 | for (int i = 0; i < n; i++) { | |
| 21 | s.bar[i] = i; | |
| 22 | s.sum += s.bar[i]; | |
| 23 | } | |
| [d980649] | 24 | $assert(sum == s.sum); |
| [48bfab9] | 25 | if(fp != $proc_null) $wait(fp); |
| [0d850b0] | 26 | } |
| 27 | ||
| 28 | void main() { | |
| [48bfab9] | 29 | $proc fp = $spawn f(3); |
| 30 | ||
| 31 | $wait(fp); | |
| [0d850b0] | 32 | } |
Note:
See TracBrowser
for help on using the repository browser.
