Right at the beginning of the file there is: module std.intrinsic; nothrow: Nevertheless some functions are pure nothrow int bsf(uint v); some not: int btc(uint *p, uint bitnum); So either those nothrows are obsolete or the nothrow: is a mistake, right?