From: Mark Mitchell Date: Fri, 26 May 2000 17:47:25 +0000 (+0000) Subject: class.c (build_vtable_entry_ref): Correct usage of get_vtbl_decl_for_binfo. X-Git-Tag: prereleases/libstdc++-2.92~6162 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=344e498c7c4a74003f21ce605b499e1d14180561;p=thirdparty%2Fgcc.git 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 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 1bccc3602980..656ce2aab1db 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,8 @@ 2000-05-26 Mark Mitchell + * 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 d865fba5f991..2fbdeb4dde4e 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 000000000000..789e3166fb40 --- /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 + +struct S { + virtual void f (); +}; + +S* s; + +void g () +{ + s->f (); +}