project svgui: C compilation of res_pytest.c failed

Issue #40 invalid
Anton Midyukov created an issue

Distributv ALT Linux.

Start build in /home/antohami/gear/beremiz/beremiz/tests/svgui/build
Generating SoftPLC IEC-61131 ST/IL/SFC code...
Compiling IEC Program into C code...
Extracting Located Variables...
C code generated successfully.
PLC :
   [CC]  plc_main.c -> plc_main.o
/home/antohami/gear/beremiz/beremiz/tests/svgui/build/plc_main.c: In function 'CheckFilehash':
/home/antohami/gear/beremiz/beremiz/tests/svgui/build/plc_main.c:438:2: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result]
  fread(&size, sizeof(size), 1, retain_buffer);
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/antohami/gear/beremiz/beremiz/tests/svgui/build/plc_main.c:444:3: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result]
   fread(&file_digit, sizeof(char), 1, retain_buffer);
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/antohami/gear/beremiz/beremiz/tests/svgui/build/plc_main.c: In function 'Remind':
/home/antohami/gear/beremiz/beremiz/tests/svgui/build/plc_main.c:648:2: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result]
  fread((void *)p, count, 1, retain_buffer);
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   [CC]  plc_debugger.c -> plc_debugger.o
py_ext :
   [CC]  py_ext.c -> py_ext.o
PLC :
   [CC]  config.c -> config.o
   [CC]  res_pytest.c -> res_pytest.o
In file included from /usr/lib/matiec/C/iec_std_lib.h:749:0,
                 from /home/antohami/gear/beremiz/beremiz/tests/svgui/build/res_pytest.c:6:
/home/antohami/gear/beremiz/beremiz/tests/svgui/build/POUS.c: In function '__MAIN_PYTEST_ADD__INT__INT1':
/usr/lib/matiec/C/iec_std_functions.h:702:68: error: 'ADD__INT__INTCLEAR_TYPECAST' undeclared (first use in this function); did you mean 'ADD__INT__INT_VAR'?
 #define ADD__INT__INT(...)     ARITH_OPERATION__TYPE__TYPE(EN_PFX, ADD__INT__INT,       __VA_ARGS__)
                                                                    ^
/usr/lib/matiec/C/iec_std_functions.h:624:41: note: in definition of macro 'ARITH_OPERATION_COND_IDENT'
 #define ARITH_OPERATION_COND_IDENT(...) __VA_ARGS__
                                         ^~~~~~~~~~~
/usr/lib/matiec/C/iec_std_functions.h:663:69: note: in expansion of macro 'ARITH_OPERATION_CALL__'
 #define ARITH_OPERATION_CALL_( EN, ENO, FNAME, PARAM_COUNT, ...)    ARITH_OPERATION_CALL__(EN, ENO, FNAME, PARAM_COUNT, __VA_ARGS__)
                                                                     ^~~~~~~~~~~~~~~~~~~~~~
/usr/lib/matiec/C/iec_std_functions.h:664:69: note: in expansion of macro 'ARITH_OPERATION_CALL_'
 #define ARITH_OPERATION_CALL(  EN, ENO, FNAME, PARAM_COUNT, ...)    ARITH_OPERATION_CALL_(EN, ENO, FNAME, CLEAR_TYPECAST PARAM_COUNT, __VA_ARGS__)
                                                                     ^~~~~~~~~~~~~~~~~~~~~
/usr/lib/matiec/C/iec_std_functions.h:671:80: note: in expansion of macro 'ARITH_OPERATION_CALL'
 #define ARITH_OPERATION__TYPE__TYPE_EN(FNAME, EN, ENO, PARAM_COUNT, ...)       ARITH_OPERATION_CALL(EN, ENO, FNAME, PARAM_COUNT, __VA_ARGS__)
                                                                                ^~~~~~~~~~~~~~~~~~~~
