-
Notifications
You must be signed in to change notification settings - Fork 274
make_binary must not mess up types when dealing with pointers #31
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
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.