You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There seems to be a potential case mismatch when using a schema file with a variable length field.
There is inconsistent handling of the case of the first letter of the field name.
The C++ generated code creates an accessor method such as: static SBE_CONSTEXPR std::uint64_t exampleHeaderLength() SBE_NOEXCEPT
but then attempts to call it inside: SBE_NODISCARD static size_t computeLength(std::size_t ExampleLength = 0)
by invoking it as: length += ExampleHeaderLength();
I encountered the issue updating from 1.12.2 to 1.82.2 and have reproduced it with the current code by changing the case of the last field in sbe-tool/src/test/resources/code-generation-schema.xml from "color" to "Color":
g++ -c test/Car.h
test/car.h: In static member function 'static size_t test::Car::computeLength(const std::vector<std::tuple<long unsigned int> >&, const std::vector<std::tuple<long unsigned int> >&, std::size_t, std::size_t, std::size_t, std::size_t)':
test/car.h:3202:15: error: 'ColorHeaderLength' was not declared in this scope; did you mean 'colorHeaderLength'?
3202 | length += ColorHeaderLength();
| ^~~~~~~~~~~~~~~~~
| colorHeaderLength