Skip to content

Conversation

@voedipus
Copy link
Contributor

No description provided.

@MichalPrincNXP MichalPrincNXP self-assigned this Jul 18, 2025
@MichalPrincNXP
Copy link
Member

Hello @voedipus , thanks for this PR. As we currently do not face an erpcgen build issue could you provide more details what compiler are you using and why the proposed change is needed? Thank you.

@voedipus
Copy link
Contributor Author

voedipus commented Jul 18, 2025

@MichalPrincNXP I am using GCC 15.1.1 on arch linux.
Build log:

voedipus@venus:erpc$ cmake -B build
-- The C compiler identification is GNU 15.1.1
-- The CXX compiler identification is GNU 15.1.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Python3: /usr/bin/python (found suitable version "3.13.5", minimum required is "3.8") found components: Interpreter
Parsing /home/voedipus/Code/learning/erpc/Kconfig
Loaded configuration '/home/voedipus/Code/learning/erpc/prj.conf'
Configuration saved to '/home/voedipus/Code/learning/erpc/build/.config'
Kconfig header saved to '/home/voedipus/Code/learning/erpc/build/kconfig/include/generated/autoconf.h'
-- Configuring done (0.8s)
-- Generating done (0.0s)
-- Build files have been written to: /home/voedipus/Code/learning/erpc/build
voedipus@venus:erpc$ cd build/
voedipus@venus:build$ make -j16
[  3%] Generating c_server_source.template -> c_server_source.c
[  4%] Generating c_crc.template -> c_crc.c
[  8%] Generating cpp_common_functions.template -> cpp_common_functions.c
[ 10%] Generating c_common_header.template -> c_common_header.c
[  8%] Generating cpp_client_source.template -> cpp_client_source.c
[  8%] Generating erpcgen_parser.tab.cpp, erpcgen_parser.tab.hpp
[  8%] Generating py_server.template -> py_server.c
[  8%] Generating c_client_header.template -> c_client_header.c
[  8%] Generating c_client_source.template -> c_client_source.c
[ 12%] Generating c_server_header.template -> c_server_header.c
[ 13%] Generating erpcgen_lexer.cpp
[ 13%] Generating cpp_coders.template -> cpp_coders.c
[ 13%] Generating cpp_interface_header.template -> cpp_interface_header.c
[ 12%] Generating cpp_client_header.template -> cpp_client_header.c
[ 14%] Generating cpp_interface_source.template -> cpp_interface_source.c
[ 14%] Building CXX object erpc_c/CMakeFiles/erpc.dir/infra/erpc_arbitrated_client_manager.cpp.o
[ 15%] Generating cpp_server_header.template -> cpp_server_header.c
[ 19%] Generating java_coders.template -> java_coders.c
[ 19%] Generating java_client.template -> java_client.c
[ 19%] Generating java_const.template -> java_const.c
[ 20%] Generating cpp_server_source.template -> cpp_server_source.c
[ 21%] Building CXX object erpc_c/CMakeFiles/erpc.dir/infra/erpc_client_manager.cpp.o
[ 21%] Building CXX object erpc_c/CMakeFiles/erpc.dir/infra/erpc_crc16.cpp.o
[ 22%] Generating java_enum.template -> java_enum.c
[ 23%] Building CXX object erpc_c/CMakeFiles/erpc.dir/infra/erpc_basic_codec.cpp.o
[ 25%] Generating java_interface.template -> java_interface.c
[ 25%] Building CXX object erpc_c/CMakeFiles/erpc.dir/infra/erpc_framed_transport.cpp.o
[ 27%] Generating java_struct.template -> java_struct.c
[ 27%] Generating java_server.template -> java_server.c
[ 28%] Generating py_client.template -> py_client.c
[ 29%] Building CXX object erpc_c/CMakeFiles/erpc.dir/infra/erpc_message_buffer.cpp.o
[ 30%] Building CXX object erpc_c/CMakeFiles/erpc.dir/infra/erpc_message_loggers.cpp.o
[ 31%] Building CXX object erpc_c/CMakeFiles/erpc.dir/infra/erpc_server.cpp.o
[ 32%] Generating py_coders.template -> py_coders.c
[ 33%] Generating py_common.template -> py_common.c
[ 34%] Building CXX object erpc_c/CMakeFiles/erpc.dir/infra/erpc_simple_server.cpp.o
[ 36%] Building CXX object erpc_c/CMakeFiles/erpc.dir/infra/erpc_transport_arbitrator.cpp.o
[ 36%] Building CXX object erpc_c/CMakeFiles/erpc.dir/infra/erpc_utils.cpp.o
[ 36%] Generating py_global_init.template -> py_global_init.c
[ 38%] Generating py_init.template -> py_init.c
[ 38%] Building CXX object erpc_c/CMakeFiles/erpc.dir/infra/erpc_pre_post_action.cpp.o
[ 39%] Generating py_interface.template -> py_interface.c
[ 39%] Building CXX object erpc_c/CMakeFiles/erpc.dir/port/erpc_port_stdlib.cpp.o
[ 40%] Building CXX object erpc_c/CMakeFiles/erpc.dir/port/erpc_threading_pthreads.cpp.o
[ 41%] Building CXX object erpc_c/CMakeFiles/erpc.dir/setup/erpc_arbitrated_client_setup.cpp.o
[ 42%] Building CXX object erpc_c/CMakeFiles/erpc.dir/port/erpc_serial.cpp.o
[ 43%] Building CXX object erpc_c/CMakeFiles/erpc.dir/setup/erpc_client_setup.cpp.o
[ 44%] Building CXX object erpc_c/CMakeFiles/erpc.dir/setup/erpc_setup_mbf_static.cpp.o
[ 45%] Building CXX object erpc_c/CMakeFiles/erpc.dir/setup/erpc_setup_mbf_dynamic.cpp.o
[ 46%] Building CXX object erpc_c/CMakeFiles/erpc.dir/setup/erpc_server_setup.cpp.o
[ 47%] Building CXX object erpc_c/CMakeFiles/erpc.dir/setup/erpc_setup_serial.cpp.o
[ 48%] Building CXX object erpc_c/CMakeFiles/erpc.dir/setup/erpc_setup_tcp.cpp.o
[ 49%] Building CXX object erpc_c/CMakeFiles/erpc.dir/transports/erpc_inter_thread_buffer_transport.cpp.o
[ 50%] Building CXX object erpc_c/CMakeFiles/erpc.dir/transports/erpc_tcp_transport.cpp.o
[ 50%] Building CXX object erpc_c/CMakeFiles/erpc.dir/transports/erpc_serial_transport.cpp.o
[ 51%] Building CXX object erpcgen/CMakeFiles/erpcgen.dir/src/cpptemplate/cpptempl.cpp.o
[ 52%] Building CXX object erpcgen/CMakeFiles/erpcgen.dir/src/HexValues.cpp.o
[ 53%] Building CXX object erpcgen/CMakeFiles/erpcgen.dir/src/SearchPath.cpp.o
[ 54%] Building CXX object erpcgen/CMakeFiles/erpcgen.dir/src/format_string.cpp.o
[ 55%] Building CXX object erpcgen/CMakeFiles/erpcgen.dir/src/Logging.cpp.o
[ 55%] Building CXX object erpcgen/CMakeFiles/erpcgen.dir/src/options.cpp.o
[ 56%] Building CXX object erpcgen/CMakeFiles/erpcgen.dir/src/AstNode.cpp.o
[ 57%] Building CXX object erpcgen/CMakeFiles/erpcgen.dir/src/AstWalker.cpp.o
[ 58%] Building CXX object erpcgen/CMakeFiles/erpcgen.dir/src/CGenerator.cpp.o
[ 59%] Building CXX object erpcgen/CMakeFiles/erpcgen.dir/src/UniqueIdChecker.cpp.o
[ 60%] Building CXX object erpcgen/CMakeFiles/erpcgen.dir/src/PythonGenerator.cpp.o
[ 61%] Building CXX object erpcgen/CMakeFiles/erpcgen.dir/src/JavaGenerator.cpp.o
[ 62%] Building CXX object erpcgen/CMakeFiles/erpcgen.dir/src/erpcgen.cpp.o
[ 63%] Building CXX object erpcgen/CMakeFiles/erpcgen.dir/src/ErpcLexer.cpp.o
[ 64%] Building CXX object erpcgen/CMakeFiles/erpcgen.dir/src/Generator.cpp.o
[ 65%] Building CXX object erpcgen/CMakeFiles/erpcgen.dir/src/InterfaceDefinition.cpp.o
[ 65%] Building CXX object erpcgen/CMakeFiles/erpcgen.dir/src/SymbolScanner.cpp.o
[ 66%] Building CXX object erpcgen/CMakeFiles/erpcgen.dir/src/Token.cpp.o
[ 67%] Linking CXX static library liberpc.a
[ 68%] Building CXX object erpcgen/CMakeFiles/erpcgen.dir/src/ParseErrors.cpp.o
[ 69%] Building CXX object erpcgen/CMakeFiles/erpcgen.dir/src/Utils.cpp.o
[ 69%] Built target erpc
[ 70%] Building CXX object erpcgen/CMakeFiles/erpcgen.dir/src/types/Type.cpp.o
In file included from /home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:28:
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.hpp:260:5: error: ‘uint32_t’ does not name a type
  260 |     uint32_t m_line;
      |     ^~~~~~~~
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.hpp:52:1: note: ‘uint32_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
   51 | #include <vector>
  +++ |+#include <cstdint>
   52 | 
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.hpp: In constructor ‘cpptempl::TemplateException::TemplateException(std::string)’:
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.hpp:266:7: error: class ‘cpptempl::TemplateException’ does not have any field named ‘m_line’
  266 |     , m_line(0)
      |       ^~~~~~
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp: At global scope:
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:208:5: error: ‘uint32_t’ does not name a type
  208 |     uint32_t m_line;
      |     ^~~~~~~~
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:39:1: note: ‘uint32_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
   38 | #include <functional>
  +++ |+#include <cstdint>
   39 | 
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:211:18: error: expected ‘)’ before ‘line’
  211 |     Node(uint32_t line)
      |         ~        ^~~~~
      |                  )
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:220:5: error: ‘uint32_t’ does not name a type
  220 |     uint32_t get_line() { return m_line; }
      |     ^~~~~~~~
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:220:5: note: ‘uint32_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:221:19: error: ‘uint32_t’ has not been declared
  221 |     void set_line(uint32_t line) { m_line = line; }
      |                   ^~~~~~~~
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:221:19: note: ‘uint32_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp: In member function ‘void cpptempl::impl::Node::set_line(int)’:
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:221:36: error: ‘m_line’ was not declared in this scope; did you mean ‘line’?
  221 |     void set_line(uint32_t line) { m_line = line; }
      |                                    ^~~~~~
      |                                    line
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp: At global scope:
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:231:24: error: expected ‘)’ before ‘line’
  231 |     NodeParent(uint32_t line)
      |               ~        ^~~~~
      |                        )
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:245:32: error: ‘uint32_t’ has not been declared
  245 |     NodeText(std::string text, uint32_t line = 0)
      |                                ^~~~~~~~
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:245:32: note: ‘uint32_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp: In constructor ‘cpptempl::impl::NodeText::NodeText(std::string, int)’:
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:247:18: error: no matching function for call to ‘cpptempl::impl::Node::Node(int&)’
  247 |     , m_text(text)
      |                  ^
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:247:18: note: there are 2 candidates
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:206:7: note: candidate 1: ‘constexpr cpptempl::impl::Node::Node()’
  206 | class Node
      |       ^~~~
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:206:7: note: candidate expects 0 arguments, 1 provided
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:206:7: note: candidate 2: ‘constexpr cpptempl::impl::Node::Node(const cpptempl::impl::Node&)’
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:206:7: note: no known conversion for argument 1 from ‘int’ to ‘const cpptempl::impl::Node&’
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp: At global scope:
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:261:39: error: ‘uint32_t’ has not been declared
  261 |     NodeVar(const token_vector &expr, uint32_t line = 0, bool removeNewLine = false)
      |                                       ^~~~~~~~
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:261:39: note: ‘uint32_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp: In constructor ‘cpptempl::impl::NodeVar::NodeVar(const cpptempl::impl::token_vector&, int, bool)’:
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:264:36: error: no matching function for call to ‘cpptempl::impl::Node::Node(int&)’
  264 |     , m_removeNewLine(removeNewLine)
      |                                    ^
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:264:36: note: there are 2 candidates
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:206:7: note: candidate 1: ‘constexpr cpptempl::impl::Node::Node()’
  206 | class Node
      |       ^~~~
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:206:7: note: candidate expects 0 arguments, 1 provided
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:206:7: note: candidate 2: ‘constexpr cpptempl::impl::Node::Node(const cpptempl::impl::Node&)’
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:206:7: note: no known conversion for argument 1 from ‘int’ to ‘const cpptempl::impl::Node&’
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp: At global scope:
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:281:54: error: ‘uint32_t’ has not been declared
  281 |     NodeFor(const token_vector &tokens, bool is_top, uint32_t line = 0);
      |                                                      ^~~~~~~~
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:281:54: note: ‘uint32_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:295:38: error: ‘uint32_t’ has not been declared
  295 |     NodeIf(const token_vector &expr, uint32_t line = 0);
      |                                      ^~~~~~~~
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:295:38: note: ‘uint32_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:310:39: error: ‘uint32_t’ has not been declared
  310 |     NodeDef(const token_vector &expr, uint32_t line = 0);
      |                                       ^~~~~~~~
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:310:39: note: ‘uint32_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:321:39: error: ‘uint32_t’ has not been declared
  321 |     NodeSet(const token_vector &expr, uint32_t line = 0)
      |                                       ^~~~~~~~
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:321:39: note: ‘uint32_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp: In constructor ‘cpptempl::impl::NodeSet::NodeSet(const cpptempl::impl::token_vector&, int)’:
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:323:18: error: no matching function for call to ‘cpptempl::impl::Node::Node(int&)’
  323 |     , m_expr(expr)
      |                  ^
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:323:18: note: there are 2 candidates
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:206:7: note: candidate 1: ‘constexpr cpptempl::impl::Node::Node()’
  206 | class Node
      |       ^~~~
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:206:7: note: candidate expects 0 arguments, 1 provided
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:206:7: note: candidate 2: ‘constexpr cpptempl::impl::Node::Node(const cpptempl::impl::Node&)’
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:206:7: note: no known conversion for argument 1 from ‘int’ to ‘const cpptempl::impl::Node&’
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp: At global scope:
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:350:5: error: ‘uint32_t’ does not name a type
  350 |     uint32_t m_current_line;
      |     ^~~~~~~~
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:350:5: note: ‘uint32_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp: In constructor ‘cpptempl::TemplateException::TemplateException(size_t, std::string)’:
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:695:3: error: class ‘cpptempl::TemplateException’ does not have any field named ‘m_line’
  695 | , m_line(0)
      |   ^~~~~~
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp: In member function ‘void cpptempl::TemplateException::set_line_if_missing(size_t)’:
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:703:10: error: ‘m_line’ was not declared in this scope; did you mean ‘line’?
  703 |     if (!m_line)
      |          ^~~~~~
      |          line
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp: In function ‘cpptempl::impl::token_vector cpptempl::impl::tokenize_statement(const std::string&)’:
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:891:5: error: ‘uint32_t’ was not declared in this scope
  891 |     uint32_t pos = 0;
      |     ^~~~~~~~
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:891:5: note: ‘uint32_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:928:21: error: ‘pos’ was not declared in this scope
  928 |                     pos = i;
      |                     ^~~
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:1029:57: error: ‘pos’ was not declared in this scope
 1029 |                     create_id_token(tokens, text.substr(pos, i - pos));
      |                                                         ^~~
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:1079:45: error: ‘pos’ was not declared in this scope
 1079 |         create_id_token(tokens, text.substr(pos, i - pos));
      |                                             ^~~
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp: In member function ‘virtual void cpptempl::impl::Node::set_children(cpptempl::impl::node_vector&)’:
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:1523:29: error: ‘get_line’ was not declared in this scope; did you mean ‘set_line’?
 1523 |     throw TemplateException(get_line(), "This node type cannot have children");
      |                             ^~~~~~~~
      |                             set_line
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp: In member function ‘virtual cpptempl::impl::node_vector& cpptempl::impl::Node::get_children()’:
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:1528:29: error: ‘get_line’ was not declared in this scope; did you mean ‘set_line’?
 1528 |     throw TemplateException(get_line(), "This node type cannot have children");
      |                             ^~~~~~~~
      |                             set_line
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:1529:1: warning: no return statement in function returning non-void [-Wreturn-type]
 1529 | }
      | ^
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp: In member function ‘virtual void cpptempl::impl::NodeVar::gettext(std::ostream&, cpptempl::data_map&)’:
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:1606:31: error: ‘get_line’ was not declared in this scope; did you mean ‘set_line’?
 1606 |         e.set_line_if_missing(get_line());
      |                               ^~~~~~~~
      |                               set_line
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp: At global scope:
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:1623:59: error: ‘uint32_t’ has not been declared
 1623 | NodeFor::NodeFor(const token_vector &tokens, bool is_top, uint32_t line)
      |                                                           ^~~~~~~~
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:1623:59: note: ‘uint32_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp: In constructor ‘cpptempl::impl::NodeFor::NodeFor(const cpptempl::impl::token_vector&, bool, int)’:
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:1626:24: error: no matching function for call to ‘cpptempl::impl::NodeParent::NodeParent(int&)’
 1626 | , m_has_predicate(false)
      |                        ^
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:1626:24: note: there are 3 candidates
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:225:7: note: candidate 1: ‘cpptempl::impl::NodeParent::NodeParent()’
  225 | class NodeParent : public Node
      |       ^~~~~~~~~~
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:225:7: note: candidate expects 0 arguments, 1 provided
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:225:7: note: candidate 2: ‘cpptempl::impl::NodeParent::NodeParent(const cpptempl::impl::NodeParent&)’
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:225:7: note: no known conversion for argument 1 from ‘int’ to ‘const cpptempl::impl::NodeParent&’
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:225:7: note: candidate 3: ‘cpptempl::impl::NodeParent::NodeParent(cpptempl::impl::NodeParent&&)’
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:225:7: note: no known conversion for argument 1 from ‘int’ to ‘cpptempl::impl::NodeParent&&’
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp: In member function ‘virtual void cpptempl::impl::NodeFor::gettext(std::ostream&, cpptempl::data_map&)’:
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:1714:31: error: ‘get_line’ was not declared in this scope; did you mean ‘set_line’?
 1714 |         e.set_line_if_missing(get_line());
      |                               ^~~~~~~~
      |                               set_line
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp: At global scope:
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:1720:42: error: ‘uint32_t’ has not been declared
 1720 | NodeIf::NodeIf(const token_vector &expr, uint32_t line)
      |                                          ^~~~~~~~
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:1720:42: note: ‘uint32_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp: In constructor ‘cpptempl::impl::NodeIf::NodeIf(const cpptempl::impl::token_vector&, int)’:
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:1724:25: error: no matching function for call to ‘cpptempl::impl::NodeParent::NodeParent(int&)’
 1724 | , m_if_type(NODE_TYPE_IF)
      |                         ^
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:1724:25: note: there are 3 candidates
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:225:7: note: candidate 1: ‘cpptempl::impl::NodeParent::NodeParent()’
  225 | class NodeParent : public Node
      |       ^~~~~~~~~~
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:225:7: note: candidate expects 0 arguments, 1 provided
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:225:7: note: candidate 2: ‘cpptempl::impl::NodeParent::NodeParent(const cpptempl::impl::NodeParent&)’
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:225:7: note: no known conversion for argument 1 from ‘int’ to ‘const cpptempl::impl::NodeParent&’
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:225:7: note: candidate 3: ‘cpptempl::impl::NodeParent::NodeParent(cpptempl::impl::NodeParent&&)’
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:225:7: note: no known conversion for argument 1 from ‘int’ to ‘cpptempl::impl::NodeParent&&’
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp: In member function ‘bool cpptempl::impl::NodeIf::is_true(cpptempl::data_map&)’:
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:1788:31: error: ‘get_line’ was not declared in this scope; did you mean ‘set_line’?
 1788 |         e.set_line_if_missing(get_line());
      |                               ^~~~~~~~
      |                               set_line
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp: At global scope:
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:1799:44: error: ‘uint32_t’ has not been declared
 1799 | NodeDef::NodeDef(const token_vector &expr, uint32_t line)
      |                                            ^~~~~~~~
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:1799:44: note: ‘uint32_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp: In constructor ‘cpptempl::impl::NodeDef::NodeDef(const cpptempl::impl::token_vector&, int)’:
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:1800:18: error: no matching function for call to ‘cpptempl::impl::NodeParent::NodeParent(int&)’
 1800 | : NodeParent(line)
      |                  ^
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:1800:18: note: there are 3 candidates
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:225:7: note: candidate 1: ‘cpptempl::impl::NodeParent::NodeParent()’
  225 | class NodeParent : public Node
      |       ^~~~~~~~~~
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:225:7: note: candidate expects 0 arguments, 1 provided
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:225:7: note: candidate 2: ‘cpptempl::impl::NodeParent::NodeParent(const cpptempl::impl::NodeParent&)’
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:225:7: note: no known conversion for argument 1 from ‘int’ to ‘const cpptempl::impl::NodeParent&’
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:225:7: note: candidate 3: ‘cpptempl::impl::NodeParent::NodeParent(cpptempl::impl::NodeParent&&)’
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:225:7: note: no known conversion for argument 1 from ‘int’ to ‘cpptempl::impl::NodeParent&&’
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp: In constructor ‘cpptempl::impl::TemplateParser::TemplateParser(const std::string&, cpptempl::impl::node_vector&)’:
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:1879:3: error: class ‘cpptempl::impl::TemplateParser’ does not have any field named ‘m_current_line’
 1879 | , m_current_line(1)
      |   ^~~~~~~~~~~~~~
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp: In member function ‘cpptempl::impl::node_vector& cpptempl::impl::TemplateParser::parse()’:
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:1901:78: error: ‘m_current_line’ was not declared in this scope; did you mean ‘m_current_node’?
 1901 |                     m_current_nodes->push_back(node_ptr(new NodeText(m_text, m_current_line)));
      |                                                                              ^~~~~~~~~~~~~~
      |                                                                              m_current_node
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:1906:13: error: ‘m_current_line’ was not declared in this scope; did you mean ‘m_current_node’?
 1906 |             m_current_line += count_newlines(pre_text);
      |             ^~~~~~~~~~~~~~
      |             m_current_node
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:1959:31: error: ‘m_current_line’ was not declared in this scope; did you mean ‘m_current_node’?
 1959 |         e.set_line_if_missing(m_current_line);
      |                               ^~~~~~~~~~~~~~
      |                               m_current_node
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp: In member function ‘void cpptempl::impl::TemplateParser::parse_var()’:
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:1969:33: error: ‘m_current_line’ was not declared in this scope; did you mean ‘m_current_node’?
 1969 |         throw TemplateException(m_current_line, "unterminated variable block");
      |                                 ^~~~~~~~~~~~~~
      |                                 m_current_node
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:1990:66: error: ‘m_current_line’ was not declared in this scope; did you mean ‘m_current_node’?
 1990 |     m_current_nodes->push_back(node_ptr(new NodeVar(stmt_tokens, m_current_line, has_kill_newline_if_empty)));
      |                                                                  ^~~~~~~~~~~~~~
      |                                                                  m_current_node
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp: In member function ‘void cpptempl::impl::TemplateParser::parse_stmt()’:
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:2010:33: error: ‘m_current_line’ was not declared in this scope; did you mean ‘m_current_node’?
 2010 |         throw TemplateException(m_current_line, "unterminated statement block");
      |                                 ^~~~~~~~~~~~~~
      |                                 m_current_node
