diff options
-rw-r--r-- | src/hir/deserialise.cpp | 2 | ||||
-rw-r--r-- | src/hir_conv/bind.cpp | 2 | ||||
-rw-r--r-- | src/hir_conv/constant_evaluation.cpp | 2 | ||||
-rw-r--r-- | src/hir_expand/const_eval_full.cpp | 2 | ||||
-rw-r--r-- | src/mir/check.cpp | 3 | ||||
-rw-r--r-- | src/mir/cleanup.cpp | 2 | ||||
-rw-r--r-- | src/mir/mir.hpp | 6 | ||||
-rw-r--r-- | src/mir/mir_builder.cpp | 2 | ||||
-rw-r--r-- | src/mir/optimise.cpp | 2 | ||||
-rw-r--r-- | src/trans/codegen_c.cpp | 2 | ||||
-rw-r--r-- | src/trans/enumerate.cpp | 4 | ||||
-rw-r--r-- | src/trans/monomorphise.cpp | 2 |
12 files changed, 16 insertions, 15 deletions
diff --git a/src/hir/deserialise.cpp b/src/hir/deserialise.cpp index fd6cbbf2..c9c94be3 100644 --- a/src/hir/deserialise.cpp +++ b/src/hir/deserialise.cpp @@ -399,7 +399,7 @@ namespace { deserialise_mir_lvalue() }) _(MakeDst, { - deserialise_mir_lvalue(), + deserialise_mir_param(), deserialise_mir_param() }) _(Tuple, { diff --git a/src/hir_conv/bind.cpp b/src/hir_conv/bind.cpp index 53d97fb0..20e8f7ca 100644 --- a/src/hir_conv/bind.cpp +++ b/src/hir_conv/bind.cpp @@ -576,7 +576,7 @@ namespace { H::visit_lvalue(*this, e.val); ), (MakeDst, - H::visit_lvalue(*this, e.ptr_val); + H::visit_param(*this, e.ptr_val); H::visit_param(*this, e.meta_val); ), (Tuple, diff --git a/src/hir_conv/constant_evaluation.cpp b/src/hir_conv/constant_evaluation.cpp index b604b510..be27e0a4 100644 --- a/src/hir_conv/constant_evaluation.cpp +++ b/src/hir_conv/constant_evaluation.cpp @@ -1351,7 +1351,7 @@ namespace { TODO(sp, "RValue::DstPtr"); ), (MakeDst, - auto ptr = read_lval(e.ptr_val); + auto ptr = read_param(e.ptr_val); auto meta = read_param(e.meta_val); if( ! meta.is_Integer() ) { TODO(sp, "RValue::MakeDst - (non-integral meta) " << ptr << " , " << meta); diff --git a/src/hir_expand/const_eval_full.cpp b/src/hir_expand/const_eval_full.cpp index 4a6fec21..a88d6075 100644 --- a/src/hir_expand/const_eval_full.cpp +++ b/src/hir_expand/const_eval_full.cpp @@ -677,7 +677,7 @@ namespace { TODO(sp, "RValue::DstPtr"); ), (MakeDst, - auto ptr = read_lval(e.ptr_val); + auto ptr = read_param(e.ptr_val); auto meta = read_param(e.meta_val); if( ! meta.is_Integer() ) { TODO(sp, "RValue::MakeDst - (non-integral meta) " << ptr << " , " << meta); diff --git a/src/mir/check.cpp b/src/mir/check.cpp index 62e06d51..c76b6e92 100644 --- a/src/mir/check.cpp +++ b/src/mir/check.cpp @@ -430,7 +430,8 @@ void MIR_Validate_ValState(::MIR::TypeResolve& state, const ::MIR::Function& fcn ), (MakeDst, //val_state.move_val(state, se.ptr_val); - val_state.ensure_valid(state, se.ptr_val); + if( const auto* e = se.ptr_val.opt_LValue() ) + val_state.ensure_valid(state, *e); val_state.move_val(state, se.meta_val); ), (Tuple, diff --git a/src/mir/cleanup.cpp b/src/mir/cleanup.cpp index c9dba9bd..8ab78ab2 100644 --- a/src/mir/cleanup.cpp +++ b/src/mir/cleanup.cpp @@ -997,7 +997,7 @@ void MIR_Cleanup(const StaticTraitResolve& resolve, const ::HIR::ItemPath& path, re.val = mv$( *v.as_Deref().val ); ), (MakeDst, - MIR_Cleanup_LValue(state, mutator, re.ptr_val); + MIR_Cleanup_Param(state, mutator, re.ptr_val); MIR_Cleanup_Param(state, mutator, re.meta_val); ), (Tuple, diff --git a/src/mir/mir.hpp b/src/mir/mir.hpp index 94eaa973..d2d75e1c 100644 --- a/src/mir/mir.hpp +++ b/src/mir/mir.hpp @@ -91,8 +91,8 @@ enum class eUniOp // Compile-time known values TAGGED_UNION_EX(Constant, (), Int, ( - (Int, ::std::int64_t), - (Uint, ::std::uint64_t), + (Int, ::std::int64_t), // TODO: Include eCoreType + (Uint, ::std::uint64_t), // TODO: Include eCoreType (Float, double), (Bool, bool), (Bytes, ::std::vector< ::std::uint8_t>), // Byte string @@ -163,7 +163,7 @@ TAGGED_UNION_EX(RValue, (), Use, ( }), // Construct a DST pointer from a thin pointer and metadata (MakeDst, struct { - LValue ptr_val; // NOTE: Not a Param, becuase the pointer is a borrow + Param ptr_val; Param meta_val; }), (Tuple, struct { diff --git a/src/mir/mir_builder.cpp b/src/mir/mir_builder.cpp index 110d87e3..13d17d91 100644 --- a/src/mir/mir_builder.cpp +++ b/src/mir/mir_builder.cpp @@ -492,7 +492,7 @@ void MirBuilder::raise_variables(const Span& sp, const ::MIR::RValue& rval, cons this->raise_variables(sp, e.val, scope); ), (MakeDst, - this->raise_variables(sp, e.ptr_val, scope); + raise_vars(e.ptr_val); raise_vars(e.meta_val); ), (Tuple, diff --git a/src/mir/optimise.cpp b/src/mir/optimise.cpp index c7c4e6d7..e487cade 100644 --- a/src/mir/optimise.cpp +++ b/src/mir/optimise.cpp @@ -900,7 +900,7 @@ bool MIR_Optimise_Inlining(::MIR::TypeResolve& state, ::MIR::Function& fcn) return ::MIR::RValue::make_DstPtr({ this->clone_lval(se.val) }); ), (MakeDst, - return ::MIR::RValue::make_MakeDst({ this->clone_lval(se.ptr_val), this->clone_param(se.meta_val) }); + return ::MIR::RValue::make_MakeDst({ this->clone_param(se.ptr_val), this->clone_param(se.meta_val) }); ), (Tuple, return ::MIR::RValue::make_Tuple({ this->clone_param_vec(se.vals) }); diff --git a/src/trans/codegen_c.cpp b/src/trans/codegen_c.cpp index 4b7d6a72..5f87e126 100644 --- a/src/trans/codegen_c.cpp +++ b/src/trans/codegen_c.cpp @@ -1624,7 +1624,7 @@ namespace { (MakeDst, emit_lvalue(e.dst); m_of << ".PTR = "; - emit_lvalue(ve.ptr_val); + emit_param(ve.ptr_val); m_of << ";\n\t"; emit_lvalue(e.dst); m_of << ".META = "; diff --git a/src/trans/enumerate.cpp b/src/trans/enumerate.cpp index fceddfbf..89846344 100644 --- a/src/trans/enumerate.cpp +++ b/src/trans/enumerate.cpp @@ -905,7 +905,7 @@ void Trans_Enumerate_Types(EnumState& state) H::visit_lvalue(tv,pp,fcn, re.val); ), (MakeDst, - H::visit_lvalue(tv,pp,fcn, re.ptr_val); + H::visit_param(tv,pp,fcn, re.ptr_val); H::visit_param(tv,pp,fcn, re.meta_val); ), (Tuple, @@ -1428,7 +1428,7 @@ void Trans_Enumerate_FillFrom_MIR(EnumState& state, const ::MIR::Function& code, Trans_Enumerate_FillFrom_MIR_LValue(state, e.val, pp); ), (MakeDst, - Trans_Enumerate_FillFrom_MIR_LValue(state, e.ptr_val, pp); + Trans_Enumerate_FillFrom_MIR_Param(state, e.ptr_val, pp); Trans_Enumerate_FillFrom_MIR_Param(state, e.meta_val, pp); ), (Tuple, diff --git a/src/trans/monomorphise.cpp b/src/trans/monomorphise.cpp index 13819c18..1688a8f5 100644 --- a/src/trans/monomorphise.cpp +++ b/src/trans/monomorphise.cpp @@ -212,7 +212,7 @@ namespace { ), (MakeDst, rval = ::MIR::RValue::make_MakeDst({ - monomorph_LValue(resolve, params, se.ptr_val), + monomorph_Param(resolve, params, se.ptr_val), monomorph_Param(resolve, params, se.meta_val) }); ), |