Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #381750

Re: Is this defined behavior?

From David Brown <david.brown@hesbynett.no>
Newsgroups comp.lang.c
Subject Re: Is this defined behavior?
Date 2024-02-04 18:23 +0100
Organization A noiseless patient Spider
Message-ID <upoh5k$3o7ig$1@dont-email.me> (permalink)
References (1 earlier) <8734uaq19p.fsf@nosuchdomain.example.com> <8634ua9bts.fsf@linuxsc.com> <uploc3$36iui$1@dont-email.me> <upnvla$3l4rm$1@dont-email.me> <87cytcp7vz.fsf@bsb.me.uk>

Show all headers | View raw


On 04/02/2024 16:27, Ben Bacarisse wrote:
> David Brown <david.brown@hesbynett.no> writes:
> 
>> On 03/02/2024 17:07, Malcolm McLean wrote:
>>> On 03/02/2024 08:44, Tim Rentsch wrote:
>>>> Keith Thompson <Keith.S.Thompson+u@gmail.com> writes:
>>>>
>>>>> Anthony Cuozzo <anthony@cuozzo.us> writes:
>>>>>
>>>>>> Time T:  Add N to a uintptr_t
>>>>>>
>>>>>> Time T+1:  Subtract N from that same uintptr_t
>>>>>>
>>>>>> Questions:
>>>>>>
>>>>>> 1.  Is this behavior defined?
>>>>>
>>>>> Sure, why wouldn't it be?  uintptr_t is just an unsigned integer
>>>>> type.  The guarantees about converting to and from void* don't
>>>>> affect its arithmetic behavior.  Adding and then subtracting N
>>>>> yields the original value.
>>>>
>>>> Extremely likely to hold.  A perverse implementation could choose
>>>> (IIANM) a uintptr_t whose integer conversion rank is less than
>>>> that of int, and that could mess things up.  In practical terms
>>>> though what you say is spot on.
>>
>> An 8-bit implementation with very limited RAM might use 8-bit pointers, at
>> least for "normal" pointers.  (Typically such systems also support
>> extensions such as "far" pointers, or "code memory" pointers.)  I haven't
>> seen such an implementation, but it is certainly conceivable. ("int" would
>> be 16-bit.)
> 
> I think you are suggesting that uintptr_t might, on such a system, be
> only 8 bits wide, but that's no permitted.  UINTPTR_MAX can be no less
> than 2**16 - 1.  Of course that alone does not prevent its rank being
> less that that of int, but the system you describe would not be an
> example.
> 

Good point.  (Of course, many 8-bit implementations have deviations from 
the standards, at least as options - some allow 8-bit "int", for 
example.  But then we are no longer talking about standard C.)

I have also used a system where the total memory space fit within a 16 
bit address range, while the cpu can handle 32-bit data and arithmetic 
directly.  IIRC, it had a 16-bit "int", but such a system could 
reasonably have had 16-bit uintptr_t and 32-bit int.  But again, that's 
still hypothetical - just not unimaginable.

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


Thread

Is this defined behavior? Anthony Cuozzo <anthony@cuozzo.us> - 2024-02-02 10:56 -0500
  Re: Is this defined behavior? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2024-02-02 08:28 -0800
    Re: Is this defined behavior? Tim Rentsch <tr.17687@z991.linuxsc.com> - 2024-02-03 00:44 -0800
      Re: Is this defined behavior? Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2024-02-03 16:07 +0000
        Re: Is this defined behavior? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2024-02-03 13:41 -0800
          Re: Is this defined behavior? Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2024-02-04 03:18 +0000
            Re: Is this defined behavior? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2024-02-03 19:48 -0800
              Re: Is this defined behavior? Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2024-02-04 04:34 +0000
        Re: Is this defined behavior? David Brown <david.brown@hesbynett.no> - 2024-02-04 13:24 +0100
          Re: Is this defined behavior? Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2024-02-04 15:16 +0000
            Re: Is this defined behavior? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2024-02-04 13:31 -0800
              Re: Is this defined behavior? Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2024-02-04 23:18 +0000
                Re: Is this defined behavior? Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2024-02-04 15:56 -0800
                Re: Is this defined behavior? gazelle@shell.xmission.com (Kenny McCormack) - 2024-02-05 00:05 +0000
                Re: Is this defined behavior? Poprocks <please@replytogroup.com> - 2024-02-05 13:35 -0500
                Re: Is this defined behavior? Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2024-02-06 13:10 +0000
                Is this sane behavior? (Was: Is this defined behavior?) gazelle@shell.xmission.com (Kenny McCormack) - 2024-02-06 14:52 +0000
                Re: Is this sane behavior? (Was: Is this defined behavior?) Malcolm McLean <malcolm.arthur.mclean@gmail.com> - 2024-02-06 15:50 +0000
              Re: Is this defined behavior? Tim Rentsch <tr.17687@z991.linuxsc.com> - 2024-02-04 23:21 -0800
          Re: Is this defined behavior? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2024-02-04 15:27 +0000
            Re: Is this defined behavior? David Brown <david.brown@hesbynett.no> - 2024-02-04 18:23 +0100

csiph-web