aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/backend
diff options
context:
space:
mode:
authorPhilip Herron <philip.herron@embecosm.com>2021-09-15 20:47:03 +0100
committerPhilip Herron <philip.herron@embecosm.com>2021-09-17 15:46:42 +0100
commitecb777cc8df55a024add203e858486eadcc3aa62 (patch)
tree950da3dd68add54317bea943cbea44e7f7e5a768 /gcc/rust/backend
parent384cc64dab40edca1f59f369e162df89aa1e91f8 (diff)
downloadgcc-ecb777cc8df55a024add203e858486eadcc3aa62.zip
gcc-ecb777cc8df55a024add203e858486eadcc3aa62.tar.gz
gcc-ecb777cc8df55a024add203e858486eadcc3aa62.tar.bz2
Add building blocks for Dynamic object types
This is the stub implementation for dynamic object types within the type system. More work is needed to actually support dynamic trait objects. The next change requires us to support type coercions in for arguments to functions such as a fat-reference to a type being coerced into this dynamic trait object for dynamic dispatch. Addresses: #197
Diffstat (limited to 'gcc/rust/backend')
-rw-r--r--gcc/rust/backend/rust-compile-context.h2
-rw-r--r--gcc/rust/backend/rust-compile-tyty.h2
2 files changed, 4 insertions, 0 deletions
diff --git a/gcc/rust/backend/rust-compile-context.h b/gcc/rust/backend/rust-compile-context.h
index 3a92c32..7d2f32d 100644
--- a/gcc/rust/backend/rust-compile-context.h
+++ b/gcc/rust/backend/rust-compile-context.h
@@ -610,6 +610,8 @@ public:
translated = ctx->get_backend ()->unit_type ();
}
+ void visit (TyTy::DynamicObjectType &) override { gcc_unreachable (); }
+
private:
TyTyResolveCompile (Context *ctx) : ctx (ctx), translated (nullptr) {}
diff --git a/gcc/rust/backend/rust-compile-tyty.h b/gcc/rust/backend/rust-compile-tyty.h
index 1a5747a..40b297c 100644
--- a/gcc/rust/backend/rust-compile-tyty.h
+++ b/gcc/rust/backend/rust-compile-tyty.h
@@ -237,6 +237,8 @@ public:
translated = backend->unit_type ();
}
+ void visit (TyTy::DynamicObjectType &) override { gcc_unreachable (); }
+
private:
TyTyCompile (::Backend *backend)
: backend (backend), translated (nullptr),