On Fri, Sep 7, 2012 at 3:25 PM, Peter Maydell <peter.mayd...@linaro.org> wrote: > On 7 September 2012 15:53, Jan Kiszka <jan.kis...@web.de> wrote: >> On 2012-09-07 16:41, Peter Maydell wrote: >>> On 7 September 2012 00:03, Jan Kiszka <jan.kis...@web.de> wrote: >>>> + pflash_cfi02_register(0x100000000-MP_FLASH_SIZE_MAX, NULL, >>> >>> I don't think this will compile on a 32 bit system, will it? >>> You probably want an ULL suffix. >> >> It does as the result always fits in 32 bits. But I can add that if you >> prefer. > > I think I had a misconception of this bit of the C standard. > C will pick a type big enough to fit the constant value (which > will in this case be a 64 bit type of some kind), even without > an ULL suffix. So you're right, it's OK.
GCC disagrees: $ cat u64.c unsigned int i = 0x100000000 - 1; $ gcc -m32 -Wall -c u64.c u64.c:1: warning: integer constant is too large for 'long' type Clang doesn't care even with --all-warnings: $ clang -m32 -Wall --all-warnings -c u64.c > > Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> > > -- PMM >