From 7d793e9b25c1bf4a122113ab1e54aab528ee32a1 Mon Sep 17 00:00:00 2001 From: Mark Mitchell Date: Fri, 26 Apr 2002 21:28:47 +0000 Subject: [PATCH] re PR bootstrap/6445 (ICE bootstrapping objc for i386-rtems) PR bootstrap/6445 * config/i386/i386.md (untyped_call): Return the value in a float register if TARGET_FLOAT_RETURNS_IN_80387, not just if TARGET_80387. PR c++/6497 * method.c (do_build_assign_ref): Pass a derivation to build_method_call when calling base class assignment operators. PR c++/6497 * g++.dg/inherit/access2.C: New test. PR bootstrap/6445 * gcc.dg/20020426-1.c: New test. From-SVN: r52809 --- gcc/ChangeLog | 7 +++++++ gcc/cp/ChangeLog | 6 ++++++ gcc/cp/method.c | 2 +- gcc/testsuite/ChangeLog | 10 ++++++++++ gcc/testsuite/gcc.dg/20020426-1.c | 6 ++++++ 5 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gcc.dg/20020426-1.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f23a4a4678b..05394caf8ed 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2002-04-26 Mark Mitchell + + PR bootstrap/6445 + * config/i386/i386.md (untyped_call): Return the value in a float + register if TARGET_FLOAT_RETURNS_IN_80387, not just if + TARGET_80387. + 2002-04-26 Alexandre Oliva * tree.c (tree_int_cst_lt): Compare constants whose types differ diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index e8aa22ae1c9..4e9ef3ce8ad 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2002-04-26 Mark Mitchell + + PR c++/6497 + * method.c (do_build_assign_ref): Pass a derivation to + build_method_call when calling base class assignment operators. + 2002-04-26 Richard Henderson * parse.y (yyoverflow): Revert. diff --git a/gcc/cp/method.c b/gcc/cp/method.c index efcd5fb289a..b6890678223 100644 --- a/gcc/cp/method.c +++ b/gcc/cp/method.c @@ -636,7 +636,7 @@ do_build_assign_ref (fndecl) tree expr = build_method_call (dst, ansi_assopname (NOP_EXPR), build_tree_list (NULL_TREE, src), - NULL, + binfo, LOOKUP_NORMAL | LOOKUP_NONVIRTUAL); finish_expr_stmt (expr); } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 42b45b0d609..ffaf4aa2c25 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,13 @@ +2002-04-26 Mark Mitchell + + PR c++/6497 + * g++.dg/inherit/access2.C: New test. + +2002-04-26 Mark Mitchell + + PR bootstrap/6445 + * gcc.dg/20020426-1.c: New test. + 2002-04-26 Alexandre Oliva * g++.dg/abi/enum1.C: New test. diff --git a/gcc/testsuite/gcc.dg/20020426-1.c b/gcc/testsuite/gcc.dg/20020426-1.c new file mode 100644 index 00000000000..94523e7298a --- /dev/null +++ b/gcc/testsuite/gcc.dg/20020426-1.c @@ -0,0 +1,6 @@ +/* { dg-do compile { target i?86-*-* } } */ +/* { dg-options "-msoft-float -mfp-ret-in-387" } */ + +void f() { + __builtin_apply(0, 0, 0); +}