]> Cypherpunks repositories - gostls13.git/commitdiff
gc: inlining bug
authorRuss Cox <rsc@golang.org>
Thu, 12 Jan 2012 01:32:02 +0000 (20:32 -0500)
committerRuss Cox <rsc@golang.org>
Thu, 12 Jan 2012 01:32:02 +0000 (20:32 -0500)
R=lvd
CC=golang-dev
https://golang.org/cl/5533078

src/cmd/gc/fmt.c
test/fixedbugs/bug392.dir/one.go
test/fixedbugs/bug392.dir/two.go

index f49c703f360008d42fd620e44375ce7c0dd6aa0e..4afd6c42bfbe91202438d42b2496b5c170a91b0f 100644 (file)
@@ -669,8 +669,10 @@ typefmt(Fmt *fp, Type *t)
                case 0:
                        break;
                case 1:
-                       fmtprint(fp, " %T", getoutargx(t)->type->type);  // struct->field->field's type
-                       break;
+                       if(fmtmode != FExp) {
+                               fmtprint(fp, " %T", getoutargx(t)->type->type);  // struct->field->field's type
+                               break;
+                       }
                default:
                        fmtprint(fp, " %T", getoutargx(t));
                        break;
index f086ebe4e2bd48befc4c7182368c46b6885b804d..a7017255e5a1aa198236fcc2514c7c1e0849bbff 100644 (file)
@@ -14,6 +14,9 @@ func F1(T *T) bool { return T == nil }
 // Issue 2682.
 func F2(c chan int) bool { return c == (<-chan int)(nil) }
 
+// Use of single named return value.
+func F3() (ret []int) { return append(ret, 1) }
+
 // Call of inlined method with blank receiver.
 func (_ *T) M() int { return 1 }
 func (t *T) MM() int { return t.M() }
index 3704e65c5e187f491e874962a7627bcfd445d503..b0ce26d39abadef65dfcadbb00e5e4990747c070 100644 (file)
@@ -12,9 +12,9 @@ import "./one"
 func use() {
        one.F1(nil)
        one.F2(nil)
+       one.F3()
 
        var t *one.T
        t.M()
        t.MM()
 }
-