<html lang="en">
<head>
<title>Arrays and pointers implementation - Using the GNU Compiler Collection (GCC)</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="Using the GNU Compiler Collection (GCC)">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="C-Implementation.html#C-Implementation" title="C Implementation">
<link rel="prev" href="Floating-point-implementation.html#Floating-point-implementation" title="Floating point implementation">
<link rel="next" href="Hints-implementation.html#Hints-implementation" title="Hints implementation">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
2008 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with the
Invariant Sections being ``Funding Free Software'', the Front-Cover
Texts being (a) (see below), and with the Back-Cover Texts being (b)
(see below).  A copy of the license is included in the section entitled
``GNU Free Documentation License''.

(a) The FSF's Front-Cover Text is:

     A GNU Manual

(b) The FSF's Back-Cover Text is:

     You have freedom to copy and modify this GNU Manual, like GNU
     software.  Copies published by the Free Software Foundation raise
     funds for GNU development.-->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
  pre.display { font-family:inherit }
  pre.format  { font-family:inherit }
  pre.smalldisplay { font-family:inherit; font-size:smaller }
  pre.smallformat  { font-family:inherit; font-size:smaller }
  pre.smallexample { font-size:smaller }
  pre.smalllisp    { font-size:smaller }
  span.sc    { font-variant:small-caps }
  span.roman { font-family:serif; font-weight:normal; } 
  span.sansserif { font-family:sans-serif; font-weight:normal; } 
--></style>
<link rel="stylesheet" type="text/css" href="../cs.css">
</head>
<body>
<div class="node">
<a name="Arrays-and-pointers-implementation"></a>
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="Hints-implementation.html#Hints-implementation">Hints implementation</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="Floating-point-implementation.html#Floating-point-implementation">Floating point implementation</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="C-Implementation.html#C-Implementation">C Implementation</a>
<hr>
</div>

<h3 class="section">4.7 Arrays and pointers</h3>

     <ul>
<li><cite>The result of converting a pointer to an integer or
vice versa (C90 6.3.4, C99 6.3.2.3).</cite>

     <p>A cast from pointer to integer discards most-significant bits if the
pointer representation is larger than the integer type,
sign-extends<a rel="footnote" href="#fn-1" name="fnd-1"><sup>1</sup></a>
if the pointer representation is smaller than the integer type, otherwise
the bits are unchanged. 
<!-- ??? We've always claimed that pointers were unsigned entities. -->
<!-- Shouldn't we therefore be doing zero-extension?  If so, the bug -->
<!-- is in convert_to_integer, where we call type_for_size and request -->
<!-- a signed integral type.  On the other hand, it might be most useful -->
<!-- for the target if we extend according to POINTERS_EXTEND_UNSIGNED. -->

     <p>A cast from integer to pointer discards most-significant bits if the
pointer representation is smaller than the integer type, extends according
to the signedness of the integer type if the pointer representation
is larger than the integer type, otherwise the bits are unchanged.

     <p>When casting from pointer to integer and back again, the resulting
pointer must reference the same object as the original pointer, otherwise
the behavior is undefined.  That is, one may not use integer arithmetic to
avoid the undefined behavior of pointer arithmetic as proscribed in
C99 6.5.6/8.

     <li><cite>The size of the result of subtracting two pointers to elements
of the same array (C90 6.3.6, C99 6.5.6).</cite>

     <p>The value is as specified in the standard and the type is determined
by the ABI.

</ul>

 <div class="footnote">
<hr>
<h4>Footnotes</h4><p class="footnote"><small>[<a name="fn-1" href="#fnd-1">1</a>]</small> Future versions of GCC may zero-extend, or use
a target-defined <code>ptr_extend</code> pattern.  Do not rely on sign extension.</p>

 <hr></div>

 </body></html>

