Download Latest Version Release 0.6.4 source code.zip (730.9 kB) Google Add to Preferred Sources
Home / v0.6.2
Name Modified Size InfoDownloads / Week
Parent folder
README.md 2026-07-29 6.5 kB
Release 0.6.2 source code.tar.gz 2026-07-29 601.0 kB
Release 0.6.2 source code.zip 2026-07-29 730.1 kB
Totals: 3 Items   1.3 MB 0

Release 0.6.2 is primarily a bug fix release, please refer to CHANGELOG for details (copied below) A long standing bug has been fixed where where objects created before a call to _create_as_root would not be properly aligned, and buffer end is now also padded to largest object seen within the buffer. Note that for clang debug builds, -fsanitize=undefined has been added and this may require dependent source code to also use that flag to avoid missing linker symbols. The feature can be disabled in CMakeLists.txt. CMake has been bumped to version 3.16 which is the latest version where Appveyor will build MVSC 2025. A buffer overrun in flatcc parser on malformed floating point input was fixed. Warnings added for potential name conflicts in enum names and table fields that could result in confusing C compiler errors. Not all warnings are errors to the option -s was also added to silence warnings. The existing -g option can resolve some conflicts. Some _with_size variants of verified functions would verify a type hash identifier agains the wrong buffer location, but this appears to only have a effected very few users. Generated header guards could contain invalid symbols if present in the filename, such as hyphens - these are now mapped to underscore. It is still possible to create conflicting names, e.g. by having schema files like 'foo-bar.fbs' and 'foo_bar.fbs', or 'foo.fbs' and 'Foo.fbs', in which case conflicting schema files will not be processed as they are considered a different path to an already processed file.

Changelog [0.6.2]

  • CMake: avoid assuming location of build dir during configuration.
  • Use untyped integer constants in place of enums for public interface flags to allow for safe bit masking operations (PR [#248]).
  • Added experimental support for generating compile_commands.json via CMakeList.txt for use with clangd.
  • Remove fallthrough macro for improved portability (#247, [#252]).
  • Added parse_float/double_compare, parse_float/double_is_equal to portable library, and added parse_float/double_isnan to mirror isinf. This should help with GCC 32-bit double precision conversion issue.
  • Add Github Actions builds to replace stale Travis CI build. This also includes source code fixes for some build variants. Although Windows build is included it only covers recent 64-bit Windows. More work is need for older Windows variants. (#250).
  • Increase maximum allowed schema file size from 64 KiB to 1 MB (#256).
  • Fix seg fault in json parser while adding null characters to a too short input string for a fixed length char array struct field (#257).
  • Fix regression where empty namespace in schema does not reset root scope correctly in parser (#265).
  • Fix lexer checks that breaks with UTF-8, notably UTF-8 schema comments (#267).
  • Add sanitizer flag for clang debug and related warnings (input from several PRs incl. [#237]).
  • Fix missing runtime check for building too large tables (#235).
  • Fix alignment of large objects created outside root buffer (#127).
  • Pad top level buffer end to largest object in buffer
  • Add _with_size verifiers to enable verification of size prefixed buffers that are aligned above 4 bytes (sizeof(uoffset_t)) (#210, PR [#213]). Also fixes a (uoffset_t) cast that would truncate very large verifier bufsiz arguments above 4GB before the verifier checked for argument overflow (not expected to be a practical problem, but could be abused).
  • Fix __[portable_aligned_alloc, the fallback implementation of aligned_alloc so returns null proper and not a small offset on alloc failure. Most platforms do not depend on this function (#269). Also fix equivalent FLATCC_ALIGNED_ALLOC that does not necessarily use malloc.
  • Fix flatcc compiler error message when schema has a union as first table field with explicit id attribute 1. Explicit id must leave space for the hidden type field, but id 1 is valid since id 0 is valid for the type field id. (#271).
  • Add C23 support for "pstdbool.h" header.
  • Fix strict aliasing UB. In the vast majority of cases *(T *)p style memory access is supported by compilers, but some both enable strict aliasing by default while being very aggressive with strict aliasing. This can lead to reading uninitialized memory and/or segfaults in the monster_test test case, but is less likely problematic in dynamically allocated memory buffers. For performance reasons this fix is not universally applied when deemed unnecessary. Added README section "Strict Aliasing". (#274).
  • Fix flatcc cli flags for --schema --outfile. (#216).
  • Replace cmetrohash and murmur hash with xxhash. (#238).
  • Update verifier to accept buffers with misaligned empty vectors because C++ has been discovered to be doing this for 10 years by now. The original stricter verifier can be activated with a compile time flag (#287, [#289]).
  • Fix low impact incorrect use of strncmp in str_set hash table comp:arison. In flatcc this only affects duplicate header file inclusion detection during C code generation. Unlikely worst case a file might not be included which would cause a compile time error in user code. However, do take note if using the str_set table for other purposes. (#308).
  • Fix some GCC indentation warnings in generated code - warnings are disabled in build already, but this may help some users (#313).
  • Fix %d vs uint32 type in some printformatting (#315).
  • Fix UB in builder, memsetting 0 bytes of null pointer (#344).
  • Fix GCC 15 warning in grisu3 (#338).
  • Bump CMake to >= 3.26.1 (Debian Bookworm).
  • Fix CMAKE warnings on custom commands with TARGET and DEPENDS (CMP0175).
  • Issue warnings on some potential name conflicts that can break C source and add -s option to silence warnings (#354).
  • Fix potential UB in pprintint due to integer promotion, and silence warnings.
  • Fix buffer overrun in flatcc parser on malformed floating point input (#374).
  • Fix overflow check of default values in schema parser (#381).
  • Replace rewind with fseek for better error handling, low impact (#380).
  • Fix binary schema gen. for string arrays (a rare FlatCC only feature) (#295).
  • Fix _with_size verifier functions (#346).
  • Fix shortened identifier regression in parser error messager (#371).
  • Make sure header guards are valid symbols (e.g. filenames with '-') (#293).
Source: README.md, updated 2026-07-29