Skip to content

Commit 42aecfb

Browse files
committed
Additional fixes to #3137
- fix FMI generation and import for +target=msvc - build static cminpack.lib for msvc - export equations in Model_05evt.c - compile fmil msvc (unfortunately static does not work for some reason) - fix ansi C in the FMI interfaces files - more CMakeLists.txt fixes in SimulationRuntime/c/ git-svn-id: https://openmodelica.org/svn/OpenModelica/trunk@24543 f25d12d1-65f4-0310-ae8a-bbce733d8d8e
1 parent 7bdfc0d commit 42aecfb

File tree

11 files changed

+72
-36
lines changed

11 files changed

+72
-36
lines changed

Compiler/Template/CodegenC.tpl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3052,6 +3052,7 @@ template functionZeroCrossing(list<ZeroCrossing> zeroCrossings, list<SimEqSystem
30523052
let eqs = (equationsForZeroCrossings |> eq =>
30533053
equation_(eq, contextSimulationNonDiscrete, &varDecls, &tmp, modelNamePrefix)
30543054
;separator="\n")
3055+
let forwardEqs = equationsForZeroCrossings |> eq => equationForward_(eq,contextSimulationNonDiscrete,modelNamePrefix); separator="\n"
30553056

30563057
let &varDecls2 = buffer ""
30573058
let zeroCrossingsCode = zeroCrossingsTpl(zeroCrossings, &varDecls2, &auxFunction)
@@ -3084,6 +3085,9 @@ template functionZeroCrossing(list<ZeroCrossing> zeroCrossings, list<SimEqSystem
30843085
<<
30853086
<%desc%>
30863087

3088+
/* forwarded equations */
3089+
<%forwardEqs%>
3090+
30873091
int <%symbolName(modelNamePrefix,"function_ZeroCrossingsEquations")%>(DATA *data)
30883092
{
30893093
TRACE_PUSH

Compiler/Template/CodegenFMU.tpl

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -820,10 +820,12 @@ case SIMCODE(__) then
820820
821821
// implementation of the Model Exchange functions
822822
<%if isFMIVersion20(FMUVersion) then
823-
'#define fmu2_model_interface_setupDataStruc <%symbolName(modelNamePrefix(simCode),"setupDataStruc")%>
823+
' extern void <%symbolName(modelNamePrefix(simCode),"setupDataStruc")%>(DATA *data);
824+
#define fmu2_model_interface_setupDataStruc <%symbolName(modelNamePrefix(simCode),"setupDataStruc")%>
824825
#include "fmu2_model_interface.c"'
825826
else
826-
'#define fmu1_model_interface_setupDataStruc <%symbolName(modelNamePrefix(simCode),"setupDataStruc")%>
827+
' extern void <%symbolName(modelNamePrefix(simCode),"setupDataStruc")%>(DATA *data);
828+
#define fmu1_model_interface_setupDataStruc <%symbolName(modelNamePrefix(simCode),"setupDataStruc")%>
827829
#include "fmu1_model_interface.c"'%>
828830
829831
<%setDefaultStartValues(modelInfo)%>
@@ -1682,28 +1684,28 @@ case SIMCODE(modelInfo=MODELINFO(__), makefileParams=MAKEFILE_PARAMS(__), simula
16821684
# /I - Include Directories
16831685
# /DNOMINMAX - Define NOMINMAX (does what it says)
16841686
# /TP - Use C++ Compiler
1685-
CFLAGS=/Od /ZI /EHa /fp:except /I"<%makefileParams.omhome%>/include/omc/c" <%if isFMIVersion20(FMUVersion) then '/I"<%makefileParams.omhome%>/include/omc/c/fmi2"' else '/I"<%makefileParams.omhome%>/include/omc/c/fmi1"'%> /I. /DNOMINMAX /TP /DNO_INTERACTIVE_DEPENDENCY
1687+
CFLAGS=/Od /ZI /EHa /fp:except /I"<%makefileParams.omhome%>/include/omc/c" /I"<%makefileParams.omhome%>/include/omc/msvc/" <%if isFMIVersion20(FMUVersion) then '/I"<%makefileParams.omhome%>/include/omc/c/fmi2"' else '/I"<%makefileParams.omhome%>/include/omc/c/fmi1"'%> /I. /DNOMINMAX /TP /DNO_INTERACTIVE_DEPENDENCY
16861688

16871689
# /ZI enable Edit and Continue debug info
16881690
CDFLAGS = /ZI
16891691

16901692
# /MD - link with MSVCRT.LIB
16911693
# /link - [linker options and libraries]
16921694
# /LIBPATH: - Directories where libs can be found
1693-
LDFLAGS=/MD /link /dll /debug /pdb:"<%fileNamePrefix%>.pdb" /LIBPATH:"<%makefileParams.omhome%>/lib/omc/msvc/" /LIBPATH:"<%makefileParams.omhome%>/lib/omc/msvc/release/" <%dirExtra%> <%libsPos1%> <%libsPos2%> f2c.lib initialization.lib libexpat.lib math-support.lib meta.lib ModelicaExternalC.lib results.lib simulation.lib solver.lib sundials_kinsol.lib sundials_nvecserial.lib util.lib lapack_win32_MT.lib
1695+
LDFLAGS=/MD /link /dll /debug /pdb:"<%fileNamePrefix%>.pdb" /LIBPATH:"<%makefileParams.omhome%>/lib/omc/msvc/" /LIBPATH:"<%makefileParams.omhome%>/lib/omc/msvc/release/" <%dirExtra%> <%libsPos1%> <%libsPos2%> f2c.lib initialization.lib libexpat.lib math-support.lib meta.lib results.lib simulation.lib solver.lib sundials_kinsol.lib sundials_nvecserial.lib util.lib lapack_win32_MT.lib lis.lib gc-lib.lib user32.lib pthreadVC2.lib wsock32.lib cminpack.lib umfpack.lib amd.lib
16941696

16951697
# /MDd link with MSVCRTD.LIB debug lib
16961698
# lib names should not be appended with a d just switch to lib/omc/msvc/debug
16971699

16981700

16991701
FILEPREFIX=<%fileNamePrefix%>
1700-
MAINFILE=$(FILEPREFIX).c
1701-
MAINOBJ=$(FILEPREFIX).obj
1702+
MAINFILE=<%fileNamePrefix%>_FMU.c
1703+
MAINOBJ=<%fileNamePrefix%>_FMU.obj
17021704
CFILES=<%fileNamePrefix%>.c <%fileNamePrefix%>_functions.c <%fileNamePrefix%>_records.c \
17031705
<%fileNamePrefix%>_01exo.c <%fileNamePrefix%>_02nls.c <%fileNamePrefix%>_03lsy.c <%fileNamePrefix%>_04set.c <%fileNamePrefix%>_05evt.c <%fileNamePrefix%>_06inz.c <%fileNamePrefix%>_07dly.c \
17041706
<%fileNamePrefix%>_08bnd.c <%fileNamePrefix%>_09alg.c <%fileNamePrefix%>_10asr.c <%fileNamePrefix%>_11mix.c <%fileNamePrefix%>_12jac.c <%fileNamePrefix%>_13opt.c <%fileNamePrefix%>_14lnz.c
17051707
OFILES=$(CFILES:.c=.obj)
1706-
GENERATEDFILES=$(MAINFILE) <%fileNamePrefix%>_FMU.makefile <%fileNamePrefix%>_literals.h <%fileNamePrefix%>_functions.h <%fileNamePrefix%>_11mix.h <%fileNamePrefix%>_12jac.h <%fileNamePrefix%>_13opt.h $(CFILES)
1708+
GENERATEDFILES=$(MAINFILE) <%fileNamePrefix%>_FMU.makefile <%fileNamePrefix%>_literals.h <%fileNamePrefix%>_model.h <%fileNamePrefix%>_includes.h <%fileNamePrefix%>_functions.h <%fileNamePrefix%>_11mix.h <%fileNamePrefix%>_12jac.h <%fileNamePrefix%>_13opt.h <%fileNamePrefix%>_init.c <%fileNamePrefix%>_info.c $(CFILES) <%fileNamePrefix%>_FMU.libs
17071709

17081710
$(FILEPREFIX)$(FMUEXT): $(FILEPREFIX)$(DLLEXT) modelDescription.xml
17091711
if not exist <%fmudirname%>\binaries\$(PLATWIN32) mkdir <%fmudirname%>\binaries\$(PLATWIN32)
@@ -1721,11 +1723,14 @@ case SIMCODE(modelInfo=MODELINFO(__), makefileParams=MAKEFILE_PARAMS(__), simula
17211723
copy <%fileNamePrefix%>_functions.h <%fmudirname%>\sources\<%fileNamePrefix%>_functions.h
17221724
copy <%fileNamePrefix%>_records.c <%fmudirname%>\sources\<%fileNamePrefix%>_records.c
17231725
copy modelDescription.xml <%fmudirname%>\modelDescription.xml
1724-
copy <%stringReplace(makefileParams.omhome,"/","\\")%>\lib\omc\libexec\gnuplot\binary\libexpat-1.dll <%fmudirname%>\binaries\$(PLATWIN32)
1726+
copy <%stringReplace(makefileParams.omhome,"/","\\")%>\bin\SUNDIALS_KINSOL.DLL <%fmudirname%>\binaries\$(PLATWIN32)
1727+
copy <%stringReplace(makefileParams.omhome,"/","\\")%>\bin\SUNDIALS_NVECSERIAL.DLL <%fmudirname%>\binaries\$(PLATWIN32)
1728+
copy <%stringReplace(makefileParams.omhome,"/","\\")%>\bin\LAPACK_WIN32_MT.DLL <%fmudirname%>\binaries\$(PLATWIN32)
1729+
copy <%stringReplace(makefileParams.omhome,"/","\\")%>\bin\pthreadVC2.dll <%fmudirname%>\binaries\$(PLATWIN32)
17251730
cd <%fmudirname%>
1726-
"$(MINGW)\bin\zip.exe" -r ../<%fileNamePrefix%>.fmu *
1731+
"zip.exe" -r ../<%fileNamePrefix%>.fmu *
17271732
cd ..
1728-
rmdir /S /Q <%fmudirname%>
1733+
rm -rf <%fmudirname%>
17291734

17301735
$(FILEPREFIX)$(DLLEXT): $(MAINOBJ) $(CFILES)
17311736
$(CXX) /Fe$(FILEPREFIX)$(DLLEXT) $(MAINFILE) $(FILEPREFIX)_FMU.c $(CFILES) $(CFLAGS) $(LDFLAGS)

SimulationRuntime/c/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ ADD_SUBDIRECTORY(math-support)
9292
ADD_SUBDIRECTORY(meta)
9393
ADD_SUBDIRECTORY(simulation)
9494
ADD_SUBDIRECTORY(util)
95+
ADD_SUBDIRECTORY(fmi)
9596

9697
# -------------------------------------------------------------
9798
# MACRO definitions
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
2+
INCLUDE_DIRECTORIES("${OMCTRUNCHOME}/3rdParty/FMIL/install_msvc/include")
3+
4+
# Quellen und Header
5+
SET(fmi_sources FMI1CoSimulation.c FMI1Common.c FMI1ModelExchange.c FMI2Common.c FMI2ModelExchange.c FMICommon.c)
6+
7+
SET(fmi_headers FMI1Common.h FMI2Common.h FMICommon.h)
8+
9+
# Library OpenModelicaFMIRuntimeC
10+
ADD_LIBRARY(OpenModelicaFMIRuntimeC ${fmi_sources} ${fmi_headers})
11+
12+
# Install
13+
INSTALL(TARGETS OpenModelicaFMIRuntimeC
14+
ARCHIVE DESTINATION lib/omc)
15+

SimulationRuntime/c/fmi/FMI1CoSimulation.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ void* FMI1CoSimulationConstructor_OMC(int fmi_log_level, char* working_directory
4343
double timeout, int visible, int interactive, double tStart, int stopTimeDefined, double tStop)
4444
{
4545
FMI1CoSimulation* FMI1CS = malloc(sizeof(FMI1CoSimulation));
46+
jm_status_enu_t status, instantiateSlaveStatus;
47+
fmi1_status_t debugLoggingStatus;
4648
FMI1CS->FMILogLevel = fmi_log_level;
4749
/* JM callbacks */
4850
FMI1CS->JMCallbacks.malloc = malloc;
@@ -67,7 +69,7 @@ void* FMI1CoSimulationConstructor_OMC(int fmi_log_level, char* working_directory
6769
return 0;
6870
}
6971
/* Load the binary (dll/so) */
70-
jm_status_enu_t status = fmi1_import_create_dllfmu(FMI1CS->FMIImportInstance, FMI1CS->FMICallbackFunctions, 0);
72+
status = fmi1_import_create_dllfmu(FMI1CS->FMIImportInstance, FMI1CS->FMICallbackFunctions, 0);
7173
if (status == jm_status_error) {
7274
ModelicaFormatError("Loading of FMU dynamic link library failed with status : %s\n", jm_log_level_to_string(status));
7375
return 0;
@@ -81,13 +83,13 @@ void* FMI1CoSimulationConstructor_OMC(int fmi_log_level, char* working_directory
8183
FMI1CS->FMITimeOut = timeout;
8284
FMI1CS->FMIVisible = visible;
8385
FMI1CS->FMIInteractive = interactive;
84-
jm_status_enu_t instantiateSlaveStatus = fmi1_import_instantiate_slave(FMI1CS->FMIImportInstance, FMI1CS->FMIInstanceName, FMI1CS->FMIFmuLocation, FMI1CS->FMIMimeType, FMI1CS->FMITimeOut, FMI1CS->FMIVisible, FMI1CS->FMIInteractive);
86+
instantiateSlaveStatus = fmi1_import_instantiate_slave(FMI1CS->FMIImportInstance, FMI1CS->FMIInstanceName, FMI1CS->FMIFmuLocation, FMI1CS->FMIMimeType, FMI1CS->FMITimeOut, FMI1CS->FMIVisible, FMI1CS->FMIInteractive);
8587
if (instantiateSlaveStatus == jm_status_error) {
8688
ModelicaFormatError("fmiInstantiateSlave failed with status : %s\n", jm_log_level_to_string(instantiateSlaveStatus));
8789
return 0;
8890
}
8991
FMI1CS->FMIDebugLogging = debugLogging;
90-
fmi1_status_t debugLoggingStatus = fmi1_import_set_debug_logging(FMI1CS->FMIImportInstance, FMI1CS->FMIDebugLogging);
92+
debugLoggingStatus = fmi1_import_set_debug_logging(FMI1CS->FMIImportInstance, FMI1CS->FMIDebugLogging);
9193
if (debugLoggingStatus != fmi1_status_ok && debugLoggingStatus != fmi1_status_warning) {
9294
ModelicaFormatMessage("fmiSetDebugLogging failed with status : %s\n", fmi1_status_to_string(debugLoggingStatus));
9395
}

SimulationRuntime/c/fmi/FMI1ModelExchange.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ extern "C" {
4242
void* FMI1ModelExchangeConstructor_OMC(int fmi_log_level, char* working_directory, char* instanceName, int debugLogging)
4343
{
4444
FMI1ModelExchange* FMI1ME = malloc(sizeof(FMI1ModelExchange));
45+
jm_status_enu_t status, instantiateModelStatus;
46+
fmi1_status_t debugLoggingStatus;
4547
FMI1ME->FMILogLevel = fmi_log_level;
4648
/* JM callbacks */
4749
FMI1ME->JMCallbacks.malloc = malloc;
@@ -65,20 +67,20 @@ void* FMI1ModelExchangeConstructor_OMC(int fmi_log_level, char* working_director
6567
return 0;
6668
}
6769
/* Load the binary (dll/so) */
68-
jm_status_enu_t status = fmi1_import_create_dllfmu(FMI1ME->FMIImportInstance, FMI1ME->FMICallbackFunctions, 0);
70+
status = fmi1_import_create_dllfmu(FMI1ME->FMIImportInstance, FMI1ME->FMICallbackFunctions, 0);
6971
if (status == jm_status_error) {
7072
ModelicaFormatError("Loading of FMU dynamic link library failed with status : %s\n", jm_log_level_to_string(status));
7173
return 0;
7274
}
7375
FMI1ME->FMIInstanceName = (char*) malloc(strlen(instanceName)+1);
7476
strcpy(FMI1ME->FMIInstanceName, instanceName);
7577
FMI1ME->FMIDebugLogging = debugLogging;
76-
jm_status_enu_t instantiateModelStatus = fmi1_import_instantiate_model(FMI1ME->FMIImportInstance, FMI1ME->FMIInstanceName);
78+
instantiateModelStatus = fmi1_import_instantiate_model(FMI1ME->FMIImportInstance, FMI1ME->FMIInstanceName);
7779
if (instantiateModelStatus == jm_status_error) {
7880
ModelicaFormatError("fmiInstantiateModel failed with status : %s\n", jm_log_level_to_string(instantiateModelStatus));
7981
return 0;
8082
}
81-
fmi1_status_t debugLoggingStatus = fmi1_import_set_debug_logging(FMI1ME->FMIImportInstance, FMI1ME->FMIDebugLogging);
83+
debugLoggingStatus = fmi1_import_set_debug_logging(FMI1ME->FMIImportInstance, FMI1ME->FMIDebugLogging);
8284
if (debugLoggingStatus != fmi1_status_ok && debugLoggingStatus != fmi1_status_warning) {
8385
ModelicaFormatMessage("fmiSetDebugLogging failed with status : %s\n", fmi1_status_to_string(debugLoggingStatus));
8486
}

SimulationRuntime/c/fmi/FMI2Common.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,6 @@ void fmi2SetInteger_OMC(void* in_fmi2, int numberOfValueReferences, double* inte
173173
void fmi2GetBoolean_OMC(void* in_fmi2, int numberOfValueReferences, double* booleanValuesReferences, double flowStatesInput, signed char* booleanValues, int fmiType)
174174
{
175175
if (fmiType == 1) {
176-
int i;
177176
FMI2ModelExchange* FMI2ME = (FMI2ModelExchange*)in_fmi2;
178177
fmi2_value_reference_t* valuesReferences_int = real_to_fmi2_value_reference(numberOfValueReferences, booleanValuesReferences);
179178
int* fmiBoolean = malloc(sizeof(int)*numberOfValueReferences);
@@ -201,8 +200,9 @@ void fmi2SetBoolean_OMC(void* in_fmi2, int numberOfValueReferences, double* bool
201200
FMI2ModelExchange* FMI2ME = (FMI2ModelExchange*)in_fmi2;
202201
fmi2_value_reference_t* valuesReferences_int = real_to_fmi2_value_reference(numberOfValueReferences, booleanValuesReferences);
203202
int* fmiBoolean = malloc(sizeof(int)*numberOfValueReferences);
203+
fmi2_status_t status;
204204
signedchar_to_int(booleanValues, fmiBoolean, numberOfValueReferences);
205-
fmi2_status_t status = fmi2_import_set_boolean(FMI2ME->FMIImportInstance, valuesReferences_int, numberOfValueReferences, fmiBoolean);
205+
status = fmi2_import_set_boolean(FMI2ME->FMIImportInstance, valuesReferences_int, numberOfValueReferences, fmiBoolean);
206206
free(fmiBoolean);
207207
free(valuesReferences_int);
208208
if (status != fmi2_status_ok && status != fmi2_status_warning) {

SimulationRuntime/c/fmi/FMI2ModelExchange.c

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ extern "C" {
4242
void* FMI2ModelExchangeConstructor_OMC(int fmi_log_level, char* working_directory, char* instanceName, int debugLogging)
4343
{
4444
FMI2ModelExchange* FMI2ME = malloc(sizeof(FMI2ModelExchange));
45+
jm_status_enu_t status, instantiateModelStatus;
4546
FMI2ME->FMILogLevel = fmi_log_level;
4647
/* JM callbacks */
4748
FMI2ME->JMCallbacks.malloc = malloc;
@@ -66,15 +67,15 @@ void* FMI2ModelExchangeConstructor_OMC(int fmi_log_level, char* working_director
6667
FMI2ME->FMICallbackFunctions.freeMemory = free;
6768
FMI2ME->FMICallbackFunctions.componentEnvironment = FMI2ME->FMIImportInstance;
6869
/* Load the binary (dll/so) */
69-
jm_status_enu_t status = fmi2_import_create_dllfmu(FMI2ME->FMIImportInstance, fmi2_import_get_fmu_kind(FMI2ME->FMIImportInstance), &FMI2ME->FMICallbackFunctions);
70+
status = fmi2_import_create_dllfmu(FMI2ME->FMIImportInstance, fmi2_import_get_fmu_kind(FMI2ME->FMIImportInstance), &FMI2ME->FMICallbackFunctions);
7071
if (status == jm_status_error) {
7172
ModelicaFormatError("Loading of FMU dynamic link library failed with status : %s\n", jm_log_level_to_string(status));
7273
return 0;
7374
}
7475
FMI2ME->FMIInstanceName = (char*) malloc(strlen(instanceName)+1);
7576
strcpy(FMI2ME->FMIInstanceName, instanceName);
7677
FMI2ME->FMIDebugLogging = debugLogging;
77-
jm_status_enu_t instantiateModelStatus = fmi2_import_instantiate(FMI2ME->FMIImportInstance, FMI2ME->FMIInstanceName, fmi2_model_exchange, NULL, fmi2_false);
78+
instantiateModelStatus = fmi2_import_instantiate(FMI2ME->FMIImportInstance, FMI2ME->FMIInstanceName, fmi2_model_exchange, NULL, fmi2_false);
7879
if (instantiateModelStatus == jm_status_error) {
7980
ModelicaFormatError("fmi2InstantiateModel failed with status : %s\n", jm_log_level_to_string(instantiateModelStatus));
8081
return 0;
@@ -83,13 +84,15 @@ void* FMI2ModelExchangeConstructor_OMC(int fmi_log_level, char* working_director
8384
if (FMI2ME->FMIDebugLogging) {
8485
int i;
8586
size_t categoriesSize = 0;
87+
fmi2_status_t debugLoggingStatus;
88+
fmi2_string_t *categories;
8689
/* Read the log categories size */
8790
categoriesSize = fmi2_import_get_log_categories_num(FMI2ME->FMIImportInstance);
88-
fmi2_string_t categories[categoriesSize];
91+
categories = (fmi2_string_t*)malloc(categoriesSize*sizeof(fmi2_string_t));
8992
for (i = 0 ; i < categoriesSize ; i++) {
9093
categories[i] = fmi2_import_get_log_category(FMI2ME->FMIImportInstance, i);
9194
}
92-
fmi2_status_t debugLoggingStatus = fmi2_import_set_debug_logging(FMI2ME->FMIImportInstance, FMI2ME->FMIDebugLogging, categoriesSize, categories);
95+
debugLoggingStatus = fmi2_import_set_debug_logging(FMI2ME->FMIImportInstance, FMI2ME->FMIDebugLogging, categoriesSize, categories);
9396
if (debugLoggingStatus != fmi2_status_ok && debugLoggingStatus != fmi2_status_warning) {
9497
ModelicaFormatMessage("fmi2SetDebugLogging failed with status : %s\n", fmi1_status_to_string(debugLoggingStatus));
9598
}

SimulationRuntime/c/util/CMakeLists.txt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,15 @@
22
SET(util_sources base_array.c boolean_array.c omc_error.c division.c index_spec.c
33
integer_array.c java_interface.c libcsv.c list.c memory_pool.c modelica_string.c
44
read_write.c read_matlab4.c read_csv.c real_array.c ringbuffer.c
5-
rtclock.c simulation_options.c string_array.c utility.c varinfo.c omc_msvc.c OldModelicaTables.c cJSON.o omc_mmap.c)
5+
rtclock.c simulation_options.c string_array.c utility.c varinfo.c omc_msvc.c OldModelicaTables.c cJSON.o omc_mmap.c
6+
ModelicaUtilities.c)
67

78

89
SET(util_headers base_array.h boolean_array.h division.h omc_error.h index_spec.h integer_array.h
910
java_interface.h jni.h jni_md.h jni_md_solaris.h jni_md_windows.h list.h memory_pool.h
1011
modelica.h modelica_string.h read_write.h read_matlab4.h real_array.h
11-
ringbuffer.h rtclock.h simulation_options.h string_array.h utility.h varinfo.h omc_mmap.h)
12+
ringbuffer.h rtclock.h simulation_options.h string_array.h utility.h varinfo.h omc_mmap.h
13+
../ModelicaUtilities.h)
1214

1315
if(MSVC)
1416
INCLUDE_DIRECTORIES(${OMCTRUNCHOME}/3rdParty/regex-0.12)

SimulationRuntime/c/util/ModelicaUtilities.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,8 @@ void OpenModelica_Simulation_ModelicaVFormatError(const char*string, va_list arg
6363
va_throwStreamPrint(NULL, string, args);
6464
}
6565

66-
MODELICA_NORETURN void (*OpenModelica_ModelicaError)(const char*) MODELICA_NORETURNATTR = OpenModelica_Simulation_ModelicaError;
67-
MODELICA_NORETURN void (*OpenModelica_ModelicaVFormatError)(const char*,va_list) MODELICA_NORETURNATTR = OpenModelica_Simulation_ModelicaVFormatError;
66+
void (*OpenModelica_ModelicaError)(const char*) MODELICA_NORETURNATTR = OpenModelica_Simulation_ModelicaError;
67+
void (*OpenModelica_ModelicaVFormatError)(const char*,va_list) MODELICA_NORETURNATTR = OpenModelica_Simulation_ModelicaVFormatError;
6868

6969
void ModelicaError(const char* string) {
7070
OpenModelica_ModelicaError(string);

0 commit comments

Comments
 (0)