[ 71%] Building CXX object erpcgen/CMakeFiles/erpcgen.dir/__/erpc_c/infra/erpc_crc16.cpp.o
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:2019:5: error: ‘uint32_t’ was not declared in this scope
 2019 |     uint32_t lineCount = count_newlines(stmt_text);
      |     ^~~~~~~~
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:2019:5: note: ‘uint32_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:2031:74: error: ‘m_current_line’ was not declared in this scope; did you mean ‘m_current_node’?
 2031 |                 push_node(new NodeFor(stmt_tokens, m_node_stack.empty(), m_current_line), token_type_t::ENDFOR_TOKEN);
      |                                                                          ^~~~~~~~~~~~~~
      |                                                                          m_current_node
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:2100:5: error: ‘m_current_line’ was not declared in this scope; did you mean ‘m_current_node’?
 2100 |     m_current_line += lineCount;
      |     ^~~~~~~~~~~~~~
      |     m_current_node
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:2100:23: error: ‘lineCount’ was not declared in this scope
 2100 |     m_current_line += lineCount;
      |                       ^~~~~~~~~
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp: In member function ‘void cpptempl::impl::TemplateParser::parse_comment()’:
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:2112:5: error: ‘m_current_line’ was not declared in this scope; did you mean ‘m_current_node’?
 2112 |     m_current_line += count_newlines(comment_text);
      |     ^~~~~~~~~~~~~~
      |     m_current_node
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp: In member function ‘void cpptempl::impl::TemplateParser::check_omit_eol(size_t, bool)’:
/home/voedipus/Code/learning/erpc/erpcgen/src/cpptemplate/cpptempl.cpp:2126:11: error: ‘m_current_line’ was not declared in this scope; did you mean ‘m_current_node’?
 2126 |         ++m_current_line;
      |           ^~~~~~~~~~~~~~
      |           m_current_node
