make_binary must not mess up types when dealing with pointers#31
Conversation
2bcdf73 to
03155c0
Compare
03155c0 to
bf2126d
Compare
bf2126d to
53600dd
Compare
53600dd to
62f200e
Compare
62f200e to
dbc63b1
Compare
dbc63b1 to
299f33d
Compare
|
@tautschnig, @kroening, anything controversial about merging this? |
|
The only question I'm aware of was a missing regression test or any kind of example where errors had been triggered. As far as I recall, this would only become necessary when using |
|
I looked at this; I'd say that the multi-ary expressions should not be used for pointer arithmetic to begin with. The rule should be that all operands in a multi-ary expression must have the same type. |
|
@kroening I'll try to clean this up and remove the source of multi-ary pointer expressions (that should be the simplifier). |
|
Thank you! If we wanted to be very conservative, we could check the rule "all operands must have same type" with an assertion, while at it. |
bcc5503 to
04c5c73
Compare
04c5c73 to
9ca475b
Compare
|
I haven't tweaked the simplifier, but instead removed all uses of |
Removed use of make_binary in pointer contexts, as pointer arithmetic yields expressions that include pointer and non-pointer type operands, with the overall expression type being that of the pointer.
9ca475b to
13dfd5a
Compare
Fix external value set init
No description provided.