[Bug tree-optimization/40760] New: [4.3/4.4/4.5 Regression] unbounded recursion in the gimplifier

bonzini at gnu dot org gcc-bugzilla@gcc.gnu.org
Wed Jul 15 06:06:00 GMT 2009


The testcase from PR/2161:

#define ONE     else if (0) { }
#define TEN     ONE ONE ONE ONE ONE ONE ONE ONE ONE ONE
#define HUN     TEN TEN TEN TEN TEN TEN TEN TEN TEN TEN
#define THOU    HUN HUN HUN HUN HUN HUN HUN HUN HUN HUN

void foo()
{
  if (0) { }
  /* 11,000 else if's.  */
  THOU THOU THOU THOU THOU THOU THOU THOU THOU THOU THOU
}

as well as the following:

#define OONE    && (a()
#define OTEN    OONE OONE OONE OONE OONE OONE OONE OONE OONE OONE
#define OHUN    OTEN OTEN OTEN OTEN OTEN OTEN OTEN OTEN OTEN OTEN
#define OTHOU   OHUN OHUN OHUN OHUN OHUN OHUN OHUN OHUN OHUN OHUN

#define CONE    )
#define CTEN    CONE CONE CONE CONE CONE CONE CONE CONE CONE CONE
#define CHUN    CTEN CTEN CTEN CTEN CTEN CTEN CTEN CTEN CTEN CTEN
#define CTHOU   CHUN CHUN CHUN CHUN CHUN CHUN CHUN CHUN CHUN CHUN
void foo()
{
  a()
  /* 11,000 right-associated &&'s with side effects.  */
  OTHOU OTHOU OTHOU OTHOU OTHOU OTHOU OTHOU OTHOU OTHOU OTHOU OTHOU
  CTHOU CTHOU CTHOU CTHOU CTHOU CTHOU CTHOU CTHOU CTHOU CTHOU CTHOU;
}

fail with a segmentation fault do to recursion that is proportional to the
size of the program.


-- 
           Summary: [4.3/4.4/4.5 Regression] unbounded recursion in the
                    gimplifier
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Keywords: rejects-valid
          Severity: normal
          Priority: P3
         Component: tree-optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: bonzini at gnu dot org
 BugsThisDependsOn: 2161


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



More information about the Gcc-bugs mailing list