summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorJohn Hodge <tpg@mutabah.net>2019-10-26 16:09:24 +0800
committerJohn Hodge <tpg@mutabah.net>2019-10-26 16:09:24 +0800
commit9ce35b65e5be4ce75b3b7aabe29c432128a17279 (patch)
tree069581e21b424a24c92b1f87e7d00f3af006366d /tools
parentabd2a151b9107221e753c5b2fe09a143d09ad1f5 (diff)
downloadmrust-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.cpp2
-rw-r--r--tools/standalone_miri/mir.cpp1
-rw-r--r--tools/standalone_miri/miri.cpp13
-rw-r--r--tools/standalone_miri/value.hpp5
-rw-r--r--tools/testrunner/main.cpp3
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)