summaryrefslogtreecommitdiff
path: root/rts/linker/JitObject.c
diff options
context:
space:
mode:
Diffstat (limited to 'rts/linker/JitObject.c')
-rw-r--r--rts/linker/JitObject.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/rts/linker/JitObject.c b/rts/linker/JitObject.c
index 48652283b7..08c1bc987c 100644
--- a/rts/linker/JitObject.c
+++ b/rts/linker/JitObject.c
@@ -1,4 +1,3 @@
-#include "BufferBuilder.h"
#include "JitObject.h"
#include "LinkerInternals.h"
#include "RtsUtils.h"
@@ -46,13 +45,17 @@ struct jit_descriptor __jit_debug_descriptor = { 1, 0, 0, 0 };
void register_jit_object(ObjectCode *oc)
{
- struct BufferBuilder buf = build_jit_object(oc);
+ struct JitObject obj = build_jit_object(oc);
+ if (obj.buffer == NULL) {
+ debugBelch("Failed to build JIT object for %s\n", OC_INFORMATIVE_FILENAME(oc));
+ return;
+ }
struct jit_code_entry *code_entry = stgMallocBytes(sizeof(struct jit_code_entry), "register_jit_object");
code_entry->next_entry = __jit_debug_descriptor.first_entry;
code_entry->prev_entry = NULL;
- code_entry->symfile_addr = (const char *) buf.buffer;
- code_entry->symfile_size = buffer_builder_filled_size(&buf);
+ code_entry->symfile_addr = (const char *) obj.buffer;
+ code_entry->symfile_size = obj.size;
__jit_debug_descriptor.action_flag = JIT_REGISTER_FN;
__jit_debug_descriptor.first_entry = code_entry;