-
Notifications
You must be signed in to change notification settings - Fork 32
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
[WIP] Initial commit to dump_c #27
base: master
Are you sure you want to change the base?
Conversation
Using the command dump_c, uclid will spit out a C file that can be either compiled or fed to another verification tool. At the moment supported veification commands are: unroll and induction The syntax is currently CBMC specific, but will be adapted in future to work for any SV comp tool
@@ -261,45 +263,54 @@ case class IntUnaryMinusOp() extends IntArgOperator { | |||
// These operators take bitvector operands and return bitvector results. | |||
sealed abstract class BVArgOperator(val w : Int) extends Operator { | |||
override def fixity = Operator.INFIX | |||
def signed_operands = false |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When is this actually used? And why is it plural?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ah yeah, I put that there because eventually I'm going to have to deal with bitvector comparisons being either signed or unsigned. So, if the comparison is signed, the operands need to be made signed, and if the comparison is unsigned, the operands need to be made unsigned. But currently it doesn't do that and I was hoping to come up with a better way of dealing with the signed/unsigned-ness of operators but haven't yet.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If you want to avoid clutter in the Operator class, you can have a helper function that just does a match on the operators to say if they are signed
Work in progress but please provide feedback!
Using the command dump_c, uclid will spit out a C file that can
be either compiled or fed to another verification tool.
At the moment supported verification commands are: unroll and induction
The syntax is currently CBMC specific, but will be adapted in future to work
for any SV comp tool.
The aim is that we can: