Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
| From | Tim Rentsch <txr@alumni.caltech.edu> |
|---|---|
| Newsgroups | comp.std.c |
| Subject | Re: null pointer constant, address constant |
| Date | 2012-12-20 21:05 -0800 |
| Organization | A noiseless patient Spider |
| Message-ID | <kfnlics805v.fsf@x-alumni2.alumni.caltech.edu> (permalink) |
| References | (2 earlier) <kaqibr$gj3$1@speranza.aioe.org> <kaqmd8$u9m$1@dont-email.me> <lnzk1ark9h.fsf@nuthaus.mib.org> <89afe21d-1a8b-4749-8ad1-ec98cc65a818@a8g2000vby.googlegroups.com> <kavb4b$ed2$1@dont-email.me> |
James Kuyper <jameskuyper@verizon.net> writes: > On 12/20/2012 08:34 AM, christian.bau wrote: >> On Dec 18, 11:52 pm, Keith Thompson <ks...@mib.org> wrote: >> >>> The standard says that a constant arithmetic expression with the value >>> 0, converted to a pointer type, yields a null pointer. It does *not* >>> say the same thing about a non-constant arithmetic expression with the >>> value 0. >> >> It doesn't have to. The standard doesn't have to state something >> explicitly if it follows from other rules that are stated. >> >> Converting _any_ integer to _any_ pointer gives an implementation- >> defined result. > > Not so. "An integer may be converted to any pointer type. Except > as previously specified, the result is implementation-defined, ..." > 6.3.2.3p5. Since null pointer constants are described in 6.3.2.3p4, > they are covered by "Except as previously specified". Conversion of > non-constant arithmetic expressions with a value of 0 is NOT covered > by that exception. This means that the implementation-defined > result of such a conversion need not match the standard-defined > result for null pointer constants. IMO this is begging the question. The point of Christian's comments is to argue that what happens when converting an integer value of zero must be consistent in the case of a null pointer constant (which also has an integer value of zero). Reading just the Standard, I think a reasonable case can be made for either point of view. Despite that, the conclusion James reaches agrees with what the committee intended. Support for this can be found in the Rationale document (at the bottom of page 48 in the copy I have, V5.10). I still believe though that the Standard by itself is not enough to give an overwhelming argument either way; otherwise why would it need to be mentioned in the Rationale document?
Back to comp.std.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
null pointer constant, address constant Szabolcs Nagy <nsz@port70.net> - 2012-12-18 13:25 +0000
Re: null pointer constant, address constant James Kuyper <jameskuyper@verizon.net> - 2012-12-18 09:53 -0500
Re: null pointer constant, address constant Szabolcs Nagy <nsz@port70.net> - 2012-12-18 20:06 +0000
Re: null pointer constant, address constant James Kuyper <jameskuyper@verizon.net> - 2012-12-18 15:39 -0500
Re: null pointer constant, address constant Szabolcs Nagy <nsz@port70.net> - 2012-12-19 00:44 +0000
Re: null pointer constant, address constant James Kuyper <jameskuyper@verizon.net> - 2012-12-18 20:24 -0500
Re: null pointer constant, address constant Szabolcs Nagy <nsz@port70.net> - 2012-12-19 10:27 +0000
Re: null pointer constant, address constant James Kuyper <jameskuyper@verizon.net> - 2012-12-19 07:15 -0500
Re: null pointer constant, address constant Phil Carmody <thefatphil_demunged@yahoo.co.uk> - 2012-12-21 03:03 +0200
Re: null pointer constant, address constant James Kuyper <jameskuyper@verizon.net> - 2012-12-21 12:13 -0500
Re: null pointer constant, address constant Szabolcs Nagy <nsz@port70.net> - 2013-01-09 00:44 +0000
Re: null pointer constant, address constant James Kuyper <jameskuyper@verizon.net> - 2013-01-08 20:21 -0500
Re: null pointer constant, address constant Eric Sosman <esosman@comcast-dot-net.invalid> - 2013-01-08 20:46 -0500
Re: null pointer constant, address constant Shao Miller <sha0.miller@gmail.com> - 2012-12-18 20:37 -0500
Re: null pointer constant, address constant Shao Miller <sha0.miller@gmail.com> - 2012-12-18 16:15 -0500
Re: null pointer constant, address constant Keith Thompson <kst-u@mib.org> - 2012-12-18 15:52 -0800
Re: null pointer constant, address constant Shao Miller <sha0.miller@gmail.com> - 2012-12-18 19:12 -0500
Re: null pointer constant, address constant Shao Miller <sha0.miller@gmail.com> - 2012-12-18 19:51 -0500
Re: null pointer constant, address constant Keith Thompson <kst-u@mib.org> - 2012-12-18 17:02 -0800
Re: null pointer constant, address constant "christian.bau" <christian.bau@cbau.wanadoo.co.uk> - 2012-12-20 05:34 -0800
Re: null pointer constant, address constant James Kuyper <jameskuyper@verizon.net> - 2012-12-20 10:33 -0500
Re: null pointer constant, address constant James Kuyper <jameskuyper@verizon.net> - 2012-12-20 12:28 -0500
Re: null pointer constant, address constant Tim Rentsch <txr@alumni.caltech.edu> - 2012-12-20 21:13 -0800
Re: null pointer constant, address constant Tim Rentsch <txr@alumni.caltech.edu> - 2012-12-20 21:05 -0800
Re: null pointer constant, address constant Shao Miller <sha0.miller@gmail.com> - 2012-12-20 12:17 -0500
Re: null pointer constant, address constant Keith Thompson <kst-u@mib.org> - 2012-12-20 12:10 -0800
Re: null pointer constant, address constant Tim Rentsch <txr@alumni.caltech.edu> - 2012-12-20 21:25 -0800
Re: null pointer constant, address constant Shao Miller <sha0.miller@gmail.com> - 2012-12-18 14:02 -0500
Re: null pointer constant, address constant Szabolcs Nagy <nsz@port70.net> - 2012-12-18 20:09 +0000
Re: null pointer constant, address constant James Kuyper <jameskuyper@verizon.net> - 2012-12-18 15:54 -0500
Re: null pointer constant, address constant Shao Miller <sha0.miller@gmail.com> - 2012-12-18 16:18 -0500
csiph-web