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

Reply via email to