public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug middle-end/16948] New: Many new testsuite failures on hppa64-hp-hpux11.11
@ 2004-08-09 18:13 danglin at gcc dot gnu dot org
  2004-08-09 18:38 ` [Bug middle-end/16948] [3.5 Regression] " pinskia at gcc dot gnu dot org
                   ` (12 more replies)
  0 siblings, 13 replies; 14+ messages in thread
From: danglin at gcc dot gnu dot org @ 2004-08-09 18:13 UTC (permalink / raw)
  To: gcc-bugs

The following change introduced a large number of new fails in the
GCC testsuite:

2004-08-07  Jason Merrill  <jason@redhat.com>

        Make return in memory explicit.
        * function.c (aggregate_value_p): Check DECL_BY_REFERENCE.
        (assign_parm_find_data_types): Remove code for old front end
        invisible reference handling.
        (assign_parms): Handle DECL_BY_REFERENCE on the RESULT_DECL.
        (expand_function_end): Likewise.
        * gimplify.c (gimplify_return_expr): Handle a dereferenced
        RESULT_DECL.
        * tree-inline.c (copy_body_r): Don't bother looking for &* anymore.
        (declare_return_variable): Handle DECL_BY_REFERENCE.
        * cp/cp-gimplify.c (is_invisiref_parm): Also handle RESULT_DECL.
        (cp_genericize_r): Use convert_from_reference.
        Don't dereference a RESULT_DECL directly inside a RETURN_EXPR.
        (cp_genericize): Handle the RESULT_DECL.  Unset TREE_ADDRESSABLE.

        * gimplify.c (gimplify_call_expr): Make return in memory explicit.
        (gimplify_modify_expr_rhs): Likewise.
        * c-common.c (c_warn_unused_result): Check TREE_USED before
        warning about a CALL_EXPR with an unused value.

Prior to the patch, we had the following test results:
  <http://gcc.gnu.org/ml/gcc-testresults/2004-08/msg00371.html>.

After the patch, we have the following results:
  <http://gcc.gnu.org/ml/gcc-testresults/2004-08/msg00336.html>.

The first new failure that I looked at was the following:



                === libstdc++ tests ===


Running target unix
FAIL: 20_util/memory/auto_ptr/3946.cc execution test

# gdb 3946.exe
GNU gdb 2004-05-25-cvs
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "hppa64-hp-hpux11.11"...
(gdb) r
Starting program:
/test/gnu/gcc-3.3/objdir/hppa64-hp-hpux11.11/libstdc++-v3/testsuite/3946.exe 

Program received signal SIGSEGV, Segmentation fault.
conversiontest08 () at memory:349
349           : _M_ptr(__ref._M_ptr) { }
(gdb) p/x $pcoqh
$1 = 0x40000000000037ec
(gdb) disass
Dump of assembler code for function _Z16conversiontest08v:
0x40000000000037c0 <_Z16conversiontest08v+0>:   std rp,-10(,sp)
0x40000000000037c4 <_Z16conversiontest08v+4>:   ldi 1,r26
0x40000000000037c8 <_Z16conversiontest08v+8>:   std,ma r6,90(sp)
0x40000000000037cc <_Z16conversiontest08v+12>:  copy ret0,r6
0x40000000000037d0 <_Z16conversiontest08v+16>:  ldo -30(sp),ret1
0x40000000000037d4 <_Z16conversiontest08v+20>:  std r4,-80(sp)
0x40000000000037d8 <_Z16conversiontest08v+24>:  copy dp,r4
0x40000000000037dc <_Z16conversiontest08v+28>:  std r5,-88(sp)
0x40000000000037e0 <_Z16conversiontest08v+32>:  b,l 0x4000000000003508
<.hash+920>,%r2
0x40000000000037e4 <_Z16conversiontest08v+36>:  ldd 0(,ret0),r5
0x40000000000037e8 <_Z16conversiontest08v+40>:  copy r4,dp
0x40000000000037ec <_Z16conversiontest08v+44>:  std ret0,0(,r5)
0x40000000000037f0 <_Z16conversiontest08v+48>:  ldo -30(sp),ret1
0x40000000000037f4 <_Z16conversiontest08v+52>:  b,l 0x4000000000003514
<.hash+932>,%r2
0x40000000000037f8 <_Z16conversiontest08v+56>:  ldi 0,r26
0x40000000000037fc <_Z16conversiontest08v+60>:  ldd 0(,r6),ret0
0x4000000000003800 <_Z16conversiontest08v+64>:  ldd -a0(sp),rp
0x4000000000003804 <_Z16conversiontest08v+68>:  ldd -88(sp),r5
0x4000000000003808 <_Z16conversiontest08v+72>:  ldd -80(sp),r4
0x400000000000380c <_Z16conversiontest08v+76>:  bve (rp)
(gdb) p/x $r5
$2 = 0x0
Breakpoint 1, conversiontest08 ()
    at
/test/gnu/gcc-3.3/gcc/libstdc++-v3/testsuite/20_util/memory/auto_ptr/3946.cc:30
30      conversiontest08() { return std::auto_ptr<Derived>(new Derived); }
(gdb) p/x $ret0
$1 = 0x800003fffeff09b0
(gdb) p/x *((long *)$ret0)
$2 = 0x0
(gdb) disass 0x40000000000038d0 0x4000000000003900
Dump of assembler code from 0x40000000000038d0 to 0x4000000000003900:
0x40000000000038d0 <_Z6test08v+184>:    std ret0,-180(sp)
0x40000000000038d4 <_Z6test08v+188>:    ldi 1,ret0
0x40000000000038d8 <_Z6test08v+192>:    copy r4,dp
0x40000000000038dc <_Z6test08v+196>:    stw ret0,-1b8(sp)
0x40000000000038e0 <_Z6test08v+200>:    std r0,-158(sp)
0x40000000000038e4 <_Z6test08v+204>:    ldo -30(sp),ret1
0x40000000000038e8 <_Z6test08v+208>:    b,l 0x40000000000037c0
<_Z16conversiontest08v>,%r2
0x40000000000038ec <_Z6test08v+212>:    ldo -1d0(sp),ret0
0x40000000000038f0 <_Z6test08v+216>:    ldd -1d0(sp),ret0
0x40000000000038f4 <_Z6test08v+220>:    copy r4,dp
0x40000000000038f8 <_Z6test08v+224>:    cmpb,*= r0,ret0,0x4000000000003914
<_Z6test08v+252>
0x40000000000038fc <_Z6test08v+228>:    std r0,-1d0(sp)

The code in question is the following:

29      std::auto_ptr<Derived> 
30      conversiontest08() { return std::auto_ptr<Derived>(new Derived); }
31
32      void
33      test08()
34      {
35        std::auto_ptr<Base> ptr;
36        ptr = conversiontest08();
37      }

The code is apparently passing the address of ptr by invisible reference to
conversiontest08 but the structure either hasn't been appropriately
initialized, or conversiontest08 shouldn't be using the uninitialized
struct.

-- 
           Summary: Many new testsuite failures on hppa64-hp-hpux11.11
           Product: gcc
           Version: 3.5.0
            Status: UNCONFIRMED
          Severity: critical
          Priority: P2
         Component: middle-end
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: danglin at gcc dot gnu dot org
                CC: gcc-bugs at gcc dot gnu dot org,jason at redhat dot com
 GCC build triplet: hppa64-hp-hpux11.11
  GCC host triplet: hppa64-hp-hpux11.11
GCC target triplet: hppa64-hp-hpux11.11


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16948


^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2004-08-10 20:29 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-08-09 18:13 [Bug middle-end/16948] New: Many new testsuite failures on hppa64-hp-hpux11.11 danglin at gcc dot gnu dot org
2004-08-09 18:38 ` [Bug middle-end/16948] [3.5 Regression] " pinskia at gcc dot gnu dot org
2004-08-09 18:47 ` jason at redhat dot com
2004-08-09 19:10 ` dave at hiauly1 dot hia dot nrc dot ca
2004-08-09 19:24 ` jason at redhat dot com
2004-08-09 19:48 ` jason at redhat dot com
2004-08-09 19:51 ` dave at hiauly1 dot hia dot nrc dot ca
2004-08-09 19:58 ` jason at redhat dot com
2004-08-09 21:18 ` pinskia at gcc dot gnu dot org
2004-08-10 18:02 ` cvs-commit at gcc dot gnu dot org
2004-08-10 18:04 ` pinskia at gcc dot gnu dot org
2004-08-10 18:14 ` dave at hiauly1 dot hia dot nrc dot ca
2004-08-10 18:34 ` jason at redhat dot com
2004-08-10 20:29 ` dave at hiauly1 dot hia dot nrc dot ca

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).