When verifying that code being preprocessed does not invoke undefined behavior, Wave does it itself.
This change performs tests on the operands in advance, instead.
Tests t_6_15, t_6_17, and t_6_18 (though not t_6_17, for some reason) signal errors in the absence of this fix with -fsanitize=signed-integer-overflow configured, but it does not cause the tests to fail, because these tests are expected to exit with an error anyway.
When verifying that code being preprocessed does not invoke undefined behavior, Wave does it itself. This change performs tests on the operands in advance, instead.
Tests
t_6_15
,t_6_17
, andt_6_18
(though nott_6_17
, for some reason) signal errors in the absence of this fix with-fsanitize=signed-integer-overflow
configured, but it does not cause the tests to fail, because these tests are expected to exit with an error anyway.If merged, this will fix #197