Sorry my hurry. I tried to rewrite it without FB_ALLIGN and understand. & cuts 4 bytes. (gdb) print (char*) ((0x7ffff1e93040 + (FB_SIZE_T)4096 - 1) & ~((FB_SIZE_T)4096 - 1)) $14 = 0xf1e94000 <Address 0xf1e94000 out of bounds> (gdb) print sizeof(FB_SIZE_T) $15 = 4
So the root of problem is that FB_SIZE_T on my x64 linux is unsigned int and 4 bytes. IMO FB must use system size_t. -- Roman Simakov ------------------------------------------------------------------------------ Want fast and easy access to all the code in your enterprise? Index and search up to 200,000 lines of code with a free copy of Black Duck Code Sight - the same software that powers the world's largest code search on Ohloh, the Black Duck Open Hub! Try it now. http://p.sf.net/sfu/bds Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel