OMCompiler/SimulationRuntime/c/meta/meta_modelica.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.h | ||
| 29 | * Description: This is the C header file for the C code generated from | ||
| 30 | * Modelica. It includes e.g. the C object representation of the builtin types | ||
| 31 | * and arrays, etc. | ||
| 32 | */ | ||
| 33 | |||
| 34 | /* Including this header makes the translation unit MetaModelica. Generated | ||
| 35 | code compiled with plain flags (-d=gen, bootstrapping) gets the define here, | ||
| 36 | before util/modelica.h picks the counted vocabulary. */ | ||
| 37 | #ifndef OMC_METAMODELICA_RUNTIME | ||
| 38 | #define OMC_METAMODELICA_RUNTIME 1 | ||
| 39 | #endif | ||
| 40 | |||
| 41 | #ifndef META_MODELICA_H_ | ||
| 42 | #define META_MODELICA_H_ | ||
| 43 | |||
| 44 | #if defined(__cplusplus) | ||
| 45 | extern "C" { | ||
| 46 | #endif | ||
| 47 | |||
| 48 | #include <stdio.h> | ||
| 49 | #include <stdlib.h> | ||
| 50 | #include <stdarg.h> | ||
| 51 | #include <string.h> | ||
| 52 | #include <errno.h> | ||
| 53 | #include "../gc/omc_gc.h" | ||
| 54 | #include "../omc_inline.h" | ||
| 55 | #include "../openmodelica.h" | ||
| 56 | #include "meta_modelica_string.h" | ||
| 57 | |||
| 58 | /* gc/omc_gc.h was included first and bound the counted allocator: boxes built | ||
| 59 | here would be invisible to the collector. */ | ||
| 60 | #if defined(OMC_NO_BOEHM_GC) | ||
| 61 | #error "MetaModelica translation unit built against the counted runtime: add -DOMC_METAMODELICA_RUNTIME=1" | ||
| 62 | #endif | ||
| 63 | |||
| 64 | /* The box vocabulary of generated code. The literal macros differ per runtime, | ||
| 65 | so the code generator names them directly (litDefBox and friends). */ | ||
| 66 | #define OMC_BOX_FIELD(X, I) MMC_FETCH(MMC_OFFSET(MMC_UNTAGPTR(X), I)) | ||
| 67 | #define omc_mk_rcon mmc_mk_rcon | ||
| 68 | #define omc_mk_real mmc_mk_real | ||
| 69 | #define omc_mk_integer mmc_mk_integer | ||
| 70 | #define omc_mk_boolean mmc_mk_boolean | ||
| 71 | #define omc_mk_enumeration mmc_mk_integer | ||
| 72 | #define omc_mk_icon mmc_mk_icon | ||
| 73 | #define omc_mk_bcon mmc_mk_bcon | ||
| 74 | #define omc_mk_string mmc_mk_string | ||
| 75 | #define omc_mk_modelica_array mmc_mk_modelica_array | ||
| 76 | #define omc_unbox_real mmc_unbox_real | ||
| 77 | #define omc_unbox_integer mmc_unbox_integer | ||
| 78 | #define omc_unbox_boolean mmc_unbox_boolean | ||
| 79 | #define omc_unbox_string mmc_unbox_string | ||
| 80 | #define omc_unbox_array mmc_unbox_array | ||
| 81 | #define omc_mk_box mmc_mk_box | ||
| 82 | #define omc_mk_box0 mmc_mk_box0 | ||
| 83 | #define omc_mk_box1 mmc_mk_box1 | ||
| 84 | #define omc_mk_box2 mmc_mk_box2 | ||
| 85 | #define omc_mk_box3 mmc_mk_box3 | ||
| 86 | #define omc_mk_box4 mmc_mk_box4 | ||
| 87 | #define omc_mk_box5 mmc_mk_box5 | ||
| 88 | #define omc_mk_box6 mmc_mk_box6 | ||
| 89 | #define omc_mk_box7 mmc_mk_box7 | ||
| 90 | #define omc_mk_box8 mmc_mk_box8 | ||
| 91 | #define omc_mk_box9 mmc_mk_box9 | ||
| 92 | #define omc_mk_box10 mmc_mk_box10 | ||
| 93 | #define omc_mk_box11 mmc_mk_box11 | ||
| 94 | #define omc_mk_box12 mmc_mk_box12 | ||
| 95 | #define omc_mk_box13 mmc_mk_box13 | ||
| 96 | #define omc_mk_box14 mmc_mk_box14 | ||
| 97 | #define omc_mk_box15 mmc_mk_box15 | ||
| 98 | #define omc_mk_box16 mmc_mk_box16 | ||
| 99 | #define omc_mk_box17 mmc_mk_box17 | ||
| 100 | #define omc_mk_box18 mmc_mk_box18 | ||
| 101 | #define omc_mk_box19 mmc_mk_box19 | ||
| 102 | #define omc_mk_box20 mmc_mk_box20 | ||
| 103 | #include "meta_modelica_data.h" | ||
| 104 | #include "../util/omc_init.h" | ||
| 105 | |||
| 106 | static inline void* mmc_mk_icon(mmc_sint_t i) | ||
| 107 | { | ||
| 108 |
71/299✗ Branch 0 not taken.
✓ Branch 0 taken 24443 times.
✗ Branch 0 not taken.
✗ Branch 1 not taken.
✓ Branch 1 taken 1554 times.
✓ Branch 1 taken 1859 times.
✗ Branch 2 not taken.
✓ Branch 2 taken 401 times.
✓ Branch 2 taken 21426 times.
✗ Branch 2 not taken.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 3 not taken.
✗ Branch 3 not taken.
✗ Branch 3 not taken.
✗ Branch 3 not taken.
✗ Branch 3 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 time.
✗ Branch 4 not taken.
✓ Branch 4 taken 76292 times.
✓ Branch 4 taken 8919 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 5 taken 14 times.
✓ Branch 5 taken 9247 times.
✓ Branch 5 taken 55376 times.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✓ Branch 6 taken 121081 times.
✓ Branch 6 taken 1798 times.
✗ Branch 6 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 7 not taken.
✗ Branch 7 not taken.
✗ Branch 7 not taken.
✗ Branch 7 not taken.
✗ Branch 7 not taken.
✗ Branch 7 not taken.
✗ Branch 7 not taken.
✗ 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 8 not taken.
✗ Branch 8 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 9 not taken.
✗ Branch 9 not taken.
✗ Branch 9 not taken.
✓ Branch 9 taken 3365 times.
✗ Branch 9 not taken.
✓ Branch 10 taken 3304 times.
✓ Branch 10 taken 31146 times.
✗ Branch 10 not taken.
✗ Branch 10 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✓ Branch 11 taken 5 times.
✗ Branch 11 not taken.
✗ Branch 11 not taken.
✓ Branch 11 taken 8 times.
✗ Branch 11 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 12 not taken.
✓ Branch 12 taken 3544499 times.
✗ Branch 12 not taken.
✗ Branch 12 not taken.
✗ Branch 12 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✓ Branch 13 taken 40813 times.
✗ Branch 13 not taken.
✗ Branch 13 not taken.
✓ Branch 13 taken 6401 times.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 14 not taken.
✓ Branch 14 taken 1751 times.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 15 not taken.
✗ Branch 15 not taken.
✗ Branch 15 not taken.
✗ Branch 15 not taken.
✓ Branch 15 taken 3828 times.
✗ Branch 15 not taken.
✓ Branch 16 taken 5 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 17 not taken.
✗ Branch 17 not taken.
✗ Branch 17 not taken.
✓ Branch 17 taken 5 times.
✗ Branch 17 not taken.
✗ Branch 17 not taken.
✗ Branch 17 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✗ Branch 18 not taken.
✗ Branch 18 not taken.
✓ Branch 18 taken 289 times.
✗ Branch 18 not taken.
✗ Branch 18 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✓ Branch 19 taken 20 times.
✗ Branch 19 not taken.
✗ Branch 19 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 20 not taken.
✗ Branch 20 not taken.
✗ Branch 20 not taken.
✗ Branch 20 not taken.
✓ Branch 20 taken 17360 times.
✗ Branch 20 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 21 not taken.
✓ Branch 21 taken 8030 times.
✗ Branch 21 not taken.
✗ Branch 21 not taken.
✗ Branch 21 not taken.
✗ Branch 21 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✓ Branch 22 taken 264 times.
✗ Branch 22 not taken.
✓ Branch 22 taken 70 times.
✗ Branch 22 not taken.
✗ Branch 23 not taken.
✗ Branch 23 not taken.
✗ Branch 23 not taken.
✗ Branch 23 not taken.
✗ Branch 24 not taken.
✗ Branch 24 not taken.
✗ Branch 24 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 25 not taken.
✓ Branch 25 taken 5 times.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 26 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 28 not taken.
✗ Branch 29 not taken.
✗ Branch 29 not taken.
✓ Branch 30 taken 14 times.
✗ Branch 30 not taken.
✗ Branch 30 not taken.
✓ Branch 30 taken 196 times.
✗ Branch 31 not taken.
✗ Branch 31 not taken.
✗ Branch 31 not taken.
✗ Branch 32 not taken.
✗ Branch 33 not taken.
✗ Branch 34 not taken.
✗ Branch 35 not taken.
✗ Branch 36 not taken.
✗ Branch 36 not taken.
✗ Branch 36 not taken.
✗ Branch 37 not taken.
✗ Branch 37 not taken.
✗ Branch 37 not taken.
✓ Branch 38 taken 55705 times.
✗ Branch 38 not taken.
✗ Branch 38 not taken.
✓ Branch 38 taken 188426 times.
✓ Branch 39 taken 180 times.
✗ Branch 39 not taken.
✗ Branch 39 not taken.
✗ Branch 39 not taken.
✓ Branch 39 taken 22735 times.
✗ Branch 39 not taken.
✗ Branch 40 not taken.
✗ Branch 40 not taken.
✗ Branch 40 not taken.
✗ Branch 40 not taken.
✓ Branch 40 taken 210129 times.
✗ Branch 40 not taken.
✗ Branch 40 not taken.
✗ Branch 40 not taken.
✗ Branch 41 not taken.
✓ Branch 41 taken 1032 times.
✗ Branch 41 not taken.
✗ Branch 41 not taken.
✗ Branch 41 not taken.
✗ Branch 41 not taken.
✓ Branch 42 taken 16638 times.
✗ Branch 42 not taken.
✓ Branch 43 taken 568 times.
✗ Branch 43 not taken.
✓ Branch 44 taken 17136 times.
✗ Branch 44 not taken.
✓ Branch 45 taken 70 times.
✗ Branch 45 not taken.
✓ Branch 46 taken 6900 times.
✗ Branch 46 not taken.
✗ Branch 46 not taken.
✗ Branch 46 not taken.
✗ Branch 47 not taken.
✓ Branch 47 taken 1729 times.
✗ Branch 47 not taken.
✗ Branch 47 not taken.
✗ Branch 47 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 not taken.
✗ Branch 49 not taken.
✗ Branch 50 not taken.
✗ Branch 50 not taken.
✗ Branch 51 not taken.
✗ Branch 51 not taken.
✗ Branch 51 not taken.
✗ Branch 52 not taken.
✗ Branch 52 not taken.
✗ Branch 54 not taken.
✗ Branch 54 not taken.
✓ Branch 55 taken 3 times.
✗ Branch 55 not taken.
✗ Branch 61 not taken.
✗ Branch 62 not taken.
✗ Branch 63 not taken.
✗ Branch 64 not taken.
✗ Branch 65 not taken.
✗ Branch 66 not taken.
✓ Branch 69 taken 836450 times.
✗ Branch 70 not taken.
✓ Branch 73 taken 51787 times.
✓ Branch 74 taken 47674 times.
✓ Branch 75 taken 248 times.
✓ Branch 76 taken 292 times.
✓ Branch 77 taken 722 times.
✓ Branch 78 taken 4027 times.
✓ Branch 79 taken 1655 times.
✓ Branch 80 taken 6968 times.
✓ Branch 81 taken 1751 times.
✓ Branch 82 taken 3828 times.
✓ Branch 83 taken 5 times.
✓ Branch 84 taken 5 times.
✗ Branch 85 not taken.
✗ Branch 86 not taken.
✓ Branch 87 taken 16 times.
✓ Branch 88 taken 15 times.
✓ Branch 89 taken 79045 times.
✗ Branch 90 not taken.
✓ Branch 90 taken 113059 times.
✗ Branch 91 not taken.
✓ Branch 91 taken 2043 times.
✗ Branch 92 not taken.
✗ Branch 93 not taken.
✗ Branch 94 not taken.
✗ Branch 107 not taken.
✗ Branch 108 not taken.
✗ Branch 109 not taken.
✗ Branch 110 not taken.
✗ Branch 122 not taken.
✗ Branch 123 not taken.
✗ Branch 124 not taken.
✗ Branch 125 not taken.
✗ Branch 126 not taken.
✗ Branch 127 not taken.
✗ Branch 128 not taken.
✗ Branch 129 not taken.
✓ Branch 132 taken 3600 times.
✓ Branch 133 taken 1305 times.
✓ Branch 135 taken 14396 times.
✓ Branch 136 taken 7516 times.
✗ Branch 199 not taken.
✗ Branch 200 not taken.
✗ Branch 221 not taken.
✗ Branch 222 not taken.
✗ Branch 230 not taken.
✓ Branch 231 taken 1069 times.
✗ Branch 232 not taken.
✓ Branch 233 taken 1069 times.
✗ Branch 247 not taken.
✗ Branch 248 not taken.
✗ Branch 249 not taken.
✗ Branch 250 not taken.
|
501445592 | return MMC_IMMEDIATE(MMC_TAGFIXNUM(i)); |
| 109 | } | ||
| 110 | |||
| 111 | union mmc_double_as_words { | ||
| 112 | double d; | ||
| 113 | mmc_uint_t data[2]; | ||
| 114 | }; | ||
| 115 | |||
| 116 | static inline double mmc_prim_get_real(void *p) | ||
| 117 | { | ||
| 118 | union mmc_double_as_words u; | ||
| 119 | mmc_uint_t *data = &(MMC_REALDATA(p)[0]); | ||
| 120 | |||
| 121 | 117898670 | u.data[0] = *data; | |
| 122 | u.data[1] = *(data + 1); | ||
| 123 |
278/532<unknown function 108>:
✓ Branch 0 taken 388941 times.
✓ Branch 0 taken 123918 times.
✗ Branch 0 not taken.
✗ Branch 0 not taken.
✓ Branch 1 taken 102601 times.
✓ Branch 1 taken 319024 times.
✓ Branch 1 taken 200523 times.
✗ Branch 1 not taken.
✓ Branch 2 taken 2 times.
✓ Branch 2 taken 81241 times.
✓ Branch 2 taken 17 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✓ Branch 3 taken 2322 times.
✓ Branch 3 taken 13 times.
✓ Branch 3 taken 7687 times.
✗ Branch 3 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 1 time.
✓ Branch 4 taken 77457 times.
✗ Branch 4 not taken.
✓ Branch 4 taken 9 times.
✓ Branch 4 taken 156976 times.
✓ Branch 4 taken 90 times.
✓ Branch 5 taken 3 times.
✓ Branch 5 taken 8969 times.
✓ Branch 5 taken 585 times.
✓ Branch 5 taken 37 times.
✓ Branch 5 taken 1742 times.
✓ Branch 6 taken 1 time.
✓ Branch 6 taken 29 times.
✓ Branch 6 taken 878 times.
✓ Branch 6 taken 208083 times.
✗ Branch 6 not taken.
✗ Branch 6 not taken.
✓ Branch 7 taken 50 times.
✓ Branch 7 taken 2753 times.
✓ Branch 7 taken 2519 times.
✓ Branch 7 taken 43430 times.
✓ Branch 7 taken 77 times.
✓ Branch 7 taken 3148 times.
✗ Branch 8 not taken.
✓ Branch 8 taken 442 times.
✓ Branch 8 taken 157093 times.
✓ Branch 8 taken 24 times.
✓ Branch 8 taken 6 times.
✓ Branch 8 taken 211 times.
✗ Branch 8 not taken.
✓ Branch 9 taken 80 times.
✓ Branch 9 taken 1013 times.
✓ Branch 9 taken 43430 times.
✓ Branch 9 taken 6605 times.
✗ Branch 9 not taken.
✗ Branch 9 not taken.
✓ Branch 10 taken 14 times.
✗ Branch 10 not taken.
✓ Branch 10 taken 2738 times.
✓ Branch 10 taken 4325 times.
✗ Branch 10 not taken.
✓ Branch 10 taken 114 times.
✗ Branch 10 not taken.
✓ Branch 11 taken 21 times.
✓ Branch 11 taken 1 time.
✓ Branch 11 taken 323 times.
✓ Branch 11 taken 4902 times.
✓ Branch 11 taken 127 times.
✓ Branch 11 taken 45 times.
✗ Branch 11 not taken.
✗ Branch 11 not taken.
✓ Branch 12 taken 14 times.
✗ Branch 12 not taken.
✓ Branch 12 taken 2805 times.
✓ Branch 12 taken 2 times.
✗ Branch 12 not taken.
✓ Branch 12 taken 2528 times.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✓ Branch 13 taken 16 times.
✗ Branch 13 not taken.
✓ Branch 13 taken 871 times.
✓ Branch 13 taken 17 times.
✗ Branch 13 not taken.
✗ Branch 13 not taken.
✗ Branch 13 not taken.
✓ Branch 14 taken 1410 times.
✓ Branch 14 taken 43432 times.
✗ Branch 14 not taken.
✓ Branch 14 taken 56 times.
✓ Branch 14 taken 2041665 times.
✗ Branch 14 not taken.
✗ Branch 14 not taken.
✓ Branch 15 taken 34 times.
✓ Branch 15 taken 8224 times.
✓ Branch 15 taken 11673 times.
✓ Branch 15 taken 26967 times.
✓ Branch 15 taken 180306 times.
✗ Branch 15 not taken.
✗ Branch 15 not taken.
✗ Branch 15 not taken.
✓ Branch 16 taken 54 times.
✓ Branch 16 taken 8080 times.
✓ Branch 16 taken 9122 times.
✓ Branch 16 taken 16950 times.
✗ Branch 16 not taken.
✓ Branch 16 taken 56 times.
✓ Branch 16 taken 1305696 times.
✗ Branch 16 not taken.
✓ Branch 16 taken 33276 times.
✗ Branch 16 not taken.
✓ Branch 17 taken 44 times.
✓ Branch 17 taken 124109 times.
✓ Branch 17 taken 139 times.
✓ Branch 17 taken 854 times.
✓ Branch 17 taken 26853 times.
✓ Branch 17 taken 2799 times.
✗ Branch 17 not taken.
✗ Branch 17 not taken.
✗ Branch 17 not taken.
✓ Branch 18 taken 10 times.
✓ Branch 18 taken 1266 times.
✓ Branch 18 taken 1410 times.
✓ Branch 18 taken 8883 times.
✗ Branch 18 not taken.
✗ Branch 18 not taken.
✗ Branch 18 not taken.
✓ Branch 18 taken 20 times.
✓ Branch 18 taken 18 times.
✓ Branch 19 taken 10 times.
✓ Branch 19 taken 12513 times.
✓ Branch 19 taken 36 times.
✓ Branch 19 taken 9612 times.
✓ Branch 19 taken 127 times.
✗ Branch 19 not taken.
✓ Branch 19 taken 158926 times.
✓ Branch 19 taken 12277 times.
✗ Branch 19 not taken.
✓ Branch 20 taken 10 times.
✓ Branch 20 taken 1709 times.
✓ Branch 20 taken 183 times.
✗ Branch 20 not taken.
✗ Branch 20 not taken.
✓ Branch 20 taken 674 times.
✗ Branch 20 not taken.
✓ Branch 20 taken 903 times.
✓ Branch 20 taken 34 times.
✓ Branch 21 taken 10 times.
✗ Branch 21 not taken.
✓ Branch 21 taken 2288 times.
✓ Branch 21 taken 848 times.
✓ Branch 21 taken 127 times.
✗ Branch 21 not taken.
✗ Branch 21 not taken.
✗ Branch 21 not taken.
✗ Branch 21 not taken.
✓ Branch 21 taken 1 time.
✓ Branch 22 taken 10 times.
✓ Branch 22 taken 2216 times.
✓ Branch 22 taken 1410 times.
✓ Branch 22 taken 183 times.
✓ Branch 22 taken 1 time.
✗ Branch 22 not taken.
✓ Branch 22 taken 1177700 times.
✓ Branch 22 taken 33 times.
✓ Branch 23 taken 2077 times.
✗ Branch 23 not taken.
✓ Branch 23 taken 848 times.
✓ Branch 23 taken 17 times.
✗ Branch 23 not taken.
✓ Branch 23 taken 755446 times.
✓ Branch 23 taken 11506 times.
✓ Branch 24 taken 139 times.
✓ Branch 24 taken 1410 times.
✓ Branch 24 taken 26928 times.
✓ Branch 24 taken 4 times.
✗ Branch 24 not taken.
✓ Branch 24 taken 28414 times.
✓ Branch 25 taken 9154 times.
✓ Branch 25 taken 848 times.
✓ Branch 25 taken 14966 times.
✗ Branch 25 not taken.
✓ Branch 25 taken 12208 times.
✗ Branch 26 not taken.
✓ Branch 26 taken 1410 times.
✓ Branch 26 taken 11964 times.
✗ Branch 26 not taken.
✗ Branch 26 not taken.
✓ Branch 26 taken 1168742 times.
✓ Branch 26 taken 5 times.
✓ Branch 27 taken 4890 times.
✓ Branch 27 taken 39 times.
✓ Branch 27 taken 848 times.
✓ Branch 27 taken 14964 times.
✓ Branch 27 taken 8854 times.
✗ Branch 27 not taken.
✓ Branch 28 taken 1410 times.
✓ Branch 28 taken 255 times.
✗ Branch 28 not taken.
✓ Branch 28 taken 219 times.
✗ Branch 29 not taken.
✗ Branch 29 not taken.
✓ Branch 29 taken 3962 times.
✗ Branch 29 not taken.
✗ Branch 29 not taken.
✗ Branch 30 not taken.
✓ Branch 30 taken 4780 times.
✓ Branch 30 taken 127 times.
✗ Branch 30 not taken.
✓ Branch 30 taken 311 times.
✗ Branch 30 not taken.
✓ Branch 31 taken 2074 times.
✗ Branch 31 not taken.
✓ Branch 31 taken 848 times.
✓ Branch 31 taken 7663044 times.
✓ Branch 31 taken 50479 times.
✓ Branch 31 taken 1 time.
✗ Branch 32 not taken.
✓ Branch 32 taken 1406 times.
✓ Branch 32 taken 113818 times.
✗ Branch 32 not taken.
✗ Branch 32 not taken.
✓ Branch 33 taken 1 time.
✓ Branch 33 taken 3639 times.
✓ Branch 33 taken 14948 times.
✗ Branch 33 not taken.
✓ Branch 33 taken 1 time.
✗ Branch 33 not taken.
✓ Branch 34 taken 5101 times.
✓ Branch 34 taken 1224899 times.
✗ Branch 34 not taken.
✗ Branch 34 not taken.
✗ Branch 34 not taken.
✗ Branch 35 not taken.
✓ Branch 35 taken 848 times.
✓ Branch 35 taken 119372 times.
✗ Branch 35 not taken.
✗ Branch 35 not taken.
✗ Branch 35 not taken.
✓ Branch 36 taken 1406 times.
✓ Branch 36 taken 1120459 times.
✗ Branch 36 not taken.
✗ Branch 36 not taken.
✗ Branch 36 not taken.
✗ Branch 37 not taken.
✓ Branch 37 taken 848 times.
✗ Branch 37 not taken.
✗ Branch 37 not taken.
✗ Branch 37 not taken.
✗ Branch 37 not taken.
✓ Branch 38 taken 1405 times.
✓ Branch 38 taken 104424 times.
✓ Branch 38 taken 2 times.
✗ Branch 38 not taken.
✗ Branch 38 not taken.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✓ Branch 39 taken 568 times.
✗ Branch 39 not taken.
✗ Branch 39 not taken.
✗ Branch 39 not taken.
✓ Branch 39 taken 5 times.
✗ Branch 39 not taken.
✓ Branch 40 taken 356 times.
✓ Branch 40 taken 119372 times.
✓ Branch 40 taken 6210 times.
✗ Branch 40 not taken.
✗ Branch 40 not taken.
✓ Branch 40 taken 234 times.
✗ Branch 41 not taken.
✗ Branch 41 not taken.
✓ Branch 41 taken 43875 times.
✗ Branch 41 not taken.
✓ Branch 41 taken 5 times.
✓ Branch 41 taken 4623 times.
✗ Branch 42 not taken.
✓ Branch 42 taken 150715 times.
✗ Branch 42 not taken.
✓ Branch 42 taken 131 times.
✗ Branch 43 not taken.
✗ Branch 43 not taken.
✓ Branch 43 taken 8 times.
✗ Branch 43 not taken.
✗ Branch 43 not taken.
✓ Branch 44 taken 98 times.
✓ Branch 44 taken 30 times.
✓ Branch 44 taken 375 times.
✗ Branch 45 not taken.
✗ Branch 45 not taken.
✗ Branch 45 not taken.
✓ Branch 45 taken 2 times.
✓ Branch 45 taken 4678 times.
✓ Branch 46 taken 60 times.
✗ Branch 46 not taken.
✓ Branch 46 taken 846570 times.
✗ Branch 46 not taken.
✓ Branch 46 taken 4 times.
✓ Branch 46 taken 375 times.
✗ Branch 47 not taken.
✗ Branch 47 not taken.
✗ Branch 47 not taken.
✓ Branch 47 taken 1773254 times.
✗ Branch 47 not taken.
✓ Branch 47 taken 557 times.
✗ Branch 47 not taken.
✓ Branch 47 taken 4674 times.
✓ Branch 48 taken 38 times.
✗ Branch 48 not taken.
✓ Branch 48 taken 462143 times.
✗ Branch 48 not taken.
✓ Branch 48 taken 3341 times.
✗ Branch 48 not taken.
✗ Branch 49 not taken.
✗ Branch 49 not taken.
✗ Branch 49 not taken.
✓ Branch 49 taken 385357 times.
✓ Branch 49 taken 1 time.
✓ Branch 49 taken 52 times.
✗ Branch 49 not taken.
✗ Branch 50 not taken.
✗ Branch 50 not taken.
✗ Branch 50 not taken.
✗ Branch 50 not taken.
✓ Branch 50 taken 8 times.
✓ Branch 50 taken 375 times.
✗ Branch 51 not taken.
✓ Branch 51 taken 38 times.
✗ Branch 51 not taken.
✗ Branch 51 not taken.
✗ Branch 51 not taken.
✓ Branch 51 taken 490 times.
✓ Branch 51 taken 4674 times.
✗ Branch 52 not taken.
✗ Branch 52 not taken.
✓ Branch 52 taken 8244 times.
✓ Branch 52 taken 84 times.
✗ Branch 52 not taken.
✓ Branch 52 taken 15 times.
✓ Branch 52 taken 375 times.
✗ Branch 53 not taken.
✗ Branch 53 not taken.
✗ Branch 53 not taken.
✓ Branch 53 taken 451065 times.
✗ Branch 53 not taken.
✗ Branch 53 not taken.
✗ Branch 53 not taken.
✗ Branch 53 not taken.
✓ Branch 53 taken 4669 times.
✗ Branch 54 not taken.
✗ Branch 54 not taken.
✗ Branch 54 not taken.
✓ Branch 54 taken 3 times.
✗ Branch 54 not taken.
✓ Branch 54 taken 288 times.
✗ Branch 55 not taken.
✓ Branch 55 taken 38 times.
✗ Branch 55 not taken.
✗ Branch 55 not taken.
✗ Branch 55 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 58 not taken.
✗ Branch 58 not taken.
✓ Branch 58 taken 11 times.
✗ Branch 58 not taken.
✗ Branch 58 not taken.
✗ Branch 59 not taken.
✗ Branch 59 not taken.
✗ Branch 59 not taken.
✗ Branch 59 not taken.
✓ Branch 59 taken 3 times.
✓ Branch 60 taken 38 times.
✗ Branch 60 not taken.
✗ Branch 60 not taken.
✗ Branch 60 not taken.
✗ Branch 61 not taken.
✗ Branch 61 not taken.
✗ Branch 61 not taken.
✗ Branch 61 not taken.
✓ Branch 61 taken 802 times.
✗ Branch 61 not taken.
✗ Branch 62 not taken.
✗ Branch 62 not taken.
✓ Branch 62 taken 4 times.
✗ Branch 62 not taken.
✗ Branch 62 not taken.
✓ Branch 63 taken 1 time.
✗ Branch 63 not taken.
✗ Branch 63 not taken.
✗ Branch 63 not taken.
✗ Branch 64 not taken.
✓ Branch 64 taken 2510 times.
✓ Branch 64 taken 4 times.
✗ Branch 64 not taken.
✓ Branch 65 taken 1 time.
✗ Branch 65 not taken.
✗ Branch 65 not taken.
✗ Branch 65 not taken.
✗ Branch 66 not taken.
✓ Branch 66 taken 88 times.
✗ Branch 66 not taken.
✓ Branch 66 taken 1 time.
✓ Branch 67 taken 1 time.
✗ Branch 67 not taken.
✗ Branch 67 not taken.
✓ Branch 67 taken 4 times.
✓ Branch 67 taken 1 time.
✗ Branch 68 not taken.
✗ Branch 68 not taken.
✓ Branch 68 taken 26955 times.
✓ Branch 68 taken 3750 times.
✗ Branch 69 not taken.
✗ Branch 69 not taken.
✗ Branch 69 not taken.
✗ Branch 70 not taken.
✗ Branch 70 not taken.
✓ Branch 70 taken 9896 times.
✗ Branch 70 not taken.
✗ Branch 70 not taken.
✗ Branch 71 not taken.
✗ Branch 71 not taken.
✓ Branch 71 taken 26545 times.
✗ Branch 71 not taken.
✓ Branch 71 taken 5855 times.
✗ Branch 72 not taken.
✗ Branch 72 not taken.
✗ Branch 72 not taken.
✗ Branch 72 not taken.
✗ Branch 73 not taken.
✓ Branch 73 taken 33 times.
✓ Branch 73 taken 19795 times.
✗ Branch 73 not taken.
✓ Branch 73 taken 821 times.
✗ Branch 74 not taken.
✓ Branch 74 taken 469705 times.
✗ Branch 74 not taken.
✗ Branch 74 not taken.
✗ Branch 75 not taken.
✓ Branch 75 taken 6750 times.
✓ Branch 75 taken 257 times.
✓ Branch 75 taken 1 time.
✗ Branch 76 not taken.
✗ Branch 76 not taken.
✓ Branch 76 taken 9896 times.
✗ Branch 77 not taken.
✓ Branch 77 taken 33 times.
✗ Branch 77 not taken.
✗ Branch 77 not taken.
✗ Branch 78 not taken.
✓ Branch 78 taken 9896 times.
✓ Branch 78 taken 848 times.
✗ Branch 79 not taken.
✓ Branch 79 taken 4675 times.
✗ Branch 80 not taken.
✓ Branch 80 taken 65981 times.
✗ Branch 80 not taken.
✓ Branch 81 taken 4 times.
✓ Branch 82 taken 4675 times.
✗ Branch 82 not taken.
✗ Branch 83 not taken.
✓ Branch 83 taken 4 times.
✗ Branch 84 not taken.
✗ Branch 85 not taken.
✓ Branch 85 taken 4 times.
✗ Branch 85 not taken.
✓ Branch 86 taken 37864 times.
✗ Branch 86 not taken.
✗ Branch 86 not taken.
✓ Branch 87 taken 3826 times.
✓ Branch 87 taken 4 times.
✓ Branch 88 taken 34038 times.
✗ Branch 88 not taken.
✗ Branch 89 not taken.
✓ Branch 89 taken 4 times.
✗ Branch 90 not taken.
✗ Branch 90 not taken.
✗ Branch 91 not taken.
✓ Branch 91 taken 4 times.
✓ Branch 92 taken 18 times.
✗ Branch 93 not taken.
✓ Branch 94 taken 23219 times.
✓ Branch 95 taken 1110 times.
✓ Branch 96 taken 22109 times.
✗ Branch 97 not taken.
✓ Branch 98 taken 3 times.
✗ Branch 99 not taken.
✓ Branch 100 taken 1 time.
✗ Branch 101 not taken.
✗ Branch 102 not taken.
✗ Branch 103 not taken.
✗ Branch 104 not taken.
✓ Branch 105 taken 3748048 times.
✓ Branch 106 taken 2311739 times.
✓ Branch 107 taken 247751 times.
✓ Branch 108 taken 31515 times.
✓ Branch 109 taken 3748048 times.
✓ Branch 110 taken 2280224 times.
✓ Branch 112 taken 766653 times.
✓ Branch 113 taken 2670219 times.
✓ Branch 114 taken 1052003 times.
✓ Branch 115 taken 1484 times.
✓ Branch 116 taken 432465 times.
✓ Branch 117 taken 23243 times.
✓ Branch 118 taken 177067 times.
✗ Branch 119 not taken.
✓ Branch 120 taken 4795 times.
✓ Branch 121 taken 96266 times.
✓ Branch 122 taken 26433 times.
✓ Branch 123 taken 10179 times.
✗ Branch 124 not taken.
✗ Branch 125 not taken.
✓ Branch 126 taken 689847 times.
✓ Branch 127 taken 1059823 times.
✓ Branch 128 taken 659778 times.
✓ Branch 129 taken 1059456 times.
✓ Branch 130 taken 1405477 times.
✓ Branch 131 taken 313701 times.
✗ Branch 135 not taken.
✗ Branch 136 not taken.
✗ Branch 137 not taken.
✗ Branch 138 not taken.
✗ Branch 139 not taken.
✗ Branch 140 not taken.
✗ Branch 141 not taken.
✗ Branch 142 not taken.
<unknown function 121>:
✓ Branch 0 taken 237 times.
✓ Branch 1 taken 2666 times.
|
115389527 | return u.d; |
| 124 | } | ||
| 125 | |||
| 126 | static inline void mmc_prim_set_real(struct mmc_real *p, double d) | ||
| 127 | { | ||
| 128 | union mmc_double_as_words u; | ||
| 129 | mmc_uint_t *data; | ||
| 130 | 38274320 | u.d = d; | |
| 131 | |||
| 132 | data = &(p->data[0]); | ||
| 133 | 38274320 | *data = u.data[0]; | |
| 134 | 38274320 | *(data + 1) = u.data[1]; | |
| 135 | } | ||
| 136 | |||
| 137 | char* mmc_mk_scon_len_ret_ptr(size_t nbytes); | ||
| 138 | |||
| 139 | /* Non-varargs versions */ | ||
| 140 | #include "meta_modelica_mk_box.h" | ||
| 141 | |||
| 142 | 645034 | static inline void *mmc_mk_box(mmc_sint_t _slots, mmc_uint_t ctor, ...) | |
| 143 | { | ||
| 144 | mmc_sint_t i; | ||
| 145 | va_list argp; | ||
| 146 | |||
| 147 | 645034 | struct mmc_struct *p = (struct mmc_struct *) mmc_alloc_words(_slots+1); | |
| 148 | 645034 | p->header = MMC_STRUCTHDR(_slots, ctor); | |
| 149 | 645034 | va_start(argp, ctor); | |
| 150 |
2/2✓ Branch 0 taken 21172775 times.
✓ Branch 1 taken 645034 times.
|
21817809 | for (i = 0; i < _slots; i++) { |
| 151 | 21172775 | p->data[i] = va_arg(argp, void*); | |
| 152 | } | ||
| 153 | 645034 | va_end(argp); | |
| 154 | #ifdef MMC_MK_DEBUG | ||
| 155 | fprintf(stderr, "BOXNN slots:%d ctor: %u\n", _slots, ctor); fflush(NULL); | ||
| 156 | #endif | ||
| 157 | 645034 | return MMC_TAGPTR(p); | |
| 158 | } | ||
| 159 | |||
| 160 | static const MMC_DEFSTRUCT0LIT(mmc_nil,0); | ||
| 161 | static const MMC_DEFSTRUCT0LIT(mmc_none,1); | ||
| 162 | |||
| 163 | #define mmc_mk_nil() MMC_REFSTRUCTLIT(mmc_nil) | ||
| 164 | #define mmc_mk_none() MMC_REFSTRUCTLIT(mmc_none) | ||
| 165 | |||
| 166 | #define MMC_CONS_CTOR 1 | ||
| 167 | |||
| 168 | static inline void *mmc_mk_cons(void *car, void *cdr) | ||
| 169 | { | ||
| 170 | 1613178002 | return mmc_mk_box2(MMC_CONS_CTOR, car, cdr); | |
| 171 | } | ||
| 172 | |||
| 173 | static inline void *mmc_mk_some(void *x) | ||
| 174 | { | ||
| 175 | 309222650 | return mmc_mk_box1(1, x); | |
| 176 | } | ||
| 177 | |||
| 178 | static inline void *mmc__mk__some(void *x) | ||
| 179 | { | ||
| 180 | return mmc_mk_some(x); | ||
| 181 | } | ||
| 182 | |||
| 183 | extern void *mmc_mk_box_arr(mmc_sint_t _slots, mmc_uint_t ctor, void** args); | ||
| 184 | 22637070 | static inline void *mmc_mk_box_no_assign(mmc_sint_t _slots, mmc_uint_t ctor, int is_atomic) | |
| 185 | { | ||
| 186 | struct mmc_struct *p = NULL; | ||
| 187 |
2/2✓ Branch 0 taken 2802188 times.
✓ Branch 1 taken 19834882 times.
|
22637070 | if (is_atomic) |
| 188 | { | ||
| 189 | 2802188 | p = (struct mmc_struct*)mmc_alloc_words_atomic(_slots+1); | |
| 190 | } | ||
| 191 | else | ||
| 192 | { | ||
| 193 | 19834882 | p = (struct mmc_struct*)mmc_alloc_words(_slots+1); | |
| 194 | } | ||
| 195 | 22637070 | p->header = MMC_STRUCTHDR(_slots, ctor); | |
| 196 | #ifdef MMC_MK_DEBUG | ||
| 197 | fprintf(stderr, "STRUCT NO ASSIGN slots%d ctor %u\n", _slots, ctor); fflush(NULL); | ||
| 198 | #endif | ||
| 199 | 22637070 | return MMC_TAGPTR(p); | |
| 200 | } | ||
| 201 | |||
| 202 | extern modelica_boolean valueEq(modelica_metatype lhs,modelica_metatype rhs); | ||
| 203 | extern modelica_integer valueCompare(modelica_metatype lhs,modelica_metatype rhs); | ||
| 204 | |||
| 205 | extern modelica_integer valueHashMod(modelica_metatype p,modelica_integer mod); | ||
| 206 | extern void* boxptr_valueHashMod(threadData_t *,void *p, void *mod); | ||
| 207 | |||
| 208 | extern void mmc__unbox(modelica_metatype box, void* res); | ||
| 209 | |||
| 210 | #define mmc__uniontype__metarecord__typedef__equal(UT,CTOR,NFIELDS) (MMC_GETHDR(UT)==MMC_STRUCTHDR(NFIELDS+1,CTOR+3)) | ||
| 211 | |||
| 212 | extern void debug__print(void*prefix,void*any); /* For debugging */ | ||
| 213 | extern void initializeStringBuffer(void); | ||
| 214 | extern char* anyString(void*any); /* For debugging in external functions */ | ||
| 215 | extern void* mmc_anyString(void*any); /* For debugging */ | ||
| 216 | modelica_metatype mmc_gdb_listGet(threadData_t* threadData, modelica_metatype lst, modelica_integer i); /* For debugging */ | ||
| 217 | modelica_metatype mmc_gdb_arrayGet(threadData_t* threadData, modelica_metatype arr, modelica_integer i); /* For debugging */ | ||
| 218 | extern void printAny(void*any); /* For debugging */ | ||
| 219 | extern void printTypeOfAny(void*any); /* For debugging */ | ||
| 220 | extern char* getTypeOfAny(void*any, int inRecord); /* For debugging */ | ||
| 221 | extern char* getRecordElementName(void*any, int element); /* For debugging */ | ||
| 222 | extern int isOptionNone(void*any); /* For debugging */ | ||
| 223 | extern void changeStdStreamBuffer(void); /* For debugging */ | ||
| 224 | extern modelica_integer mmc_gdb_arrayLength(modelica_metatype arr); /* For debugging */ | ||
| 225 | |||
| 226 | /* Debugging functions used by OMEdit */ | ||
| 227 | typedef enum metaType | ||
| 228 | { | ||
| 229 | record_metaType = 0, | ||
| 230 | list_metaType, | ||
| 231 | option_metaType, | ||
| 232 | tuple_metaType, | ||
| 233 | array_metaType | ||
| 234 | } metaType; | ||
| 235 | |||
| 236 | extern char* getMetaTypeElement(modelica_metatype arr, modelica_integer i, metaType mt); | ||
| 237 | |||
| 238 | /* | ||
| 239 | * Generated (Meta)Records should access a static, constant value of | ||
| 240 | * the record_description structure. This means the additional cost | ||
| 241 | * of including the description is 1 word of memory and O(1) time. | ||
| 242 | * When sending structures between the compiler and generated files, | ||
| 243 | * the descriptions will be duplicated, and cost additional memory | ||
| 244 | * for each and every Values.Value copied. /sjoelund 2009-05-20 | ||
| 245 | */ | ||
| 246 | #if defined(OMC_MINIMAL_RUNTIME) | ||
| 247 | static void* mmc_mk_rcon(double d) | ||
| 248 | { | ||
| 249 | struct mmc_real *p = (struct mmc_real*)mmc_alloc_words_atomic(MMC_SIZE_DBL/MMC_SIZE_INT + 1); | ||
| 250 | mmc_prim_set_real(p, d); | ||
| 251 | p->header = MMC_REALHDR; | ||
| 252 | #ifdef MMC_MK_DEBUG | ||
| 253 | fprintf(stderr, "REAL size: %u\n", MMC_SIZE_DBL/MMC_SIZE_INT+1); fflush(NULL); | ||
| 254 | #endif | ||
| 255 | return MMC_TAGPTR(p); | ||
| 256 | } | ||
| 257 | static void* mmc_mk_modelica_array(base_array_t arr) | ||
| 258 | { | ||
| 259 | base_array_t *cpy = mmc_alloc_words(sizeof(arr)/sizeof(void*) + 1); | ||
| 260 | memcpy(cpy, &arr, sizeof(base_array_t)); | ||
| 261 | clone_base_array_spec(&arr, cpy); | ||
| 262 | /* Note: The data is hopefully not stack-allocated and can be passed this way */ | ||
| 263 | return cpy; | ||
| 264 | } | ||
| 265 | #else | ||
| 266 | void* mmc_mk_rcon(double d); | ||
| 267 | void* mmc_mk_modelica_array(base_array_t); | ||
| 268 | #endif | ||
| 269 | |||
| 270 | #include "../openmodelica.h" | ||
| 271 | #include "meta_modelica_segv.h" | ||
| 272 | #include "meta_modelica_builtin.h" | ||
| 273 | #include "../util/omc_error.h" | ||
| 274 | |||
| 275 | #if defined(__cplusplus) | ||
| 276 | } | ||
| 277 | #endif | ||
| 278 | |||
| 279 | /* adrpo: undefine _inline for mingw32 and mingw64 */ | ||
| 280 | #if defined(_inline) && (defined(__MINGW32__) || defined(__MINGW64__)) | ||
| 281 | #undef _inline | ||
| 282 | #endif | ||
| 283 | |||
| 284 | #endif | ||
| 285 |