Skip to content

Commit 8ad2c97

Browse files
committed
Auto merge of rust-lang#136728 - matthiaskrgr:rollup-x2qh9yt, r=matthiaskrgr
Rollup of 6 pull requests Successful merges: - rust-lang#136640 (Debuginfo for function ZSTs should have alignment of 8 bits, not 1 bit) - rust-lang#136648 (Add a missing `//@ needs-symlink` to `tests/run-make/libs-through-symlinks`) - rust-lang#136651 (Label mismatched parameters at the def site for foreign functions) - rust-lang#136691 (Remove Linkage::Private and Linkage::Appending) - rust-lang#136692 (add module level doc for bootstrap:utils:exec) - rust-lang#136700 (i686-unknown-hurd-gnu: bump baseline CPU to Pentium 4) r? `@ghost` `@rustbot` modify labels: rollup
2 parents d2f335d + a5b9e8c commit 8ad2c97

File tree

25 files changed

+70
-51
lines changed

25 files changed

+70
-51
lines changed

compiler/rustc_codegen_gcc/src/base.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,7 @@ pub fn global_linkage_to_gcc(linkage: Linkage) -> GlobalKind {
4949
Linkage::LinkOnceODR => unimplemented!(),
5050
Linkage::WeakAny => unimplemented!(),
5151
Linkage::WeakODR => unimplemented!(),
52-
Linkage::Appending => unimplemented!(),
5352
Linkage::Internal => GlobalKind::Internal,
54-
Linkage::Private => GlobalKind::Internal,
5553
Linkage::ExternalWeak => GlobalKind::Imported, // TODO(antoyo): should be weak linkage.
5654
Linkage::Common => unimplemented!(),
5755
}
@@ -66,9 +64,7 @@ pub fn linkage_to_gcc(linkage: Linkage) -> FunctionType {
6664
Linkage::LinkOnceODR => unimplemented!(),
6765
Linkage::WeakAny => FunctionType::Exported, // FIXME(antoyo): should be similar to linkonce.
6866
Linkage::WeakODR => unimplemented!(),
69-
Linkage::Appending => unimplemented!(),
7067
Linkage::Internal => FunctionType::Internal,
71-
Linkage::Private => FunctionType::Internal,
7268
Linkage::ExternalWeak => unimplemented!(),
7369
Linkage::Common => unimplemented!(),
7470
}

