| ... | @@ -823,7 +823,7 @@ pub const Object = struct { | ... | @@ -823,7 +823,7 @@ pub const Object = struct { |
| 823 | var builder = try Builder.init(.{ | 823 | var builder = try Builder.init(.{ |
| 824 | .allocator = gpa, | 824 | .allocator = gpa, |
| 825 | .use_lib_llvm = options.use_lib_llvm, | 825 | .use_lib_llvm = options.use_lib_llvm, |
| 826 | .strip = options.strip, | 826 | .strip = options.strip or !options.use_lib_llvm, // TODO |
| 827 | .name = options.root_name, | 827 | .name = options.root_name, |
| 828 | .target = options.target, | 828 | .target = options.target, |
| 829 | .triple = llvm_target_triple, | 829 | .triple = llvm_target_triple, |
| ... | @@ -961,14 +961,17 @@ pub const Object = struct { | ... | @@ -961,14 +961,17 @@ pub const Object = struct { |
| 961 | } | 961 | } |
| 962 | | 962 | |
| 963 | pub fn deinit(self: *Object, gpa: Allocator) void { | 963 | pub fn deinit(self: *Object, gpa: Allocator) void { |
| 964 | self.di_map.deinit(gpa); | 964 | if (self.builder.useLibLlvm()) { |
| 965 | self.di_type_map.deinit(gpa); | 965 | self.di_map.deinit(gpa); |
| 966 | self.target_data.dispose(); | 966 | self.di_type_map.deinit(gpa); |
| 967 | self.target_machine.dispose(); | 967 | self.target_data.dispose(); |
| | 968 | self.target_machine.dispose(); |
| | 969 | } |
| 968 | self.decl_map.deinit(gpa); | 970 | self.decl_map.deinit(gpa); |
| 969 | self.named_enum_map.deinit(gpa); | 971 | self.named_enum_map.deinit(gpa); |
| 970 | self.type_map.deinit(gpa); | 972 | self.type_map.deinit(gpa); |
| 971 | self.extern_collisions.deinit(gpa); | 973 | self.extern_collisions.deinit(gpa); |
| | 974 | self.builder.deinit(); |
| 972 | self.* = undefined; | 975 | self.* = undefined; |
| 973 | } | 976 | } |
| 974 | | 977 | |
| ... | @@ -1182,6 +1185,9 @@ pub const Object = struct { | ... | @@ -1182,6 +1185,9 @@ pub const Object = struct { |
| 1182 | emit_asm_msg, emit_bin_msg, emit_llvm_ir_msg, emit_llvm_bc_msg, | 1185 | emit_asm_msg, emit_bin_msg, emit_llvm_ir_msg, emit_llvm_bc_msg, |
| 1183 | }); | 1186 | }); |
| 1184 | | 1187 | |
| | 1188 | if (emit_asm_path == null and emit_bin_path == null and |
| | 1189 | emit_llvm_ir_path == null and emit_llvm_bc_path == null) return; |
| | 1190 | |
| 1185 | if (!self.builder.useLibLlvm()) { | 1191 | if (!self.builder.useLibLlvm()) { |
| 1186 | log.err("emitting without libllvm not implemented", .{}); | 1192 | log.err("emitting without libllvm not implemented", .{}); |
| 1187 | return error.FailedToEmit; | 1193 | return error.FailedToEmit; |