[ 72%] Building CXX object erpcgen/CMakeFiles/erpcgen.dir/erpcgen_parser.tab.cpp.o
[ 73%] Building CXX object erpcgen/CMakeFiles/erpcgen.dir/erpcgen_lexer.cpp.o
[ 74%] Building C object erpcgen/CMakeFiles/erpcgen.dir/src/templates/c_common_header.c.o
[ 75%] Building C object erpcgen/CMakeFiles/erpcgen.dir/src/templates/cpp_interface_header.c.o
[ 76%] Building C object erpcgen/CMakeFiles/erpcgen.dir/src/templates/cpp_interface_source.c.o
[ 77%] Building C object erpcgen/CMakeFiles/erpcgen.dir/src/templates/cpp_client_header.c.o
[ 78%] Building C object erpcgen/CMakeFiles/erpcgen.dir/src/templates/cpp_server_header.c.o
[ 78%] Building C object erpcgen/CMakeFiles/erpcgen.dir/src/templates/cpp_client_source.c.o
[ 79%] Building C object erpcgen/CMakeFiles/erpcgen.dir/src/templates/cpp_server_source.c.o
[ 80%] Building C object erpcgen/CMakeFiles/erpcgen.dir/src/templates/cpp_coders.c.o
[ 81%] Building C object erpcgen/CMakeFiles/erpcgen.dir/src/templates/cpp_common_functions.c.o
[ 82%] Building C object erpcgen/CMakeFiles/erpcgen.dir/src/templates/c_client_header.c.o
make[2]: *** [erpcgen/CMakeFiles/erpcgen.dir/build.make:230: erpcgen/CMakeFiles/erpcgen.dir/src/cpptemplate/cpptempl.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
/home/voedipus/Code/learning/erpc/build/erpcgen/erpcgen_parser.tab.cpp: In function ‘int yyparse(erpcgen::ErpcLexer*, erpcgen::AstNode**)’:
/home/voedipus/Code/learning/erpc/build/erpcgen/erpcgen_parser.tab.cpp:3884:18: warning: ‘void free(void*)’ called on unallocated object ‘yyssa’ [-Wfree-nonheap-object]
 3884 |     YYSTACK_FREE (yyss);
/home/voedipus/Code/learning/erpc/build/erpcgen/erpcgen_parser.tab.cpp:2048:16: note: declared here
 2048 |     yy_state_t yyssa[YYINITDEPTH];
      |                ^~~~~
make[1]: *** [CMakeFiles/Makefile2:228: erpcgen/CMakeFiles/erpcgen.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

@MichalPrincNXP MichalPrincNXP self-requested a review July 18, 2025 14:30
@MichalPrincNXP MichalPrincNXP merged commit d4feed5 into EmbeddedRPC:main Jul 18, 2025
2 of 8 checks passed
@MichalPrincNXP
Copy link
Member

Thank you @voedipus

ahyros pushed a commit to ahyros/erpc that referenced this pull request Aug 25, 2025
Co-authored-by: voedipus <v.petrov@k-soft-spb.ru>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Development

Successfully merging this pull request may close these issues.

2 participants