On Sun, 2023-01-29 at 18:05 -0500, Patrick Herbst via Gcc-help wrote: > Using GCC 9.4, I've noticed setting -O1 will set > _FORTIFY_SOURCE=2 > > I'm able to see this by running > gcc -c -E -dM -O1 - < /dev/null | grep FORTIFY_SOURCE > > But running the same command without -O1 doesn't set it. > > Is this documented? is this expected behavior? I could not find any > reference to how optimization leads to setting this macro. > > Any tips on where I can look, or what i'm missing to see this > connection? It's because your distro hacked GCC code to define _FORTIFY_SOURCE when optimization is enabled. Vanilla GCC does not have this behavior. -- Xi Ruoyao <xry111@xxxxxxxxxxx> School of Aerospace Science and Technology, Xidian University