mirror of
https://github.com/golang/go
synced 2024-11-20 00:04:43 -07:00
cmd/yacc: fix default action
Previously, a production rule like A: B C D would cause yacc to check that A and B have the same declared types, but then it would generate an implicit action of { $$ = $3 } (i.e., copy the value from D), even if A and D have different types. Fixes #10192. Change-Id: I51cfd7baa0011557141dca33b7af1d892cc6f49e Reviewed-on: https://go-review.googlesource.com/7780 Reviewed-by: Russ Cox <rsc@golang.org>
This commit is contained in:
parent
7b850ec691
commit
2381077786
@ -637,9 +637,6 @@ outer:
|
||||
if tempty != nontrst[curprod[0]-NTBASE].value {
|
||||
lerrorf(ruleline, "default action causes potential type clash")
|
||||
}
|
||||
fmt.Fprintf(fcode, "\n\tcase %v:", nprod)
|
||||
fmt.Fprintf(fcode, "\n\t\t%sVAL.%v = %sS[%spt-0].%v",
|
||||
prefix, typeset[tempty], prefix, prefix, typeset[tempty])
|
||||
}
|
||||
moreprod()
|
||||
prdptr[nprod] = make([]int, mem)
|
||||
|
Loading…
Reference in New Issue
Block a user