diff options
author | Mark Mitchell <mark@codesourcery.com> | 2000-05-26 17:47:25 +0000 |
---|---|---|
committer | Mark Mitchell <mmitchel@gcc.gnu.org> | 2000-05-26 17:47:25 +0000 |
commit | 344e498c7c4a74003f21ce605b499e1d14180561 (patch) | |
tree | 9e8a126624a3c74d820e58e1053be78a5d90568c /gcc | |
parent | cab8bde98e943c8bd7b01ea71848ceb24ec60b45 (diff) | |
download | gcc-344e498c7c4a74003f21ce605b499e1d14180561.zip gcc-344e498c7c4a74003f21ce605b499e1d14180561.tar.gz gcc-344e498c7c4a74003f21ce605b499e1d14180561.tar.bz2 |
class.c (build_vtable_entry_ref): Correct usage of get_vtbl_decl_for_binfo.
* class.c (build_vtable_entry_ref): Correct usage of
get_vtbl_decl_for_binfo.
From-SVN: r34195
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/cp/class.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.other/crash18.C | 14 |
3 files changed, 20 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 1bccc36..656ce2a 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,8 @@ 2000-05-26 Mark Mitchell <mark@codesourcery.com> + * class.c (build_vtable_entry_ref): Correct usage of + get_vtbl_decl_for_binfo. + * decl2.c (grokclassfn): Set DECL_LANGUAGE here. * method.c (implicitly_declare_fn): Not here. diff --git a/gcc/cp/class.c b/gcc/cp/class.c index d865fba..2fbdeb4 100644 --- a/gcc/cp/class.c +++ b/gcc/cp/class.c @@ -485,7 +485,9 @@ build_vtable_entry_ref (basetype, vtbl, idx) static char asm_stmt[] = ".vtable_entry %c0, %c1"; tree s, i, i2; - s = build_unary_op (ADDR_EXPR, get_vtbl_decl_for_binfo (basetype), 0); + s = build_unary_op (ADDR_EXPR, + get_vtbl_decl_for_binfo (TYPE_BINFO (basetype)), + 0); s = build_tree_list (build_string (1, "s"), s); i = build_array_ref (vtbl, idx); diff --git a/gcc/testsuite/g++.old-deja/g++.other/crash18.C b/gcc/testsuite/g++.old-deja/g++.other/crash18.C new file mode 100644 index 0000000..789e316 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.other/crash18.C @@ -0,0 +1,14 @@ +// Build don't link: +// Special g++ Options: -fvtable-gc +// Origin: Mark Mitchell <mitchell@codesourcery.com> + +struct S { + virtual void f (); +}; + +S* s; + +void g () +{ + s->f (); +} |