1
0
mirror of https://github.com/golang/go synced 2024-11-21 21:24:45 -07:00

spec: pointer comparison for pointers to 0-sized variables

- define "0-sized"
- add clarifying sentence to pointer comparison
- removed notion "location" which was used only in pointer comparisons
  and which was never defined

Fixes #2620.

R=r, rsc, iant
CC=golang-dev
https://golang.org/cl/5528053
This commit is contained in:
Robert Griesemer 2012-01-09 16:54:24 -08:00
parent 024952fb8a
commit 1320ce00c4

View File

@ -1,5 +1,5 @@
<!-- title The Go Programming Language Specification --> <!-- title The Go Programming Language Specification -->
<!-- subtitle Version of December 15, 2011 --> <!-- subtitle Version of January 9, 2012 -->
<!-- <!--
TODO TODO
@ -13,7 +13,6 @@ TODO
[ ] should probably write something about evaluation order of statements even [ ] should probably write something about evaluation order of statements even
though obvious though obvious
[ ] review language on implicit dereferencing [ ] review language on implicit dereferencing
[ ] clarify what it means for two functions to be "the same" when comparing them
--> -->
@ -2957,7 +2956,8 @@ These terms and the result of the comparisons are defined as follows:
<li> <li>
Pointer values are comparable. Pointer values are comparable.
Two pointer values are equal if they point to the same location or if both have value <code>nil</code>. Two pointer values are equal if they point to the same variable or if both have value <code>nil</code>.
Pointers to distinct <a href="#Size_and_alignment_guarantees">zero-size</a> variables may or may not be equal.
</li> </li>
<li> <li>
@ -5348,6 +5348,11 @@ The following minimal alignment properties are guaranteed:
</li> </li>
</ol> </ol>
<p>
A struct or array type has size zero if it contains no fields (or elements, respectively) that have a size greater than zero. Two distinct zero-size variables may have the same address in memory.
</p>
<span class="alert"> <span class="alert">
<h2 id="Implementation_differences">Implementation differences - TODO</h2> <h2 id="Implementation_differences">Implementation differences - TODO</h2>
<ul> <ul>