int* g;

void foo(int m)
{
     if (m)
       *g  = 1;
     else
       *g = 2;
}

should be (at least with -Os)

void foo(int m)
{
    if (m)
     t = 1;
    else
     t = 2;
    *g = t;
}


-- 
           Summary: Missing store sinking (code size optimization) at tree
                    level
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: middle-end
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: xinliangli at gmail dot com


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

Reply via email to