OSDN Git Service

2010-02-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
[pf3gnuchains/gcc-fork.git] / gcc / doc / interface.texi
index d2210e9..f6fdc32 100644 (file)
@@ -1,5 +1,5 @@
 @c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
-@c 1999, 2000, 2001 Free Software Foundation, Inc.
+@c 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
 @c This is part of the GCC manual.
 @c For copying conditions, see the file gcc.texi.
 
@@ -28,8 +28,8 @@ long in the same registers used for @code{int} or @code{double} return
 values.  (GCC typically allocates variables of such types in
 registers also.)  Structures and unions of other sizes are returned by
 storing them into an address passed by the caller (usually in a
-register).  The machine-description macros @code{STRUCT_VALUE} and
-@code{STRUCT_INCOMING_VALUE} tell GCC where to pass this address.
+register).  The target hook @code{TARGET_STRUCT_VALUE_RTX}
+tells GCC where to pass this address.
 
 By contrast, PCC on most target machines returns structures and unions
 of any size by copying the data into an area of static storage, and then
@@ -69,17 +69,3 @@ values after a @code{longjmp}.  And this is all GCC promises to do,
 because it is very difficult to restore register variables correctly, and
 one of GCC's features is that it can put variables in registers without
 your asking it to.
-
-If you want a variable to be unaltered by @code{longjmp}, and you don't
-want to write @code{volatile} because old C compilers don't accept it,
-just take the address of the variable.  If a variable's address is ever
-taken, even if just to compute it and ignore it, then the variable cannot
-go in a register:
-
-@example
-@{
-  int careful;
-  &careful;
-  @dots{}
-@}
-@end example