diff options
author | Xavier Leroy <xavier.leroy@college-de-france.fr> | 2022-09-27 18:48:02 +0200 |
---|---|---|
committer | Xavier Leroy <xavier.leroy@college-de-france.fr> | 2022-10-01 11:11:47 +0200 |
commit | 634b136e5af1adafd8af7e5390aacdac2eb25be3 (patch) | |
tree | d5201460f421ca1d7c983626259dfab7985222db /test/regression/expr5.c | |
parent | a1f01c844aaa0ff41aa9095e9d5d01606a0e90c9 (diff) | |
download | compcert-634b136e5af1adafd8af7e5390aacdac2eb25be3.tar.gz compcert-634b136e5af1adafd8af7e5390aacdac2eb25be3.zip |
SimplExpr: revised handling of nested conditional, `||`, `&&` operators
In a `For_set` destination, a temporary can be reused only if it
always used with the same type. Otherwise, typing of Cminor code fails
later in the compilation pipeline.
This commit implements temporary reuse if and only if the typing
constraint is respected.
- For `&&` and `||`, it avoids the possibility of wrong reuse
(as reported in #453).
- For nested conditional expressions, it improves a bit the generated
code by reusing the temporary when possible.
Fixes: #453
Diffstat (limited to 'test/regression/expr5.c')
0 files changed, 0 insertions, 0 deletions