From 757d1b88480bab90e01af9fb39b0c4b8b8367988 Mon Sep 17 00:00:00 2001 From: Andrew Pinski Date: Thu, 21 Jul 2005 18:29:05 +0000 Subject: [PATCH] re PR c++/22358 (C++ front-end produces mis-match types in MODIFY_EXPR) 2005-07-21 Andrew Pinski PR C++/22358 * g++.dg/other/pr22358.C: New test. 2005-07-21 Andrew Pinski PR C++/22358 * class.c (build_base_path): Convert BINFO_OFFSET to the correct type. From-SVN: r102240 --- gcc/cp/ChangeLog | 5 +++++ gcc/cp/class.c | 3 ++- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/g++.dg/other/pr22358.C | 8 ++++++++ 4 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/g++.dg/other/pr22358.C diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 31c93f9adc2..e464a661853 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2005-07-21 Andrew Pinski + + PR C++/22358 + * class.c (build_base_path): Convert BINFO_OFFSET to the correct type. + 2005-07-21 Volker Reichelt * call.c: Fix comment typo(s). diff --git a/gcc/cp/class.c b/gcc/cp/class.c index 9b85a4df2e9..e60cc8b4f46 100644 --- a/gcc/cp/class.c +++ b/gcc/cp/class.c @@ -365,7 +365,8 @@ build_base_path (enum tree_code code, build2 (EQ_EXPR, boolean_type_node, current_in_charge_parm, integer_zero_node), v_offset, - BINFO_OFFSET (binfo)); + convet_to_integer (ptrdiff_type_node, + BINFO_OFFSET (binfo))); else offset = v_offset; } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c390032ef66..04dfb01cf4c 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2005-07-21 Andrew Pinski + + PR C++/22358 + * g++.dg/other/pr22358.C: New test. + 2005-07-21 Douglas Gregor PR c++/2922 diff --git a/gcc/testsuite/g++.dg/other/pr22358.C b/gcc/testsuite/g++.dg/other/pr22358.C new file mode 100644 index 00000000000..dbce0f8a1a7 --- /dev/null +++ b/gcc/testsuite/g++.dg/other/pr22358.C @@ -0,0 +1,8 @@ +/* { dg-do compile } */ + +struct a +{ + virtual ~a(); +}; +struct b : virtual a { }; +b a11; -- 2.30.2