util.c: In function ‘objid_init’:
util.c:331: warning: integer constant is too large for ‘long’ type

with

[cmcc...@stargazer tabled]$ gcc --version
gcc (GCC) 4.4.1 20090725 (Red Hat 4.4.1-2)

Now that I wrote a little test program, I can see that gcc handles the
constant correctly. It still issues a warning for some reason.
I guess gcc's C99 support is not perfect.

Colin


On Tue, Jan 12, 2010 at 6:29 AM, Jeff Garzik <[email protected]> wrote:
> On 01/10/2010 08:10 AM, Colin McCabe wrote:
>>
>> All integer constants are squashed into ints (i.e. 32-bit) unless you
>> specify
>> otherwise.
>>
>> Signed-off-by: Colin McCabe<[email protected]>
>> ---
>>  server/util.c |    2 +-
>>  1 files changed, 1 insertions(+), 1 deletions(-)
>>
>> diff --git a/server/util.c b/server/util.c
>> index 3c15123..63a3acb 100644
>> --- a/server/util.c
>> +++ b/server/util.c
>> @@ -328,7 +328,7 @@ int objid_init(uint64_t *obj_count, struct tabledb
>> *tdbp)
>>                exit(1);        /* Quit before something unknown blows up.
>> */
>>        }
>>
>> -       if (objcount&  0xff00000000000000) {
>> +       if (objcount&  0xff00000000000000ll) {
>>                applog(LOG_ERR, "Dangerous objid %llX\n",
>
> Yep, "The type of an integer constant is the first of the corresponding list
> in which its value can be represented." (C99 6.4.4.1 paragraph 5)
>
> Were you seeing a problem here?
>
>        Jeff
>
>
>
>
>
--
To unsubscribe from this list: send the line "unsubscribe hail-devel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to