diff options
author | Nathan Sidwell <nathan@codesourcery.com> | 2005-06-16 08:21:00 +0000 |
---|---|---|
committer | Nathan Sidwell <nathan@gcc.gnu.org> | 2005-06-16 08:21:00 +0000 |
commit | fe93f42f5e6cf7503f722f66e825fd5367153cdf (patch) | |
tree | 45ac8abe456ab808e94f317301eb28db35d93232 /gcc/cp/rtti.c | |
parent | 3d5a109a9cf5479d273c81b632d2041950ef0f1b (diff) | |
download | gcc-fe93f42f5e6cf7503f722f66e825fd5367153cdf.zip gcc-fe93f42f5e6cf7503f722f66e825fd5367153cdf.tar.gz gcc-fe93f42f5e6cf7503f722f66e825fd5367153cdf.tar.bz2 |
rtti.c (get_tinfo_decl): Avoid caching tinfo_descs when it might change.
cp:
* rtti.c (get_tinfo_decl): Avoid caching tinfo_descs when it might
change.
(create_pseudo_type_info): First parameter is an int.
testsuite:
* g++.dg/rtti/crash2.C: New.
From-SVN: r101011
Diffstat (limited to 'gcc/cp/rtti.c')
-rw-r--r-- | gcc/cp/rtti.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/gcc/cp/rtti.c b/gcc/cp/rtti.c index 317068e..c9f3d38 100644 --- a/gcc/cp/rtti.c +++ b/gcc/cp/rtti.c @@ -117,7 +117,7 @@ static tree generic_initializer (tinfo_s *, tree); static tree ptr_initializer (tinfo_s *, tree); static tree ptm_initializer (tinfo_s *, tree); static tree class_initializer (tinfo_s *, tree, tree); -static void create_pseudo_type_info (tinfo_kind, const char *, ...); +static void create_pseudo_type_info (int, const char *, ...); static tree get_pseudo_ti_init (tree, unsigned); static unsigned get_pseudo_ti_index (tree); static void create_tinfo_types (void); @@ -369,8 +369,8 @@ get_tinfo_decl (tree type) d = IDENTIFIER_GLOBAL_VALUE (name); if (!d) { - tinfo_s *ti = VEC_index (tinfo_s, tinfo_descs, - get_pseudo_ti_index (type)); + int ix = get_pseudo_ti_index (type); + tinfo_s *ti = VEC_index (tinfo_s, tinfo_descs, ix); d = build_lang_decl (VAR_DECL, name, ti->type); SET_DECL_ASSEMBLER_NAME (d, name); @@ -1100,7 +1100,7 @@ get_pseudo_ti_init (tree type, unsigned tk_index) NULL. */ static void -create_pseudo_type_info (tinfo_kind tk, const char *real_name, ...) +create_pseudo_type_info (int tk, const char *real_name, ...) { tinfo_s *ti; tree pseudo_type; |