cmd/gc: don't unpack struct arguments to append

Fixes #9634.

Change-Id: I7b18f26c2fb812978fc7adc5bfd39ebfffe48701
Reviewed-on: https://go-review.googlesource.com/3080
Reviewed-by: Minux Ma <minux@golang.org>
diff --git a/src/cmd/gc/typecheck.c b/src/cmd/gc/typecheck.c
index 8a3b486..1abdb83 100644
--- a/src/cmd/gc/typecheck.c
+++ b/src/cmd/gc/typecheck.c
@@ -1346,7 +1346,7 @@
 			goto error;
 
 		// Unpack multiple-return result before type-checking.
-		if(istype(t, TSTRUCT)) {
+		if(istype(t, TSTRUCT) && t->funarg) {
 			t = t->type;
 			if(istype(t, TFIELD))
 				t = t->type;