diff mbox

Go patch committed: discard carriage returns in raw string literals

Message ID CAOyqgcWReZjSKk3iuvndvedFr_i+5W=fj5_BFLFTVdg2_w5w9g@mail.gmail.com
State New
Headers show

Commit Message

Ian Lance Taylor April 11, 2015, 12:50 a.m. UTC
The Go spec says that carriage returns in raw string literals should
be discarded.  The Go frontend was not doing that.  This is
http://golang.org/issue/10407.  This patch from Minux fixes it.
Bootstrapped and ran Go testsuite on x86_64-unknown-linux-gnu.
Committed to mainline.

Ian
diff mbox

Patch

diff -r 2f1e891805e6 go/lex.cc
--- a/go/lex.cc	Wed Apr 08 07:16:50 2015 -0700
+++ b/go/lex.cc	Fri Apr 10 17:02:42 2015 -0700
@@ -1440,7 +1440,10 @@ 
 	  bool issued_error;
 	  this->lineoff_ = p - this->linebuf_;
 	  p = this->advance_one_utf8_char(p, &c, &issued_error);
-	  Lex::append_char(c, true, &value, loc);
+	  // "Carriage return characters ('\r') inside raw string literals
+	  // are discarded from the raw string value."
+	  if (c != '\r')
+	      Lex::append_char(c, true, &value, loc);
 	}
       this->lineoff_ = p - this->linebuf_;
       if (!this->require_line())