]> Cypherpunks repositories - gostls13.git/commitdiff
gc: Use %#F in error messages instead of %F.
authorLuuk van Dijk <lvd@golang.org>
Wed, 14 Dec 2011 07:22:36 +0000 (08:22 +0100)
committerLuuk van Dijk <lvd@golang.org>
Wed, 14 Dec 2011 07:22:36 +0000 (08:22 +0100)
Fixes #2520

R=rsc
CC=golang-dev
https://golang.org/cl/5482056

src/cmd/gc/fmt.c
test/fixedbugs/bug383.go [new file with mode: 0644]

index 7c50b51e449ca12195cee87dfca0fb497529d80e..23b1808291ca89510e116fa601cec1e321eba8db 100644 (file)
@@ -371,9 +371,13 @@ Vconv(Fmt *fp)
                        return fmtprint(fp, "'\\U%08llux'", x);
                return fmtprint(fp, "('\\x00' + %B)", v->u.xval);
        case CTFLT:
-               return fmtprint(fp, "%F", v->u.fval);
-       case CTCPLX:  // ? 1234i ->  (0p+0+617p+1)
-               return fmtprint(fp, "(%F+%F)", &v->u.cval->real, &v->u.cval->imag);
+               if((fp->flags & FmtSharp) || fmtmode == FExp)
+                       return fmtprint(fp, "%F", v->u.fval);
+               return fmtprint(fp, "%#F", v->u.fval);
+       case CTCPLX:
+               if((fp->flags & FmtSharp) || fmtmode == FExp)
+                       return fmtprint(fp, "(%F+%F)", &v->u.cval->real, &v->u.cval->imag);
+               return fmtprint(fp, "(%#F + %#Fi)", &v->u.cval->real, &v->u.cval->imag);
        case CTSTR:
                return fmtprint(fp, "\"%Z\"", v->u.sval);
        case CTBOOL:
diff --git a/test/fixedbugs/bug383.go b/test/fixedbugs/bug383.go
new file mode 100644 (file)
index 0000000..9dccff5
--- /dev/null
@@ -0,0 +1,13 @@
+// errchk $G $D/$F.go
+
+// Copyright 2011 The Go Authors.  All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Issue 2520
+
+package main
+func main() {
+       if 2e9 { }      // ERROR "2e.09"
+       if 3.14+1i { }  // ERROR "3.14 . 1i"
+}
\ No newline at end of file