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 optimization/11269] [tree-ssa] wrong-code


PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.

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


dnovillo at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |jason at gcc dot gnu dot org
                   |dot org                     |
             Status|NEW                         |ASSIGNED


------- Additional Comments From dnovillo at gcc dot gnu dot org  2003-09-14 15:01 -------

This seems to be an FE problem.  The GENERIC and GIMPLE versions of function
foo() show it not returning 'a'.  This causes all pointer dereferences inside
the body to be considered local modifications.  This causes DCE to kill just
about everything in the body.

A foo() ()
{
  int & retval.3;
  struct A * a.1;
  int & T.2;

  {
    struct A a;

    a.1 = &a;
    {
      struct A * const this;
      int & <U8930>;

      this = (struct A * const)a.1;
      {
        {
          {
            <U8930> = (int *)this;
            goto <U88c0>;;
          }
        }
      };
      <U88c0>:;;
      retval.3 = <U8930>;
    };
    T.2 = retval.3;
    *T.2 = 1;
    return;;     <-- This should be 'return *T.2' or something similar
  }
}


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