Skip to content

Commit

Permalink
cmd/internal/gc: do not show original expression for constants in exp…
Browse files Browse the repository at this point in the history
…ort data

Fixes #10066.

Change-Id: I43c423793dd094989e921e163a06b12181a35719
Signed-off-by: Shenghou Ma <minux@golang.org>
Reviewed-on: https://go-review.googlesource.com/6750
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Chris Manghane <cmang@golang.org>
  • Loading branch information
minux committed Mar 5, 2015
1 parent 1fff4fb commit f09887c
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 4 deletions.
13 changes: 9 additions & 4 deletions src/cmd/internal/gc/fmt.go
Expand Up @@ -1143,11 +1143,16 @@ func exprfmt(n *Node, prec int) string {
return f

case OLITERAL: // this is a bit of a mess
if n.Orig != nil && n.Orig != n {
return exprfmt(n.Orig, prec)
if fmtmode == FErr {
if n.Orig != nil && n.Orig != n {
return exprfmt(n.Orig, prec)
}
if n.Sym != nil {
return fmt.Sprintf("%v", Sconv(n.Sym, 0))
}
}
if fmtmode == FErr && n.Sym != nil {
return fmt.Sprintf("%v", Sconv(n.Sym, 0))
if n.Val.Ctype == CTNIL && n.Orig != nil && n.Orig != n {
return exprfmt(n.Orig, prec)
}
if n.Type != nil && n.Type != Types[n.Type.Etype] && n.Type != idealbool && n.Type != idealstring {
// Need parens when type begins with what might
Expand Down
11 changes: 11 additions & 0 deletions test/fixedbugs/issue10066.dir/a.go
@@ -0,0 +1,11 @@
package a

import "log"

func Do() {
Do2()
}

func Do2() {
println(log.Ldate | log.Ltime | log.Lshortfile)
}
7 changes: 7 additions & 0 deletions test/fixedbugs/issue10066.dir/b.go
@@ -0,0 +1,7 @@
package b

import "./a"

func test() {
a.Do()
}
10 changes: 10 additions & 0 deletions test/fixedbugs/issue10066.go
@@ -0,0 +1,10 @@
// compiledir

// Copyright 2015 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 10066: constants are printed in the original form
// in export data. This is the opposite of issue 9076.

package ignored

0 comments on commit f09887c

Please sign in to comment.