Index: gcc/go/gofrontend/MERGE =================================================================== --- gcc/go/gofrontend/MERGE (revision 227299) +++ gcc/go/gofrontend/MERGE (working copy) @@ -1,4 +1,4 @@ -3aa2ea272e475010da8b480fc3095d0cd7254d12 +65672c16004c6d6d0247b6691881d282ffca89e3 The first line of this file holds the git revision number of the last merge done from the gofrontend repository. Index: gcc/go/gofrontend/lex.cc =================================================================== --- gcc/go/gofrontend/lex.cc (revision 227299) +++ gcc/go/gofrontend/lex.cc (working copy) @@ -1689,6 +1689,16 @@ Lex::skip_cpp_comment() && memcmp(p, "line ", 5) == 0) { p += 5; + + // Before finding FILE:LINENO, make sure line has valid characters. + const char* pcheck = p; + while (pcheck < pend) + { + unsigned int c; + bool issued_error; + pcheck = this->advance_one_utf8_char(pcheck, &c, &issued_error); + } + while (p < pend && *p == ' ') ++p; const char* pcolon = static_cast(memchr(p, ':', pend - p));