This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug middle-end/26439] New: [4.2 Regression] missing VOPs for complex assignments


_Complex double c;
_Complex double foo(void)
{
  _Complex double *cp = &c;
  __real c = __imag c;
  return *cp;
}

has in alias1:

foo ()
{
  complex double * cp;
  complex double D.1527;
  double D.1526;

<bb 2>:
  cp_1 = &c;
  #   VUSE <SFT.0_2>;
  D.1526_3 = IMAGPART_EXPR <c>;
  #   SFT.1_5 = V_MUST_DEF <SFT.1_4>;
  REALPART_EXPR <c> = D.1526_3;
  #   VUSE <SFT.1_5>;
  D.1527_6 = *cp_1;
  #   <retval>_8 = V_MUST_DEF <<retval>_7>;
  <retval> = D.1527_6;
  #   VUSE <<retval>_8>;
  return <retval>;

}

note how D.1527_6 = *cp_1; misses VUSE <SFT.0_2>


-- 
           Summary: [4.2 Regression] missing VOPs for complex assignments
           Product: gcc
           Version: 4.2.0
            Status: UNCONFIRMED
          Keywords: wrong-code, alias
          Severity: critical
          Priority: P3
         Component: middle-end
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: rguenth at gcc dot gnu dot org


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]