compiler/rustc_codegen_gcc/src/mono_item.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,7 @@ impl<'gcc, 'tcx> PreDefineCodegenMethods<'tcx> for CodegenCx<'gcc, 'tcx> {
6161
// compiler-rt, then we want to implicitly compile everything with hidden
6262
// visibility as we're going to link this object all over the place but
6363
// don't want the symbols to get exported.
64-
if linkage != Linkage::Internal
65-
&& linkage != Linkage::Private
66-
&& self.tcx.is_compiler_builtins(LOCAL_CRATE)
67-
{
64+
if linkage != Linkage::Internal && self.tcx.is_compiler_builtins(LOCAL_CRATE) {
6865
#[cfg(feature = "master")]
6966
decl.add_attribute(FnAttribute::Visibility(gccjit::Visibility::Hidden));
7067
} else {

compiler/rustc_codegen_llvm/src/base.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -157,9 +157,7 @@ pub(crate) fn linkage_to_llvm(linkage: Linkage) -> llvm::Linkage {
157157
Linkage::LinkOnceODR => llvm::Linkage::LinkOnceODRLinkage,
158158
Linkage::WeakAny => llvm::Linkage::WeakAnyLinkage,
159159
Linkage::WeakODR => llvm::Linkage::WeakODRLinkage,
160-
Linkage::Appending => llvm::Linkage::AppendingLinkage,
161160
Linkage::Internal => llvm::Linkage::InternalLinkage,
162-
Linkage::Private => llvm::Linkage::PrivateLinkage,
163161
Linkage::ExternalWeak => llvm::Linkage::ExternalWeakLinkage,
164162
Linkage::Common => llvm::Linkage::CommonLinkage,
165163
}

compiler/rustc_codegen_llvm/src/debuginfo/metadata.rs

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -319,19 +319,16 @@ fn build_subroutine_type_di_node<'ll, 'tcx>(
319319
// This is actually a function pointer, so wrap it in pointer DI.
320320
let name = compute_debuginfo_type_name(cx.tcx, fn_ty, false);
321321
let (size, align) = match fn_ty.kind() {
322-
ty::FnDef(..) => (0, 1),
323-
ty::FnPtr(..) => (
324-
cx.tcx.data_layout.pointer_size.bits(),
325-
cx.tcx.data_layout.pointer_align.abi.bits() as u32,
326-
),
322+
ty::FnDef(..) => (Size::ZERO, Align::ONE),
323+
ty::FnPtr(..) => (cx.tcx.data_layout.pointer_size, cx.tcx.data_layout.pointer_align.abi),
327324
_ => unreachable!(),
328325
};
329326
let di_node = unsafe {
330327
llvm::LLVMRustDIBuilderCreatePointerType(
331328
DIB(cx),
332329
fn_di_node,
333-
size,
334-
align,
330+
size.bits(),
331+
align.bits() as u32,
335332
0, // Ignore DWARF address space.
336333
name.as_c_char_ptr(),
337334
name.len(),

compiler/rustc_codegen_llvm/src/debuginfo/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -633,7 +633,7 @@ impl<'ll, 'tcx> DebugInfoCodegenMethods<'tcx> for CodegenCx<'ll, 'tcx> {
633633
true,
634634
DIFlags::FlagZero,
635635
argument_index,
636-
align.bytes() as u32,
636+
align.bits() as u32,
637637
)
638638
}
639639
}

compiler/rustc_codegen_llvm/src/mono_item.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,10 +71,7 @@ impl<'tcx> PreDefineCodegenMethods<'tcx> for CodegenCx<'_, 'tcx> {
7171
// compiler-rt, then we want to implicitly compile everything with hidden
7272
// visibility as we're going to link this object all over the place but
7373
// don't want the symbols to get exported.
74-
if linkage != Linkage::Internal
75-
&& linkage != Linkage::Private
76-
&& self.tcx.is_compiler_builtins(LOCAL_CRATE)
77-
{
74+
if linkage != Linkage::Internal && self.tcx.is_compiler_builtins(LOCAL_CRATE) {
7875
llvm::set_visibility(lldecl, llvm::Visibility::Hidden);
7976
} else {
8077
llvm::set_visibility(lldecl, base::visibility_to_llvm(visibility));

compiler/rustc_codegen_ssa/src/codegen_attrs.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,15 +41,13 @@ fn linkage_by_name(tcx: TyCtxt<'_>, def_id: LocalDefId, name: &str) -> Linkage {
4141
// ghost, dllimport, dllexport and linkonce_odr_autohide are not supported
4242
// and don't have to be, LLVM treats them as no-ops.
4343
match name {
44-
"appending" => Appending,
4544
"available_externally" => AvailableExternally,
4645
"common" => Common,
4746
"extern_weak" => ExternalWeak,
4847
"external" => External,
4948
"internal" => Internal,
5049
"linkonce" => LinkOnceAny,
5150
"linkonce_odr" => LinkOnceODR,
52-
"private" => Private,
5351
"weak" => WeakAny,
5452
"weak_odr" => WeakODR,
5553
_ => tcx.dcx().span_fatal(tcx.def_span(def_id), "invalid linkage specified"),

compiler/rustc_codegen_ssa/src/mir/naked_asm.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -187,10 +187,9 @@ fn prefix_and_suffix<'tcx>(
187187
}
188188
}
189189
}
190-
Linkage::Internal | Linkage::Private => {
190+
Linkage::Internal => {
191191
// write nothing
192192
}
193-
Linkage::Appending => emit_fatal("Only global variables can have appending linkage!"),
194193
Linkage::Common => emit_fatal("Functions may not have common linkage"),
195194
Linkage::AvailableExternally => {
196195
// this would make the function equal an extern definition

compiler/rustc_hir_typeck/src/fn_ctxt/checks.rs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2641,8 +2641,9 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
26412641
}
26422642

26432643
/// Returns the parameters of a function, with their generic parameters if those are the full
2644-
/// type of that parameter. Returns `None` if the function has no generics or the body is
2645-
/// unavailable (eg is an instrinsic).
2644+
/// type of that parameter.
2645+
///
2646+
/// Returns `None` if the body is not a named function (e.g. a closure).
26462647
fn get_hir_param_info(
26472648
&self,
26482649
def_id: DefId,
@@ -2667,6 +2668,10 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
26672668
kind: hir::ItemKind::Fn { sig, generics, body, .. },
26682669
..
26692670
}) => (sig, generics, Some(body), None),
2671+
hir::Node::ForeignItem(&hir::ForeignItem {
2672+
kind: hir::ForeignItemKind::Fn(sig, params, generics),
2673+
..
2674+
}) => (sig, generics, None, Some(params)),
26702675
_ => return None,
26712676
};
26722677

@@ -2700,7 +2705,8 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
27002705
))
27012706
}
27022707
(None, Some(params)) => {
2703-
let params = params.get(is_method as usize..)?;
2708+
let params =
2709+
params.get(is_method as usize..params.len() - sig.decl.c_variadic as usize)?;
27042710
debug_assert_eq!(params.len(), fn_inputs.len());
27052711
Some((
27062712
fn_inputs.zip(params.iter().map(|param| FnParam::Name(param))).collect(),

compiler/rustc_middle/src/middle/codegen_fn_attrs.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ impl CodegenFnAttrs {
178178
|| match self.linkage {
179179
// These are private, so make sure we don't try to consider
180180
// them external.
181-
None | Some(Linkage::Internal | Linkage::Private) => false,
181+
None | Some(Linkage::Internal) => false,
182182
Some(_) => true,
183183
}
184184
}

0 commit comments

Comments
 (0)