summaryrefslogtreecommitdiff
path: root/gcc/doc/gty.texi
diff options
context:
space:
mode:
authorgeoffk <geoffk@138bc75d-0d04-0410-961f-82ee72b054a4>2004-05-30 00:49:06 +0000
committergeoffk <geoffk@138bc75d-0d04-0410-961f-82ee72b054a4>2004-05-30 00:49:06 +0000
commit8ed01400ddf7575d1965862fd356aa32b8efae47 (patch)
tree53fb5889181940508762ddb472618440e4b6aca6 /gcc/doc/gty.texi
parent58ca5c8a1611ba8db9c317bc7b2239aa22d5c79d (diff)
downloadgcc-8ed01400ddf7575d1965862fd356aa32b8efae47.tar.gz
Index: libcpp/ChangeLog
2004-05-29 Geoffrey Keating <geoffk@apple.com> * symtab.c (ht_create): Set entries_owned. (ht_destroy): Honour entries_owned. (ht_expand): Likewise. (ht_load): New. Index: libcpp/include/ChangeLog 2004-05-29 Geoffrey Keating <geoffk@apple.com> * symtab.h (struct ht): New field 'entries_owned' (ht_load): New prototype. Index: gcc/ChangeLog 2004-05-29 Geoffrey Keating <geoffk@apple.com> * gengtype-yacc.y: Add NESTED_PTR token. (option): Record `nested_ptr' option. * gengtype-lex.l: Handle `nested_ptr' keyword. * gengtype.c (walk_type): Process `nested_ptr' option. * gengtype.h (struct nested_ptr_data): New. * doc/gty.texi (GTY Options): Document `nested_ptr' option. * stringpool.c (struct string_pool_data): Make 'entries' point to ht_identifier instead of tree. (gt_pch_save_stringpool): Don't adjust pointers. (gt_pch_restore_stringpool): Call ht_load. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@82438 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/doc/gty.texi')
-rw-r--r--gcc/doc/gty.texi13
1 files changed, 13 insertions, 0 deletions
diff --git a/gcc/doc/gty.texi b/gcc/doc/gty.texi
index d43feca7221..c375e24042d 100644
--- a/gcc/doc/gty.texi
+++ b/gcc/doc/gty.texi
@@ -291,6 +291,19 @@ this field is always @code{NULL}. This is used to avoid requiring
backends to define certain optional structures. It doesn't work with
language frontends.
+@findex nested_ptr
+@item nested_ptr (@var{type}, "@var{to expression}", "@var{from expression}")
+
+The type machinery expects all pointers to point to the start of an
+object. Sometimes for abstraction purposes it's convenient to have
+a pointer which points inside an object. So long as it's possible to
+convert the original object to and from the pointer, such pointers
+can still be used. @var{type} is the type of the original object,
+the @var{to expression} returns the pointer given the original object,
+and the @var{from expression} returns the original object given
+the pointer. The pointer will be available using the @code{%h}
+escape.
+
@findex chain_next
@findex chain_prev
@item chain_next ("@var{expression}")