On Sunday, June 21, 2015 at 6:07:52 AM UTC-4, Ilya Bizyaev wrote: > > I had to analyze each and every option, and *found out that it is the -O2 > GCC option that caused all this trouble*. -O3 and -Os options may cause > it as well. > What is the reason? >
On Windows, Debug (/DDEBUG) initializes variables for you. In Release (/DNDEBUG), it does not. On Linux, -O1 and above invokes the optimizer. One of the things optimization does is make undefined behavior subject to removal. So, ensure you are initializing all variables to a known state, and ensure you don't have any undefined behavior. You might also want to use some of the compiler flags detailed here: https://www.owasp.org/index.php/C-Based_Toolchain_Hardening -- -- You received this message because you are subscribed to the "Crypto++ Users" Google Group. To unsubscribe, send an email to [email protected]. More information about Crypto++ and this group is available at http://www.cryptopp.com. --- You received this message because you are subscribed to the Google Groups "Crypto++ Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
