aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/backend/rust-compile-implitem.cc
diff options
context:
space:
mode:
authorPhilip Herron <philip.herron@embecosm.com>2022-04-29 15:27:53 +0100
committerPhilip Herron <philip.herron@embecosm.com>2022-04-30 13:31:12 +0100
commit44c058c30dd1d36f87c36f2c487355a5736d0afc (patch)
tree9414376dc8e452c4bd69ec5a776daeb25db979c8 /gcc/rust/backend/rust-compile-implitem.cc
parentf38bf60c3ac7f039db5ff5c7c0587325097892c8 (diff)
downloadgcc-44c058c30dd1d36f87c36f2c487355a5736d0afc.zip
gcc-44c058c30dd1d36f87c36f2c487355a5736d0afc.tar.gz
gcc-44c058c30dd1d36f87c36f2c487355a5736d0afc.tar.bz2
Fix address expression to respect reference/pointer types
Diffstat (limited to 'gcc/rust/backend/rust-compile-implitem.cc')
-rw-r--r--gcc/rust/backend/rust-compile-implitem.cc9
1 files changed, 7 insertions, 2 deletions
diff --git a/gcc/rust/backend/rust-compile-implitem.cc b/gcc/rust/backend/rust-compile-implitem.cc
index 9dc6d14..c13556a 100644
--- a/gcc/rust/backend/rust-compile-implitem.cc
+++ b/gcc/rust/backend/rust-compile-implitem.cc
@@ -68,7 +68,10 @@ CompileTraitItem::visit (HIR::TraitItemFunc &func)
{
ctx->insert_function_decl (fntype, lookup);
}
- reference = address_expression (lookup, ref_locus);
+ reference
+ = address_expression (lookup,
+ build_pointer_type (TREE_TYPE (lookup)),
+ ref_locus);
return;
}
}
@@ -95,7 +98,9 @@ CompileTraitItem::visit (HIR::TraitItemFunc &func)
func.get_outer_attrs (), func.get_locus (),
func.get_block_expr ().get (), canonical_path, fntype,
function.has_return_type ());
- reference = address_expression (fndecl, ref_locus);
+ reference
+ = address_expression (fndecl, build_pointer_type (TREE_TYPE (fndecl)),
+ ref_locus);
}
} // namespace Compile