diff options
author | John Hodge <tpg@mutabah.net> | 2019-10-26 16:09:24 +0800 |
---|---|---|
committer | John Hodge <tpg@mutabah.net> | 2019-10-26 16:09:24 +0800 |
commit | 9ce35b65e5be4ce75b3b7aabe29c432128a17279 (patch) | |
tree | 069581e21b424a24c92b1f87e7d00f3af006366d /tools | |
parent | abd2a151b9107221e753c5b2fe09a143d09ad1f5 (diff) | |
download | mrust-9ce35b65e5be4ce75b3b7aabe29c432128a17279.tar.gz |
All - Compilation fixes on VS2015 (constructors, warnings, missing files, class/struct disagreement, <algorithm>)
Diffstat (limited to 'tools')
-rw-r--r-- | tools/standalone_miri/hir_sim.cpp | 2 | ||||
-rw-r--r-- | tools/standalone_miri/mir.cpp | 1 | ||||
-rw-r--r-- | tools/standalone_miri/miri.cpp | 13 | ||||
-rw-r--r-- | tools/standalone_miri/value.hpp | 5 | ||||
-rw-r--r-- | tools/testrunner/main.cpp | 3 |
5 files changed, 17 insertions, 7 deletions
diff --git a/tools/standalone_miri/hir_sim.cpp b/tools/standalone_miri/hir_sim.cpp index 135ea214..9d497054 100644 --- a/tools/standalone_miri/hir_sim.cpp +++ b/tools/standalone_miri/hir_sim.cpp @@ -156,6 +156,8 @@ size_t HIR::TypeRef::get_align(size_t ofs) const case RawType::USize: case RawType::ISize: return POINTER_SIZE; + case RawType::Unreachable: + LOG_BUG("Getting alignment of unreachable type"); } throw ""; } diff --git a/tools/standalone_miri/mir.cpp b/tools/standalone_miri/mir.cpp index 4a5df067..bc456ca6 100644 --- a/tools/standalone_miri/mir.cpp +++ b/tools/standalone_miri/mir.cpp @@ -9,6 +9,7 @@ #include "../../src/mir/mir.hpp" #include "hir_sim.hpp" #include <iostream> +#include <algorithm> // std::min #if 0 namespace std { diff --git a/tools/standalone_miri/miri.cpp b/tools/standalone_miri/miri.cpp index 21c39a1e..4eadac66 100644 --- a/tools/standalone_miri/miri.cpp +++ b/tools/standalone_miri/miri.cpp @@ -5,6 +5,7 @@ * miri.cpp * - Interpreter core */ +#define _CRT_SECURE_NO_WARNINGS #include <iostream> #include "module_tree.hpp" #include "value.hpp" @@ -15,13 +16,14 @@ #include "miri.hpp" // VVV FFI #include <cstring> // memrchr +#include <sys/stat.h> +#include <fcntl.h> #ifdef _WIN32 # define NOMINMAX # include <Windows.h> +#else +# include <unistd.h> #endif -#include <sys/stat.h> -#include <fcntl.h> -#include <unistd.h> #undef DEBUG unsigned ThreadState::s_next_tls_key = 1; @@ -2082,7 +2084,6 @@ bool InterpreterThread::call_extern(Value& rv, const ::std::string& link_name, c } else if( link_name == "GetModuleHandleW" ) { - LOG_ASSERT(args.at(0).allocation, ""); const auto& tgt_alloc = args.at(0).get_relocation(0); const void* arg0 = (tgt_alloc ? tgt_alloc.alloc().data_ptr() : nullptr); //extern void* GetModuleHandleW(const void* s); @@ -2096,7 +2097,7 @@ bool InterpreterThread::call_extern(Value& rv, const ::std::string& link_name, c auto ret = GetModuleHandleW(static_cast<LPCWSTR>(arg0)); if(ret) { - rv = Value::new_ffiptr(FFIPointer { "GetModuleHandleW", ret, 0 }); + rv = Value::new_ffiptr(FFIPointer::new_void("GetModuleHandleW", ret)); } else { @@ -2121,7 +2122,7 @@ bool InterpreterThread::call_extern(Value& rv, const ::std::string& link_name, c if( ret ) { - rv = Value::new_ffiptr(FFIPointer { "GetProcAddress", ret, 0 }); + rv = Value::new_ffiptr(FFIPointer::new_void("GetProcAddress", ret)); } else { diff --git a/tools/standalone_miri/value.hpp b/tools/standalone_miri/value.hpp index a76e922b..03a21970 100644 --- a/tools/standalone_miri/value.hpp +++ b/tools/standalone_miri/value.hpp @@ -57,6 +57,9 @@ struct FFIPointer const char* tag_name; ::std::shared_ptr<FfiLayout> layout; + static FFIPointer new_void(const char* name, const void* v) { + return FFIPointer { const_cast<void*>(v), name, ::std::make_shared<FfiLayout>() }; + } static FFIPointer new_const_bytes(const char* name, const void* s, size_t size) { return FFIPointer { const_cast<void*>(s), name, ::std::make_shared<FfiLayout>(FfiLayout::new_const_bytes(size)) }; }; @@ -511,7 +514,7 @@ struct ValueRef: LOG_NOTICE("ValueRef exceeds bounds of FFI buffer - " << ofs << "+" << size << " > " << m_alloc.ffi().get_size()); } break; - default: + case RelocationPtr::Ty::Function: LOG_TODO(""); } } diff --git a/tools/testrunner/main.cpp b/tools/testrunner/main.cpp index 148fff9d..a634d87a 100644 --- a/tools/testrunner/main.cpp +++ b/tools/testrunner/main.cpp @@ -170,12 +170,15 @@ int main(int argc, const char* argv[]) return v; } +#ifdef _WIN32 +#else { struct sigaction sa = {0}; sa.sa_handler = sigalrm_handler; sigaction(SIGALRM, &sa, NULL); signal(SIGINT, sigint_handler); } +#endif ::std::vector<::std::string> skip_list; // > Filter out tests listed in an exceptions file (newline separated, supports comments) |