Add missing cast for function_ptr arguments
This commit is contained in:
parent
30ee7ba862
commit
ca654047fb
@ -252,7 +252,19 @@ fn check_ptr_call<'b>(
|
|||||||
{
|
{
|
||||||
self.context.new_cast(self.location, actual_val, expected_ty)
|
self.context.new_cast(self.location, actual_val, expected_ty)
|
||||||
} else if on_stack_param_indices.contains(&index) {
|
} else if on_stack_param_indices.contains(&index) {
|
||||||
|
let ty = actual_val.get_type();
|
||||||
|
if let Some(pointee_val) = ty.get_pointee()
|
||||||
|
&& pointee_val != expected_ty
|
||||||
|
{
|
||||||
|
let new_val = self.context.new_cast(
|
||||||
|
self.location,
|
||||||
|
actual_val,
|
||||||
|
expected_ty.make_pointer(),
|
||||||
|
);
|
||||||
|
new_val.dereference(self.location).to_rvalue()
|
||||||
|
} else {
|
||||||
actual_val.dereference(self.location).to_rvalue()
|
actual_val.dereference(self.location).to_rvalue()
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
assert!(
|
assert!(
|
||||||
!((actual_ty.is_vector() && !expected_ty.is_vector())
|
!((actual_ty.is_vector() && !expected_ty.is_vector())
|
||||||
|
@ -254,8 +254,13 @@ pub(crate) fn get_static_inner(&self, def_id: DefId, gcc_type: Type<'gcc>) -> LV
|
|||||||
}
|
}
|
||||||
|
|
||||||
let is_tls = fn_attrs.flags.contains(CodegenFnAttrFlags::THREAD_LOCAL);
|
let is_tls = fn_attrs.flags.contains(CodegenFnAttrFlags::THREAD_LOCAL);
|
||||||
let global =
|
let global = self.declare_global(
|
||||||
self.declare_global(sym, gcc_type, GlobalKind::Exported, is_tls, fn_attrs.link_section);
|
sym,
|
||||||
|
gcc_type,
|
||||||
|
GlobalKind::Exported,
|
||||||
|
is_tls,
|
||||||
|
fn_attrs.link_section,
|
||||||
|
);
|
||||||
|
|
||||||
if !self.tcx.is_reachable_non_generic(def_id) {
|
if !self.tcx.is_reachable_non_generic(def_id) {
|
||||||
#[cfg(feature = "master")]
|
#[cfg(feature = "master")]
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
#![allow(internal_features)]
|
#![allow(internal_features)]
|
||||||
#![doc(rust_logo)]
|
#![doc(rust_logo)]
|
||||||
#![feature(rustdoc_internals)]
|
#![feature(rustdoc_internals)]
|
||||||
#![feature(rustc_private, decl_macro, never_type, trusted_len, hash_raw_entry)]
|
#![feature(rustc_private, decl_macro, never_type, trusted_len, hash_raw_entry, let_chains)]
|
||||||
#![allow(broken_intra_doc_links)]
|
#![allow(broken_intra_doc_links)]
|
||||||
#![recursion_limit = "256"]
|
#![recursion_limit = "256"]
|
||||||
#![warn(rust_2018_idioms)]
|
#![warn(rust_2018_idioms)]
|
||||||
|
Loading…
Reference in New Issue
Block a user