Linux GNU 11.4.0 Code Coverage Report


Directory: ./
Coverage: low: ≥ 0% medium: ≥ 75.0% high: ≥ 90.0%
Coverage Exec / Excl / Total
Lines: 88.9% 32 / 0 / 36
Functions: 100.0% 4 / 2 / 6
Branches: 38.6% 413 / 0 / 1069

OMCompiler/SimulationRuntime/c/meta/meta_modelica_builtin.h
Line Branch Exec Source
1 /*
2 * This file belongs to the OpenModelica Run-Time System
3 *
4 * Copyright (c) 1998-2026, Open Source Modelica Consortium (OSMC), c/o Linköpings
5 * universitet, Department of Computer and Information Science, SE-58183 Linköping, Sweden. All rights
6 * reserved.
7 *
8 * THIS PROGRAM IS PROVIDED UNDER THE TERMS OF THE BSD NEW LICENSE OR THE
9 * AGPL VERSION 3 LICENSE OR THE OSMC PUBLIC LICENSE (OSMC-PL) VERSION 1.8. ANY
10 * USE, REPRODUCTION OR DISTRIBUTION OF THIS PROGRAM CONSTITUTES RECIPIENT'S
11 * ACCEPTANCE OF THE BSD NEW LICENSE OR THE OSMC PUBLIC LICENSE OR THE AGPL
12 * VERSION 3, ACCORDING TO RECIPIENTS CHOICE.
13 *
14 * The OpenModelica software and the OSMC (Open Source Modelica Consortium) Public License
15 * (OSMC-PL) are obtained from OSMC, either from the above address, from the URLs:
16 * http://www.openmodelica.org or https://github.com/OpenModelica/ or
17 * http://www.ida.liu.se/projects/OpenModelica, and in the OpenModelica distribution. GNU
18 * AGPL version 3 is obtained from: https://www.gnu.org/licenses/licenses.html#GPL. The BSD NEW
19 * License is obtained from: http://www.opensource.org/licenses/BSD-3-Clause.
20 *
21 * This program is distributed WITHOUT ANY WARRANTY; without even the implied warranty of
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, EXCEPT AS EXPRESSLY
23 * SET FORTH IN THE BY RECIPIENT SELECTED SUBSIDIARY LICENSE CONDITIONS OF
24 * OSMC-PL.
25 *
26 */
27
28 /* File: meta_modelica_builtin.h
29 * Description: This is the C header file for the new builtin
30 * functions existing in MetaModelica.
31 */
32
33 #ifndef META_MODELICA_BUILTIN_H_
34 #define META_MODELICA_BUILTIN_H_
35
36 #include "../openmodelica.h"
37 #include "../util/omc_msvc.h"
38
39 #if defined(__cplusplus)
40 extern "C" {
41 #endif
42
43 #include "meta_modelica_string.h"
44 #include "meta_modelica_builtin_boxptr.h"
45 #include "meta_modelica_string_lit.h"
46
47 typedef const modelica_metatype metamodelica_string_const;
48
49 extern metamodelica_string intString(modelica_integer);
50 extern modelica_string realString(modelica_real);
51 static inline metamodelica_string boolString(modelica_integer i)
52 {
53 32464 return mmc_strings_boolString[i];
54 }
55
56 /* String Character Conversion */
57
58 #define stringCharInt(X) nobox_stringCharInt(threadData,X)
59 extern modelica_integer nobox_stringCharInt(threadData_t *threadData,metamodelica_string chr);
60 #define intStringChar(X) nobox_intStringChar(threadData,X)
61 extern metamodelica_string nobox_intStringChar(threadData_t *threadData,modelica_integer ix);
62
63 /* String Operations (MM extensions only) */
64 #define stringInt(x) nobox_stringInt(threadData,x)
65 #define stringReal(x) nobox_stringReal(threadData,x)
66 extern modelica_integer nobox_stringInt(threadData_t*,metamodelica_string s);
67 extern modelica_real nobox_stringReal(threadData_t*,metamodelica_string s);
68 extern modelica_metatype stringListStringChar(metamodelica_string s);
69 extern metamodelica_string stringAppendList(modelica_metatype lst);
70 extern metamodelica_string stringDelimitList(modelica_metatype lst,metamodelica_string_const delimiter);
71 #define stringLength(x) MMC_STRLEN(x)
72 extern modelica_integer mmc_stringCompare(const void * str1,const void * str2);
73 #define stringGetStringChar(X,Y) boxptr_stringGetStringChar(threadData,X,mmc_mk_icon(Y))
74 extern modelica_metatype boxptr_stringGetStringChar(threadData_t*,metamodelica_string str,modelica_metatype ix);
75 #define stringGet(X,Y) nobox_stringGet(threadData,X,Y)
76 extern modelica_integer nobox_stringGet(threadData_t *threadData,metamodelica_string str, modelica_integer ix);
77 #define stringGetNoBoundsChecking(str,ix) ((unsigned char*)MMC_STRINGDATA((str)))[(ix)-1]
78 #define stringUpdateStringChar(X,Y,Z) boxptr_stringUpdateStringChar(threadData,X,Y,mmc_mk_icon(Z))
79 extern modelica_metatype boxptr_stringUpdateStringChar(threadData_t *,metamodelica_string str, metamodelica_string c, modelica_metatype ix);
80 extern modelica_integer stringHash(metamodelica_string_const);
81 extern modelica_integer stringHashDjb2(metamodelica_string_const s);
82 extern modelica_integer stringHashDjb2Continue(metamodelica_string_const s, modelica_integer hash);
83 extern modelica_integer intHashDjb2Continue(modelica_integer i, modelica_integer hash);
84 extern modelica_integer stringHashDjb2Mod(metamodelica_string_const s,modelica_integer mod);
85 extern modelica_integer stringHashSdbm(metamodelica_string_const str);
86 #define substring(X,Y,Z) boxptr_substring(threadData,X,mmc_mk_icon(Y),mmc_mk_icon(Z))
87 extern modelica_metatype boxptr_substring(threadData_t *,metamodelica_string_const str, modelica_metatype start, modelica_metatype stop);
88
89 extern modelica_metatype boxptr_stringHashDjb2Mod(threadData_t*,modelica_metatype v,modelica_metatype mod);
90
91 /* List Operations */
92 extern modelica_metatype listReverse(modelica_metatype);
93 extern modelica_metatype listReverseInPlace(modelica_metatype);
94 extern modelica_metatype listAppendDestroy(modelica_metatype, modelica_metatype);
95 #define listSetRest(X,Y) boxptr_listSetRest(threadData,X,Y)
96 #define listSetFirst(X,Y) boxptr_listSetFirst(threadData,X,Y)
97 extern void boxptr_listSetRest(threadData_t*,modelica_metatype,modelica_metatype);
98 extern void boxptr_listSetFirst(threadData_t*,modelica_metatype,modelica_metatype);
99 extern modelica_boolean listMember(modelica_metatype, modelica_metatype);
100 extern modelica_metatype listAppend(modelica_metatype,modelica_metatype);
101 extern modelica_integer listLength(modelica_metatype);
102 #define listGet(X,Y) boxptr_listGet(threadData,X,mmc_mk_icon(Y))
103 #define listEmpty(LST) MMC_NILTEST(LST)
104 #define listDelete(X,Y) boxptr_listDelete(threadData,X,mmc_mk_icon(Y))
105 #define listRest(X) boxptr_listRest(threadData,X)
106 #define listHead(X) boxptr_listHead(threadData,X)
107
108 #define isNone(X) MMC_OPTIONNONE(X)
109 #define isSome(X) MMC_OPTIONSOME(X)
110
111 extern modelica_metatype boxptr_listGet(threadData_t*,modelica_metatype,modelica_metatype);
112 extern modelica_metatype boxptr_listDelete(threadData_t*,modelica_metatype,modelica_metatype);
113 extern modelica_metatype boxptr_listRest(threadData_t*,modelica_metatype);
114 extern modelica_metatype boxptr_listHead(threadData_t*,modelica_metatype);
115
116 /* Option Operations */
117 #define optionNone(x) (0==MMC_HDRSLOTS(MMC_GETHDR(x)) ? 1 : 0)
118
119 /* Array Operations */
120 static inline modelica_integer arrayLength(modelica_metatype arr)
121 {
122
355/986
<unknown function 122>:
✗ Branch 0 not taken.
✗ Branch 0 not taken.
✓ Branch 1 taken 131659 times.
✓ Branch 1 taken 2641326 times.
✗ Branch 2 not taken.
✗ Branch 2 not taken.
✗ Branch 2 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 116839 times.
✓ Branch 3 taken 134131 times.
✓ Branch 3 taken 2484461 times.
✓ Branch 3 taken 77759 times.
✗ Branch 4 not taken.
✗ Branch 4 not taken.
✗ Branch 4 not taken.
✗ Branch 4 not taken.
✓ Branch 5 taken 78918 times.
✓ Branch 5 taken 3769733 times.
✓ Branch 5 taken 736863 times.
✓ Branch 5 taken 11998200 times.
✗ Branch 6 not taken.
✗ Branch 6 not taken.
✗ Branch 6 not taken.
✗ Branch 6 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 34374 times.
✓ Branch 7 taken 255332 times.
✓ Branch 7 taken 2680161 times.
✓ Branch 7 taken 194678 times.
✓ Branch 7 taken 447432 times.
✗ Branch 8 not taken.
✗ Branch 8 not taken.
✗ Branch 8 not taken.
✗ Branch 8 not taken.
✗ Branch 8 not taken.
✗ Branch 8 not taken.
✓ Branch 9 taken 245526 times.
✓ Branch 9 taken 3458961 times.
✓ Branch 9 taken 290174 times.
✓ Branch 9 taken 398815 times.
✓ Branch 9 taken 114023 times.
✓ Branch 9 taken 462893 times.
✗ Branch 10 not taken.
✗ Branch 10 not taken.
✗ Branch 10 not taken.
✗ Branch 10 not taken.
✗ Branch 10 not taken.
✗ Branch 10 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 17264 times.
✓ Branch 11 taken 1806 times.
✓ Branch 11 taken 3478418 times.
✓ Branch 11 taken 220911 times.
✓ Branch 11 taken 137781 times.
✓ Branch 11 taken 95331 times.
✓ Branch 11 taken 171593 times.
✗ Branch 12 not taken.
✗ Branch 12 not taken.
✗ Branch 12 not taken.
✗ Branch 12 not taken.
✗ Branch 12 not taken.
✗ Branch 12 not taken.
✗ Branch 12 not taken.
✗ Branch 12 not taken.
✓ Branch 13 taken 18181 times.
✓ Branch 13 taken 1132 times.
✓ Branch 13 taken 1846 times.
✓ Branch 13 taken 37044 times.
✓ Branch 13 taken 18326 times.
✓ Branch 13 taken 54736 times.
✓ Branch 13 taken 18096 times.
✓ Branch 13 taken 10230 times.
✗ Branch 14 not taken.
✗ Branch 14 not taken.
✗ Branch 14 not taken.
✗ Branch 14 not taken.
✗ Branch 14 not taken.
✗ Branch 14 not taken.
✗ Branch 14 not taken.
✗ Branch 14 not taken.
✗ Branch 14 not taken.
✓ Branch 15 taken 139 times.
✓ Branch 15 taken 1132 times.
✓ Branch 15 taken 68 times.
✓ Branch 15 taken 1977 times.
✓ Branch 15 taken 10070 times.
✓ Branch 15 taken 469989 times.
✓ Branch 15 taken 5659938 times.
✓ Branch 15 taken 19717 times.
✓ Branch 15 taken 2402185 times.
✗ Branch 16 not taken.
✗ Branch 16 not taken.
✗ Branch 16 not taken.
✗ Branch 16 not taken.
✗ Branch 16 not taken.
✗ Branch 16 not taken.
✗ Branch 16 not taken.
✗ Branch 16 not taken.
✗ Branch 16 not taken.
✗ Branch 16 not taken.
✗ Branch 17 not taken.
✓ Branch 17 taken 1120 times.
✓ Branch 17 taken 51 times.
✓ Branch 17 taken 50 times.
✓ Branch 17 taken 7999 times.
✓ Branch 17 taken 1828 times.
✗ Branch 17 not taken.
✓ Branch 17 taken 2731469 times.
✓ Branch 17 taken 28918 times.
✓ Branch 17 taken 16719 times.
✗ Branch 18 not taken.
✗ Branch 18 not taken.
✗ Branch 18 not taken.
✗ Branch 18 not taken.
✗ Branch 18 not taken.
✗ Branch 18 not taken.
✗ Branch 18 not taken.
✗ Branch 18 not taken.
✗ Branch 18 not taken.
✗ Branch 18 not taken.
✓ Branch 19 taken 3359 times.
✓ Branch 19 taken 1120 times.
✓ Branch 19 taken 1725 times.
✓ Branch 19 taken 53 times.
✓ Branch 19 taken 3167 times.
✓ Branch 19 taken 887 times.
✓ Branch 19 taken 53452 times.
✓ Branch 19 taken 301990 times.
✓ Branch 19 taken 23840 times.
✓ Branch 19 taken 1 time.
✗ Branch 20 not taken.
✗ Branch 20 not taken.
✗ Branch 20 not taken.
✗ Branch 20 not taken.
✗ Branch 20 not taken.
✗ Branch 20 not taken.
✗ Branch 20 not taken.
✗ Branch 20 not taken.
✗ Branch 20 not taken.
✗ Branch 20 not taken.
✗ Branch 20 not taken.
✓ Branch 21 taken 187 times.
✓ Branch 21 taken 1120 times.
✓ Branch 21 taken 91 times.
✓ Branch 21 taken 267 times.
✓ Branch 21 taken 26 times.
✓ Branch 21 taken 12299 times.
✓ Branch 21 taken 653199 times.
✓ Branch 21 taken 298114 times.
✓ Branch 21 taken 41918 times.
✓ Branch 21 taken 5216 times.
✓ Branch 21 taken 7800 times.
✗ Branch 22 not taken.
✗ Branch 22 not taken.
✗ Branch 22 not taken.
✗ Branch 22 not taken.
✗ Branch 22 not taken.
✗ Branch 22 not taken.
✗ Branch 22 not taken.
✗ Branch 22 not taken.
✗ Branch 22 not taken.
✗ Branch 22 not taken.
✗ Branch 22 not taken.
✗ Branch 22 not taken.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✓ Branch 23 taken 343 times.
✓ Branch 23 taken 129 times.
✗ Branch 23 not taken.
✓ Branch 23 taken 46 times.
✓ Branch 23 taken 225 times.
✓ Branch 23 taken 5467 times.
✓ Branch 23 taken 2437 times.
✓ Branch 23 taken 808982 times.
✓ Branch 23 taken 305622 times.
✓ Branch 23 taken 207522 times.
✓ Branch 23 taken 5610 times.
✓ Branch 23 taken 1822 times.
✗ Branch 24 not taken.
✗ Branch 24 not taken.
✗ Branch 24 not taken.
✗ Branch 24 not taken.
✗ Branch 24 not taken.
✗ Branch 24 not taken.
✗ Branch 24 not taken.
✗ Branch 24 not taken.
✗ Branch 24 not taken.
✗ Branch 24 not taken.
✗ Branch 24 not taken.
✓ Branch 25 taken 3554 times.
✓ Branch 25 taken 465 times.
✗ Branch 25 not taken.
✓ Branch 25 taken 4 times.
✓ Branch 25 taken 3833 times.
✓ Branch 25 taken 2746 times.
✓ Branch 25 taken 898163 times.
✓ Branch 25 taken 297753 times.
✓ Branch 25 taken 12880 times.
✓ Branch 25 taken 5610 times.
✓ Branch 25 taken 227345 times.
✗ Branch 26 not taken.
✗ Branch 26 not taken.
✗ Branch 26 not taken.
✗ Branch 26 not taken.
✗ Branch 26 not taken.
✗ Branch 26 not taken.
✗ Branch 26 not taken.
✗ Branch 26 not taken.
✗ Branch 26 not taken.
✗ Branch 26 not taken.
✗ Branch 26 not taken.
✗ Branch 26 not taken.
✓ Branch 27 taken 3554 times.
✓ Branch 27 taken 139 times.
✗ Branch 27 not taken.
✓ Branch 27 taken 123 times.
✓ Branch 27 taken 46 times.
✓ Branch 27 taken 4908 times.
✓ Branch 27 taken 2180 times.
✓ Branch 27 taken 713 times.
✓ Branch 27 taken 8 times.
✓ Branch 27 taken 130483 times.
✓ Branch 27 taken 5612 times.
✓ Branch 27 taken 311037 times.
✗ Branch 28 not taken.
✗ Branch 28 not taken.
✗ Branch 28 not taken.
✗ Branch 28 not taken.
✗ Branch 28 not taken.
✗ Branch 28 not taken.
✗ Branch 28 not taken.
✗ Branch 28 not taken.
✗ Branch 28 not taken.
✗ Branch 28 not taken.
✗ Branch 28 not taken.
✗ Branch 28 not taken.
✓ Branch 29 taken 1007365 times.
✓ Branch 29 taken 45 times.
✓ Branch 29 taken 2905407 times.
✓ Branch 29 taken 222 times.
✓ Branch 29 taken 1288 times.
✗ Branch 29 not taken.
✓ Branch 29 taken 47124 times.
✓ Branch 29 taken 57858 times.
✓ Branch 29 taken 297739 times.
✓ Branch 29 taken 121 times.
✓ Branch 29 taken 208054 times.
✓ Branch 29 taken 26433 times.
✗ Branch 30 not taken.
✗ Branch 30 not taken.
✗ Branch 30 not taken.
✗ Branch 30 not taken.
✗ Branch 30 not taken.
✗ Branch 30 not taken.
✗ Branch 30 not taken.
✗ Branch 30 not taken.
✗ Branch 30 not taken.
✗ Branch 30 not taken.
✗ Branch 30 not taken.
✗ Branch 30 not taken.
✗ Branch 30 not taken.
✓ Branch 31 taken 3336 times.
✓ Branch 31 taken 14 times.
✓ Branch 31 taken 9587559 times.
✓ Branch 31 taken 222 times.
✓ Branch 31 taken 1288 times.
✓ Branch 31 taken 1799 times.
✗ Branch 31 not taken.
✓ Branch 31 taken 657 times.
✓ Branch 31 taken 96969 times.
✓ Branch 31 taken 245921 times.
✓ Branch 31 taken 1524820 times.
✓ Branch 31 taken 106020 times.
✓ Branch 31 taken 3792604 times.
✗ Branch 32 not taken.
✗ Branch 32 not taken.
✗ Branch 32 not taken.
✗ Branch 32 not taken.
✗ Branch 32 not taken.
✗ Branch 32 not taken.
✗ Branch 32 not taken.
✗ Branch 32 not taken.
✗ Branch 32 not taken.
✗ Branch 32 not taken.
✗ Branch 32 not taken.
✗ Branch 32 not taken.
✗ Branch 32 not taken.
✓ Branch 33 taken 7996 times.
✓ Branch 33 taken 10 times.
✓ Branch 33 taken 8 times.
✓ Branch 33 taken 1 time.
✓ Branch 33 taken 1288 times.
✓ Branch 33 taken 1799 times.
✓ Branch 33 taken 493 times.
✓ Branch 33 taken 9 times.
✓ Branch 33 taken 60224 times.
✓ Branch 33 taken 226825 times.
✓ Branch 33 taken 9 times.
✓ Branch 33 taken 5659 times.
✓ Branch 33 taken 145 times.
✗ Branch 34 not taken.
✗ Branch 34 not taken.
✗ Branch 34 not taken.
✗ Branch 34 not taken.
✗ Branch 34 not taken.
✗ Branch 34 not taken.
✗ Branch 34 not taken.
✗ Branch 34 not taken.
✗ Branch 34 not taken.
✗ Branch 34 not taken.
✗ Branch 34 not taken.
✗ Branch 34 not taken.
✗ Branch 34 not taken.
✓ Branch 35 taken 15212 times.
✓ Branch 35 taken 10 times.
✗ Branch 35 not taken.
✓ Branch 35 taken 1 time.
✓ Branch 35 taken 1288 times.
✓ Branch 35 taken 1650 times.
✓ Branch 35 taken 3729 times.
✗ Branch 35 not taken.
✓ Branch 35 taken 428573 times.
✓ Branch 35 taken 272211 times.
✗ Branch 35 not taken.
✓ Branch 35 taken 118704 times.
✓ Branch 35 taken 103 times.
✗ Branch 36 not taken.
✗ Branch 36 not taken.
✗ Branch 36 not taken.
✗ Branch 36 not taken.
✗ Branch 36 not taken.
✗ Branch 36 not taken.
✗ Branch 36 not taken.
✗ Branch 36 not taken.
✗ Branch 36 not taken.
✗ Branch 36 not taken.
✗ Branch 36 not taken.
✗ Branch 36 not taken.
✗ Branch 36 not taken.
✓ Branch 37 taken 59 times.
✓ Branch 37 taken 10 times.
✗ Branch 37 not taken.
✓ Branch 37 taken 1288 times.
✗ Branch 37 not taken.
✓ Branch 37 taken 1650 times.
✓ Branch 37 taken 8 times.
✓ Branch 37 taken 2071 times.
✓ Branch 37 taken 2101 times.
✓ Branch 37 taken 272211 times.
✗ Branch 37 not taken.
✓ Branch 37 taken 22 times.
✗ Branch 37 not taken.
✗ Branch 38 not taken.
✗ Branch 38 not taken.
✗ Branch 38 not taken.
✗ Branch 38 not taken.
✗ Branch 38 not taken.
✗ Branch 38 not taken.
✗ Branch 38 not taken.
✗ Branch 38 not taken.
✗ Branch 38 not taken.
✗ Branch 38 not taken.
✗ Branch 38 not taken.
✗ Branch 38 not taken.
✗ Branch 38 not taken.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✓ Branch 39 taken 10 times.
✗ Branch 39 not taken.
✗ Branch 39 not taken.
✓ Branch 39 taken 1287 times.
✓ Branch 39 taken 1670 times.
✓ Branch 39 taken 20 times.
✓ Branch 39 taken 139 times.
✓ Branch 39 taken 98543 times.
✓ Branch 39 taken 2843 times.
✓ Branch 39 taken 36 times.
✓ Branch 39 taken 3314 times.
✓ Branch 39 taken 18 times.
✗ Branch 39 not taken.
✗ Branch 40 not taken.
✗ Branch 40 not taken.
✗ Branch 40 not taken.
✗ Branch 40 not taken.
✗ Branch 40 not taken.
✗ Branch 40 not taken.
✗ Branch 40 not taken.
✗ Branch 40 not taken.
✗ Branch 40 not taken.
✗ Branch 40 not taken.
✗ Branch 40 not taken.
✗ Branch 40 not taken.
✗ Branch 40 not taken.
✗ Branch 40 not taken.
✗ Branch 40 not taken.
✗ Branch 41 not taken.
✓ Branch 41 taken 10 times.
✗ Branch 41 not taken.
✗ Branch 41 not taken.
✗ Branch 41 not taken.
✓ Branch 41 taken 1287 times.
✓ Branch 41 taken 1670 times.
✓ Branch 41 taken 138 times.
✓ Branch 41 taken 175 times.
✓ Branch 41 taken 1085 times.
✗ Branch 41 not taken.
✓ Branch 41 taken 541573 times.
✓ Branch 41 taken 32812 times.
✓ Branch 41 taken 4446 times.
✓ Branch 41 taken 91852 times.
✗ Branch 42 not taken.
✗ Branch 42 not taken.
✗ Branch 42 not taken.
✗ Branch 42 not taken.
✗ Branch 42 not taken.
✗ Branch 42 not taken.
✗ Branch 42 not taken.
✗ Branch 42 not taken.
✗ Branch 42 not taken.
✗ Branch 42 not taken.
✗ Branch 42 not taken.
✗ Branch 42 not taken.
✗ Branch 42 not taken.
✗ Branch 42 not taken.
✗ Branch 42 not taken.
✓ Branch 43 taken 17 times.
✓ Branch 43 taken 26 times.
✗ Branch 43 not taken.
✗ Branch 43 not taken.
✗ Branch 43 not taken.
✓ Branch 43 taken 2408 times.
✗ Branch 43 not taken.
✓ Branch 43 taken 1670 times.
✓ Branch 43 taken 12 times.
✓ Branch 43 taken 4 times.
✓ Branch 43 taken 531 times.
✓ Branch 43 taken 2843 times.
✓ Branch 43 taken 806 times.
✓ Branch 43 taken 308 times.
✓ Branch 43 taken 91852 times.
✗ Branch 44 not taken.
✗ Branch 44 not taken.
✗ Branch 44 not taken.
✗ Branch 44 not taken.
✗ Branch 44 not taken.
✗ Branch 44 not taken.
✗ Branch 44 not taken.
✗ Branch 44 not taken.
✗ Branch 44 not taken.
✗ Branch 44 not taken.
✗ Branch 44 not taken.
✗ Branch 44 not taken.
✓ Branch 45 taken 140 times.
✓ Branch 45 taken 26 times.
✗ Branch 45 not taken.
✓ Branch 45 taken 2408 times.
✓ Branch 45 taken 40 times.
✓ Branch 45 taken 479 times.
✓ Branch 45 taken 4 times.
✓ Branch 45 taken 531 times.
✓ Branch 45 taken 7488 times.
✓ Branch 45 taken 148 times.
✓ Branch 45 taken 1246 times.
✓ Branch 45 taken 24 times.
✗ Branch 46 not taken.
✗ Branch 46 not taken.
✗ Branch 46 not taken.
✗ Branch 46 not taken.
✗ Branch 46 not taken.
✗ Branch 46 not taken.
✗ Branch 46 not taken.
✗ Branch 46 not taken.
✗ Branch 46 not taken.
✗ Branch 46 not taken.
✗ Branch 46 not taken.
✗ Branch 46 not taken.
✓ Branch 47 taken 187 times.
✗ Branch 47 not taken.
✓ Branch 47 taken 1 time.
✓ Branch 47 taken 56 times.
✓ Branch 47 taken 96 times.
✓ Branch 47 taken 4 times.
✓ Branch 47 taken 7 times.
✗ Branch 47 not taken.
✓ Branch 47 taken 148 times.
✓ Branch 47 taken 64 times.
✓ Branch 47 taken 289 times.
✓ Branch 47 taken 24 times.
✗ Branch 48 not taken.
✗ Branch 48 not taken.
✗ Branch 48 not taken.
✗ Branch 48 not taken.
✗ Branch 48 not taken.
✗ Branch 48 not taken.
✗ Branch 48 not taken.
✗ Branch 48 not taken.
✗ Branch 48 not taken.
✗ Branch 48 not taken.
✗ Branch 48 not taken.
✗ Branch 48 not taken.
✗ Branch 49 not taken.
✗ Branch 49 not taken.
✓ Branch 49 taken 1 time.
✗ Branch 49 not taken.
✓ Branch 49 taken 46 times.
✓ Branch 49 taken 1657 times.
✓ Branch 49 taken 8 times.
✗ Branch 49 not taken.
✓ Branch 49 taken 3 times.
✓ Branch 49 taken 332 times.
✓ Branch 49 taken 25 times.
✓ Branch 49 taken 34167 times.
✗ Branch 50 not taken.
✗ Branch 50 not taken.
✗ Branch 50 not taken.
✗ Branch 50 not taken.
✗ Branch 50 not taken.
✗ Branch 50 not taken.
✗ Branch 50 not taken.
✗ Branch 50 not taken.
✗ Branch 50 not taken.
✗ Branch 50 not taken.
✗ Branch 50 not taken.
✓ Branch 51 taken 12754127 times.
✗ Branch 51 not taken.
✓ Branch 51 taken 1 time.
✗ Branch 51 not taken.
✓ Branch 51 taken 46 times.
✓ Branch 51 taken 8 times.
✓ Branch 51 taken 892859 times.
✓ Branch 51 taken 15 times.
✓ Branch 51 taken 1515 times.
✗ Branch 51 not taken.
✓ Branch 51 taken 34167 times.
✗ Branch 52 not taken.
✗ Branch 52 not taken.
✗ Branch 52 not taken.
✗ Branch 52 not taken.
✗ Branch 52 not taken.
✗ Branch 52 not taken.
✗ Branch 52 not taken.
✗ Branch 52 not taken.
✗ Branch 52 not taken.
✗ Branch 52 not taken.
✓ Branch 53 taken 3336 times.
✗ Branch 53 not taken.
✓ Branch 53 taken 286 times.
✗ Branch 53 not taken.
✓ Branch 53 taken 1242 times.
✗ Branch 53 not taken.
✓ Branch 53 taken 15 times.
✓ Branch 53 taken 187 times.
✓ Branch 53 taken 366 times.
✓ Branch 53 taken 31537 times.
✗ Branch 54 not taken.
✗ Branch 54 not taken.
✗ Branch 54 not taken.
✗ Branch 54 not taken.
✗ Branch 54 not taken.
✗ Branch 54 not taken.
✗ Branch 54 not taken.
✗ Branch 54 not taken.
✗ Branch 54 not taken.
✓ Branch 55 taken 1510 times.
✗ Branch 55 not taken.
✗ Branch 55 not taken.
✗ Branch 55 not taken.
✓ Branch 55 taken 42295 times.
✓ Branch 55 taken 9422 times.
✗ Branch 55 not taken.
✓ Branch 55 taken 366 times.
✓ Branch 55 taken 45 times.
✗ Branch 56 not taken.
✗ Branch 56 not taken.
✗ Branch 56 not taken.
✗ Branch 56 not taken.
✗ Branch 56 not taken.
✗ Branch 56 not taken.
✗ Branch 56 not taken.
✗ Branch 56 not taken.
✗ Branch 56 not taken.
✗ Branch 57 not taken.
✗ Branch 57 not taken.
✗ Branch 57 not taken.
✗ Branch 57 not taken.
✗ Branch 57 not taken.
✗ Branch 57 not taken.
✓ Branch 57 taken 37 times.
✓ Branch 57 taken 366 times.
✓ Branch 57 taken 1815 times.
✗ Branch 58 not taken.
✗ Branch 58 not taken.
✗ Branch 58 not taken.
✗ Branch 58 not taken.
✗ Branch 58 not taken.
✗ Branch 58 not taken.
✗ Branch 58 not taken.
✗ Branch 58 not taken.
✓ Branch 59 taken 274 times.
✗ Branch 59 not taken.
✗ Branch 59 not taken.
✗ Branch 59 not taken.
✗ Branch 59 not taken.
✓ Branch 59 taken 27 times.
✓ Branch 59 taken 41 times.
✓ Branch 59 taken 16 times.
✗ Branch 60 not taken.
✗ Branch 60 not taken.
✗ Branch 60 not taken.
✗ Branch 60 not taken.
✗ Branch 60 not taken.
✗ Branch 60 not taken.
✗ Branch 60 not taken.
✗ Branch 60 not taken.
✓ Branch 61 taken 103 times.
✗ Branch 61 not taken.
✗ Branch 61 not taken.
✗ Branch 61 not taken.
✗ Branch 61 not taken.
✓ Branch 61 taken 132 times.
✓ Branch 61 taken 35 times.
✗ Branch 61 not taken.
✗ Branch 62 not taken.
✗ Branch 62 not taken.
✗ Branch 62 not taken.
✗ Branch 62 not taken.
✗ Branch 62 not taken.
✗ Branch 62 not taken.
✗ Branch 62 not taken.
✗ Branch 63 not taken.
✗ Branch 63 not taken.
✗ Branch 63 not taken.
✓ Branch 63 taken 10 times.
✗ Branch 63 not taken.
✓ Branch 63 taken 96 times.
✓ Branch 63 taken 156 times.
✗ Branch 64 not taken.
✗ Branch 64 not taken.
✗ Branch 64 not taken.
✗ Branch 64 not taken.
✗ Branch 64 not taken.
✗ Branch 64 not taken.
✗ Branch 64 not taken.
✗ Branch 65 not taken.
✗ Branch 65 not taken.
✗ Branch 65 not taken.
✓ Branch 65 taken 10 times.
✗ Branch 65 not taken.
✓ Branch 65 taken 14 times.
✓ Branch 65 taken 20 times.
✗ Branch 66 not taken.
✗ Branch 66 not taken.
✗ Branch 66 not taken.
✗ Branch 66 not taken.
✗ Branch 66 not taken.
✗ Branch 66 not taken.
✗ Branch 66 not taken.
✗ Branch 67 not taken.
✓ Branch 67 taken 8 times.
✗ Branch 67 not taken.
✓ Branch 67 taken 10 times.
✓ Branch 67 taken 688394 times.
✓ Branch 67 taken 1 time.
✓ Branch 67 taken 20 times.
✗ Branch 68 not taken.
✗ Branch 68 not taken.
✗ Branch 68 not taken.
✗ Branch 68 not taken.
✗ Branch 68 not taken.
✗ Branch 68 not taken.
✗ Branch 68 not taken.
✓ Branch 69 taken 59693 times.
✓ Branch 69 taken 8 times.
✗ Branch 69 not taken.
✓ Branch 69 taken 10 times.
✓ Branch 69 taken 1795 times.
✓ Branch 69 taken 1 time.
✓ Branch 69 taken 379 times.
✗ Branch 70 not taken.
✗ Branch 70 not taken.
✗ Branch 70 not taken.
✗ Branch 70 not taken.
✗ Branch 70 not taken.
✗ Branch 70 not taken.
✗ Branch 70 not taken.
✓ Branch 71 taken 59693 times.
✓ Branch 71 taken 8 times.
✗ Branch 71 not taken.
✓ Branch 71 taken 10 times.
✗ Branch 71 not taken.
✓ Branch 71 taken 972 times.
✓ Branch 71 taken 379 times.
✗ Branch 72 not taken.
✗ Branch 72 not taken.
✗ Branch 72 not taken.
✗ Branch 72 not taken.
✗ Branch 72 not taken.
✗ Branch 72 not taken.
✗ Branch 73 not taken.
✓ Branch 73 taken 8 times.
✗ Branch 73 not taken.
✓ Branch 73 taken 10 times.
✗ Branch 73 not taken.
✓ Branch 73 taken 2029 times.
✗ Branch 74 not taken.
✗ Branch 74 not taken.
✗ Branch 74 not taken.
✗ Branch 74 not taken.
✗ Branch 74 not taken.
✗ Branch 74 not taken.
✗ Branch 75 not taken.
✓ Branch 75 taken 17 times.
✗ Branch 75 not taken.
✓ Branch 75 taken 10 times.
✓ Branch 75 taken 398049 times.
✓ Branch 75 taken 3 times.
✗ Branch 76 not taken.
✗ Branch 76 not taken.
✗ Branch 76 not taken.
✗ Branch 76 not taken.
✗ Branch 76 not taken.
✓ Branch 77 taken 8 times.
✗ Branch 77 not taken.
✗ Branch 77 not taken.
✗ Branch 77 not taken.
✓ Branch 77 taken 3 times.
✗ Branch 78 not taken.
✗ Branch 78 not taken.
✗ Branch 78 not taken.
✗ Branch 78 not taken.
✗ Branch 78 not taken.
✓ Branch 79 taken 17 times.
✗ Branch 79 not taken.
✗ Branch 79 not taken.
✗ Branch 79 not taken.
✗ Branch 79 not taken.
✗ Branch 80 not taken.
✗ Branch 80 not taken.
✗ Branch 80 not taken.
✗ Branch 80 not taken.
✗ Branch 80 not taken.
✓ Branch 81 taken 8 times.
✗ Branch 81 not taken.
✗ Branch 81 not taken.
✓ Branch 81 taken 830 times.
✓ Branch 81 taken 377104 times.
✗ Branch 82 not taken.
✗ Branch 82 not taken.
✗ Branch 82 not taken.
✗ Branch 82 not taken.
✗ Branch 82 not taken.
✓ Branch 83 taken 8 times.
✓ Branch 83 taken 65 times.
✗ Branch 83 not taken.
✓ Branch 83 taken 26 times.
✓ Branch 83 taken 16390 times.
✗ Branch 84 not taken.
✗ Branch 84 not taken.
✗ Branch 84 not taken.
✗ Branch 84 not taken.
✗ Branch 84 not taken.
✓ Branch 85 taken 8 times.
✓ Branch 85 taken 65 times.
✗ Branch 85 not taken.
✗ Branch 85 not taken.
✓ Branch 85 taken 54 times.
✗ Branch 86 not taken.
✗ Branch 86 not taken.
✗ Branch 86 not taken.
✗ Branch 86 not taken.
✗ Branch 86 not taken.
✓ Branch 87 taken 8 times.
✓ Branch 87 taken 15375 times.
✗ Branch 87 not taken.
✗ Branch 87 not taken.
✓ Branch 87 taken 88 times.
✗ Branch 88 not taken.
✗ Branch 88 not taken.
✗ Branch 88 not taken.
✗ Branch 88 not taken.
✗ Branch 88 not taken.
✓ Branch 89 taken 8 times.
✓ Branch 89 taken 15278 times.
✗ Branch 89 not taken.
✗ Branch 89 not taken.
✓ Branch 89 taken 1161 times.
✗ Branch 90 not taken.
✗ Branch 90 not taken.
✗ Branch 90 not taken.
✗ Branch 90 not taken.
✗ Branch 90 not taken.
✓ Branch 91 taken 8 times.
✗ Branch 91 not taken.
✗ Branch 91 not taken.
✗ Branch 91 not taken.
✓ Branch 91 taken 1161 times.
✗ Branch 92 not taken.
✗ Branch 92 not taken.
✗ Branch 92 not taken.
✗ Branch 92 not taken.
✗ Branch 92 not taken.
✓ Branch 93 taken 8 times.
✓ Branch 93 taken 16 times.
✗ Branch 93 not taken.
✓ Branch 93 taken 438 times.
✓ Branch 93 taken 56572 times.
✗ Branch 94 not taken.
✗ Branch 94 not taken.
✗ Branch 94 not taken.
✗ Branch 94 not taken.
✗ Branch 94 not taken.
✓ Branch 95 taken 8 times.
✓ Branch 95 taken 130 times.
✗ Branch 95 not taken.
✓ Branch 95 taken 438 times.
✓ Branch 95 taken 1246 times.
✗ Branch 96 not taken.
✗ Branch 96 not taken.
✗ Branch 96 not taken.
✗ Branch 96 not taken.
✗ Branch 96 not taken.
✓ Branch 97 taken 16 times.
✓ Branch 97 taken 130 times.
✗ Branch 97 not taken.
✗ Branch 97 not taken.
✓ Branch 97 taken 1246 times.
✗ Branch 98 not taken.
✗ Branch 98 not taken.
✗ Branch 98 not taken.
✗ Branch 98 not taken.
✗ Branch 98 not taken.
✓ Branch 99 taken 16 times.
✓ Branch 99 taken 78652 times.
✗ Branch 99 not taken.
✗ Branch 99 not taken.
✓ Branch 99 taken 19932 times.
✗ Branch 100 not taken.
✗ Branch 100 not taken.
✗ Branch 100 not taken.
✗ Branch 100 not taken.
✗ Branch 100 not taken.
✗ Branch 101 not taken.
✗ Branch 101 not taken.
✗ Branch 101 not taken.
✗ Branch 101 not taken.
✓ Branch 101 taken 19926 times.
✗ Branch 102 not taken.
✗ Branch 102 not taken.
✗ Branch 102 not taken.
✗ Branch 102 not taken.
✗ Branch 102 not taken.
✓ Branch 103 taken 286 times.
✗ Branch 103 not taken.
✗ Branch 103 not taken.
✗ Branch 103 not taken.
✓ Branch 103 taken 2757 times.
✗ Branch 104 not taken.
✗ Branch 104 not taken.
✗ Branch 104 not taken.
✗ Branch 104 not taken.
✗ Branch 104 not taken.
✗ Branch 105 not taken.
✗ Branch 105 not taken.
✗ Branch 105 not taken.
✓ Branch 105 taken 71847 times.
✓ Branch 105 taken 327 times.
✗ Branch 106 not taken.
✗ Branch 106 not taken.
✗ Branch 106 not taken.
✗ Branch 106 not taken.
✗ Branch 106 not taken.
✗ Branch 107 not taken.
✗ Branch 107 not taken.
✗ Branch 107 not taken.
✗ Branch 107 not taken.
✓ Branch 107 taken 327 times.
✗ Branch 108 not taken.
✗ Branch 108 not taken.
✗ Branch 108 not taken.
✗ Branch 108 not taken.
✗ Branch 109 not taken.
✗ Branch 109 not taken.
✗ Branch 109 not taken.
✓ Branch 109 taken 10 times.
✗ Branch 110 not taken.
✗ Branch 110 not taken.
✗ Branch 110 not taken.
✗ Branch 110 not taken.
✗ Branch 111 not taken.
✗ Branch 111 not taken.
✗ Branch 111 not taken.
✓ Branch 111 taken 130335 times.
✗ Branch 112 not taken.
✗ Branch 112 not taken.
✗ Branch 112 not taken.
✓ Branch 113 taken 2016 times.
✗ Branch 113 not taken.
✓ Branch 113 taken 26924 times.
✗ Branch 114 not taken.
✗ Branch 114 not taken.
✗ Branch 114 not taken.
✓ Branch 115 taken 8 times.
✗ Branch 115 not taken.
✓ Branch 115 taken 6 times.
✗ Branch 116 not taken.
✗ Branch 116 not taken.
✗ Branch 116 not taken.
✓ Branch 117 taken 8 times.
✗ Branch 117 not taken.
✓ Branch 117 taken 54893 times.
✗ Branch 118 not taken.
✗ Branch 118 not taken.
✗ Branch 118 not taken.
✓ Branch 119 taken 1067 times.
✗ Branch 119 not taken.
✓ Branch 119 taken 54893 times.
✗ Branch 120 not taken.
✗ Branch 120 not taken.
✗ Branch 120 not taken.
✓ Branch 121 taken 8 times.
✗ Branch 121 not taken.
✓ Branch 121 taken 54893 times.
✗ Branch 122 not taken.
✗ Branch 122 not taken.
✗ Branch 122 not taken.
✗ Branch 123 not taken.
✗ Branch 123 not taken.
✓ Branch 123 taken 54893 times.
✗ Branch 124 not taken.
✗ Branch 124 not taken.
✗ Branch 124 not taken.
✓ Branch 125 taken 3078 times.
✓ Branch 125 taken 1832 times.
✓ Branch 125 taken 438 times.
✗ Branch 126 not taken.
✗ Branch 126 not taken.
✗ Branch 126 not taken.
✓ Branch 127 taken 16 times.
✓ Branch 127 taken 1832 times.
✓ Branch 127 taken 438 times.
✗ Branch 128 not taken.
✗ Branch 128 not taken.
✓ Branch 129 taken 2 times.
✓ Branch 129 taken 1106 times.
✗ Branch 130 not taken.
✗ Branch 130 not taken.
✓ Branch 131 taken 28 times.
✗ Branch 131 not taken.
✗ Branch 132 not taken.
✗ Branch 132 not taken.
✗ Branch 133 not taken.
✓ Branch 133 taken 542 times.
✗ Branch 134 not taken.
✗ Branch 134 not taken.
✗ Branch 135 not taken.
✓ Branch 135 taken 8 times.
✗ Branch 136 not taken.
✗ Branch 136 not taken.
✗ Branch 137 not taken.
✓ Branch 137 taken 4 times.
✗ Branch 138 not taken.
✗ Branch 138 not taken.
✗ Branch 139 not taken.
✓ Branch 139 taken 146 times.
✗ Branch 140 not taken.
✓ Branch 141 taken 8 times.
✗ Branch 142 not taken.
✓ Branch 143 taken 8 times.
✗ Branch 144 not taken.
✓ Branch 145 taken 6 times.
✗ Branch 146 not taken.
✓ Branch 147 taken 130 times.
✗ Branch 148 not taken.
✗ Branch 149 not taken.
✗ Branch 150 not taken.
✗ Branch 151 not taken.
✗ Branch 152 not taken.
✗ Branch 153 not taken.
<unknown function 53>:
✗ Branch 0 not taken.
✓ Branch 1 taken 158 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 158 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 1336279 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 2235093 times.
1903562553 return MMC_HDRSLOTS(MMC_GETHDR(arr));
123 }
124
125 extern modelica_metatype arrayList(modelica_metatype);
126 extern modelica_metatype listArray(modelica_metatype);
127 extern modelica_metatype arrayCopy(modelica_metatype);
128 #define arrayGet(X,Y) nobox_arrayGet(threadData,X,Y)
129 extern modelica_metatype listArrayLiteral(modelica_metatype);
130
131
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 1714795713 times.
1714795713 static inline modelica_metatype nobox_arrayGet(threadData_t *threadData,modelica_metatype arr,modelica_integer ix)
132 {
133 1735346759 int nelts = arrayLength(arr);
134
26/36
<unknown function 122>:
✗ Branch 0 not taken.
✓ Branch 1 taken 774918 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 1084314 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 10168776 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 187589 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 184814 times.
nobox_arrayGet:
✓ Branch 0 taken 1514555847 times.
✓ Branch 1 taken 529137 times.
✓ Branch 2 taken 55004376 times.
✓ Branch 3 taken 1518169049 times.
✓ Branch 4 taken 7858709 times.
✓ Branch 5 taken 55225880 times.
✓ Branch 6 taken 200524 times.
✓ Branch 7 taken 11308833 times.
✓ Branch 8 taken 8654 times.
✓ Branch 9 taken 199341 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 60214 times.
✓ Branch 12 taken 112973 times.
✓ Branch 13 taken 53234 times.
✗ Branch 14 not taken.
✓ Branch 15 taken 118304 times.
✓ Branch 16 taken 11444952 times.
✓ Branch 17 taken 5242 times.
✓ Branch 18 taken 2392 times.
✓ Branch 19 taken 11450168 times.
✗ Branch 20 not taken.
✓ Branch 21 taken 215017 times.
✓ Branch 22 taken 125609471 times.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✓ Branch 25 taken 125609471 times.
1735346759 if (ix < 1 || ix > nelts)
135 2731 MMC_THROW_INTERNAL();
136
15/25
<unknown function 122>:
✗ Branch 0 not taken.
✓ Branch 1 taken 466 times.
nobox_arrayGet:
✗ Branch 0 not taken.
✓ Branch 1 taken 3435 times.
✗ Branch 2 not taken.
✓ Branch 2 taken 30 times.
✗ Branch 3 not taken.
✓ Branch 3 taken 14837 times.
✗ Branch 3 not taken.
✓ Branch 4 taken 3449871 times.
✓ Branch 5 taken 6 times.
✗ Branch 6 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 7 times.
✓ Branch 7 taken 53156 times.
✓ Branch 7 taken 40 times.
✗ Branch 8 not taken.
✓ Branch 8 taken 53170 times.
✓ Branch 9 taken 4 times.
✗ Branch 9 not taken.
✓ Branch 9 taken 74 times.
✓ Branch 10 taken 14 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 26 times.
✓ Branch 12 taken 5216 times.
1521324121 return MMC_STRUCTDATA(arr)[ix-1];
137 }
138
139 8251713 static inline modelica_metatype arrayCreate(modelica_integer nelts, modelica_metatype val)
140 {
141
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 8251713 times.
8251713 if (nelts < 0) {
142 ✗ MMC_THROW();
143 } else {
144 8251713 void* arr = (struct mmc_struct*)mmc_mk_box_no_assign(nelts, MMC_ARRAY_TAG, MMC_IS_IMMEDIATE(val));
145 8251713 void **arrp = MMC_STRUCTDATA(arr);
146 int i = 0;
147
2/2
✓ Branch 0 taken 1150072580 times.
✓ Branch 1 taken 8251713 times.
1158324293 for(i=0; i<nelts; i++)
148 1150072580 arrp[i] = val;
149 8251713 return arr;
150 }
151 }
152
153 9810888 static inline modelica_metatype arrayCreateNoInit(modelica_integer nelts, modelica_metatype dummy __attribute__((unused))
154 )
155 {
156
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 9810888 times.
9810888 if (nelts < 0) {
157 ✗ MMC_THROW();
158 } else {
159 9810888 return (struct mmc_struct*)mmc_mk_box_no_assign(nelts, MMC_ARRAY_TAG, 0);
160 }
161 }
162 #define arrayGetNoBoundsChecking(arr,ix) (MMC_STRUCTDATA((arr))[(ix)-1])
163 #define arrayUpdate(X,Y,Z) boxptr_arrayUpdate(threadData,X,mmc_mk_icon(Y),Z)
164 #define arrayUpdateNoBoundsChecking(X,Y,Z) boxptr_arrayUpdateNoBoundsChecking(threadData,X,mmc_mk_icon(Y),Z)
165 #define arrayClearIndex(X,Y) boxptr_arrayUpdateNoBoundsChecking(threadData,X,mmc_mk_icon(Y),mmc_mk_icon(0))
166 extern modelica_metatype arrayAppend(modelica_metatype, modelica_metatype);
167
168 extern modelica_metatype boxptr_arrayGet(threadData_t *threadData,modelica_metatype,modelica_metatype);
169 93537934 static inline modelica_metatype boxptr_arrayUpdate(threadData_t *threadData,modelica_metatype arr, modelica_metatype i, modelica_metatype val)
170 {
171
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 93537934 times.
93537934 int ix = mmc_unbox_integer(i);
172 93537934 int nelts = arrayLength(arr);
173
1/2
✗ Branch 0 not taken.
✓ Branch 1 taken 93537934 times.
93537934 if (ix < 1 || ix > nelts)
174 ✗ MMC_THROW_INTERNAL();
175 93537934 MMC_STRUCTDATA(arr)[ix-1] = val;
176 93537934 return arr;
177 }
178
179 extern modelica_metatype boxptr_arrayUpdate(threadData_t *threadData,modelica_metatype, modelica_metatype, modelica_metatype);
180
181 static inline modelica_metatype boxptr_arrayUpdateNoBoundsChecking(threadData_t *threadData __attribute__((unused)), modelica_metatype arr, modelica_metatype i, modelica_metatype val)
182 {
183 70962485 int ix = mmc_unbox_integer(i);
184
10/10
✓ Branch 0 taken 143 times.
✓ Branch 0 taken 511748 times.
✓ Branch 1 taken 401 times.
✓ Branch 1 taken 1885650 times.
✓ Branch 2 taken 42139 times.
✓ Branch 3 taken 14433 times.
✓ Branch 4 taken 267 times.
✓ Branch 5 taken 19659 times.
✓ Branch 6 taken 4124 times.
✓ Branch 7 taken 79599 times.
59177322 MMC_STRUCTDATA(arr)[ix-1] = val;
185 1044713 return arr;
186 }
187
188 extern modelica_metatype boxptr_arrayUpdateNoBoundsChecking(threadData_t *threadData,modelica_metatype, modelica_metatype, modelica_metatype);
189
190 /* Misc Operations */
191 #ifndef __cplusplus
192 #define print(X) fputs(MMC_STRINGDATA(X), stdout)
193 #endif
194 extern void boxptr_print(threadData_t*,modelica_metatype);
195 extern modelica_integer tick(void);
196 extern modelica_real mmc_clock(void);
197 #define equality(X,Y) boxptr_equality(threadData,X,Y)
198 extern void boxptr_equality(threadData_t *,modelica_metatype, modelica_metatype);
199
200 /* Weird RML stuff */
201 #define getGlobalRoot(X) nobox_getGlobalRoot(threadData,X)
202 #define setGlobalRoot(X,V) boxptr_setGlobalRoot(threadData,mmc_mk_icon(X),V)
203 #define valueConstructor(val) MMC_HDRCTOR(MMC_GETHDR(val))
204 #define isPresent(X) ((out##X)!=NULL)
205
206 extern modelica_metatype nobox_getGlobalRoot(threadData_t*,modelica_integer);
207 extern void boxptr_setGlobalRoot(threadData_t*,modelica_metatype, modelica_metatype);
208 extern modelica_metatype boxptr_valueConstructor(threadData_t*,modelica_metatype);
209 #define referenceEq(X,Y) ((X) == (Y))
210
211 extern modelica_boolean setStackOverflowSignal(modelica_boolean);
212 extern metamodelica_string referenceDebugString(modelica_metatype fnptr);
213 extern metamodelica_string referencePointerString(modelica_metatype ptr);
214
215 #include "meta_modelica_builtin_boxvar.h"
216
217 DLLDataDirection extern struct record_description SourceInfo_SOURCEINFO__desc;
218 #define SourceInfo__SOURCEINFO(fileName,isReadOnly,lineNumberStart,columnNumberStart,lineNumberEnd,columnNumberEnd,lastModification) (mmc_mk_box8(3,&SourceInfo_SOURCEINFO__desc,fileName,isReadOnly,lineNumberStart,columnNumberStart,lineNumberEnd,columnNumberEnd,lastModification))
219
220 #if defined(__cplusplus)
221 }
222 #endif
223
224 #endif /* META_MODELICA_BUILTIN_H_ */
225