diff options
Diffstat (limited to 'src/cmd/gc/subr.c')
-rw-r--r-- | src/cmd/gc/subr.c | 8 |
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: |