Groups | Search | Server Info | Keyboard shortcuts | Login | Register


Groups > comp.lang.c > #395890

Re: type of decimal constants in msvc

From Keith Thompson <Keith.S.Thompson+u@gmail.com>
Newsgroups comp.lang.c
Subject Re: type of decimal constants in msvc
Date 2025-12-22 12:01 -0800
Organization None to speak of
Message-ID <87a4zawaj7.fsf@example.invalid> (permalink)
References (1 earlier) <10i3dpt$14ajr$1@dont-email.me> <875xa2u0p9.fsf@example.invalid> <10i3hkn$15jea$1@dont-email.me> <871pkqtdyy.fsf@example.invalid> <868qeusm4f.fsf@linuxsc.com>

Show all headers | View raw


Tim Rentsch <tr.17687@z991.linuxsc.com> writes:
> Keith Thompson <Keith.S.Thompson+u@gmail.com> writes:
>> Thiago Adams <thiago.adams@gmail.com> writes:
>>> Em 19/12/2025 09:15, Keith Thompson escreveu:
>> [...]
>>
>>>> gcc's warning for 18408377700990114895 (which is slightly smaller
>>>> than 2**64) is "integer constant is so large that it is unsigned".
>>>> This is *incorrect* (and I think it's been reported as a bug), but
>>>> the incorrect wording of the warning is not a conformance issue.
>>>
>>> I am not understating why do you think this is a bug?
>>> Because it should not compile?
>>
>> No, because the message is factually incorrect.
>
> No, it isn't.  The message might be misleading but it isn't wrong.
>
>> The integer constant 18408377700990114895 is not of any unsigned type.
>
> The message doesn't say the constant has an unsigned type.  It says
> only that the constant is unsigned.

What distinction are you making?

All integer constants are "unsigned" in the sense that they don't
include a sign.  -1 is an expression, not a constant.  That's not
what the message means.

I see no reasonable interpretation of "integer constant is so
large that it is unsigned" other than that it's of an unsigned type
because it's too large.

The message correctly reflects the C90 semantics, where a
sufficiently large unsuffixed decimal integer constant is of type
unsigned long.  But in C99 and later, an unsuffixed decimal integer
constant is never of any unsigned type.

-- 
Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
void Void(void) { Void(); } /* The recursive call of the void */

Back to comp.lang.c | Previous | NextPrevious in thread | Find similar


Thread

Re: type of decimal constants in msvc Thiago Adams <thiago.adams@gmail.com> - 2025-12-19 08:43 -0300
  Re: type of decimal constants in msvc Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2025-12-19 04:15 -0800
    Re: type of decimal constants in msvc Thiago Adams <thiago.adams@gmail.com> - 2025-12-19 09:49 -0300
      Re: type of decimal constants in msvc Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2025-12-19 12:26 -0800
        Re: type of decimal constants in msvc Tim Rentsch <tr.17687@z991.linuxsc.com> - 2025-12-22 05:05 -0800
          Re: type of decimal constants in msvc Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2025-12-22 12:01 -0800

csiph-web