/usr/lib/matiec/C/iec_std_functions.h:674:62: note: in expansion of macro 'ARITH_OPERATION__TYPE__TYPE_EN'
 #define ARITH_OPERATION__TYPE__TYPE_(PFX, ...)               ARITH_OPERATION__TYPE__TYPE##PFX(__VA_ARGS__)
                                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/matiec/C/iec_std_functions.h:675:62: note: in expansion of macro 'ARITH_OPERATION__TYPE__TYPE_'
 #define ARITH_OPERATION__TYPE__TYPE( PFX, ...)               ARITH_OPERATION__TYPE__TYPE_(PFX, __VA_ARGS__)
                                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/matiec/C/iec_std_functions.h:702:32: note: in expansion of macro 'ARITH_OPERATION__TYPE__TYPE'
 #define ADD__INT__INT(...)     ARITH_OPERATION__TYPE__TYPE(EN_PFX, ADD__INT__INT,       __VA_ARGS__)
                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/antohami/gear/beremiz/beremiz/tests/svgui/build/POUS.c:478:11: note: in expansion of macro 'ADD__INT__INT'
   __res = ADD__INT__INT(EN,
           ^~~~~~~~~~~~~
/usr/lib/matiec/C/iec_std_functions.h:702:68: note: each undeclared identifier is reported only once for each function it appears in
 #define ADD__INT__INT(...)     ARITH_OPERATION__TYPE__TYPE(EN_PFX, ADD__INT__INT,       __VA_ARGS__)
                                                                    ^
/usr/lib/matiec/C/iec_std_functions.h:624:41: note: in definition of macro 'ARITH_OPERATION_COND_IDENT'
 #define ARITH_OPERATION_COND_IDENT(...) __VA_ARGS__
                                         ^~~~~~~~~~~
/usr/lib/matiec/C/iec_std_functions.h:663:69: note: in expansion of macro 'ARITH_OPERATION_CALL__'
 #define ARITH_OPERATION_CALL_( EN, ENO, FNAME, PARAM_COUNT, ...)    ARITH_OPERATION_CALL__(EN, ENO, FNAME, PARAM_COUNT, __VA_ARGS__)
                                                                     ^~~~~~~~~~~~~~~~~~~~~~
/usr/lib/matiec/C/iec_std_functions.h:664:69: note: in expansion of macro 'ARITH_OPERATION_CALL_'
 #define ARITH_OPERATION_CALL(  EN, ENO, FNAME, PARAM_COUNT, ...)    ARITH_OPERATION_CALL_(EN, ENO, FNAME, CLEAR_TYPECAST PARAM_COUNT, __VA_ARGS__)
                                                                     ^~~~~~~~~~~~~~~~~~~~~
/usr/lib/matiec/C/iec_std_functions.h:671:80: note: in expansion of macro 'ARITH_OPERATION_CALL'
 #define ARITH_OPERATION__TYPE__TYPE_EN(FNAME, EN, ENO, PARAM_COUNT, ...)       ARITH_OPERATION_CALL(EN, ENO, FNAME, PARAM_COUNT, __VA_ARGS__)
                                                                                ^~~~~~~~~~~~~~~~~~~~
/usr/lib/matiec/C/iec_std_functions.h:674:62: note: in expansion of macro 'ARITH_OPERATION__TYPE__TYPE_EN'
 #define ARITH_OPERATION__TYPE__TYPE_(PFX, ...)               ARITH_OPERATION__TYPE__TYPE##PFX(__VA_ARGS__)
                                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/matiec/C/iec_std_functions.h:675:62: note: in expansion of macro 'ARITH_OPERATION__TYPE__TYPE_'
 #define ARITH_OPERATION__TYPE__TYPE( PFX, ...)               ARITH_OPERATION__TYPE__TYPE_(PFX, __VA_ARGS__)
                                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/matiec/C/iec_std_functions.h:702:32: note: in expansion of macro 'ARITH_OPERATION__TYPE__TYPE'
 #define ADD__INT__INT(...)     ARITH_OPERATION__TYPE__TYPE(EN_PFX, ADD__INT__INT,       __VA_ARGS__)
                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/antohami/gear/beremiz/beremiz/tests/svgui/build/POUS.c:478:11: note: in expansion of macro 'ADD__INT__INT'
   __res = ADD__INT__INT(EN,
           ^~~~~~~~~~~~~
/home/antohami/gear/beremiz/beremiz/tests/svgui/build/POUS.c:480:5: error: expected ';' before '__PARAM_COUNT'
     __PARAM_COUNT,
     ^
"gcc" -c "/home/antohami/gear/beremiz/beremiz/tests/svgui/build/res_pytest.c" -o "/home/antohami/gear/beremiz/beremiz/tests/svgui/build/res_pytest.o" -O2  -fPIC "-I/usr/lib/matiec/C" -Wno-unused-function
/usr/lib/matiec/C/iec_std_functions.h:624:41: note: in definition of macro 'ARITH_OPERATION_COND_IDENT'
exited with status 1 (pid 7535)
 #define ARITH_OPERATION_COND_IDENT(...) __VA_ARGS__
                                         ^~~~~~~~~~~
/usr/lib/matiec/C/iec_std_functions.h:663:69: note: in expansion of macro 'ARITH_OPERATION_CALL__'
 #define ARITH_OPERATION_CALL_( EN, ENO, FNAME, PARAM_COUNT, ...)    ARITH_OPERATION_CALL__(EN, ENO, FNAME, PARAM_COUNT, __VA_ARGS__)
                                                                     ^~~~~~~~~~~~~~~~~~~~~~
/usr/lib/matiec/C/iec_std_functions.h:664:69: note: in expansion of macro 'ARITH_OPERATION_CALL_'
 #define ARITH_OPERATION_CALL(  EN, ENO, FNAME, PARAM_COUNT, ...)    ARITH_OPERATION_CALL_(EN, ENO, FNAME, CLEAR_TYPECAST PARAM_COUNT, __VA_ARGS__)
                                                                     ^~~~~~~~~~~~~~~~~~~~~
/usr/lib/matiec/C/iec_std_functions.h:671:80: note: in expansion of macro 'ARITH_OPERATION_CALL'
 #define ARITH_OPERATION__TYPE__TYPE_EN(FNAME, EN, ENO, PARAM_COUNT, ...)       ARITH_OPERATION_CALL(EN, ENO, FNAME, PARAM_COUNT, __VA_ARGS__)
                                                                                ^~~~~~~~~~~~~~~~~~~~
/usr/lib/matiec/C/iec_std_functions.h:674:62: note: in expansion of macro 'ARITH_OPERATION__TYPE__TYPE_EN'
 #define ARITH_OPERATION__TYPE__TYPE_(PFX, ...)               ARITH_OPERATION__TYPE__TYPE##PFX(__VA_ARGS__)
                                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/matiec/C/iec_std_functions.h:675:62: note: in expansion of macro 'ARITH_OPERATION__TYPE__TYPE_'
 #define ARITH_OPERATION__TYPE__TYPE( PFX, ...)               ARITH_OPERATION__TYPE__TYPE_(PFX, __VA_ARGS__)
                                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/matiec/C/iec_std_functions.h:702:32: note: in expansion of macro 'ARITH_OPERATION__TYPE__TYPE'
 #define ADD__INT__INT(...)     ARITH_OPERATION__TYPE__TYPE(EN_PFX, ADD__INT__INT,       __VA_ARGS__)
                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/antohami/gear/beremiz/beremiz/tests/svgui/build/POUS.c:478:11: note: in expansion of macro 'ADD__INT__INT'
   __res = ADD__INT__INT(EN,
           ^~~~~~~~~~~~~
C compilation of res_pytest.c failed.
C Build failed.

Comments (3)

  1. Andrey Skvortsov

    Hi Anton,

    as I've explained you in the answer to your first e-mail from 18.08, this is matiec regression and not Beremiz problem. You can report this problem to matiec.

    Regression is caused by 0b275a2 improve performance of some extensible Standard Functions (ADD, MUL, AND, OR, XOR) -- increase hardcoded limit to 499 2228799 improve performance of some extensible Standard Functions (ADD, MUL, AND, OR, XOR) -- Add comments!! ce81fa6 improve performance of some extensible Standard Functions (ADD, MUL, AND, OR, XOR)"

    You have to options here: use matiec version prior these commits or revert them.

  2. Log in to comment