When trying to test the speed of functions, I found that not all parts of my code work in Release mode. The same code works perfectly in Debug mode, though.
I'm using VC++ compiler with /O2 optimization.
Here's the cut out part, which doesn't work.
int main()
{
    boost::timer::auto_cpu_timer t;
    for(int i = 0; i < 1000000; i++)
        gcdb(i, 5);
    return 0;
}
The generated assembly in release mode, the code for the for loop is missing only in this mode.
int main()
{
000000013F8E1280  sub         rsp,88h  
000000013F8E1287  mov         rax,qword ptr [__security_cookie (013F8E7150h)]  
000000013F8E128E  xor         rax,rsp  
000000013F8E1291  mov         qword ptr [rsp+70h],rax  
    boost::timer::auto_cpu_timer t;
000000013F8E1296  lea         rcx,[t]  
000000013F8E129B  mov         edx,6  
000000013F8E12A0  call        boost::timer::auto_cpu_timer::auto_cpu_timer (013F8E2DA0h)  
    for(int i = 0; i < 1000000; i++)
        gcdb(i, 5);
    return 0;
000000013F8E12A5  lea         rcx,[t]  
000000013F8E12AA  call        boost::timer::auto_cpu_timer::~auto_cpu_timer (013F8E2810h)  
000000013F8E12AF  xor         eax,eax  
}
gcdb() is just a function for the finding the GCD of two numbers.
What could be causing this code skipping?