summaryrefslogtreecommitdiff
path: root/tools/standalone_miri/hir_sim.cpp
diff options
context:
space:
mode:
authorJohn Hodge <tpg@mutabah.net>2018-02-23 20:25:50 +0800
committerJohn Hodge <tpg@mutabah.net>2018-02-23 20:25:50 +0800
commitbfd34179d8dbc78ebd248805e9f4b3f337b212d8 (patch)
tree50c8d0f94e40d5bf1d78207992b2513070e85c7a /tools/standalone_miri/hir_sim.cpp
parent350769c002b51c7fcb7e2d632222fbae3e7a8ab5 (diff)
downloadmrust-bfd34179d8dbc78ebd248805e9f4b3f337b212d8.tar.gz
Standalone MIRI - Slice derefs, pointer comparisons, uni-ops, intrinsics, strings
Diffstat (limited to 'tools/standalone_miri/hir_sim.cpp')
-rw-r--r--tools/standalone_miri/hir_sim.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/tools/standalone_miri/hir_sim.cpp b/tools/standalone_miri/hir_sim.cpp
index ef6c4df1..d549fa1d 100644
--- a/tools/standalone_miri/hir_sim.cpp
+++ b/tools/standalone_miri/hir_sim.cpp
@@ -90,6 +90,25 @@ size_t HIR::TypeRef::get_size(size_t ofs) const
}
throw "";
}
+bool HIR::TypeRef::has_slice_meta() const
+{
+ if( this->wrappers.size() == 0 )
+ {
+ if(this->inner_type == RawType::Composite)
+ {
+ // TODO: Handle metadata better
+ return false;
+ }
+ else
+ {
+ return (this->inner_type == RawType::Str);
+ }
+ }
+ else
+ {
+ return (this->wrappers[0].type == TypeWrapper::Ty::Slice);
+ }
+}
HIR::TypeRef HIR::TypeRef::get_inner() const
{