Fellows, I'm sorry, but again I found a some combination of characters which leads to compare bug:
long foo(long *a, long b, int i) { b -=a[i]; if(b) return a[i]+b; return 0; } compiled with... gcc -O ... This is fixed now in current gcc version... Sorry again... ~d -- /******************************************************************** ("`-''-/").___..--''"`-._ (\ Dimmy the Wild UA1ACZ `6_ 6 ) `-. ( ).`-.__.`) Enterprise Information Sys (_Y_.)' ._ ) `._ `. ``-..-' Nevsky prospekt, 20 / 44 _..`--'_..-_/ /--'_.' ,' Saint Petersburg, Russia (il),-'' (li),' ((!.-' +7 (812) 3468202, 5585314 ********************************************************************/