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.

Reply via email to