The following code snippet triggers an ICE on mainline when
compiled with "-O3 -g" (on x86_64-unknown-linux-gnu):

===========================================
struct A
{
    double x[3];
    double get() const { return x[0]; }
};

A bar2(const A& a)
{
    A a1;
    for (int i=0; i<3; ++i)
        a1.x[i]=-a.x[i];
    return a1;
}

A bar1(const A& a)
{
    A a1=bar2(a);
    return a1;
}

double foo(const A& a)
{
    return bar1(a).get();
}
===========================================

bug.cc: In function 'double foo(const A&)':
bug.cc:24: internal compiler error: in decl_ultimate_origin, at
dwarf2out.c:4744
Please submit a full bug report, [etc.]


-- 
           Summary: [4.2 regression] ICE in decl_ultimate_origin
           Product: gcc
           Version: 4.2.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code, monitored
          Severity: normal
          Priority: P3
         Component: debug
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: reichelt at gcc dot gnu dot org


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

Reply via email to