diff options
author | Emilio Cobos Álvarez <emilio@crisal.io> | 2022-02-18 19:45:20 +0100 |
---|---|---|
committer | Emilio Cobos Álvarez <emilio@crisal.io> | 2022-02-18 20:11:57 +0100 |
commit | 68d2b0e0f8a4766ad5f73ae92c5e1e7be36df7f3 (patch) | |
tree | 792f138a012dbd0dbbd6ca3089d2a974f289b6f6 /src/codegen | |
parent | e180d145a49b09c6d521cdc7989d1a1d4f173541 (diff) |
Put vtable generation behind a flag for now.
Diffstat (limited to 'src/codegen')
-rw-r--r-- | src/codegen/mod.rs | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/codegen/mod.rs b/src/codegen/mod.rs index 5ce42c34..3face264 100644 --- a/src/codegen/mod.rs +++ b/src/codegen/mod.rs @@ -1045,7 +1045,8 @@ impl<'a> CodeGenerator for Vtable<'a> { // For now, we will only generate vtables for classes that: // - do not inherit from others (compilers merge VTable from primary parent class). // - do not contain a virtual destructor (requires ordering; platforms generate different vtables). - if self.comp_info.base_members().is_empty() && + if ctx.options().vtable_generation && + self.comp_info.base_members().is_empty() && self.comp_info.destructor().is_none() { let class_ident = ctx.rust_ident(self.item_id.canonical_name(ctx)); @@ -1793,7 +1794,7 @@ impl CodeGenerator for CompInfo { if !is_opaque { if item.has_vtable_ptr(ctx) { - let vtable = Vtable::new(item.id(), &self); + let vtable = Vtable::new(item.id(), self); vtable.codegen(ctx, result, item); let vtable_type = vtable |