diff options
author | Geoffrey Keating <geoffk@apple.com> | 2004-05-30 00:49:06 +0000 |
---|---|---|
committer | Geoffrey Keating <geoffk@gcc.gnu.org> | 2004-05-30 00:49:06 +0000 |
commit | b453c95fd3fa689a6d70e8878848e5d6531e9ac5 (patch) | |
tree | 53fb5889181940508762ddb472618440e4b6aca6 /gcc/doc/gty.texi | |
parent | 666e5d7b945c77f3bd9f3fdf00bf75f3a02e3499 (diff) | |
download | gcc-b453c95fd3fa689a6d70e8878848e5d6531e9ac5.zip gcc-b453c95fd3fa689a6d70e8878848e5d6531e9ac5.tar.gz gcc-b453c95fd3fa689a6d70e8878848e5d6531e9ac5.tar.bz2 |
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.
From-SVN: r82438
Diffstat (limited to 'gcc/doc/gty.texi')
-rw-r--r-- | gcc/doc/gty.texi | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/gcc/doc/gty.texi b/gcc/doc/gty.texi index d43feca..c375e24 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}") |