Add a Function::clear() method.

This makes it possible to clear out a Function data structure so it can
be reused for compiling multiple functions.

Also add clear() methods to various sub-structures.
This commit is contained in:
Jakob Stoklund Olesen
2017-09-08 14:53:55 -07:00
parent 439a40e5e4
commit 0c16f13c6b
4 changed files with 41 additions and 0 deletions

View File

@@ -47,6 +47,14 @@ impl Signature {
}
}
/// Clear the signature so it is identical to a fresh one returned by `new()`.
pub fn clear(&mut self, call_conv: CallConv) {
self.argument_types.clear();
self.return_types.clear();
self.call_conv = call_conv;
self.argument_bytes = None;
}
/// Compute the size of the stack arguments and mark signature as legalized.
///
/// Even if there are no stack arguments, this will set `argument_types` to `Some(0)` instead