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

* [Bug middle-end/16948] [3.5 Regression] Many new testsuite failures on hppa64-hp-hpux11.11
  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 ` pinskia at gcc dot gnu dot org
  2004-08-09 18:47 ` jason at redhat dot com
                   ` (11 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-08-09 18:38 UTC (permalink / raw)
  To: gcc-bugs



-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |wrong-code
            Summary|Many new testsuite failures |[3.5 Regression] Many new
                   |on hppa64-hp-hpux11.11      |testsuite failures on
                   |                            |hppa64-hp-hpux11.11
   Target Milestone|---                         |3.5.0


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


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

* [Bug middle-end/16948] [3.5 Regression] Many new testsuite failures on hppa64-hp-hpux11.11
  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
                   ` (10 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: jason at redhat dot com @ 2004-08-09 18:47 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From jason at redhat dot com  2004-08-09 18:47 -------
Subject: Re:  New: Many new testsuite failures on
 hppa64-hp-hpux11.11

On 9 Aug 2004 18:13:22 -0000, "danglin at gcc dot gnu dot org" <gcc-bugzilla@gcc.gnu.org> wrote:

> 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.

conversiontest08 should be initializing ptr.  What does the
-fdump-tree-gimple output look like?

Thanks,
Jason


-- 


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


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

* [Bug middle-end/16948] [3.5 Regression] Many new testsuite failures on hppa64-hp-hpux11.11
  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
                   ` (9 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: dave at hiauly1 dot hia dot nrc dot ca @ 2004-08-09 19:10 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From dave at hiauly1 dot hia dot nrc dot ca  2004-08-09 19:10 -------
Subject: Re:  [3.5 Regression] Many new testsuite failur

> conversiontest08 should be initializing ptr.  What does the
> -fdump-tree-gimple output look like?

I'll check.  However, before your change, we had the following
code:

_Z16conversiontest08v
        .PROC
	.CALLINFO FRAME=128,CALLS,SAVE_RP,ENTRY_GR=4
	.ENTRY
L$VL0016
	std %r2,-16(%r30)
L$BB0002
	ldi 1,%r26
L$BE0002
	std,ma %r5,128(%r30)
L$VL0017
L$BB0003
	ldo -48(%r30),%r29
L$BE0003
	copy %r28,%r5
	std %r4,-120(%r30)
L$BB0004
	.loc 1 30 0
	b,l _Znwm,%r2
	copy %r27,%r4
L$BB0005
	.file 3 "/test/gnu/gcc-3.3/objdir/hppa64-hp-hpux11.11/libstdc++-v3/include/memory"
	.loc 3 349 0
	std %r28,0(%r5)
	...

Here the struct value register is simply copied to %r5.

Dave


-- 


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


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

* [Bug middle-end/16948] [3.5 Regression] Many new testsuite failures on hppa64-hp-hpux11.11
  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
                   ` (2 preceding siblings ...)
  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
                   ` (8 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: jason at redhat dot com @ 2004-08-09 19:24 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From jason at redhat dot com  2004-08-09 19:24 -------
Subject: Re:  [3.5 Regression] Many new testsuite
 failures on hppa64-hp-hpux11.11

On 9 Aug 2004 18:47:53 -0000, "jason at redhat dot com" <gcc-bugzilla@gcc.gnu.org> wrote:

> conversiontest08 should be initializing ptr.  What does the
> -fdump-tree-gimple output look like?

Running a pa64 cross compiler on preprocessed code for x86-linux-gnu, I see

std::auto_ptr<Derived> conversiontest08() ()
{
  struct auto_ptr<Derived> & T___932;
  struct auto_ptr_ref<Derived> <D28724>;
  struct auto_ptr<Derived> <D28705>;
  void * T___933;
  struct Derived * T___933___934;

  T___932 = <retval>;
  T___933 = operator new (1);
  T___933___934 = (struct Derived *)T___933;
  __comp_ctor (&<D28705>, T___933___934);
  <D28724> = operator 7 (&<D28705>);
  __comp_ctor (T___932, <D28724>);
  return <retval>;
}

void test08() ()
{
  struct auto_ptr_ref<Base> <D28852>;
  struct auto_ptr<Derived> <D28819>;

  {
    struct auto_ptr<Base> ptr;

    __comp_ctor (&ptr, 0B);
    try
      {
        conversiontest08 (&<D28819>) [return slot addr];
        <D28852> = operator 8 (&<D28819>);
        operator= (&ptr, <D28852>);
      }
    finally
      {
        __comp_dtor (&ptr);
      }
  }
}

which all looks right to me, though the address of ptr is not, in fact,
being passed to conversiontest08; if it is in the generated binary, that's
a bug.

Does the disassembly you quoted seem to match the above pseudo-code?

Jason


-- 


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


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

* [Bug middle-end/16948] [3.5 Regression] Many new testsuite failures on hppa64-hp-hpux11.11
  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
                   ` (3 preceding siblings ...)
  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
                   ` (7 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: jason at redhat dot com @ 2004-08-09 19:48 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From jason at redhat dot com  2004-08-09 19:48 -------
Subject: Re:  [3.5 Regression] Many new testsuite
 failures on hppa64-hp-hpux11.11

Hmm, the spurious dereference seems to be appearing during expansion; the
last tree dump looks like

std::auto_ptr<Derived> conversiontest08() ()
{
  struct auto_ptr<Derived> * const this;
  void * T___903;

<bb 0>:
  this = <retval>;
  T___903 = operator new (1);
  this->_M_ptr = (struct Derived *)T___903;
  operator delete (0B);
  return <retval>;
}

which is correct.  For some reason when we get to rtl, it has become
"this = *<retval>;"

Continuing to investigate.

Jason


-- 


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


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

* [Bug middle-end/16948] [3.5 Regression] Many new testsuite failures on hppa64-hp-hpux11.11
  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
                   ` (4 preceding siblings ...)
  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
                   ` (6 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: dave at hiauly1 dot hia dot nrc dot ca @ 2004-08-09 19:51 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From dave at hiauly1 dot hia dot nrc dot ca  2004-08-09 19:51 -------
Subject: Re:  [3.5 Regression] Many new testsuite failur

This is the gimple that I got.

Dave
-- 
J. David Anglin                                  dave.anglin@nrc-cnrc.gc.ca
National Research Council of Canada              (613) 990-0752 (FAX: 952-6602)

;; Function std::auto_ptr<Derived> conversiontest08() (_Z16conversiontest08v)

std::auto_ptr<Derived> conversiontest08() ()
{
  struct auto_ptr_ref<Derived> <D47832>;

  T___1093 = <retval>;
  T___1094 = operator new (1);
  T___1094___1095 = (struct Derived *)T___1094;
  {
    struct Derived * __p;

    __p = T___1094___1095;
    {
      try
        {
          {
            <D47256>._M_ptr = __p;
          }
        }
      catch
        {
          <<<eh_filter ()>>>
            {
              __cxa_call_unexpected (<<<exception object>>>);
            }
        }
    }
  }
  (void)0;
  try
    {
      {
        {
          struct auto_ptr_ref<Derived> T___1145;
          struct auto_ptr_ref<Derived> <D47834>;
          struct Derived * T___1146;

          try
            {
              {
                {
                  {
                    struct Derived * T___1175;

                    try
                      {
                        {
                          {
                            struct Derived * __tmp;

                            __tmp = <D47256>._M_ptr;
                            <D47256>._M_ptr = 0B;
                            T___1175 = __tmp;
                            T___1175 = T___1175;
                            {
                              T___1146 = T___1175;
                              goto <D47836>;
                            }
                          }
                        }
                      }
                    catch
                      {
                        <<<eh_filter ()>>>
                          {
                            __cxa_call_unexpected (<<<exception object>>>);
                          }
                      }
                  }
                  <D47836>:;
                }
                (void)0;
                {
                  struct Derived * __p;

                  __p = T___1146;
                  {
                    <D47834>._M_ptr = __p;
                  }
                }
                (void)0;
                T___1145 = <D47834>;
                T___1145 = T___1145;
                {
                  <D47832> = T___1145;
                  goto <D47831>;
                }
              }
            }
          catch
            {
              <<<eh_filter ()>>>
                {
                  __cxa_call_unexpected (<<<exception object>>>);
                }
            }
        }
        <D47831>:;
      }
      <D47275> = <D47832>;
      {
        struct auto_ptr_ref<Derived> __ref;
        struct auto_ptr<Derived> * const this;

        this = (struct auto_ptr<Derived> * const)T___1093;
        __ref = <D47275>;
        {
          struct Derived * T___1147;

          try
            {
              {
                T___1147 = __ref._M_ptr;
                this->_M_ptr = T___1147;
              }
            }
          catch
            {
              <<<eh_filter ()>>>
                {
                  __cxa_call_unexpected (<<<exception object>>>);
                }
            }
        }
      }
      (void)0;
      return <retval>;
    }
  finally
    {
      {
        {
          struct Derived * T___1144;

          {
            T___1144 = <D47256>._M_ptr;
            operator delete (T___1144);
          }
          <D47847>:;
        }
      }
      (void)0;
    }
}



;; Function void test08() (_Z6test08v)

void test08() ()
{
  struct auto_ptr<Base> & <D47873>;
  struct auto_ptr_ref<Base> <D47861>;

  {
    struct auto_ptr<Base> ptr;

    {
      struct Base * __p;

      __p = 0B;
      {
        try
          {
            {
              ptr._M_ptr = __p;
            }
          }
        catch
          {
            <<<eh_filter ()>>>
              {
                __cxa_call_unexpected (<<<exception object>>>);
              }
          }
      }
    }
    (void)0;
    try
      {
        conversiontest08 (&<D47370>) [return slot addr];
        try
          {
            {
              {
                struct auto_ptr_ref<Base> T___1149;
                struct auto_ptr_ref<Base> <D47863>;
                struct Derived * T___1150;
                struct Base * T___1150___1151;

                try
                  {
                    {
                      {
                        {
                          struct Derived * T___1175;

                          try
                            {
                              {
                                {
                                  struct Derived * __tmp;

                                  __tmp = <D47370>._M_ptr;
                                  <D47370>._M_ptr = 0B;
                                  T___1175 = __tmp;
                                  T___1175 = T___1175;
                                  {
                                    T___1150 = T___1175;
                                    goto <D47866>;
                                  }
                                }
                              }
                            }
                          catch
                            {
                              <<<eh_filter ()>>>
                                {
                                  __cxa_call_unexpected (<<<exception object>>>);
                                }
                            }
                        }
                        <D47866>:;
                      }
                      (void)0;
                      T___1150___1151 = (struct Base *)T___1150;
                      {
                        struct Base * __p;

                        __p = T___1150___1151;
                        {
                          <D47863>._M_ptr = __p;
                        }
                      }
                      (void)0;
                      T___1149 = <D47863>;
                      T___1149 = T___1149;
                      {
                        <D47861> = T___1149;
                        goto <D47860>;
                      }
                    }
                  }
                catch
                  {
                    <<<eh_filter ()>>>
                      {
                        __cxa_call_unexpected (<<<exception object>>>);
                      }
                  }
              }
              <D47860>:;
            }
            <D47403> = <D47861>;
            {
              struct auto_ptr_ref<Base> __ref;

              __ref = <D47403>;
              {
                struct Base * T___1152;
                struct Base * T___1153;
                struct Base * T___1154;
                struct auto_ptr<Base> & T___1155;

                try
                  {
                    {
                      T___1152 = __ref._M_ptr;
                      {
                        struct auto_ptr<Base> * const this;

                        this = (struct auto_ptr<Base> * const)&ptr;
                        {
                          struct Base * T___1176;

                          try
                            {
                              {
                                T___1176 = this->_M_ptr;
                                T___1176 = T___1176;
                                {
                                  T___1153 = T___1176;
                                  goto <D47879>;
                                }
                              }
                            }
                          catch
                            {
                              <<<eh_filter ()>>>
                                {
                                  __cxa_call_unexpected (<<<exception object>>>);
                                }
                            }
                        }
                        <D47879>:;
                      }
                      (void)0;
                      if (T___1152 != T___1153)
                        {
                          T___1154 = ptr._M_ptr;
                          operator delete (T___1154);
                          T___1152 = __ref._M_ptr;
                          ptr._M_ptr = T___1152;
                        }
                      else
                        {
                          
                        }
                      T___1155 = &ptr;
                      T___1155 = T___1155;
                      {
                        <D47873> = T___1155;
                        goto <D47872>;
                      }
                    }
                  }
                catch
                  {
                    <<<eh_filter ()>>>
                      {
                        __cxa_call_unexpected (<<<exception object>>>);
                      }
                  }
              }
              <D47872>:;
            }
            (void)0;
          }
        finally
          {
            {
              {
                struct Derived * T___1144;

                {
                  T___1144 = <D47370>._M_ptr;
                  operator delete (T___1144);
                }
                <D47883>:;
              }
            }
            (void)0;
          }
      }
    finally
      {
        {
          {
            struct Base * T___1148;

            {
              T___1148 = ptr._M_ptr;
              operator delete (T___1148);
            }
            <D47886>:;
          }
        }
        (void)0;
      }
  }
}


-- 


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


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

* [Bug middle-end/16948] [3.5 Regression] Many new testsuite failures on hppa64-hp-hpux11.11
  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
                   ` (5 preceding siblings ...)
  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
                   ` (5 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: jason at redhat dot com @ 2004-08-09 19:58 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From jason at redhat dot com  2004-08-09 19:58 -------
Subject: Re:  [3.5 Regression] Many new testsuite
 failures on hppa64-hp-hpux11.11

This patch seems to fix the bug; please give it a test and apply it if it
does the trick.

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

	* function.c (expand_function_start): Handle DECL_BY_REFERENCE on
	the RESULT_DECL.

*** function.c.~1~	2004-08-09 09:15:49.000000000 -0400
--- function.c	2004-08-09 15:54:51.000000000 -0400
*************** expand_function_start (tree subr)
*** 4005,4012 ****
  	}
        if (value_address)
  	{
! 	  rtx x = gen_rtx_MEM (DECL_MODE (DECL_RESULT (subr)), value_address);
! 	  set_mem_attributes (x, DECL_RESULT (subr), 1);
  	  SET_DECL_RTL (DECL_RESULT (subr), x);
  	}
      }
--- 4005,4016 ----
  	}
        if (value_address)
  	{
! 	  rtx x = value_address;
! 	  if (!DECL_BY_REFERENCE (DECL_RESULT (subr)))
! 	    {
! 	      x = gen_rtx_MEM (DECL_MODE (DECL_RESULT (subr)), x);
! 	      set_mem_attributes (x, DECL_RESULT (subr), 1);
! 	    }
  	  SET_DECL_RTL (DECL_RESULT (subr), x);
  	}
      }


-- 


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


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

* [Bug middle-end/16948] [3.5 Regression] Many new testsuite failures on hppa64-hp-hpux11.11
  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
                   ` (6 preceding siblings ...)
  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
                   ` (4 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-08-09 21:18 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-08-09 21:18 -------
Confirmed.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|                            |1
   Last reconfirmed|0000-00-00 00:00:00         |2004-08-09 21:18:48
               date|                            |


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


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

* [Bug middle-end/16948] [3.5 Regression] Many new testsuite failures on hppa64-hp-hpux11.11
  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
                   ` (7 preceding siblings ...)
  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
                   ` (3 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2004-08-10 18:02 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From cvs-commit at gcc dot gnu dot org  2004-08-10 18:02 -------
Subject: Bug 16948

CVSROOT:	/cvs/gcc
Module name:	gcc
Changes by:	jason@gcc.gnu.org	2004-08-10 18:02:50

Modified files:
	gcc            : ChangeLog 

Log message:
	PR middle-end/16948
	* function.c (expand_function_start): Handle DECL_BY_REFERENCE on
	the RESULT_DECL.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.4849&r2=2.4850



-- 


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


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

* [Bug middle-end/16948] [3.5 Regression] Many new testsuite failures on hppa64-hp-hpux11.11
  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
                   ` (8 preceding siblings ...)
  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
                   ` (2 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-08-10 18:04 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-08-10 18:04 -------
Fixed.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED


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


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

* [Bug middle-end/16948] [3.5 Regression] Many new testsuite failures on hppa64-hp-hpux11.11
  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
                   ` (9 preceding siblings ...)
  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
  12 siblings, 0 replies; 14+ messages in thread
From: dave at hiauly1 dot hia dot nrc dot ca @ 2004-08-10 18:14 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From dave at hiauly1 dot hia dot nrc dot ca  2004-08-10 18:14 -------
Subject: Re:  [3.5 Regression] Many new testsuite failur

> 18:04 -------
> Fixed.

Well mostly.  The regressions on hppa64-hp-hpux11.11 are fixed but in
testing I found what appears to be another regression on hppa2.0w-hp-hpux11.11:

FAIL: gcc.c-torture/execute/complex-1.c execution,  -O0 
FAIL: gcc.c-torture/execute/complex-1.c execution,  -O1 
FAIL: gcc.c-torture/execute/complex-1.c execution,  -O2 
FAIL: gcc.c-torture/execute/complex-1.c execution,  -O3 -fomit-frame-pointer 
FAIL: gcc.c-torture/execute/complex-1.c execution,  -O3 -g 
FAIL: gcc.c-torture/execute/complex-1.c execution,  -Os 

I think it is likely that this failure is caused by either the fix
or the previous change.

Dave


-- 


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


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

* [Bug middle-end/16948] [3.5 Regression] Many new testsuite failures on hppa64-hp-hpux11.11
  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
                   ` (10 preceding siblings ...)
  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
  12 siblings, 0 replies; 14+ messages in thread
From: jason at redhat dot com @ 2004-08-10 18:34 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From jason at redhat dot com  2004-08-10 18:34 -------
Subject: Re:  [3.5 Regression] Many new testsuite
 failures on hppa64-hp-hpux11.11

On 10 Aug 2004 18:14:19 -0000, "dave at hiauly1 dot hia dot nrc dot ca" <gcc-bugzilla@gcc.gnu.org> wrote:

> Well mostly.  The regressions on hppa64-hp-hpux11.11 are fixed but in
> testing I found what appears to be another regression on hppa2.0w-hp-hpux11.11:
>
> FAIL: gcc.c-torture/execute/complex-1.c execution,  -O0 
> FAIL: gcc.c-torture/execute/complex-1.c execution,  -O1 
> FAIL: gcc.c-torture/execute/complex-1.c execution,  -O2 
> FAIL: gcc.c-torture/execute/complex-1.c execution,  -O3 -fomit-frame-pointer 
> FAIL: gcc.c-torture/execute/complex-1.c execution,  -O3 -g 
> FAIL: gcc.c-torture/execute/complex-1.c execution,  -Os 
>
> I think it is likely that this failure is caused by either the fix
> or the previous change.

I would find that surprising, since DECL_BY_REFERENCE is only used by the
C++ front end.

Jason


-- 


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


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

* [Bug middle-end/16948] [3.5 Regression] Many new testsuite failures on hppa64-hp-hpux11.11
  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
                   ` (11 preceding siblings ...)
  2004-08-10 18:34 ` jason at redhat dot com
@ 2004-08-10 20:29 ` dave at hiauly1 dot hia dot nrc dot ca
  12 siblings, 0 replies; 14+ messages in thread
From: dave at hiauly1 dot hia dot nrc dot ca @ 2004-08-10 20:29 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From dave at hiauly1 dot hia dot nrc dot ca  2004-08-10 20:29 -------
Subject: Re:  [3.5 Regression] Many new testsuite failur

> > I think it is likely that this failure is caused by either the fix
> > or the previous change.
> 
> I would find that surprising, since DECL_BY_REFERENCE is only used by the
> C++ front end.

You are right, this problem predates your change.

Dave


-- 


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).