summaryrefslogtreecommitdiff
path: root/src/cmd/gc/subr.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/gc/subr.c')
-rw-r--r--src/cmd/gc/subr.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/cmd/gc/subr.c b/src/cmd/gc/subr.c
index 9eb92f0bb..0c436de0b 100644
--- a/src/cmd/gc/subr.c
+++ b/src/cmd/gc/subr.c
@@ -1920,8 +1920,12 @@ typehash(Type *at, int addsym, int d)
break;
case TSTRUCT:
- for(t=at->type; t!=T; t=t->down)
- h += PRIME7 * typehash(t, addsym, d+1);
+ for(t=at->type; t!=T; t=t->down) {
+ if(at->funarg) // walk into TFIELD in function argument struct
+ h += PRIME7 * typehash(t->type, addsym, d+1);
+ else
+ h += PRIME7 * typehash(t, addsym, d+1);
+ }
break;
case TFUNC: