diff options
| author | mmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-05-26 17:47:25 +0000 |
|---|---|---|
| committer | mmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-05-26 17:47:25 +0000 |
| commit | 0c910bebb2f972ec60025613e25da7257a5928d5 (patch) | |
| tree | 9e8a126624a3c74d820e58e1053be78a5d90568c | |
| parent | 4d4e6d4b278ef3e9a3fc32c551cc85e96554f151 (diff) | |
| download | ppe42-gcc-0c910bebb2f972ec60025613e25da7257a5928d5.tar.gz ppe42-gcc-0c910bebb2f972ec60025613e25da7257a5928d5.zip | |
* class.c (build_vtable_entry_ref): Correct usage of
get_vtbl_decl_for_binfo.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@34195 138bc75d-0d04-0410-961f-82ee72b054a4
| -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 1bccc360298..656ce2aab1d 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 d865fba5f99..2fbdeb4dde4 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 00000000000..789e3166fb4 --- /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 (); +} |

