From 22f8b3f3dc61c7767bd58a3a65481318f9abbfdc Mon Sep 17 00:00:00 2001 From: Syrus Date: Tue, 30 Jul 2019 15:32:21 -0700 Subject: [PATCH] Improved LLVM compilation for Unix --- lib/llvm-backend/cpp/object_loader.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/llvm-backend/cpp/object_loader.cpp b/lib/llvm-backend/cpp/object_loader.cpp index 3ec3f5d1a..532350578 100644 --- a/lib/llvm-backend/cpp/object_loader.cpp +++ b/lib/llvm-backend/cpp/object_loader.cpp @@ -75,16 +75,24 @@ public: } virtual void registerEHFrames(uint8_t* addr, uint64_t LoadAddr, size_t size) override { - /* eh_frame_ptr = addr; + // We don't know yet how to do this on Windows, so we hide this on compilation + // so we can compile and pass spectests on unix systems + #ifndef _WIN32 + eh_frame_ptr = addr; eh_frame_size = size; eh_frames_registered = true; - callbacks.visit_fde(addr, size, __register_frame);*/ + callbacks.visit_fde(addr, size, __register_frame); + #endif } virtual void deregisterEHFrames() override { - /* if (eh_frames_registered) { + // We don't know yet how to do this on Windows, so we hide this on compilation + // so we can compile and pass spectests on unix systems + #ifndef _WIN32 + if (eh_frames_registered) { callbacks.visit_fde(eh_frame_ptr, eh_frame_size, __deregister_frame); - }*/ + } + #endif } virtual bool finalizeMemory(std::string *ErrMsg = nullptr) override {