Skip to content

Fix build with modern GCC: suppress false-positive -Warray-bounds#21

Open
varun-r-mallya wants to merge 1 commit into
satoshinm:masterfrom
varun-r-mallya:fix-modern-gcc-toolchain-build
Open

Fix build with modern GCC: suppress false-positive -Warray-bounds#21
varun-r-mallya wants to merge 1 commit into
satoshinm:masterfrom
varun-r-mallya:fix-modern-gcc-toolchain-build

Conversation

@varun-r-mallya

Copy link
Copy Markdown

user_data[] is declared with a size expression that computes to 0 elements, but the code intentionally indexes past that at runtime (it's really just a marker for a flash region sized by the linker, not by this C type). Older GCC allowed this; GCC 12+ correctly flags it with -Warray-bounds, which -Werror turns into a build failure. This suppresses the warning at that one read site so the build works on current toolchains.

user_data[] is deliberately declared with a computed size that evaluates
to 0 elements (it marks the start of a flash region sized by the linker,
not by this C type), so indexing into it at runtime is intentional.
Older GCC didn't flag this; GCC 12+ correctly notices the out-of-bounds
access with -Warray-bounds, which -Werror then turns into a hard build
failure. Scope the suppression to just this read so the build works
with current arm-none-eabi-gcc without masking other array-bounds bugs.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant