aboutsummaryrefslogtreecommitdiffstats
path: root/lib/compiler/src/beam_bs.erl
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2017-08-29 18:02:49 +0200
committerBjörn Gustavsson <[email protected]>2017-08-30 06:17:14 +0200
commit4c31fd0b966571508b4eb5170ddb0b38fbaf5fc0 (patch)
tree109e3ef2e94b9b5123e4b065a3226cfede9cee28 /lib/compiler/src/beam_bs.erl
parent614cc9aba105f6fe5c72de356be4735c22579ca2 (diff)
downloadotp-4c31fd0b966571508b4eb5170ddb0b38fbaf5fc0.tar.gz
otp-4c31fd0b966571508b4eb5170ddb0b38fbaf5fc0.tar.bz2
otp-4c31fd0b966571508b4eb5170ddb0b38fbaf5fc0.zip
Make handling of match contexts stricter
beam_validator could fail issue a diagnostic when a register that was supposed to be a match context was not guaranteed to be a match context. The bug was in merging of types. Merging of a match context with another term would result in a match context. That is wrong. Merging should produce a more general type, not a narrower type. Also, the valid slots in two match contexts should be combined with 'band', not 'bor'.
Diffstat (limited to 'lib/compiler/src/beam_bs.erl')
0 files changed, 0 insertions, 0 deletions