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


Groups > comp.lang.c > #73565

Re: Pointers as error values

From Keith Thompson <kst-u@mib.org>
Newsgroups comp.lang.c
Subject Re: Pointers as error values
Date 2015-10-22 10:52 -0700
Organization None to speak of
Message-ID <lnh9lix03a.fsf@kst-u.example.com> (permalink)
References (1 earlier) <lnlhayzw6g.fsf@kst-u.example.com> <n0781l$lg2$1@speranza.aioe.org> <n09sod$e2a$1@speranza.aioe.org> <lnlhaux6oi.fsf@kst-u.example.com> <fd50cbf6-4bc6-43e4-9c38-35836dab9bbb@googlegroups.com>

Show all headers | View raw


supercat@casperkitty.com writes:
> On Thursday, October 22, 2015 at 10:29:57 AM UTC-5, Keith Thompson wrote:
>> C doesn't guarantee that `(void*)0 != (void*)1`.  An implementation
>> could plausibly use a representation equivalent to 0x1 for null
>> pointers.  (void*)1 could reinterpret the representation of the
>> operand 1, yielding a null pointer; (void*)0 yields a null pointer
>> by definition.
>
> Does C guarantee that if "intptr_t" exists, that (intptr_t_)(void*)0 == 0 and
> that given intptr_t x=0, (void*)x == 0?

No.  It only guarantees that (N1570 7.20.1.4p1)

    any valid pointer to void can be converted to this type, then
    converted back to pointer to void, and the result will compare
    equal to the original pointer

where "this type" is either intptr_t or uintptr_t.

You do yave a copy of N1570, don't you?  This would have been easy to
look up.

>                                          I recall having read that casts or
> comparisons to a constant literal zero are special, and that even when a
> platform defines conversions between pointers and numbers they need not be
> consistent with that.

N1570 6.3.2.3p3:

    An integer constant expression with the value 0, or such
    an expression cast to type void *, is called a null pointer
    constant. If a null pointer constant is converted to a pointer
    type, the resulting pointer, called a null pointer, is guaranteed
    to compare unequal to a pointer to any object or function.

Integer-to-pointer conversions are otherwise implementation-defined
(same section, paragraph 5).

Which means that given:

    int zero = 0;
    void *p0 = (void*)0;
    void *p1 = (void*)zero;

the value of p0 is guaranteed to be a null pointer, but it's not
guaranteed that p0 == p1.

[...]

-- 
Keith Thompson (The_Other_Keith) kst-u@mib.org  <http://www.ghoti.net/~kst>
Working, but not speaking, for JetHead Development, Inc.
"We must do something.  This is something.  Therefore, we must do this."
    -- Antony Jay and Jonathan Lynn, "Yes Minister"

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


Thread

