On 08.08.2011 2:07, bearophile wrote:
Dmitry Olshansky:
Sorry for the noise.
It's not noise, and you don't need to be sorry, in my opinion it's a D/DMD
design fault. Clang gives an error on code like that:
http://blog.llvm.org/2011/05/c-at-google-here-be-dragons.html
See the error:
example2.cc:12:25: error: shift result (10737418240) requires 35 bits to
represent, but 'int' only has 32 bits [-Werror,-Wshift-overflow]
long kMaxDiskSpace = 10<< 30;
In my opinion D has to give a similar error.
It's useful but not a panacea. I presented a simple trimmed down example
with consts, I don't think compiler can reliably identify the problem in
my actual code.
--
Dmitry Olshansky