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

             Bug #: 54649
           Summary: Go bootstrap failed
    Classification: Unclassified
           Product: gcc
           Version: 4.8.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: go
        AssignedTo: i...@airs.com
        ReportedBy: de...@google.com


In r191494, the bootstrap for go is broken.

Ian has a small testcase to reproduce this:

#include <string>

std::string
f(bool is_string, bool is_constant)
{
  if (is_string)
    {
      std::string left_string;
      std::string right_string;
      if (is_constant)
        {
          return left_string + right_string;
        }
    }

  return "";
}

When I compile that with current mainline with -O -g I get a crash
(the backtrace is a local patch of mine):

foo.cc: In function ‘std::string f(bool, bool)’:
foo.cc:17:1: internal compiler error: tree check: expected block, have
function_decl in change_scope, at final.c:1544
 }
 ^
0xe388bd tree_check_failed(tree_node const*, char const*, int, char const*,
...)
        ../../trunk/gcc/tree.c:8892
0x50c495 tree_check(tree_node*, char const*, int, char const*, tree_code)
        ../../trunk/gcc/tree.h:3659
0x9372a1 change_scope
        ../../trunk/gcc/final.c:1544
0x937646 reemit_insn_block_notes
        ../../trunk/gcc/final.c:1613
0x937822 final_start_function(rtx_def*, _IO_FILE*, int)
        ../../trunk/gcc/final.c:1670
0x93c6ad rest_of_handle_final
        ../../trunk/gcc/final.c:4291
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.

Reply via email to