https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106862

--- Comment #2 from David Binderman <dcb314 at hotmail dot com> ---
Reduced C++ code seems to be:

extern fprintf(char);
struct string {
  string(char);
};
struct {
  call();
  replace(string);
} vsllib;
struct ListNode {
  ListNode();
};
struct TestNode {
  TestNode(int);
};
typedef struct {
  *node;
} YYSTYPE;
int vsldebug, VSLLib_parse_vsln, VSLLib_parse_vslvsp_4294967293_0_0;
VSLLib_parse() {
  YYSTYPE *vslvsp;
vslnewstate:
  switch (VSLLib_parse_vsln) {
  case 13:
    vslvsp = 0;
  case 6:
    string("");
  case 35:
    delete vslvsp;
    VSLLib_parse_vslvsp_4294967293_0_0 &&vslvsp[0].node ? new ListNode : 0;
  case 72:
    delete vslvsp;
  case 75:
    vslvsp ? vsllib.call() : 0;
  case 9:
    vsllib.call();
  case 1:
    vsllib.call();
  case 3:
    vsllib.call();
  case 5:
    vsllib.call();
  case 7:
    vsllib.call();
  case 0:
    vsllib.call();
  case 2:
    VSLLib_parse_vslvsp_4294967293_0_0 &&vslvsp[0].node ? new TestNode(new int)
                                                        : 0;
    string func_name = vsllib.replace(func_name) && vsllib.replace(0);
    delete vslvsp;
  }
  ++vslvsp;
  if (vsldebug)
    fprintf("");
  goto vslnewstate;
}

Reply via email to