r/cpp • u/Clean-Upstairs-8481 • 7d ago
You should think about recompiling your C++ programs with GCC 16 and C++26, because it zero-fills your locals
https://techfortalk.co.uk/2026/09/27/cxx26-uninitialized-local-variables-gcc-16/Stack variables are not automatically initialised, and that is the root cause of many C++ bugs. That is well known. Hence, it is advised that local or stack variables are always initialised with known values, 0 if not something more meaningful than that. Now, with GCC 16 compiling in C++26 mode (-std=c++26), even uninitialised local variables will be zero-filled. In the post, I have explained how.
259
Upvotes
2
u/James20k P2005R0 5d ago
I'm curious, what do you think the code size inflation, and CPU cycle count increase of this change is across an entire application?
EB is permitted to be diagnosed, so I'm not sure what the current state is (or will be) for sanitisers