Pointers as error values "Morten W. Petersen" <morphex@gmail.com> - 2015-10-19 00:53 -0700
  Re: Pointers as error values gazelle@shell.xmission.com (Kenny McCormack) - 2015-10-19 08:26 +0000
    Re: Pointers as error values "Morten W. Petersen" <morphex@gmail.com> - 2015-10-19 02:27 -0700
    Re: Pointers as error values Richard Damon <Richard@Damon-Family.org> - 2015-10-19 23:38 -0400
  Re: Pointers as error values jacobnavia <jacob@jacob.remcomp.fr> - 2015-10-19 10:34 +0200
    Re: Pointers as error values "Morten W. Petersen" <morphex@gmail.com> - 2015-10-19 02:29 -0700
    Re: Pointers as error values mark.bluemel@gmail.com - 2015-10-19 05:53 -0700
  Re: Pointers as error values glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-10-19 10:00 +0000
  Re: Pointers as error values Jorgen Grahn <grahn+nntp@snipabacken.se> - 2015-10-19 14:00 +0000
  Re: Pointers as error values gwowen <gwowen@gmail.com> - 2015-10-19 08:02 -0700
    Re: Pointers as error values James Kuyper <jameskuyper@verizon.net> - 2015-10-19 11:53 -0400
  Re: Pointers as error values Ken Brody <kenbrody@spamcop.net> - 2015-10-19 11:25 -0400
  Re: Pointers as error values supercat@casperkitty.com - 2015-10-19 08:41 -0700
  Re: Pointers as error values Keith Thompson <kst-u@mib.org> - 2015-10-19 08:59 -0700
    Re: Pointers as error values "Morten W. Petersen" <morphex@gmail.com> - 2015-10-21 07:32 +0200
      Re: Pointers as error values Ian Collins <ian-news@hotmail.com> - 2015-10-21 19:17 +1300
        Re: Pointers as error values "Morten W. Petersen" <morphex@gmail.com> - 2015-10-21 08:31 +0200
      Re: Pointers as error values Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-10-21 12:46 +0100
      Re: Pointers as error values Robert Wessel <robertwessel2@yahoo.com> - 2015-10-21 09:35 -0500
        Re: Pointers as error values Ken Brody <kenbrody@spamcop.net> - 2015-10-21 15:24 -0400
          Re: Pointers as error values glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-10-22 05:44 +0000
      Re: Pointers as error values Keith Thompson <kst-u@mib.org> - 2015-10-21 10:41 -0700
        Re: Pointers as error values supercat@casperkitty.com - 2015-10-21 11:28 -0700
      Re: Pointers as error values John Temples <usenet@xargs-spam.com> - 2015-10-21 17:45 +0000
        Re: Pointers as error values James Kuyper <jameskuyper@verizon.net> - 2015-10-21 14:15 -0400
          Re: Pointers as error values "Morten W. Petersen" <morphex@gmail.com> - 2015-10-29 16:59 +0100
            Re: Pointers as error values supercat@casperkitty.com - 2015-10-29 12:35 -0700
              Re: Pointers as error values raltbos@xs4all.nl (Richard Bos) - 2015-10-29 21:45 +0000
                Re: Pointers as error values "Morten W. Petersen" <morphex@gmail.com> - 2015-10-30 06:09 +0100
                Re: Pointers as error values Rosario19 <Ros@invalid.invalid> - 2015-10-30 08:59 +0100
                Re: Pointers as error values Rosario19 <Ros@invalid.invalid> - 2015-10-30 09:07 +0100
                Re: Pointers as error values Rosario19 <Ros@invalid.invalid> - 2015-10-30 09:38 +0100
                Re: Pointers as error values Rosario19 <Ros@invalid.invalid> - 2015-10-30 09:40 +0100
                Re: Pointers as error values Robert Wessel <robertwessel2@yahoo.com> - 2015-10-30 04:56 -0500
                Re: Pointers as error values Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-10-30 11:00 +0000
            Re: Pointers as error values Robert Wessel <robertwessel2@yahoo.com> - 2015-10-29 23:48 -0500
              Re: Pointers as error values "Morten W. Petersen" <morphex@gmail.com> - 2015-10-30 11:05 +0100
                Re: Pointers as error values Richard Damon <Richard@Damon-Family.org> - 2015-10-30 07:45 -0400
                Re: Pointers as error values Malcolm McLean <malcolm.mclean5@btinternet.com> - 2015-10-30 05:04 -0700
                Re: Pointers as error values "Morten W. Petersen" <morphex@gmail.com> - 2015-10-30 16:09 +0100
                Re: Pointers as error values Keith Thompson <kst-u@mib.org> - 2015-10-30 11:16 -0700
                Re: Pointers as error values glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-10-30 20:58 +0000
                Re: Pointers as error values Eric Sosman <esosman@comcast-dot-net.invalid> - 2015-10-30 17:12 -0400
                Re: Pointers as error values supercat@casperkitty.com - 2015-10-30 14:54 -0700
                Re: Pointers as error values Robert Wessel <robertwessel2@yahoo.com> - 2015-10-30 18:48 -0500
                Re: Pointers as error values glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-11-01 04:00 +0000
                Re: Pointers as error values Robert Wessel <robertwessel2@yahoo.com> - 2015-11-01 01:24 -0500
                Re: Pointers as error values "Morten W. Petersen" <morphex@gmail.com> - 2015-10-31 20:35 +0100
                Re: Pointers as error values supercat@casperkitty.com - 2015-10-31 13:33 -0700
                Re: Pointers as error values Richard Damon <Richard@Damon-Family.org> - 2015-10-30 22:19 -0400
                Re: Pointers as error values supercat@casperkitty.com - 2015-10-30 08:22 -0700
                Re: Pointers as error values Geoff <geoff@invalid.invalid> - 2015-10-30 13:11 -0700
                Re: Pointers as error values Geoff <geoff@invalid.invalid> - 2015-10-30 13:23 -0700
      Re: Pointers as error values Geoff <geoff@invalid.invalid> - 2015-10-21 11:13 -0700
        Re: Pointers as error values Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-10-21 20:31 +0100
          Re: Pointers as error values Geoff <geoff@invalid.invalid> - 2015-10-22 07:13 -0700
        Re: Pointers as error values "Morten W. Petersen" <morphex@gmail.com> - 2015-10-26 07:16 +0100
          Re: Pointers as error values Jorgen Grahn <grahn+nntp@snipabacken.se> - 2015-10-26 09:37 +0000
      Re: Pointers as error values glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-10-22 05:38 +0000
        Re: Pointers as error values Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-10-22 13:51 +0100
        Re: Pointers as error values Keith Thompson <kst-u@mib.org> - 2015-10-22 08:29 -0700
          Re: Pointers as error values supercat@casperkitty.com - 2015-10-22 09:21 -0700
            Re: Pointers as error values Keith Thompson <kst-u@mib.org> - 2015-10-22 10:52 -0700
              Re: Pointers as error values "Morten W. Petersen" <morphex@gmail.com> - 2015-10-26 07:20 +0100
                Re: Pointers as error values Keith Thompson <kst-u@mib.org> - 2015-10-26 08:09 -0700
                Re: Pointers as error values supercat@casperkitty.com - 2015-10-26 08:40 -0700
                Re: Pointers as error values glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-10-26 20:02 +0000
                Re: Pointers as error values supercat@casperkitty.com - 2015-10-26 13:56 -0700
          Re: Pointers as error values glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-10-22 21:58 +0000
            Re: Pointers as error values James Kuyper <jameskuyper@verizon.net> - 2015-10-22 19:12 -0400
            Re: Pointers as error values asetofsymbols@gmail.com - 2015-10-22 18:36 -0700
              Re: Pointers as error values asetofsymbols@gmail.com - 2015-10-29 12:47 -0700
  Re: Pointers as error values Lőrinczy Zsigmond <nospam@for.me> - 2015-10-20 17:06 +0200
    Re: Pointers as error values Ben Bacarisse <ben.usenet@bsb.me.uk> - 2015-10-20 19:45 +0100
      Re: Pointers as error values supercat@casperkitty.com - 2015-10-20 14:19 -0700
        Re: Pointers as error values glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-10-21 05:28 +0000
          Re: Pointers as error values supercat@casperkitty.com - 2015-10-21 05:48 -0700
            Re: Pointers as error values glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-10-22 05:52 +0000
          Re: Pointers as error values Ken Brody <kenbrody@spamcop.net> - 2015-10-21 15:19 -0400
            Re: Pointers as error values glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2015-10-22 06:06 +0000

csiph-web