| author | bors <bors@rust-lang.org> 2026-01-27 01:51:41 UTC |
| committer | bors <bors@rust-lang.org> 2026-01-27 01:51:41 UTC |
| log | ebf13cca58b551b83133d4895e123f7d1e795111 |
| tree | 6f12432bf746502b599acb1ce7e116cfae9064f2 |
| parent | b3cda168c8afd5c4240a9477f6a7f54e70e2589a |
| parent | 2f8f4acbd67d95c6fc706ffc1d1bd7b5166d809b |
Rollup of 12 pull requests
Successful merges:
- rust-lang/rust#147996 (Stabilize ppc inline assembly)
- rust-lang/rust#148718 (Do not mention `-Zmacro-backtrace` for std macros that are a wrapper around a compiler intrinsic)
- rust-lang/rust#151137 (checksum-freshness: Fix invalid checksum calculation for binary files)
- rust-lang/rust#151680 (Update backtrace and windows-bindgen)
- rust-lang/rust#150863 (Adds two new Tier 3 targets - `aarch64v8r-unknown-none{,-softfloat}`)
- rust-lang/rust#151040 (Don't expose redundant information in `rustc_public`'s `LayoutShape`)
- rust-lang/rust#151383 (remove `#[deprecated]` from unstable & internal `SipHasher13` and `24` types)
- rust-lang/rust#151529 (lint: Use rustc_apfloat for `overflowing_literals`, add f16 and f128)
- rust-lang/rust#151669 (rename uN::{gather,scatter}_bits to uN::{extract,deposit}_bits)
- rust-lang/rust#151689 (Fix broken Xtensa installation link)
- rust-lang/rust#151699 (Update books)
- rust-lang/rust#151700 (os allow missing_docs)197 files changed, 880 insertions(+), 750 deletions(-)
Cargo.lock+4-3| ... | ... | @@ -4170,6 +4170,7 @@ version = "0.0.0" |
| 4170 | 4170 | dependencies = [ |
| 4171 | 4171 | "bitflags", |
| 4172 | 4172 | "rustc_abi", |
| 4173 | "rustc_apfloat", | |
| 4173 | 4174 | "rustc_ast", |
| 4174 | 4175 | "rustc_ast_pretty", |
| 4175 | 4176 | "rustc_attr_parsing", |
| ... | ... | @@ -6419,13 +6420,13 @@ dependencies = [ |
| 6419 | 6420 | |
| 6420 | 6421 | [[package]] |
| 6421 | 6422 | name = "windows-bindgen" |
| 6422 | version = "0.61.1" | |
| 6423 | version = "0.66.0" | |
| 6423 | 6424 | source = "registry+https://github.com/rust-lang/crates.io-index" |
| 6424 | checksum = "9b4e97b01190d32f268a2dfbd3f006f77840633746707fbe40bcee588108a231" | |
| 6425 | checksum = "81b7ec123a4eadd44d1f44f76804316b477b2537abed9a2ab950b3c54afa1fcf" | |
| 6425 | 6426 | dependencies = [ |
| 6426 | 6427 | "serde", |
| 6427 | 6428 | "serde_json", |
| 6428 | "windows-threading 0.1.0", | |
| 6429 | "windows-threading 0.2.1", | |
| 6429 | 6430 | ] |
| 6430 | 6431 | |
| 6431 | 6432 | [[package]] |
compiler/rustc_ast_lowering/src/asm.rs+2| ... | ... | @@ -51,6 +51,8 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> { |
| 51 | 51 | | asm::InlineAsmArch::LoongArch32 |
| 52 | 52 | | asm::InlineAsmArch::LoongArch64 |
| 53 | 53 | | asm::InlineAsmArch::S390x |
| 54 | | asm::InlineAsmArch::PowerPC | |
| 55 | | asm::InlineAsmArch::PowerPC64 | |
| 54 | 56 | ); |
| 55 | 57 | if !is_stable |
| 56 | 58 | && !self.tcx.features().asm_experimental_arch() |
compiler/rustc_builtin_macros/src/source_util.rs+9-1| ... | ... | @@ -275,7 +275,15 @@ fn load_binary_file( |
| 275 | 275 | } |
| 276 | 276 | }; |
| 277 | 277 | match cx.source_map().load_binary_file(&resolved_path) { |
| 278 | Ok(data) => Ok(data), | |
| 278 | Ok(data) => { | |
| 279 | cx.sess | |
| 280 | .psess | |
| 281 | .file_depinfo | |
| 282 | .borrow_mut() | |
| 283 | .insert(Symbol::intern(&resolved_path.to_string_lossy())); | |
| 284 | ||
| 285 | Ok(data) | |
| 286 | } | |
| 279 | 287 | Err(io_err) => { |
| 280 | 288 | let mut err = cx.dcx().struct_span_err( |
| 281 | 289 | macro_span, |
compiler/rustc_expand/src/base.rs+13-1| ... | ... | @@ -849,6 +849,9 @@ pub struct SyntaxExtension { |
| 849 | 849 | /// Should debuginfo for the macro be collapsed to the outermost expansion site (in other |
| 850 | 850 | /// words, was the macro definition annotated with `#[collapse_debuginfo]`)? |
| 851 | 851 | pub collapse_debuginfo: bool, |
| 852 | /// Suppresses the "this error originates in the macro" note when a diagnostic points at this | |
| 853 | /// macro. | |
| 854 | pub hide_backtrace: bool, | |
| 852 | 855 | } |
| 853 | 856 | |
| 854 | 857 | impl SyntaxExtension { |
| ... | ... | @@ -882,6 +885,7 @@ impl SyntaxExtension { |
| 882 | 885 | allow_internal_unsafe: false, |
| 883 | 886 | local_inner_macros: false, |
| 884 | 887 | collapse_debuginfo: false, |
| 888 | hide_backtrace: false, | |
| 885 | 889 | } |
| 886 | 890 | } |
| 887 | 891 | |
| ... | ... | @@ -912,6 +916,12 @@ impl SyntaxExtension { |
| 912 | 916 | collapse_table[flag as usize][attr as usize] |
| 913 | 917 | } |
| 914 | 918 | |
| 919 | fn get_hide_backtrace(attrs: &[hir::Attribute]) -> bool { | |
| 920 | // FIXME(estebank): instead of reusing `#[rustc_diagnostic_item]` as a proxy, introduce a | |
| 921 | // new attribute purely for this under the `#[diagnostic]` namespace. | |
| 922 | ast::attr::find_by_name(attrs, sym::rustc_diagnostic_item).is_some() | |
| 923 | } | |
| 924 | ||
| 915 | 925 | /// Constructs a syntax extension with the given properties |
| 916 | 926 | /// and other properties converted from attributes. |
| 917 | 927 | pub fn new( |
| ... | ... | @@ -948,6 +958,7 @@ impl SyntaxExtension { |
| 948 | 958 | // Not a built-in macro |
| 949 | 959 | None => (None, helper_attrs), |
| 950 | 960 | }; |
| 961 | let hide_backtrace = builtin_name.is_some() || Self::get_hide_backtrace(attrs); | |
| 951 | 962 | |
| 952 | 963 | let stability = find_attr!(attrs, AttributeKind::Stability { stability, .. } => *stability); |
| 953 | 964 | |
| ... | ... | @@ -982,6 +993,7 @@ impl SyntaxExtension { |
| 982 | 993 | allow_internal_unsafe, |
| 983 | 994 | local_inner_macros, |
| 984 | 995 | collapse_debuginfo, |
| 996 | hide_backtrace, | |
| 985 | 997 | } |
| 986 | 998 | } |
| 987 | 999 | |
| ... | ... | @@ -1061,7 +1073,7 @@ impl SyntaxExtension { |
| 1061 | 1073 | self.allow_internal_unsafe, |
| 1062 | 1074 | self.local_inner_macros, |
| 1063 | 1075 | self.collapse_debuginfo, |
| 1064 | self.builtin_name.is_some(), | |
| 1076 | self.hide_backtrace, | |
| 1065 | 1077 | ) |
| 1066 | 1078 | } |
| 1067 | 1079 | } |
compiler/rustc_interface/src/passes.rs+14-15| ... | ... | @@ -9,6 +9,7 @@ use rustc_ast::{self as ast, CRATE_NODE_ID}; |
| 9 | 9 | use rustc_attr_parsing::{AttributeParser, Early, ShouldEmit}; |
| 10 | 10 | use rustc_codegen_ssa::traits::CodegenBackend; |
| 11 | 11 | use rustc_codegen_ssa::{CodegenResults, CrateInfo}; |
| 12 | use rustc_data_structures::indexmap::IndexMap; | |
| 12 | 13 | use rustc_data_structures::jobserver::Proxy; |
| 13 | 14 | use rustc_data_structures::steal::Steal; |
| 14 | 15 | use rustc_data_structures::sync::{AppendOnlyIndexVec, FreezeLock, WorkerLocal}; |
| ... | ... | @@ -584,7 +585,7 @@ fn write_out_deps(tcx: TyCtxt<'_>, outputs: &OutputFilenames, out_filenames: &[P |
| 584 | 585 | let result: io::Result<()> = try { |
| 585 | 586 | // Build a list of files used to compile the output and |
| 586 | 587 | // write Makefile-compatible dependency rules |
| 587 | let mut files: Vec<(String, u64, Option<SourceFileHash>)> = sess | |
| 588 | let mut files: IndexMap<String, (u64, Option<SourceFileHash>)> = sess | |
| 588 | 589 | .source_map() |
| 589 | 590 | .files() |
| 590 | 591 | .iter() |
| ... | ... | @@ -593,10 +594,12 @@ fn write_out_deps(tcx: TyCtxt<'_>, outputs: &OutputFilenames, out_filenames: &[P |
| 593 | 594 | .map(|fmap| { |
| 594 | 595 | ( |
| 595 | 596 | escape_dep_filename(&fmap.name.prefer_local_unconditionally().to_string()), |
| 596 | // This needs to be unnormalized, | |
| 597 | // as external tools wouldn't know how rustc normalizes them | |
| 598 | fmap.unnormalized_source_len as u64, | |
| 599 | fmap.checksum_hash, | |
| 597 | ( | |
| 598 | // This needs to be unnormalized, | |
| 599 | // as external tools wouldn't know how rustc normalizes them | |
| 600 | fmap.unnormalized_source_len as u64, | |
| 601 | fmap.checksum_hash, | |
| 602 | ), | |
| 600 | 603 | ) |
| 601 | 604 | }) |
| 602 | 605 | .collect(); |
| ... | ... | @@ -614,7 +617,7 @@ fn write_out_deps(tcx: TyCtxt<'_>, outputs: &OutputFilenames, out_filenames: &[P |
| 614 | 617 | fn hash_iter_files<P: AsRef<Path>>( |
| 615 | 618 | it: impl Iterator<Item = P>, |
| 616 | 619 | checksum_hash_algo: Option<SourceFileHashAlgorithm>, |
| 617 | ) -> impl Iterator<Item = (P, u64, Option<SourceFileHash>)> { | |
| 620 | ) -> impl Iterator<Item = (P, (u64, Option<SourceFileHash>))> { | |
| 618 | 621 | it.map(move |path| { |
| 619 | 622 | match checksum_hash_algo.and_then(|algo| { |
| 620 | 623 | fs::File::open(path.as_ref()) |
| ... | ... | @@ -630,8 +633,8 @@ fn write_out_deps(tcx: TyCtxt<'_>, outputs: &OutputFilenames, out_filenames: &[P |
| 630 | 633 | }) |
| 631 | 634 | .ok() |
| 632 | 635 | }) { |
| 633 | Some((file_len, checksum)) => (path, file_len, Some(checksum)), | |
| 634 | None => (path, 0, None), | |
| 636 | Some((file_len, checksum)) => (path, (file_len, Some(checksum))), | |
| 637 | None => (path, (0, None)), | |
| 635 | 638 | } |
| 636 | 639 | }) |
| 637 | 640 | } |
| ... | ... | @@ -705,18 +708,14 @@ fn write_out_deps(tcx: TyCtxt<'_>, outputs: &OutputFilenames, out_filenames: &[P |
| 705 | 708 | file, |
| 706 | 709 | "{}: {}\n", |
| 707 | 710 | path.display(), |
| 708 | files | |
| 709 | .iter() | |
| 710 | .map(|(path, _file_len, _checksum_hash_algo)| path.as_str()) | |
| 711 | .intersperse(" ") | |
| 712 | .collect::<String>() | |
| 711 | files.keys().map(String::as_str).intersperse(" ").collect::<String>() | |
| 713 | 712 | )?; |
| 714 | 713 | } |
| 715 | 714 | |
| 716 | 715 | // Emit a fake target for each input file to the compilation. This |
| 717 | 716 | // prevents `make` from spitting out an error if a file is later |
| 718 | 717 | // deleted. For more info see #28735 |
| 719 | for (path, _file_len, _checksum_hash_algo) in &files { | |
| 718 | for path in files.keys() { | |
| 720 | 719 | writeln!(file, "{path}:")?; |
| 721 | 720 | } |
| 722 | 721 | |
| ... | ... | @@ -745,7 +744,7 @@ fn write_out_deps(tcx: TyCtxt<'_>, outputs: &OutputFilenames, out_filenames: &[P |
| 745 | 744 | if sess.opts.unstable_opts.checksum_hash_algorithm().is_some() { |
| 746 | 745 | files |
| 747 | 746 | .iter() |
| 748 | .filter_map(|(path, file_len, hash_algo)| { | |
| 747 | .filter_map(|(path, (file_len, hash_algo))| { | |
| 749 | 748 | hash_algo.map(|hash_algo| (path, file_len, hash_algo)) |
| 750 | 749 | }) |
| 751 | 750 | .try_for_each(|(path, file_len, checksum_hash)| { |
compiler/rustc_lint/Cargo.toml+1| ... | ... | @@ -7,6 +7,7 @@ edition = "2024" |
| 7 | 7 | # tidy-alphabetical-start |
| 8 | 8 | bitflags = "2.4.1" |
| 9 | 9 | rustc_abi = { path = "../rustc_abi" } |
| 10 | rustc_apfloat = "0.2.0" | |
| 10 | 11 | rustc_ast = { path = "../rustc_ast" } |
| 11 | 12 | rustc_ast_pretty = { path = "../rustc_ast_pretty" } |
| 12 | 13 | rustc_attr_parsing = { path = "../rustc_attr_parsing" } |
compiler/rustc_lint/src/types/literal.rs+22-13| ... | ... | @@ -1,10 +1,12 @@ |
| 1 | 1 | use hir::{ExprKind, Node}; |
| 2 | 2 | use rustc_abi::{Integer, Size}; |
| 3 | use rustc_apfloat::Float; | |
| 4 | use rustc_apfloat::ieee::{DoubleS, HalfS, IeeeFloat, QuadS, Semantics, SingleS}; | |
| 3 | 5 | use rustc_hir::{HirId, attrs}; |
| 4 | 6 | use rustc_middle::ty::Ty; |
| 5 | 7 | use rustc_middle::ty::layout::IntegerExt; |
| 6 | 8 | use rustc_middle::{bug, ty}; |
| 7 | use rustc_span::Span; | |
| 9 | use rustc_span::{Span, Symbol}; | |
| 8 | 10 | use {rustc_ast as ast, rustc_hir as hir}; |
| 9 | 11 | |
| 10 | 12 | use crate::LateContext; |
| ... | ... | @@ -383,6 +385,13 @@ fn lint_uint_literal<'tcx>( |
| 383 | 385 | } |
| 384 | 386 | } |
| 385 | 387 | |
| 388 | /// `None` if `v` does not parse as the float type, otherwise indicates whether a literal rounds | |
| 389 | /// to infinity. | |
| 390 | fn float_is_infinite<S: Semantics>(v: Symbol) -> Option<bool> { | |
| 391 | let x: IeeeFloat<S> = v.as_str().parse().ok()?; | |
| 392 | Some(x.is_infinite()) | |
| 393 | } | |
| 394 | ||
| 386 | 395 | pub(crate) fn lint_literal<'tcx>( |
| 387 | 396 | cx: &LateContext<'tcx>, |
| 388 | 397 | type_limits: &TypeLimits, |
| ... | ... | @@ -405,18 +414,18 @@ pub(crate) fn lint_literal<'tcx>( |
| 405 | 414 | lint_uint_literal(cx, hir_id, span, lit, t) |
| 406 | 415 | } |
| 407 | 416 | ty::Float(t) => { |
| 408 | let (is_infinite, sym) = match lit.node { | |
| 409 | ast::LitKind::Float(v, _) => match t { | |
| 410 | // FIXME(f16_f128): add this check once `is_infinite` is reliable (ABI | |
| 411 | // issues resolved). | |
| 412 | ty::FloatTy::F16 => (Ok(false), v), | |
| 413 | ty::FloatTy::F32 => (v.as_str().parse().map(f32::is_infinite), v), | |
| 414 | ty::FloatTy::F64 => (v.as_str().parse().map(f64::is_infinite), v), | |
| 415 | ty::FloatTy::F128 => (Ok(false), v), | |
| 416 | }, | |
| 417 | _ => bug!(), | |
| 417 | let ast::LitKind::Float(v, _) = lit.node else { | |
| 418 | bug!(); | |
| 418 | 419 | }; |
| 419 | if is_infinite == Ok(true) { | |
| 420 | ||
| 421 | let is_infinite = match t { | |
| 422 | ty::FloatTy::F16 => float_is_infinite::<HalfS>(v), | |
| 423 | ty::FloatTy::F32 => float_is_infinite::<SingleS>(v), | |
| 424 | ty::FloatTy::F64 => float_is_infinite::<DoubleS>(v), | |
| 425 | ty::FloatTy::F128 => float_is_infinite::<QuadS>(v), | |
| 426 | }; | |
| 427 | ||
| 428 | if is_infinite == Some(true) { | |
| 420 | 429 | cx.emit_span_lint( |
| 421 | 430 | OVERFLOWING_LITERALS, |
| 422 | 431 | span, |
| ... | ... | @@ -426,7 +435,7 @@ pub(crate) fn lint_literal<'tcx>( |
| 426 | 435 | .sess() |
| 427 | 436 | .source_map() |
| 428 | 437 | .span_to_snippet(lit.span) |
| 429 | .unwrap_or_else(|_| sym.to_string()), | |
| 438 | .unwrap_or_else(|_| v.to_string()), | |
| 430 | 439 | }, |
| 431 | 440 | ); |
| 432 | 441 | } |
compiler/rustc_public/src/abi.rs+18-1| ... | ... | @@ -188,10 +188,27 @@ pub enum VariantsShape { |
| 188 | 188 | tag: Scalar, |
| 189 | 189 | tag_encoding: TagEncoding, |
| 190 | 190 | tag_field: usize, |
| 191 | variants: Vec<LayoutShape>, | |
| 191 | variants: Vec<VariantFields>, | |
| 192 | 192 | }, |
| 193 | 193 | } |
| 194 | 194 | |
| 195 | #[derive(Clone, Debug, PartialEq, Eq, Hash, Serialize)] | |
| 196 | pub struct VariantFields { | |
| 197 | /// Offsets for the first byte of each field, | |
| 198 | /// ordered to match the source definition order. | |
| 199 | /// I.e.: It follows the same order as [super::ty::VariantDef::fields()]. | |
| 200 | /// This vector does not go in increasing order. | |
| 201 | pub offsets: Vec<Size>, | |
| 202 | } | |
| 203 | ||
| 204 | impl VariantFields { | |
| 205 | pub fn fields_by_offset_order(&self) -> Vec<FieldIdx> { | |
| 206 | let mut indices = (0..self.offsets.len()).collect::<Vec<_>>(); | |
| 207 | indices.sort_by_key(|idx| self.offsets[*idx]); | |
| 208 | indices | |
| 209 | } | |
| 210 | } | |
| 211 | ||
| 195 | 212 | #[derive(Clone, Debug, PartialEq, Eq, Hash, Serialize)] |
| 196 | 213 | pub enum TagEncoding { |
| 197 | 214 | /// The tag directly stores the discriminant, but possibly with a smaller layout |
compiler/rustc_public/src/unstable/convert/stable/abi.rs+10-2| ... | ... | @@ -11,7 +11,7 @@ use rustc_target::callconv; |
| 11 | 11 | use crate::abi::{ |
| 12 | 12 | AddressSpace, ArgAbi, CallConvention, FieldsShape, FloatLength, FnAbi, IntegerLength, |
| 13 | 13 | IntegerType, Layout, LayoutShape, PassMode, Primitive, ReprFlags, ReprOptions, Scalar, |
| 14 | TagEncoding, TyAndLayout, ValueAbi, VariantsShape, WrappingRange, | |
| 14 | TagEncoding, TyAndLayout, ValueAbi, VariantFields, VariantsShape, WrappingRange, | |
| 15 | 15 | }; |
| 16 | 16 | use crate::compiler_interface::BridgeTys; |
| 17 | 17 | use crate::target::MachineSize as Size; |
| ... | ... | @@ -213,7 +213,15 @@ impl<'tcx> Stable<'tcx> for rustc_abi::Variants<rustc_abi::FieldIdx, rustc_abi:: |
| 213 | 213 | tag: tag.stable(tables, cx), |
| 214 | 214 | tag_encoding: tag_encoding.stable(tables, cx), |
| 215 | 215 | tag_field: tag_field.stable(tables, cx), |
| 216 | variants: variants.iter().as_slice().stable(tables, cx), | |
| 216 | variants: variants | |
| 217 | .iter() | |
| 218 | .map(|v| match &v.fields { | |
| 219 | rustc_abi::FieldsShape::Arbitrary { offsets, .. } => VariantFields { | |
| 220 | offsets: offsets.iter().as_slice().stable(tables, cx), | |
| 221 | }, | |
| 222 | _ => panic!("variant layout should be Arbitrary"), | |
| 223 | }) | |
| 224 | .collect(), | |
| 217 | 225 | } |
| 218 | 226 | } |
| 219 | 227 | } |
compiler/rustc_target/src/spec/mod.rs+2| ... | ... | @@ -1709,6 +1709,8 @@ supported_targets! { |
| 1709 | 1709 | ("aarch64-unknown-none-softfloat", aarch64_unknown_none_softfloat), |
| 1710 | 1710 | ("aarch64_be-unknown-none-softfloat", aarch64_be_unknown_none_softfloat), |
| 1711 | 1711 | ("aarch64-unknown-nuttx", aarch64_unknown_nuttx), |
| 1712 | ("aarch64v8r-unknown-none", aarch64v8r_unknown_none), | |
| 1713 | ("aarch64v8r-unknown-none-softfloat", aarch64v8r_unknown_none_softfloat), | |
| 1712 | 1714 | |
| 1713 | 1715 | ("x86_64-fortanix-unknown-sgx", x86_64_fortanix_unknown_sgx), |
| 1714 | 1716 |
compiler/rustc_target/src/spec/targets/aarch64v8r_unknown_none.rs created+37| ... | ... | @@ -0,0 +1,37 @@ |
| 1 | use crate::spec::{ | |
| 2 | Arch, Cc, LinkerFlavor, Lld, PanicStrategy, RelocModel, SanitizerSet, StackProbeType, Target, | |
| 3 | TargetMetadata, TargetOptions, | |
| 4 | }; | |
| 5 | ||
| 6 | pub(crate) fn target() -> Target { | |
| 7 | let opts = TargetOptions { | |
| 8 | // based off the aarch64-unknown-none target at time of addition | |
| 9 | linker_flavor: LinkerFlavor::Gnu(Cc::No, Lld::Yes), | |
| 10 | linker: Some("rust-lld".into()), | |
| 11 | supported_sanitizers: SanitizerSet::KCFI | SanitizerSet::KERNELADDRESS, | |
| 12 | relocation_model: RelocModel::Static, | |
| 13 | disable_redzone: true, | |
| 14 | max_atomic_width: Some(128), | |
| 15 | stack_probes: StackProbeType::Inline, | |
| 16 | panic_strategy: PanicStrategy::Abort, | |
| 17 | default_uwtable: true, | |
| 18 | ||
| 19 | // deviations from aarch64-unknown-none: `+v8a` -> `+v8r`; `+v8r` implies `+neon` | |
| 20 | features: "+v8r,+strict-align".into(), | |
| 21 | ..Default::default() | |
| 22 | }; | |
| 23 | Target { | |
| 24 | llvm_target: "aarch64-unknown-none".into(), | |
| 25 | metadata: TargetMetadata { | |
| 26 | description: Some("Bare Armv8-R AArch64, hardfloat".into()), | |
| 27 | tier: Some(3), | |
| 28 | host_tools: Some(false), | |
| 29 | std: Some(false), | |
| 30 | }, | |
| 31 | pointer_width: 64, | |
| 32 | // $ clang-21 -S -emit-llvm -target aarch64 -mcpu=cortex-r82 stub.c | |
| 33 | data_layout: "e-m:e-p270:32:32-p271:32:32-p272:64:64-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(), | |
| 34 | arch: Arch::AArch64, | |
| 35 | options: opts, | |
| 36 | } | |
| 37 | } |
compiler/rustc_target/src/spec/targets/aarch64v8r_unknown_none_softfloat.rs created+36| ... | ... | @@ -0,0 +1,36 @@ |
| 1 | use crate::spec::{ | |
| 2 | Abi, Arch, Cc, LinkerFlavor, Lld, PanicStrategy, RelocModel, SanitizerSet, StackProbeType, | |
| 3 | Target, TargetMetadata, TargetOptions, | |
| 4 | }; | |
| 5 | ||
| 6 | pub(crate) fn target() -> Target { | |
| 7 | let opts = TargetOptions { | |
| 8 | abi: Abi::SoftFloat, | |
| 9 | linker_flavor: LinkerFlavor::Gnu(Cc::No, Lld::Yes), | |
| 10 | linker: Some("rust-lld".into()), | |
| 11 | relocation_model: RelocModel::Static, | |
| 12 | disable_redzone: true, | |
| 13 | max_atomic_width: Some(128), | |
| 14 | supported_sanitizers: SanitizerSet::KCFI | SanitizerSet::KERNELADDRESS, | |
| 15 | stack_probes: StackProbeType::Inline, | |
| 16 | panic_strategy: PanicStrategy::Abort, | |
| 17 | default_uwtable: true, | |
| 18 | ||
| 19 | // deviations from aarch64-unknown-none: `+v8a` -> `+v8r` | |
| 20 | features: "+v8r,+strict-align,-neon".into(), | |
| 21 | ..Default::default() | |
| 22 | }; | |
| 23 | Target { | |
| 24 | llvm_target: "aarch64-unknown-none".into(), | |
| 25 | metadata: TargetMetadata { | |
| 26 | description: Some("Bare Armv8-R AArch64, softfloat".into()), | |
| 27 | tier: Some(3), | |
| 28 | host_tools: Some(false), | |
| 29 | std: Some(false), | |
| 30 | }, | |
| 31 | pointer_width: 64, | |
| 32 | data_layout: "e-m:e-p270:32:32-p271:32:32-p272:64:64-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32".into(), | |
| 33 | arch: Arch::AArch64, | |
| 34 | options: opts, | |
| 35 | } | |
| 36 | } |
library/Cargo.lock+7-7| ... | ... | @@ -346,7 +346,7 @@ dependencies = [ |
| 346 | 346 | "vex-sdk", |
| 347 | 347 | "wasi 0.11.1+wasi-snapshot-preview1", |
| 348 | 348 | "wasi 0.14.4+wasi-0.2.4", |
| 349 | "windows-targets 0.0.0", | |
| 349 | "windows-link 0.0.0", | |
| 350 | 350 | ] |
| 351 | 351 | |
| 352 | 352 | [[package]] |
| ... | ... | @@ -427,6 +427,10 @@ dependencies = [ |
| 427 | 427 | "wit-bindgen", |
| 428 | 428 | ] |
| 429 | 429 | |
| 430 | [[package]] | |
| 431 | name = "windows-link" | |
| 432 | version = "0.0.0" | |
| 433 | ||
| 430 | 434 | [[package]] |
| 431 | 435 | name = "windows-link" |
| 432 | 436 | version = "0.2.1" |
| ... | ... | @@ -439,20 +443,16 @@ version = "0.60.2" |
| 439 | 443 | source = "registry+https://github.com/rust-lang/crates.io-index" |
| 440 | 444 | checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" |
| 441 | 445 | dependencies = [ |
| 442 | "windows-targets 0.53.5", | |
| 446 | "windows-targets", | |
| 443 | 447 | ] |
| 444 | 448 | |
| 445 | [[package]] | |
| 446 | name = "windows-targets" | |
| 447 | version = "0.0.0" | |
| 448 | ||
| 449 | 449 | [[package]] |
| 450 | 450 | name = "windows-targets" |
| 451 | 451 | version = "0.53.5" |
| 452 | 452 | source = "registry+https://github.com/rust-lang/crates.io-index" |
| 453 | 453 | checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" |
| 454 | 454 | dependencies = [ |
| 455 | "windows-link", | |
| 455 | "windows-link 0.2.1", | |
| 456 | 456 | "windows_aarch64_gnullvm", |
| 457 | 457 | "windows_aarch64_msvc", |
| 458 | 458 | "windows_i686_gnu", |
library/Cargo.toml+1-1| ... | ... | @@ -12,7 +12,7 @@ members = [ |
| 12 | 12 | exclude = [ |
| 13 | 13 | # stdarch has its own Cargo workspace |
| 14 | 14 | "stdarch", |
| 15 | "windows_targets" | |
| 15 | "windows_link" | |
| 16 | 16 | ] |
| 17 | 17 | |
| 18 | 18 | [profile.release.package.compiler_builtins] |
library/alloctests/tests/c_str2.rs+1-5| ... | ... | @@ -3,9 +3,7 @@ use alloc::rc::Rc; |
| 3 | 3 | use alloc::sync::Arc; |
| 4 | 4 | use core::assert_matches; |
| 5 | 5 | use core::ffi::{CStr, FromBytesUntilNulError, c_char}; |
| 6 | #[allow(deprecated)] | |
| 7 | use core::hash::SipHasher13 as DefaultHasher; | |
| 8 | use core::hash::{Hash, Hasher}; | |
| 6 | use core::hash::{Hash, Hasher, SipHasher13 as DefaultHasher}; | |
| 9 | 7 | |
| 10 | 8 | #[test] |
| 11 | 9 | fn c_to_rust() { |
| ... | ... | @@ -57,11 +55,9 @@ fn equal_hash() { |
| 57 | 55 | let ptr = data.as_ptr() as *const c_char; |
| 58 | 56 | let cstr: &'static CStr = unsafe { CStr::from_ptr(ptr) }; |
| 59 | 57 | |
| 60 | #[allow(deprecated)] | |
| 61 | 58 | let mut s = DefaultHasher::new(); |
| 62 | 59 | cstr.hash(&mut s); |
| 63 | 60 | let cstr_hash = s.finish(); |
| 64 | #[allow(deprecated)] | |
| 65 | 61 | let mut s = DefaultHasher::new(); |
| 66 | 62 | CString::new(&data[..data.len() - 1]).unwrap().hash(&mut s); |
| 67 | 63 | let cstring_hash = s.finish(); |
library/backtrace+1-1| ... | ... | @@ -1 +1 @@ |
| 1 | Subproject commit b65ab935fb2e0d59dba8966ffca09c9cc5a5f57c | |
| 1 | Subproject commit 28ec93b503bf0410745bc3d571bf3dc1caac3019 |
library/core/src/fmt/float.rs+7-1| ... | ... | @@ -13,8 +13,14 @@ macro_rules! impl_general_format { |
| 13 | 13 | ($($t:ident)*) => { |
| 14 | 14 | $(impl GeneralFormat for $t { |
| 15 | 15 | fn already_rounded_value_should_use_exponential(&self) -> bool { |
| 16 | // `max_abs` rounds to infinity for `f16`. This is fine to save us from a more | |
| 17 | // complex macro, it just means a positive-exponent `f16` will never print as | |
| 18 | // scientific notation by default (reasonably, the max is 65504.0). | |
| 19 | #[allow(overflowing_literals)] | |
| 20 | let max_abs = 1e+16; | |
| 21 | ||
| 16 | 22 | let abs = $t::abs(*self); |
| 17 | (abs != 0.0 && abs < 1e-4) || abs >= 1e+16 | |
| 23 | (abs != 0.0 && abs < 1e-4) || abs >= max_abs | |
| 18 | 24 | } |
| 19 | 25 | })* |
| 20 | 26 | } |
library/core/src/hash/mod.rs-1| ... | ... | @@ -87,7 +87,6 @@ |
| 87 | 87 | #[allow(deprecated)] |
| 88 | 88 | pub use self::sip::SipHasher; |
| 89 | 89 | #[unstable(feature = "hashmap_internals", issue = "none")] |
| 90 | #[allow(deprecated)] | |
| 91 | 90 | #[doc(hidden)] |
| 92 | 91 | pub use self::sip::SipHasher13; |
| 93 | 92 | use crate::{fmt, marker}; |
library/core/src/hash/sip.rs+6-7| ... | ... | @@ -11,8 +11,11 @@ use crate::{cmp, ptr}; |
| 11 | 11 | /// (e.g., `collections::HashMap` uses it by default). |
| 12 | 12 | /// |
| 13 | 13 | /// See: <https://github.com/veorq/SipHash> |
| 14 | #[unstable(feature = "hashmap_internals", issue = "none")] | |
| 15 | #[deprecated(since = "1.13.0", note = "use `std::hash::DefaultHasher` instead")] | |
| 14 | #[unstable( | |
| 15 | feature = "hashmap_internals", | |
| 16 | issue = "none", | |
| 17 | reason = "use `std::hash::DefaultHasher` instead" | |
| 18 | )] | |
| 16 | 19 | #[derive(Debug, Clone, Default)] |
| 17 | 20 | #[doc(hidden)] |
| 18 | 21 | pub struct SipHasher13 { |
| ... | ... | @@ -23,7 +26,6 @@ pub struct SipHasher13 { |
| 23 | 26 | /// |
| 24 | 27 | /// See: <https://github.com/veorq/SipHash> |
| 25 | 28 | #[unstable(feature = "hashmap_internals", issue = "none")] |
| 26 | #[deprecated(since = "1.13.0", note = "use `std::hash::DefaultHasher` instead")] | |
| 27 | 29 | #[derive(Debug, Clone, Default)] |
| 28 | 30 | struct SipHasher24 { |
| 29 | 31 | hasher: Hasher<Sip24Rounds>, |
| ... | ... | @@ -137,8 +139,7 @@ unsafe fn u8to64_le(buf: &[u8], start: usize, len: usize) -> u64 { |
| 137 | 139 | out |= (unsafe { *buf.get_unchecked(start + i) } as u64) << (i * 8); |
| 138 | 140 | i += 1; |
| 139 | 141 | } |
| 140 | //FIXME(fee1-dead): use debug_assert_eq | |
| 141 | debug_assert!(i == len); | |
| 142 | debug_assert_eq!(i, len); | |
| 142 | 143 | out |
| 143 | 144 | } |
| 144 | 145 | |
| ... | ... | @@ -167,7 +168,6 @@ impl SipHasher13 { |
| 167 | 168 | #[inline] |
| 168 | 169 | #[unstable(feature = "hashmap_internals", issue = "none")] |
| 169 | 170 | #[rustc_const_unstable(feature = "const_default", issue = "143894")] |
| 170 | #[deprecated(since = "1.13.0", note = "use `std::hash::DefaultHasher` instead")] | |
| 171 | 171 | pub const fn new() -> SipHasher13 { |
| 172 | 172 | SipHasher13::new_with_keys(0, 0) |
| 173 | 173 | } |
| ... | ... | @@ -176,7 +176,6 @@ impl SipHasher13 { |
| 176 | 176 | #[inline] |
| 177 | 177 | #[unstable(feature = "hashmap_internals", issue = "none")] |
| 178 | 178 | #[rustc_const_unstable(feature = "const_default", issue = "143894")] |
| 179 | #[deprecated(since = "1.13.0", note = "use `std::hash::DefaultHasher` instead")] | |
| 180 | 179 | pub const fn new_with_keys(key0: u64, key1: u64) -> SipHasher13 { |
| 181 | 180 | SipHasher13 { hasher: Hasher::new_with_keys(key0, key1) } |
| 182 | 181 | } |
library/core/src/num/int_bits.rs+10-10| ... | ... | @@ -1,12 +1,12 @@ |
| 1 | //! Implementations for `uN::gather_bits` and `uN::scatter_bits` | |
| 1 | //! Implementations for `uN::extract_bits` and `uN::deposit_bits` | |
| 2 | 2 | //! |
| 3 | 3 | //! For the purposes of this implementation, the operations can be thought |
| 4 | 4 | //! of as operating on the input bits as a list, starting from the least |
| 5 | //! significant bit. Gathering is like `Vec::retain` that deletes bits | |
| 6 | //! where the mask has a zero. Scattering is like doing the inverse by | |
| 7 | //! inserting the zeros that gathering would delete. | |
| 5 | //! significant bit. Extraction is like `Vec::retain` that deletes bits | |
| 6 | //! where the mask has a zero. Deposition is like doing the inverse by | |
| 7 | //! inserting the zeros that extraction would delete. | |
| 8 | 8 | //! |
| 9 | //! Key observation: Each bit that is gathered/scattered needs to be | |
| 9 | //! Key observation: Each extracted or deposited bit needs to be | |
| 10 | 10 | //! shifted by the count of zeros up to the corresponding mask bit. |
| 11 | 11 | //! |
| 12 | 12 | //! With that in mind, the general idea is to decompose the operation into |
| ... | ... | @@ -14,7 +14,7 @@ |
| 14 | 14 | //! of the bits by `n = 1 << stage`. The masks for each stage are computed |
| 15 | 15 | //! via prefix counts of zeros in the mask. |
| 16 | 16 | //! |
| 17 | //! # Gathering | |
| 17 | //! # Extraction | |
| 18 | 18 | //! |
| 19 | 19 | //! Consider the input as a sequence of runs of data (bitstrings A,B,C,...), |
| 20 | 20 | //! split by fixed-width groups of zeros ('.'), initially at width `n = 1`. |
| ... | ... | @@ -36,9 +36,9 @@ |
| 36 | 36 | //! ........abbbcccccddeghh |
| 37 | 37 | //! ``` |
| 38 | 38 | //! |
| 39 | //! # Scattering | |
| 39 | //! # Deposition | |
| 40 | 40 | //! |
| 41 | //! For `scatter_bits`, the stages are reversed. We start with a single run of | |
| 41 | //! For `deposit_bits`, the stages are reversed. We start with a single run of | |
| 42 | 42 | //! data in the low bits. Each stage then splits each run of data in two by |
| 43 | 43 | //! shifting part of it left by `n`, which is halved each stage. |
| 44 | 44 | //! ```text |
| ... | ... | @@ -100,7 +100,7 @@ macro_rules! uint_impl { |
| 100 | 100 | } |
| 101 | 101 | |
| 102 | 102 | #[inline(always)] |
| 103 | pub(in super::super) const fn gather_impl(mut x: $U, sparse: $U) -> $U { | |
| 103 | pub(in super::super) const fn extract_impl(mut x: $U, sparse: $U) -> $U { | |
| 104 | 104 | let masks = prepare(sparse); |
| 105 | 105 | x &= sparse; |
| 106 | 106 | let mut stage = 0; |
| ... | ... | @@ -131,7 +131,7 @@ macro_rules! uint_impl { |
| 131 | 131 | x |
| 132 | 132 | } |
| 133 | 133 | #[inline(always)] |
| 134 | pub(in super::super) const fn scatter_impl(mut x: $U, sparse: $U) -> $U { | |
| 134 | pub(in super::super) const fn deposit_impl(mut x: $U, sparse: $U) -> $U { | |
| 135 | 135 | let masks = prepare(sparse); |
| 136 | 136 | let mut stage = STAGES; |
| 137 | 137 | while stage > 0 { |
library/core/src/num/uint_macros.rs+8-8| ... | ... | @@ -507,15 +507,15 @@ macro_rules! uint_impl { |
| 507 | 507 | /// #![feature(uint_gather_scatter_bits)] |
| 508 | 508 | #[doc = concat!("let n: ", stringify!($SelfT), " = 0b1011_1100;")] |
| 509 | 509 | /// |
| 510 | /// assert_eq!(n.gather_bits(0b0010_0100), 0b0000_0011); | |
| 511 | /// assert_eq!(n.gather_bits(0xF0), 0b0000_1011); | |
| 510 | /// assert_eq!(n.extract_bits(0b0010_0100), 0b0000_0011); | |
| 511 | /// assert_eq!(n.extract_bits(0xF0), 0b0000_1011); | |
| 512 | 512 | /// ``` |
| 513 | 513 | #[unstable(feature = "uint_gather_scatter_bits", issue = "149069")] |
| 514 | 514 | #[must_use = "this returns the result of the operation, \ |
| 515 | 515 | without modifying the original"] |
| 516 | 516 | #[inline] |
| 517 | pub const fn gather_bits(self, mask: Self) -> Self { | |
| 518 | crate::num::int_bits::$ActualT::gather_impl(self as $ActualT, mask as $ActualT) as $SelfT | |
| 517 | pub const fn extract_bits(self, mask: Self) -> Self { | |
| 518 | crate::num::int_bits::$ActualT::extract_impl(self as $ActualT, mask as $ActualT) as $SelfT | |
| 519 | 519 | } |
| 520 | 520 | |
| 521 | 521 | /// Returns an integer with the least significant bits of `self` |
| ... | ... | @@ -524,15 +524,15 @@ macro_rules! uint_impl { |
| 524 | 524 | /// #![feature(uint_gather_scatter_bits)] |
| 525 | 525 | #[doc = concat!("let n: ", stringify!($SelfT), " = 0b1010_1101;")] |
| 526 | 526 | /// |
| 527 | /// assert_eq!(n.scatter_bits(0b0101_0101), 0b0101_0001); | |
| 528 | /// assert_eq!(n.scatter_bits(0xF0), 0b1101_0000); | |
| 527 | /// assert_eq!(n.deposit_bits(0b0101_0101), 0b0101_0001); | |
| 528 | /// assert_eq!(n.deposit_bits(0xF0), 0b1101_0000); | |
| 529 | 529 | /// ``` |
| 530 | 530 | #[unstable(feature = "uint_gather_scatter_bits", issue = "149069")] |
| 531 | 531 | #[must_use = "this returns the result of the operation, \ |
| 532 | 532 | without modifying the original"] |
| 533 | 533 | #[inline] |
| 534 | pub const fn scatter_bits(self, mask: Self) -> Self { | |
| 535 | crate::num::int_bits::$ActualT::scatter_impl(self as $ActualT, mask as $ActualT) as $SelfT | |
| 534 | pub const fn deposit_bits(self, mask: Self) -> Self { | |
| 535 | crate::num::int_bits::$ActualT::deposit_impl(self as $ActualT, mask as $ActualT) as $SelfT | |
| 536 | 536 | } |
| 537 | 537 | |
| 538 | 538 | /// Reverses the order of bits in the integer. The least significant bit becomes the most significant bit, |
library/core/src/os/mod.rs+1| ... | ... | @@ -1,6 +1,7 @@ |
| 1 | 1 | //! OS-specific functionality. |
| 2 | 2 | |
| 3 | 3 | #![unstable(feature = "darwin_objc", issue = "145496")] |
| 4 | #![allow(missing_docs)] | |
| 4 | 5 | |
| 5 | 6 | #[cfg(all( |
| 6 | 7 | doc, |
library/core/src/result.rs+2-2| ... | ... | @@ -1354,7 +1354,7 @@ impl<T, E> Result<T, E> { |
| 1354 | 1354 | /// let s: String = only_good_news().into_ok(); |
| 1355 | 1355 | /// println!("{s}"); |
| 1356 | 1356 | /// ``` |
| 1357 | #[unstable(feature = "unwrap_infallible", reason = "newly added", issue = "61695")] | |
| 1357 | #[unstable(feature = "unwrap_infallible", issue = "61695")] | |
| 1358 | 1358 | #[inline] |
| 1359 | 1359 | #[rustc_allow_const_fn_unstable(const_precise_live_drops)] |
| 1360 | 1360 | #[rustc_const_unstable(feature = "const_convert", issue = "143773")] |
| ... | ... | @@ -1391,7 +1391,7 @@ impl<T, E> Result<T, E> { |
| 1391 | 1391 | /// let error: String = only_bad_news().into_err(); |
| 1392 | 1392 | /// println!("{error}"); |
| 1393 | 1393 | /// ``` |
| 1394 | #[unstable(feature = "unwrap_infallible", reason = "newly added", issue = "61695")] | |
| 1394 | #[unstable(feature = "unwrap_infallible", issue = "61695")] | |
| 1395 | 1395 | #[inline] |
| 1396 | 1396 | #[rustc_allow_const_fn_unstable(const_precise_live_drops)] |
| 1397 | 1397 | #[rustc_const_unstable(feature = "const_convert", issue = "143773")] |
library/core/src/slice/mod.rs+2-2| ... | ... | @@ -2520,7 +2520,7 @@ impl<T> [T] { |
| 2520 | 2520 | /// ))); |
| 2521 | 2521 | /// assert_eq!(s.split_once(|&x| x == 0), None); |
| 2522 | 2522 | /// ``` |
| 2523 | #[unstable(feature = "slice_split_once", reason = "newly added", issue = "112811")] | |
| 2523 | #[unstable(feature = "slice_split_once", issue = "112811")] | |
| 2524 | 2524 | #[inline] |
| 2525 | 2525 | pub fn split_once<F>(&self, pred: F) -> Option<(&[T], &[T])> |
| 2526 | 2526 | where |
| ... | ... | @@ -2548,7 +2548,7 @@ impl<T> [T] { |
| 2548 | 2548 | /// ))); |
| 2549 | 2549 | /// assert_eq!(s.rsplit_once(|&x| x == 0), None); |
| 2550 | 2550 | /// ``` |
| 2551 | #[unstable(feature = "slice_split_once", reason = "newly added", issue = "112811")] | |
| 2551 | #[unstable(feature = "slice_split_once", issue = "112811")] | |
| 2552 | 2552 | #[inline] |
| 2553 | 2553 | pub fn rsplit_once<F>(&self, pred: F) -> Option<(&[T], &[T])> |
| 2554 | 2554 | where |
library/coretests/benches/num/int_bits/mod.rs+2-2| ... | ... | @@ -50,8 +50,8 @@ macro_rules! bench_mask_kind { |
| 50 | 50 | ($mask_kind:ident, $mask:expr) => { |
| 51 | 51 | mod $mask_kind { |
| 52 | 52 | use super::{Data, ITERATIONS, U}; |
| 53 | bench_template!(U::gather_bits, gather_bits, $mask); | |
| 54 | bench_template!(U::scatter_bits, scatter_bits, $mask); | |
| 53 | bench_template!(U::extract_bits, extract_bits, $mask); | |
| 54 | bench_template!(U::deposit_bits, deposit_bits, $mask); | |
| 55 | 55 | } |
| 56 | 56 | }; |
| 57 | 57 | } |
library/coretests/tests/num/uint_macros.rs+54-54| ... | ... | @@ -127,50 +127,50 @@ macro_rules! uint_module { |
| 127 | 127 | assert_eq_const_safe!($T: _1.swap_bytes(), _1); |
| 128 | 128 | } |
| 129 | 129 | |
| 130 | fn test_gather_bits() { | |
| 131 | assert_eq_const_safe!($T: $T::gather_bits(0b1010_0101, 0b0000_0011), 0b_0001); | |
| 132 | assert_eq_const_safe!($T: $T::gather_bits(0b1010_0101, 0b0000_0110), 0b_0010); | |
| 133 | assert_eq_const_safe!($T: $T::gather_bits(0b1010_0101, 0b0000_1100), 0b_0001); | |
| 134 | assert_eq_const_safe!($T: $T::gather_bits(0b1010_0101, 0b0001_1000), 0b_0000); | |
| 135 | assert_eq_const_safe!($T: $T::gather_bits(0b1010_0101, 0b0011_0000), 0b_0010); | |
| 136 | assert_eq_const_safe!($T: $T::gather_bits(0b1010_0101, 0b0110_0000), 0b_0001); | |
| 137 | assert_eq_const_safe!($T: $T::gather_bits(0b1010_0101, 0b1100_0000), 0b_0010); | |
| 138 | ||
| 139 | assert_eq_const_safe!($T: A.gather_bits(_0), 0); | |
| 140 | assert_eq_const_safe!($T: B.gather_bits(_0), 0); | |
| 141 | assert_eq_const_safe!($T: C.gather_bits(_0), 0); | |
| 142 | assert_eq_const_safe!($T: _0.gather_bits(A), 0); | |
| 143 | assert_eq_const_safe!($T: _0.gather_bits(B), 0); | |
| 144 | assert_eq_const_safe!($T: _0.gather_bits(C), 0); | |
| 145 | ||
| 146 | assert_eq_const_safe!($T: A.gather_bits(_1), A); | |
| 147 | assert_eq_const_safe!($T: B.gather_bits(_1), B); | |
| 148 | assert_eq_const_safe!($T: C.gather_bits(_1), C); | |
| 149 | assert_eq_const_safe!($T: _1.gather_bits(0b0010_0001), 0b0000_0011); | |
| 150 | assert_eq_const_safe!($T: _1.gather_bits(0b0010_1100), 0b0000_0111); | |
| 151 | assert_eq_const_safe!($T: _1.gather_bits(0b0111_1001), 0b0001_1111); | |
| 152 | } | |
| 153 | ||
| 154 | fn test_scatter_bits() { | |
| 155 | assert_eq_const_safe!($T: $T::scatter_bits(0b1111, 0b1001_0110), 0b1001_0110); | |
| 156 | assert_eq_const_safe!($T: $T::scatter_bits(0b0001, 0b1001_0110), 0b0000_0010); | |
| 157 | assert_eq_const_safe!($T: $T::scatter_bits(0b0010, 0b1001_0110), 0b0000_0100); | |
| 158 | assert_eq_const_safe!($T: $T::scatter_bits(0b0100, 0b1001_0110), 0b0001_0000); | |
| 159 | assert_eq_const_safe!($T: $T::scatter_bits(0b1000, 0b1001_0110), 0b1000_0000); | |
| 160 | ||
| 161 | assert_eq_const_safe!($T: A.scatter_bits(_0), 0); | |
| 162 | assert_eq_const_safe!($T: B.scatter_bits(_0), 0); | |
| 163 | assert_eq_const_safe!($T: C.scatter_bits(_0), 0); | |
| 164 | assert_eq_const_safe!($T: _0.scatter_bits(A), 0); | |
| 165 | assert_eq_const_safe!($T: _0.scatter_bits(B), 0); | |
| 166 | assert_eq_const_safe!($T: _0.scatter_bits(C), 0); | |
| 167 | ||
| 168 | assert_eq_const_safe!($T: A.scatter_bits(_1), A); | |
| 169 | assert_eq_const_safe!($T: B.scatter_bits(_1), B); | |
| 170 | assert_eq_const_safe!($T: C.scatter_bits(_1), C); | |
| 171 | assert_eq_const_safe!($T: _1.scatter_bits(A), A); | |
| 172 | assert_eq_const_safe!($T: _1.scatter_bits(B), B); | |
| 173 | assert_eq_const_safe!($T: _1.scatter_bits(C), C); | |
| 130 | fn test_extract_bits() { | |
| 131 | assert_eq_const_safe!($T: $T::extract_bits(0b1010_0101, 0b0000_0011), 0b_0001); | |
| 132 | assert_eq_const_safe!($T: $T::extract_bits(0b1010_0101, 0b0000_0110), 0b_0010); | |
| 133 | assert_eq_const_safe!($T: $T::extract_bits(0b1010_0101, 0b0000_1100), 0b_0001); | |
| 134 | assert_eq_const_safe!($T: $T::extract_bits(0b1010_0101, 0b0001_1000), 0b_0000); | |
| 135 | assert_eq_const_safe!($T: $T::extract_bits(0b1010_0101, 0b0011_0000), 0b_0010); | |
| 136 | assert_eq_const_safe!($T: $T::extract_bits(0b1010_0101, 0b0110_0000), 0b_0001); | |
| 137 | assert_eq_const_safe!($T: $T::extract_bits(0b1010_0101, 0b1100_0000), 0b_0010); | |
| 138 | ||
| 139 | assert_eq_const_safe!($T: A.extract_bits(_0), 0); | |
| 140 | assert_eq_const_safe!($T: B.extract_bits(_0), 0); | |
| 141 | assert_eq_const_safe!($T: C.extract_bits(_0), 0); | |
| 142 | assert_eq_const_safe!($T: _0.extract_bits(A), 0); | |
| 143 | assert_eq_const_safe!($T: _0.extract_bits(B), 0); | |
| 144 | assert_eq_const_safe!($T: _0.extract_bits(C), 0); | |
| 145 | ||
| 146 | assert_eq_const_safe!($T: A.extract_bits(_1), A); | |
| 147 | assert_eq_const_safe!($T: B.extract_bits(_1), B); | |
| 148 | assert_eq_const_safe!($T: C.extract_bits(_1), C); | |
| 149 | assert_eq_const_safe!($T: _1.extract_bits(0b0010_0001), 0b0000_0011); | |
| 150 | assert_eq_const_safe!($T: _1.extract_bits(0b0010_1100), 0b0000_0111); | |
| 151 | assert_eq_const_safe!($T: _1.extract_bits(0b0111_1001), 0b0001_1111); | |
| 152 | } | |
| 153 | ||
| 154 | fn test_deposit_bits() { | |
| 155 | assert_eq_const_safe!($T: $T::deposit_bits(0b1111, 0b1001_0110), 0b1001_0110); | |
| 156 | assert_eq_const_safe!($T: $T::deposit_bits(0b0001, 0b1001_0110), 0b0000_0010); | |
| 157 | assert_eq_const_safe!($T: $T::deposit_bits(0b0010, 0b1001_0110), 0b0000_0100); | |
| 158 | assert_eq_const_safe!($T: $T::deposit_bits(0b0100, 0b1001_0110), 0b0001_0000); | |
| 159 | assert_eq_const_safe!($T: $T::deposit_bits(0b1000, 0b1001_0110), 0b1000_0000); | |
| 160 | ||
| 161 | assert_eq_const_safe!($T: A.deposit_bits(_0), 0); | |
| 162 | assert_eq_const_safe!($T: B.deposit_bits(_0), 0); | |
| 163 | assert_eq_const_safe!($T: C.deposit_bits(_0), 0); | |
| 164 | assert_eq_const_safe!($T: _0.deposit_bits(A), 0); | |
| 165 | assert_eq_const_safe!($T: _0.deposit_bits(B), 0); | |
| 166 | assert_eq_const_safe!($T: _0.deposit_bits(C), 0); | |
| 167 | ||
| 168 | assert_eq_const_safe!($T: A.deposit_bits(_1), A); | |
| 169 | assert_eq_const_safe!($T: B.deposit_bits(_1), B); | |
| 170 | assert_eq_const_safe!($T: C.deposit_bits(_1), C); | |
| 171 | assert_eq_const_safe!($T: _1.deposit_bits(A), A); | |
| 172 | assert_eq_const_safe!($T: _1.deposit_bits(B), B); | |
| 173 | assert_eq_const_safe!($T: _1.deposit_bits(C), C); | |
| 174 | 174 | } |
| 175 | 175 | |
| 176 | 176 | fn test_reverse_bits() { |
| ... | ... | @@ -389,7 +389,7 @@ macro_rules! uint_module { |
| 389 | 389 | |
| 390 | 390 | #[cfg(not(miri))] // Miri is too slow |
| 391 | 391 | #[test] |
| 392 | fn test_lots_of_gather_scatter() { | |
| 392 | fn test_lots_of_extract_deposit() { | |
| 393 | 393 | // Generate a handful of bit patterns to use as inputs |
| 394 | 394 | let xs = { |
| 395 | 395 | let mut xs = vec![]; |
| ... | ... | @@ -414,7 +414,7 @@ macro_rules! uint_module { |
| 414 | 414 | |
| 415 | 415 | for sparse in sparse_masks { |
| 416 | 416 | // Collect the set bits to sequential low bits |
| 417 | let dense = sparse.gather_bits(sparse); | |
| 417 | let dense = sparse.extract_bits(sparse); | |
| 418 | 418 | let count = sparse.count_ones(); |
| 419 | 419 | assert_eq!(count, dense.count_ones()); |
| 420 | 420 | assert_eq!(count, dense.trailing_ones()); |
| ... | ... | @@ -424,27 +424,27 @@ macro_rules! uint_module { |
| 424 | 424 | let mut bit = 1 as $T; |
| 425 | 425 | for _ in 0..count { |
| 426 | 426 | let lowest_one = t.isolate_lowest_one(); |
| 427 | assert_eq!(lowest_one, bit.scatter_bits(sparse)); | |
| 428 | assert_eq!(bit, lowest_one.gather_bits(sparse)); | |
| 427 | assert_eq!(lowest_one, bit.deposit_bits(sparse)); | |
| 428 | assert_eq!(bit, lowest_one.extract_bits(sparse)); | |
| 429 | 429 | t ^= lowest_one; |
| 430 | 430 | bit <<= 1; |
| 431 | 431 | } |
| 432 | 432 | // Other bits are ignored |
| 433 | assert_eq!(0, bit.wrapping_neg().scatter_bits(sparse)); | |
| 434 | assert_eq!(0, (!sparse).gather_bits(sparse)); | |
| 433 | assert_eq!(0, bit.wrapping_neg().deposit_bits(sparse)); | |
| 434 | assert_eq!(0, (!sparse).extract_bits(sparse)); | |
| 435 | 435 | |
| 436 | 436 | for &x in &xs { |
| 437 | 437 | // Gather bits from `x & sparse` to `dense` |
| 438 | let dx = x.gather_bits(sparse); | |
| 438 | let dx = x.extract_bits(sparse); | |
| 439 | 439 | assert_eq!(dx & !dense, 0); |
| 440 | 440 | |
| 441 | 441 | // Scatter bits from `x & dense` to `sparse` |
| 442 | let sx = x.scatter_bits(sparse); | |
| 442 | let sx = x.deposit_bits(sparse); | |
| 443 | 443 | assert_eq!(sx & !sparse, 0); |
| 444 | 444 | |
| 445 | 445 | // The other recovers the input (within the mask) |
| 446 | assert_eq!(dx.scatter_bits(sparse), x & sparse); | |
| 447 | assert_eq!(sx.gather_bits(sparse), x & dense); | |
| 446 | assert_eq!(dx.deposit_bits(sparse), x & sparse); | |
| 447 | assert_eq!(sx.extract_bits(sparse), x & dense); | |
| 448 | 448 | } |
| 449 | 449 | } |
| 450 | 450 | } |
library/std/Cargo.toml+3-3| ... | ... | @@ -55,8 +55,8 @@ object = { version = "0.37.1", default-features = false, optional = true, featur |
| 55 | 55 | 'archive', |
| 56 | 56 | ] } |
| 57 | 57 | |
| 58 | [target.'cfg(any(windows, target_os = "cygwin"))'.dependencies.windows-targets] | |
| 59 | path = "../windows_targets" | |
| 58 | [target.'cfg(any(windows, target_os = "cygwin"))'.dependencies.windows-link] | |
| 59 | path = "../windows_link" | |
| 60 | 60 | |
| 61 | 61 | [dev-dependencies] |
| 62 | 62 | rand = { version = "0.9.0", default-features = false, features = ["alloc"] } |
| ... | ... | @@ -130,7 +130,7 @@ llvm_enzyme = ["core/llvm_enzyme"] |
| 130 | 130 | |
| 131 | 131 | # Enable using raw-dylib for Windows imports. |
| 132 | 132 | # This will eventually be the default. |
| 133 | windows_raw_dylib = ["windows-targets/windows_raw_dylib"] | |
| 133 | windows_raw_dylib = ["windows-link/windows_raw_dylib"] | |
| 134 | 134 | |
| 135 | 135 | [package.metadata.fortanix-sgx] |
| 136 | 136 | # Maximum possible number of threads when testing |
library/std/src/hash/random.rs-4| ... | ... | @@ -7,7 +7,6 @@ |
| 7 | 7 | //! |
| 8 | 8 | //! [`collections`]: crate::collections |
| 9 | 9 | |
| 10 | #[allow(deprecated)] | |
| 11 | 10 | use super::{BuildHasher, Hasher, SipHasher13}; |
| 12 | 11 | use crate::cell::Cell; |
| 13 | 12 | use crate::fmt; |
| ... | ... | @@ -81,7 +80,6 @@ impl RandomState { |
| 81 | 80 | impl BuildHasher for RandomState { |
| 82 | 81 | type Hasher = DefaultHasher; |
| 83 | 82 | #[inline] |
| 84 | #[allow(deprecated)] | |
| 85 | 83 | fn build_hasher(&self) -> DefaultHasher { |
| 86 | 84 | DefaultHasher(SipHasher13::new_with_keys(self.k0, self.k1)) |
| 87 | 85 | } |
| ... | ... | @@ -91,7 +89,6 @@ impl BuildHasher for RandomState { |
| 91 | 89 | /// |
| 92 | 90 | /// The internal algorithm is not specified, and so it and its hashes should |
| 93 | 91 | /// not be relied upon over releases. |
| 94 | #[allow(deprecated)] | |
| 95 | 92 | #[derive(Clone, Debug)] |
| 96 | 93 | #[stable(feature = "hashmap_build_hasher", since = "1.7.0")] |
| 97 | 94 | pub struct DefaultHasher(SipHasher13); |
| ... | ... | @@ -104,7 +101,6 @@ impl DefaultHasher { |
| 104 | 101 | /// instances created through `new` or `default`. |
| 105 | 102 | #[stable(feature = "hashmap_default_hasher", since = "1.13.0")] |
| 106 | 103 | #[inline] |
| 107 | #[allow(deprecated)] | |
| 108 | 104 | #[rustc_const_unstable(feature = "const_default", issue = "143894")] |
| 109 | 105 | #[must_use] |
| 110 | 106 | pub const fn new() -> DefaultHasher { |
library/std/src/sys/alloc/windows.rs+4-4| ... | ... | @@ -20,7 +20,7 @@ const HEAP_ZERO_MEMORY: u32 = 0x00000008; |
| 20 | 20 | // always return the same handle, which remains valid for the entire lifetime of the process. |
| 21 | 21 | // |
| 22 | 22 | // See https://docs.microsoft.com/windows/win32/api/heapapi/nf-heapapi-getprocessheap |
| 23 | windows_targets::link!("kernel32.dll" "system" fn GetProcessHeap() -> c::HANDLE); | |
| 23 | windows_link::link!("kernel32.dll" "system" fn GetProcessHeap() -> c::HANDLE); | |
| 24 | 24 | |
| 25 | 25 | // Allocate a block of `dwBytes` bytes of memory from a given heap `hHeap`. |
| 26 | 26 | // The allocated memory may be uninitialized, or zeroed if `dwFlags` is |
| ... | ... | @@ -36,7 +36,7 @@ windows_targets::link!("kernel32.dll" "system" fn GetProcessHeap() -> c::HANDLE) |
| 36 | 36 | // Note that `dwBytes` is allowed to be zero, contrary to some other allocators. |
| 37 | 37 | // |
| 38 | 38 | // See https://docs.microsoft.com/windows/win32/api/heapapi/nf-heapapi-heapalloc |
| 39 | windows_targets::link!("kernel32.dll" "system" fn HeapAlloc(hheap: c::HANDLE, dwflags: u32, dwbytes: usize) -> *mut c_void); | |
| 39 | windows_link::link!("kernel32.dll" "system" fn HeapAlloc(hheap: c::HANDLE, dwflags: u32, dwbytes: usize) -> *mut c_void); | |
| 40 | 40 | |
| 41 | 41 | // Reallocate a block of memory behind a given pointer `lpMem` from a given heap `hHeap`, |
| 42 | 42 | // to a block of at least `dwBytes` bytes, either shrinking the block in place, |
| ... | ... | @@ -57,7 +57,7 @@ windows_targets::link!("kernel32.dll" "system" fn HeapAlloc(hheap: c::HANDLE, dw |
| 57 | 57 | // Note that `dwBytes` is allowed to be zero, contrary to some other allocators. |
| 58 | 58 | // |
| 59 | 59 | // See https://docs.microsoft.com/windows/win32/api/heapapi/nf-heapapi-heaprealloc |
| 60 | windows_targets::link!("kernel32.dll" "system" fn HeapReAlloc( | |
| 60 | windows_link::link!("kernel32.dll" "system" fn HeapReAlloc( | |
| 61 | 61 | hheap: c::HANDLE, |
| 62 | 62 | dwflags : u32, |
| 63 | 63 | lpmem: *const c_void, |
| ... | ... | @@ -78,7 +78,7 @@ windows_targets::link!("kernel32.dll" "system" fn HeapReAlloc( |
| 78 | 78 | // Note that `lpMem` is allowed to be null, which will not cause the operation to fail. |
| 79 | 79 | // |
| 80 | 80 | // See https://docs.microsoft.com/windows/win32/api/heapapi/nf-heapapi-heapfree |
| 81 | windows_targets::link!("kernel32.dll" "system" fn HeapFree(hheap: c::HANDLE, dwflags: u32, lpmem: *const c_void) -> c::BOOL); | |
| 81 | windows_link::link!("kernel32.dll" "system" fn HeapFree(hheap: c::HANDLE, dwflags: u32, lpmem: *const c_void) -> c::BOOL); | |
| 82 | 82 | |
| 83 | 83 | fn get_process_heap() -> *mut c_void { |
| 84 | 84 | // SAFETY: GetProcessHeap simply returns a valid handle or NULL so is always safe to call. |
library/std/src/sys/pal/windows/c.rs+7-7| ... | ... | @@ -109,7 +109,7 @@ unsafe extern "system" { |
| 109 | 109 | pub fn ProcessPrng(pbdata: *mut u8, cbdata: usize) -> BOOL; |
| 110 | 110 | } |
| 111 | 111 | |
| 112 | windows_targets::link!("ntdll.dll" "system" fn NtCreateNamedPipeFile( | |
| 112 | windows_link::link!("ntdll.dll" "system" fn NtCreateNamedPipeFile( | |
| 113 | 113 | filehandle: *mut HANDLE, |
| 114 | 114 | desiredaccess: FILE_ACCESS_RIGHTS, |
| 115 | 115 | objectattributes: *const OBJECT_ATTRIBUTES, |
| ... | ... | @@ -229,15 +229,15 @@ compat_fn_with_fallback! { |
| 229 | 229 | |
| 230 | 230 | cfg_select! { |
| 231 | 231 | target_vendor = "uwp" => { |
| 232 | windows_targets::link_raw_dylib!("ntdll.dll" "system" fn NtCreateFile(filehandle : *mut HANDLE, desiredaccess : FILE_ACCESS_RIGHTS, objectattributes : *const OBJECT_ATTRIBUTES, iostatusblock : *mut IO_STATUS_BLOCK, allocationsize : *const i64, fileattributes : FILE_FLAGS_AND_ATTRIBUTES, shareaccess : FILE_SHARE_MODE, createdisposition : NTCREATEFILE_CREATE_DISPOSITION, createoptions : NTCREATEFILE_CREATE_OPTIONS, eabuffer : *const core::ffi::c_void, ealength : u32) -> NTSTATUS); | |
| 233 | windows_targets::link_raw_dylib!("ntdll.dll" "system" fn NtOpenFile(filehandle : *mut HANDLE, desiredaccess : u32, objectattributes : *const OBJECT_ATTRIBUTES, iostatusblock : *mut IO_STATUS_BLOCK, shareaccess : u32, openoptions : u32) -> NTSTATUS); | |
| 234 | windows_targets::link_raw_dylib!("ntdll.dll" "system" fn NtReadFile(filehandle : HANDLE, event : HANDLE, apcroutine : PIO_APC_ROUTINE, apccontext : *const core::ffi::c_void, iostatusblock : *mut IO_STATUS_BLOCK, buffer : *mut core::ffi::c_void, length : u32, byteoffset : *const i64, key : *const u32) -> NTSTATUS); | |
| 235 | windows_targets::link_raw_dylib!("ntdll.dll" "system" fn NtWriteFile(filehandle : HANDLE, event : HANDLE, apcroutine : PIO_APC_ROUTINE, apccontext : *const core::ffi::c_void, iostatusblock : *mut IO_STATUS_BLOCK, buffer : *const core::ffi::c_void, length : u32, byteoffset : *const i64, key : *const u32) -> NTSTATUS); | |
| 236 | windows_targets::link_raw_dylib!("ntdll.dll" "system" fn RtlNtStatusToDosError(status : NTSTATUS) -> u32); | |
| 232 | windows_link::link_raw_dylib!("ntdll.dll" "system" fn NtCreateFile(filehandle : *mut HANDLE, desiredaccess : FILE_ACCESS_RIGHTS, objectattributes : *const OBJECT_ATTRIBUTES, iostatusblock : *mut IO_STATUS_BLOCK, allocationsize : *const i64, fileattributes : FILE_FLAGS_AND_ATTRIBUTES, shareaccess : FILE_SHARE_MODE, createdisposition : NTCREATEFILE_CREATE_DISPOSITION, createoptions : NTCREATEFILE_CREATE_OPTIONS, eabuffer : *const core::ffi::c_void, ealength : u32) -> NTSTATUS); | |
| 233 | windows_link::link_raw_dylib!("ntdll.dll" "system" fn NtOpenFile(filehandle : *mut HANDLE, desiredaccess : u32, objectattributes : *const OBJECT_ATTRIBUTES, iostatusblock : *mut IO_STATUS_BLOCK, shareaccess : u32, openoptions : u32) -> NTSTATUS); | |
| 234 | windows_link::link_raw_dylib!("ntdll.dll" "system" fn NtReadFile(filehandle : HANDLE, event : HANDLE, apcroutine : PIO_APC_ROUTINE, apccontext : *const core::ffi::c_void, iostatusblock : *mut IO_STATUS_BLOCK, buffer : *mut core::ffi::c_void, length : u32, byteoffset : *const i64, key : *const u32) -> NTSTATUS); | |
| 235 | windows_link::link_raw_dylib!("ntdll.dll" "system" fn NtWriteFile(filehandle : HANDLE, event : HANDLE, apcroutine : PIO_APC_ROUTINE, apccontext : *const core::ffi::c_void, iostatusblock : *mut IO_STATUS_BLOCK, buffer : *const core::ffi::c_void, length : u32, byteoffset : *const i64, key : *const u32) -> NTSTATUS); | |
| 236 | windows_link::link_raw_dylib!("ntdll.dll" "system" fn RtlNtStatusToDosError(status : NTSTATUS) -> u32); | |
| 237 | 237 | } |
| 238 | 238 | _ => {} |
| 239 | 239 | } |
| 240 | 240 | |
| 241 | 241 | // Only available starting with Windows 8. |
| 242 | 242 | #[cfg(not(target_vendor = "win7"))] |
| 243 | windows_targets::link!("ws2_32.dll" "system" fn GetHostNameW(name : PWSTR, namelen : i32) -> i32); | |
| 243 | windows_link::link!("ws2_32.dll" "system" fn GetHostNameW(name : PWSTR, namelen : i32) -> i32); |
library/std/src/sys/pal/windows/c/bindings.txt+1-1| ... | ... | @@ -2,7 +2,7 @@ |
| 2 | 2 | --flat |
| 3 | 3 | --sys |
| 4 | 4 | --no-deps |
| 5 | --link windows_targets | |
| 5 | --link windows_link | |
| 6 | 6 | --filter |
| 7 | 7 | !INVALID_HANDLE_VALUE |
| 8 | 8 | ABOVE_NORMAL_PRIORITY_CLASS |
library/std/src/sys/pal/windows/c/windows_sys.rs+141-141| ... | ... | @@ -1,147 +1,147 @@ |
| 1 | // Bindings generated by `windows-bindgen` 0.61.1 | |
| 1 | // Bindings generated by `windows-bindgen` 0.66.0 | |
| 2 | 2 | |
| 3 | 3 | #![allow(non_snake_case, non_upper_case_globals, non_camel_case_types, dead_code, clippy::all)] |
| 4 | 4 | |
| 5 | windows_targets::link!("kernel32.dll" "system" fn AcquireSRWLockExclusive(srwlock : *mut SRWLOCK)); | |
| 6 | windows_targets::link!("kernel32.dll" "system" fn AcquireSRWLockShared(srwlock : *mut SRWLOCK)); | |
| 7 | windows_targets::link!("kernel32.dll" "system" fn AddVectoredExceptionHandler(first : u32, handler : PVECTORED_EXCEPTION_HANDLER) -> *mut core::ffi::c_void); | |
| 8 | windows_targets::link!("kernel32.dll" "system" fn CancelIo(hfile : HANDLE) -> BOOL); | |
| 9 | windows_targets::link!("kernel32.dll" "system" fn CloseHandle(hobject : HANDLE) -> BOOL); | |
| 10 | windows_targets::link!("kernel32.dll" "system" fn CompareStringOrdinal(lpstring1 : PCWSTR, cchcount1 : i32, lpstring2 : PCWSTR, cchcount2 : i32, bignorecase : BOOL) -> COMPARESTRING_RESULT); | |
| 11 | windows_targets::link!("kernel32.dll" "system" fn CopyFileExW(lpexistingfilename : PCWSTR, lpnewfilename : PCWSTR, lpprogressroutine : LPPROGRESS_ROUTINE, lpdata : *const core::ffi::c_void, pbcancel : *mut BOOL, dwcopyflags : COPYFILE_FLAGS) -> BOOL); | |
| 12 | windows_targets::link!("kernel32.dll" "system" fn CreateDirectoryW(lppathname : PCWSTR, lpsecurityattributes : *const SECURITY_ATTRIBUTES) -> BOOL); | |
| 13 | windows_targets::link!("kernel32.dll" "system" fn CreateEventW(lpeventattributes : *const SECURITY_ATTRIBUTES, bmanualreset : BOOL, binitialstate : BOOL, lpname : PCWSTR) -> HANDLE); | |
| 14 | windows_targets::link!("kernel32.dll" "system" fn CreateFileW(lpfilename : PCWSTR, dwdesiredaccess : u32, dwsharemode : FILE_SHARE_MODE, lpsecurityattributes : *const SECURITY_ATTRIBUTES, dwcreationdisposition : FILE_CREATION_DISPOSITION, dwflagsandattributes : FILE_FLAGS_AND_ATTRIBUTES, htemplatefile : HANDLE) -> HANDLE); | |
| 15 | windows_targets::link!("kernel32.dll" "system" fn CreateHardLinkW(lpfilename : PCWSTR, lpexistingfilename : PCWSTR, lpsecurityattributes : *const SECURITY_ATTRIBUTES) -> BOOL); | |
| 16 | windows_targets::link!("kernel32.dll" "system" fn CreateNamedPipeW(lpname : PCWSTR, dwopenmode : FILE_FLAGS_AND_ATTRIBUTES, dwpipemode : NAMED_PIPE_MODE, nmaxinstances : u32, noutbuffersize : u32, ninbuffersize : u32, ndefaulttimeout : u32, lpsecurityattributes : *const SECURITY_ATTRIBUTES) -> HANDLE); | |
| 17 | windows_targets::link!("kernel32.dll" "system" fn CreatePipe(hreadpipe : *mut HANDLE, hwritepipe : *mut HANDLE, lppipeattributes : *const SECURITY_ATTRIBUTES, nsize : u32) -> BOOL); | |
| 18 | windows_targets::link!("kernel32.dll" "system" fn CreateProcessW(lpapplicationname : PCWSTR, lpcommandline : PWSTR, lpprocessattributes : *const SECURITY_ATTRIBUTES, lpthreadattributes : *const SECURITY_ATTRIBUTES, binherithandles : BOOL, dwcreationflags : PROCESS_CREATION_FLAGS, lpenvironment : *const core::ffi::c_void, lpcurrentdirectory : PCWSTR, lpstartupinfo : *const STARTUPINFOW, lpprocessinformation : *mut PROCESS_INFORMATION) -> BOOL); | |
| 19 | windows_targets::link!("kernel32.dll" "system" fn CreateSymbolicLinkW(lpsymlinkfilename : PCWSTR, lptargetfilename : PCWSTR, dwflags : SYMBOLIC_LINK_FLAGS) -> bool); | |
| 20 | windows_targets::link!("kernel32.dll" "system" fn CreateThread(lpthreadattributes : *const SECURITY_ATTRIBUTES, dwstacksize : usize, lpstartaddress : LPTHREAD_START_ROUTINE, lpparameter : *const core::ffi::c_void, dwcreationflags : THREAD_CREATION_FLAGS, lpthreadid : *mut u32) -> HANDLE); | |
| 21 | windows_targets::link!("kernel32.dll" "system" fn CreateWaitableTimerExW(lptimerattributes : *const SECURITY_ATTRIBUTES, lptimername : PCWSTR, dwflags : u32, dwdesiredaccess : u32) -> HANDLE); | |
| 22 | windows_targets::link!("kernel32.dll" "system" fn DeleteFileW(lpfilename : PCWSTR) -> BOOL); | |
| 23 | windows_targets::link!("kernel32.dll" "system" fn DeleteProcThreadAttributeList(lpattributelist : LPPROC_THREAD_ATTRIBUTE_LIST)); | |
| 24 | windows_targets::link!("kernel32.dll" "system" fn DeviceIoControl(hdevice : HANDLE, dwiocontrolcode : u32, lpinbuffer : *const core::ffi::c_void, ninbuffersize : u32, lpoutbuffer : *mut core::ffi::c_void, noutbuffersize : u32, lpbytesreturned : *mut u32, lpoverlapped : *mut OVERLAPPED) -> BOOL); | |
| 25 | windows_targets::link!("kernel32.dll" "system" fn DuplicateHandle(hsourceprocesshandle : HANDLE, hsourcehandle : HANDLE, htargetprocesshandle : HANDLE, lptargethandle : *mut HANDLE, dwdesiredaccess : u32, binherithandle : BOOL, dwoptions : DUPLICATE_HANDLE_OPTIONS) -> BOOL); | |
| 26 | windows_targets::link!("kernel32.dll" "system" fn ExitProcess(uexitcode : u32) -> !); | |
| 27 | windows_targets::link!("kernel32.dll" "system" fn FindClose(hfindfile : HANDLE) -> BOOL); | |
| 28 | windows_targets::link!("kernel32.dll" "system" fn FindFirstFileExW(lpfilename : PCWSTR, finfolevelid : FINDEX_INFO_LEVELS, lpfindfiledata : *mut core::ffi::c_void, fsearchop : FINDEX_SEARCH_OPS, lpsearchfilter : *const core::ffi::c_void, dwadditionalflags : FIND_FIRST_EX_FLAGS) -> HANDLE); | |
| 29 | windows_targets::link!("kernel32.dll" "system" fn FindNextFileW(hfindfile : HANDLE, lpfindfiledata : *mut WIN32_FIND_DATAW) -> BOOL); | |
| 30 | windows_targets::link!("kernel32.dll" "system" fn FlushFileBuffers(hfile : HANDLE) -> BOOL); | |
| 31 | windows_targets::link!("kernel32.dll" "system" fn FormatMessageW(dwflags : FORMAT_MESSAGE_OPTIONS, lpsource : *const core::ffi::c_void, dwmessageid : u32, dwlanguageid : u32, lpbuffer : PWSTR, nsize : u32, arguments : *const *const i8) -> u32); | |
| 32 | windows_targets::link!("kernel32.dll" "system" fn FreeEnvironmentStringsW(penv : PCWSTR) -> BOOL); | |
| 33 | windows_targets::link!("kernel32.dll" "system" fn GetActiveProcessorCount(groupnumber : u16) -> u32); | |
| 34 | windows_targets::link!("kernel32.dll" "system" fn GetCommandLineW() -> PCWSTR); | |
| 35 | windows_targets::link!("kernel32.dll" "system" fn GetConsoleMode(hconsolehandle : HANDLE, lpmode : *mut CONSOLE_MODE) -> BOOL); | |
| 36 | windows_targets::link!("kernel32.dll" "system" fn GetConsoleOutputCP() -> u32); | |
| 37 | windows_targets::link!("kernel32.dll" "system" fn GetCurrentDirectoryW(nbufferlength : u32, lpbuffer : PWSTR) -> u32); | |
| 38 | windows_targets::link!("kernel32.dll" "system" fn GetCurrentProcess() -> HANDLE); | |
| 39 | windows_targets::link!("kernel32.dll" "system" fn GetCurrentProcessId() -> u32); | |
| 40 | windows_targets::link!("kernel32.dll" "system" fn GetCurrentThread() -> HANDLE); | |
| 41 | windows_targets::link!("kernel32.dll" "system" fn GetCurrentThreadId() -> u32); | |
| 42 | windows_targets::link!("kernel32.dll" "system" fn GetEnvironmentStringsW() -> PWSTR); | |
| 43 | windows_targets::link!("kernel32.dll" "system" fn GetEnvironmentVariableW(lpname : PCWSTR, lpbuffer : PWSTR, nsize : u32) -> u32); | |
| 44 | windows_targets::link!("kernel32.dll" "system" fn GetExitCodeProcess(hprocess : HANDLE, lpexitcode : *mut u32) -> BOOL); | |
| 45 | windows_targets::link!("kernel32.dll" "system" fn GetFileAttributesW(lpfilename : PCWSTR) -> u32); | |
| 46 | windows_targets::link!("kernel32.dll" "system" fn GetFileInformationByHandle(hfile : HANDLE, lpfileinformation : *mut BY_HANDLE_FILE_INFORMATION) -> BOOL); | |
| 47 | windows_targets::link!("kernel32.dll" "system" fn GetFileInformationByHandleEx(hfile : HANDLE, fileinformationclass : FILE_INFO_BY_HANDLE_CLASS, lpfileinformation : *mut core::ffi::c_void, dwbuffersize : u32) -> BOOL); | |
| 48 | windows_targets::link!("kernel32.dll" "system" fn GetFileSizeEx(hfile : HANDLE, lpfilesize : *mut i64) -> BOOL); | |
| 49 | windows_targets::link!("kernel32.dll" "system" fn GetFileType(hfile : HANDLE) -> FILE_TYPE); | |
| 50 | windows_targets::link!("kernel32.dll" "system" fn GetFinalPathNameByHandleW(hfile : HANDLE, lpszfilepath : PWSTR, cchfilepath : u32, dwflags : GETFINALPATHNAMEBYHANDLE_FLAGS) -> u32); | |
| 51 | windows_targets::link!("kernel32.dll" "system" fn GetFullPathNameW(lpfilename : PCWSTR, nbufferlength : u32, lpbuffer : PWSTR, lpfilepart : *mut PWSTR) -> u32); | |
| 52 | windows_targets::link!("kernel32.dll" "system" fn GetLastError() -> WIN32_ERROR); | |
| 53 | windows_targets::link!("kernel32.dll" "system" fn GetModuleFileNameW(hmodule : HMODULE, lpfilename : PWSTR, nsize : u32) -> u32); | |
| 54 | windows_targets::link!("kernel32.dll" "system" fn GetModuleHandleA(lpmodulename : PCSTR) -> HMODULE); | |
| 55 | windows_targets::link!("kernel32.dll" "system" fn GetModuleHandleW(lpmodulename : PCWSTR) -> HMODULE); | |
| 56 | windows_targets::link!("kernel32.dll" "system" fn GetOverlappedResult(hfile : HANDLE, lpoverlapped : *const OVERLAPPED, lpnumberofbytestransferred : *mut u32, bwait : BOOL) -> BOOL); | |
| 57 | windows_targets::link!("kernel32.dll" "system" fn GetProcAddress(hmodule : HMODULE, lpprocname : PCSTR) -> FARPROC); | |
| 58 | windows_targets::link!("kernel32.dll" "system" fn GetProcessId(process : HANDLE) -> u32); | |
| 59 | windows_targets::link!("kernel32.dll" "system" fn GetStdHandle(nstdhandle : STD_HANDLE) -> HANDLE); | |
| 60 | windows_targets::link!("kernel32.dll" "system" fn GetSystemDirectoryW(lpbuffer : PWSTR, usize : u32) -> u32); | |
| 61 | windows_targets::link!("kernel32.dll" "system" fn GetSystemInfo(lpsysteminfo : *mut SYSTEM_INFO)); | |
| 62 | windows_targets::link!("kernel32.dll" "system" fn GetSystemTimeAsFileTime(lpsystemtimeasfiletime : *mut FILETIME)); | |
| 63 | windows_targets::link!("kernel32.dll" "system" fn GetSystemTimePreciseAsFileTime(lpsystemtimeasfiletime : *mut FILETIME)); | |
| 64 | windows_targets::link!("kernel32.dll" "system" fn GetTempPathW(nbufferlength : u32, lpbuffer : PWSTR) -> u32); | |
| 65 | windows_targets::link!("userenv.dll" "system" fn GetUserProfileDirectoryW(htoken : HANDLE, lpprofiledir : PWSTR, lpcchsize : *mut u32) -> BOOL); | |
| 66 | windows_targets::link!("kernel32.dll" "system" fn GetWindowsDirectoryW(lpbuffer : PWSTR, usize : u32) -> u32); | |
| 67 | windows_targets::link!("kernel32.dll" "system" fn InitOnceBeginInitialize(lpinitonce : *mut INIT_ONCE, dwflags : u32, fpending : *mut BOOL, lpcontext : *mut *mut core::ffi::c_void) -> BOOL); | |
| 68 | windows_targets::link!("kernel32.dll" "system" fn InitOnceComplete(lpinitonce : *mut INIT_ONCE, dwflags : u32, lpcontext : *const core::ffi::c_void) -> BOOL); | |
| 69 | windows_targets::link!("kernel32.dll" "system" fn InitializeProcThreadAttributeList(lpattributelist : LPPROC_THREAD_ATTRIBUTE_LIST, dwattributecount : u32, dwflags : u32, lpsize : *mut usize) -> BOOL); | |
| 70 | windows_targets::link!("kernel32.dll" "system" fn LocalFree(hmem : HLOCAL) -> HLOCAL); | |
| 71 | windows_targets::link!("kernel32.dll" "system" fn LockFileEx(hfile : HANDLE, dwflags : LOCK_FILE_FLAGS, dwreserved : u32, nnumberofbytestolocklow : u32, nnumberofbytestolockhigh : u32, lpoverlapped : *mut OVERLAPPED) -> BOOL); | |
| 72 | windows_targets::link!("kernel32.dll" "system" fn MoveFileExW(lpexistingfilename : PCWSTR, lpnewfilename : PCWSTR, dwflags : MOVE_FILE_FLAGS) -> BOOL); | |
| 73 | windows_targets::link!("kernel32.dll" "system" fn MultiByteToWideChar(codepage : u32, dwflags : MULTI_BYTE_TO_WIDE_CHAR_FLAGS, lpmultibytestr : PCSTR, cbmultibyte : i32, lpwidecharstr : PWSTR, cchwidechar : i32) -> i32); | |
| 74 | windows_targets::link!("ntdll.dll" "system" fn NtCreateFile(filehandle : *mut HANDLE, desiredaccess : FILE_ACCESS_RIGHTS, objectattributes : *const OBJECT_ATTRIBUTES, iostatusblock : *mut IO_STATUS_BLOCK, allocationsize : *const i64, fileattributes : FILE_FLAGS_AND_ATTRIBUTES, shareaccess : FILE_SHARE_MODE, createdisposition : NTCREATEFILE_CREATE_DISPOSITION, createoptions : NTCREATEFILE_CREATE_OPTIONS, eabuffer : *const core::ffi::c_void, ealength : u32) -> NTSTATUS); | |
| 75 | windows_targets::link!("ntdll.dll" "system" fn NtOpenFile(filehandle : *mut HANDLE, desiredaccess : u32, objectattributes : *const OBJECT_ATTRIBUTES, iostatusblock : *mut IO_STATUS_BLOCK, shareaccess : u32, openoptions : u32) -> NTSTATUS); | |
| 76 | windows_targets::link!("ntdll.dll" "system" fn NtReadFile(filehandle : HANDLE, event : HANDLE, apcroutine : PIO_APC_ROUTINE, apccontext : *const core::ffi::c_void, iostatusblock : *mut IO_STATUS_BLOCK, buffer : *mut core::ffi::c_void, length : u32, byteoffset : *const i64, key : *const u32) -> NTSTATUS); | |
| 77 | windows_targets::link!("ntdll.dll" "system" fn NtWriteFile(filehandle : HANDLE, event : HANDLE, apcroutine : PIO_APC_ROUTINE, apccontext : *const core::ffi::c_void, iostatusblock : *mut IO_STATUS_BLOCK, buffer : *const core::ffi::c_void, length : u32, byteoffset : *const i64, key : *const u32) -> NTSTATUS); | |
| 78 | windows_targets::link!("advapi32.dll" "system" fn OpenProcessToken(processhandle : HANDLE, desiredaccess : TOKEN_ACCESS_MASK, tokenhandle : *mut HANDLE) -> BOOL); | |
| 79 | windows_targets::link!("kernel32.dll" "system" fn QueryPerformanceCounter(lpperformancecount : *mut i64) -> BOOL); | |
| 80 | windows_targets::link!("kernel32.dll" "system" fn QueryPerformanceFrequency(lpfrequency : *mut i64) -> BOOL); | |
| 81 | windows_targets::link!("kernel32.dll" "system" fn ReadConsoleW(hconsoleinput : HANDLE, lpbuffer : *mut core::ffi::c_void, nnumberofcharstoread : u32, lpnumberofcharsread : *mut u32, pinputcontrol : *const CONSOLE_READCONSOLE_CONTROL) -> BOOL); | |
| 82 | windows_targets::link!("kernel32.dll" "system" fn ReadFile(hfile : HANDLE, lpbuffer : *mut u8, nnumberofbytestoread : u32, lpnumberofbytesread : *mut u32, lpoverlapped : *mut OVERLAPPED) -> BOOL); | |
| 83 | windows_targets::link!("kernel32.dll" "system" fn ReadFileEx(hfile : HANDLE, lpbuffer : *mut u8, nnumberofbytestoread : u32, lpoverlapped : *mut OVERLAPPED, lpcompletionroutine : LPOVERLAPPED_COMPLETION_ROUTINE) -> BOOL); | |
| 84 | windows_targets::link!("kernel32.dll" "system" fn ReleaseSRWLockExclusive(srwlock : *mut SRWLOCK)); | |
| 85 | windows_targets::link!("kernel32.dll" "system" fn ReleaseSRWLockShared(srwlock : *mut SRWLOCK)); | |
| 86 | windows_targets::link!("kernel32.dll" "system" fn RemoveDirectoryW(lppathname : PCWSTR) -> BOOL); | |
| 87 | windows_targets::link!("advapi32.dll" "system" "SystemFunction036" fn RtlGenRandom(randombuffer : *mut core::ffi::c_void, randombufferlength : u32) -> bool); | |
| 88 | windows_targets::link!("ntdll.dll" "system" fn RtlNtStatusToDosError(status : NTSTATUS) -> u32); | |
| 89 | windows_targets::link!("kernel32.dll" "system" fn SetCurrentDirectoryW(lppathname : PCWSTR) -> BOOL); | |
| 90 | windows_targets::link!("kernel32.dll" "system" fn SetEnvironmentVariableW(lpname : PCWSTR, lpvalue : PCWSTR) -> BOOL); | |
| 91 | windows_targets::link!("kernel32.dll" "system" fn SetFileAttributesW(lpfilename : PCWSTR, dwfileattributes : FILE_FLAGS_AND_ATTRIBUTES) -> BOOL); | |
| 92 | windows_targets::link!("kernel32.dll" "system" fn SetFileInformationByHandle(hfile : HANDLE, fileinformationclass : FILE_INFO_BY_HANDLE_CLASS, lpfileinformation : *const core::ffi::c_void, dwbuffersize : u32) -> BOOL); | |
| 93 | windows_targets::link!("kernel32.dll" "system" fn SetFilePointerEx(hfile : HANDLE, lidistancetomove : i64, lpnewfilepointer : *mut i64, dwmovemethod : SET_FILE_POINTER_MOVE_METHOD) -> BOOL); | |
| 94 | windows_targets::link!("kernel32.dll" "system" fn SetFileTime(hfile : HANDLE, lpcreationtime : *const FILETIME, lplastaccesstime : *const FILETIME, lplastwritetime : *const FILETIME) -> BOOL); | |
| 95 | windows_targets::link!("kernel32.dll" "system" fn SetHandleInformation(hobject : HANDLE, dwmask : u32, dwflags : HANDLE_FLAGS) -> BOOL); | |
| 96 | windows_targets::link!("kernel32.dll" "system" fn SetLastError(dwerrcode : WIN32_ERROR)); | |
| 97 | windows_targets::link!("kernel32.dll" "system" fn SetThreadStackGuarantee(stacksizeinbytes : *mut u32) -> BOOL); | |
| 98 | windows_targets::link!("kernel32.dll" "system" fn SetWaitableTimer(htimer : HANDLE, lpduetime : *const i64, lperiod : i32, pfncompletionroutine : PTIMERAPCROUTINE, lpargtocompletionroutine : *const core::ffi::c_void, fresume : BOOL) -> BOOL); | |
| 99 | windows_targets::link!("kernel32.dll" "system" fn Sleep(dwmilliseconds : u32)); | |
| 100 | windows_targets::link!("kernel32.dll" "system" fn SleepConditionVariableSRW(conditionvariable : *mut CONDITION_VARIABLE, srwlock : *mut SRWLOCK, dwmilliseconds : u32, flags : u32) -> BOOL); | |
| 101 | windows_targets::link!("kernel32.dll" "system" fn SleepEx(dwmilliseconds : u32, balertable : BOOL) -> u32); | |
| 102 | windows_targets::link!("kernel32.dll" "system" fn SwitchToThread() -> BOOL); | |
| 103 | windows_targets::link!("kernel32.dll" "system" fn TerminateProcess(hprocess : HANDLE, uexitcode : u32) -> BOOL); | |
| 104 | windows_targets::link!("kernel32.dll" "system" fn TlsAlloc() -> u32); | |
| 105 | windows_targets::link!("kernel32.dll" "system" fn TlsFree(dwtlsindex : u32) -> BOOL); | |
| 106 | windows_targets::link!("kernel32.dll" "system" fn TlsGetValue(dwtlsindex : u32) -> *mut core::ffi::c_void); | |
| 107 | windows_targets::link!("kernel32.dll" "system" fn TlsSetValue(dwtlsindex : u32, lptlsvalue : *const core::ffi::c_void) -> BOOL); | |
| 108 | windows_targets::link!("kernel32.dll" "system" fn TryAcquireSRWLockExclusive(srwlock : *mut SRWLOCK) -> bool); | |
| 109 | windows_targets::link!("kernel32.dll" "system" fn TryAcquireSRWLockShared(srwlock : *mut SRWLOCK) -> bool); | |
| 110 | windows_targets::link!("kernel32.dll" "system" fn UnlockFile(hfile : HANDLE, dwfileoffsetlow : u32, dwfileoffsethigh : u32, nnumberofbytestounlocklow : u32, nnumberofbytestounlockhigh : u32) -> BOOL); | |
| 111 | windows_targets::link!("kernel32.dll" "system" fn UpdateProcThreadAttribute(lpattributelist : LPPROC_THREAD_ATTRIBUTE_LIST, dwflags : u32, attribute : usize, lpvalue : *const core::ffi::c_void, cbsize : usize, lppreviousvalue : *mut core::ffi::c_void, lpreturnsize : *const usize) -> BOOL); | |
| 112 | windows_targets::link!("ws2_32.dll" "system" fn WSACleanup() -> i32); | |
| 113 | windows_targets::link!("ws2_32.dll" "system" fn WSADuplicateSocketW(s : SOCKET, dwprocessid : u32, lpprotocolinfo : *mut WSAPROTOCOL_INFOW) -> i32); | |
| 114 | windows_targets::link!("ws2_32.dll" "system" fn WSAGetLastError() -> WSA_ERROR); | |
| 115 | windows_targets::link!("ws2_32.dll" "system" fn WSARecv(s : SOCKET, lpbuffers : *const WSABUF, dwbuffercount : u32, lpnumberofbytesrecvd : *mut u32, lpflags : *mut u32, lpoverlapped : *mut OVERLAPPED, lpcompletionroutine : LPWSAOVERLAPPED_COMPLETION_ROUTINE) -> i32); | |
| 116 | windows_targets::link!("ws2_32.dll" "system" fn WSASend(s : SOCKET, lpbuffers : *const WSABUF, dwbuffercount : u32, lpnumberofbytessent : *mut u32, dwflags : u32, lpoverlapped : *mut OVERLAPPED, lpcompletionroutine : LPWSAOVERLAPPED_COMPLETION_ROUTINE) -> i32); | |
| 117 | windows_targets::link!("ws2_32.dll" "system" fn WSASocketW(af : i32, r#type : i32, protocol : i32, lpprotocolinfo : *const WSAPROTOCOL_INFOW, g : u32, dwflags : u32) -> SOCKET); | |
| 118 | windows_targets::link!("ws2_32.dll" "system" fn WSAStartup(wversionrequested : u16, lpwsadata : *mut WSADATA) -> i32); | |
| 119 | windows_targets::link!("kernel32.dll" "system" fn WaitForMultipleObjects(ncount : u32, lphandles : *const HANDLE, bwaitall : BOOL, dwmilliseconds : u32) -> WAIT_EVENT); | |
| 120 | windows_targets::link!("kernel32.dll" "system" fn WaitForSingleObject(hhandle : HANDLE, dwmilliseconds : u32) -> WAIT_EVENT); | |
| 121 | windows_targets::link!("kernel32.dll" "system" fn WakeAllConditionVariable(conditionvariable : *mut CONDITION_VARIABLE)); | |
| 122 | windows_targets::link!("kernel32.dll" "system" fn WakeConditionVariable(conditionvariable : *mut CONDITION_VARIABLE)); | |
| 123 | windows_targets::link!("kernel32.dll" "system" fn WideCharToMultiByte(codepage : u32, dwflags : u32, lpwidecharstr : PCWSTR, cchwidechar : i32, lpmultibytestr : PSTR, cbmultibyte : i32, lpdefaultchar : PCSTR, lpuseddefaultchar : *mut BOOL) -> i32); | |
| 124 | windows_targets::link!("kernel32.dll" "system" fn WriteConsoleW(hconsoleoutput : HANDLE, lpbuffer : PCWSTR, nnumberofcharstowrite : u32, lpnumberofcharswritten : *mut u32, lpreserved : *const core::ffi::c_void) -> BOOL); | |
| 125 | windows_targets::link!("kernel32.dll" "system" fn WriteFileEx(hfile : HANDLE, lpbuffer : *const u8, nnumberofbytestowrite : u32, lpoverlapped : *mut OVERLAPPED, lpcompletionroutine : LPOVERLAPPED_COMPLETION_ROUTINE) -> BOOL); | |
| 126 | windows_targets::link!("ws2_32.dll" "system" fn accept(s : SOCKET, addr : *mut SOCKADDR, addrlen : *mut i32) -> SOCKET); | |
| 127 | windows_targets::link!("ws2_32.dll" "system" fn bind(s : SOCKET, name : *const SOCKADDR, namelen : i32) -> i32); | |
| 128 | windows_targets::link!("ws2_32.dll" "system" fn closesocket(s : SOCKET) -> i32); | |
| 129 | windows_targets::link!("ws2_32.dll" "system" fn connect(s : SOCKET, name : *const SOCKADDR, namelen : i32) -> i32); | |
| 130 | windows_targets::link!("ws2_32.dll" "system" fn freeaddrinfo(paddrinfo : *const ADDRINFOA)); | |
| 131 | windows_targets::link!("ws2_32.dll" "system" fn getaddrinfo(pnodename : PCSTR, pservicename : PCSTR, phints : *const ADDRINFOA, ppresult : *mut *mut ADDRINFOA) -> i32); | |
| 132 | windows_targets::link!("ws2_32.dll" "system" fn getpeername(s : SOCKET, name : *mut SOCKADDR, namelen : *mut i32) -> i32); | |
| 133 | windows_targets::link!("ws2_32.dll" "system" fn getsockname(s : SOCKET, name : *mut SOCKADDR, namelen : *mut i32) -> i32); | |
| 134 | windows_targets::link!("ws2_32.dll" "system" fn getsockopt(s : SOCKET, level : i32, optname : i32, optval : PSTR, optlen : *mut i32) -> i32); | |
| 135 | windows_targets::link!("ws2_32.dll" "system" fn ioctlsocket(s : SOCKET, cmd : i32, argp : *mut u32) -> i32); | |
| 136 | windows_targets::link!("ws2_32.dll" "system" fn listen(s : SOCKET, backlog : i32) -> i32); | |
| 137 | windows_targets::link!("kernel32.dll" "system" fn lstrlenW(lpstring : PCWSTR) -> i32); | |
| 138 | windows_targets::link!("ws2_32.dll" "system" fn recv(s : SOCKET, buf : PSTR, len : i32, flags : SEND_RECV_FLAGS) -> i32); | |
| 139 | windows_targets::link!("ws2_32.dll" "system" fn recvfrom(s : SOCKET, buf : PSTR, len : i32, flags : i32, from : *mut SOCKADDR, fromlen : *mut i32) -> i32); | |
| 140 | windows_targets::link!("ws2_32.dll" "system" fn select(nfds : i32, readfds : *mut FD_SET, writefds : *mut FD_SET, exceptfds : *mut FD_SET, timeout : *const TIMEVAL) -> i32); | |
| 141 | windows_targets::link!("ws2_32.dll" "system" fn send(s : SOCKET, buf : PCSTR, len : i32, flags : SEND_RECV_FLAGS) -> i32); | |
| 142 | windows_targets::link!("ws2_32.dll" "system" fn sendto(s : SOCKET, buf : PCSTR, len : i32, flags : i32, to : *const SOCKADDR, tolen : i32) -> i32); | |
| 143 | windows_targets::link!("ws2_32.dll" "system" fn setsockopt(s : SOCKET, level : i32, optname : i32, optval : PCSTR, optlen : i32) -> i32); | |
| 144 | windows_targets::link!("ws2_32.dll" "system" fn shutdown(s : SOCKET, how : WINSOCK_SHUTDOWN_HOW) -> i32); | |
| 5 | windows_link::link!("kernel32.dll" "system" fn AcquireSRWLockExclusive(srwlock : *mut SRWLOCK)); | |
| 6 | windows_link::link!("kernel32.dll" "system" fn AcquireSRWLockShared(srwlock : *mut SRWLOCK)); | |
| 7 | windows_link::link!("kernel32.dll" "system" fn AddVectoredExceptionHandler(first : u32, handler : PVECTORED_EXCEPTION_HANDLER) -> *mut core::ffi::c_void); | |
| 8 | windows_link::link!("kernel32.dll" "system" fn CancelIo(hfile : HANDLE) -> BOOL); | |
| 9 | windows_link::link!("kernel32.dll" "system" fn CloseHandle(hobject : HANDLE) -> BOOL); | |
| 10 | windows_link::link!("kernel32.dll" "system" fn CompareStringOrdinal(lpstring1 : PCWSTR, cchcount1 : i32, lpstring2 : PCWSTR, cchcount2 : i32, bignorecase : BOOL) -> COMPARESTRING_RESULT); | |
| 11 | windows_link::link!("kernel32.dll" "system" fn CopyFileExW(lpexistingfilename : PCWSTR, lpnewfilename : PCWSTR, lpprogressroutine : LPPROGRESS_ROUTINE, lpdata : *const core::ffi::c_void, pbcancel : *mut BOOL, dwcopyflags : COPYFILE_FLAGS) -> BOOL); | |
| 12 | windows_link::link!("kernel32.dll" "system" fn CreateDirectoryW(lppathname : PCWSTR, lpsecurityattributes : *const SECURITY_ATTRIBUTES) -> BOOL); | |
| 13 | windows_link::link!("kernel32.dll" "system" fn CreateEventW(lpeventattributes : *const SECURITY_ATTRIBUTES, bmanualreset : BOOL, binitialstate : BOOL, lpname : PCWSTR) -> HANDLE); | |
| 14 | windows_link::link!("kernel32.dll" "system" fn CreateFileW(lpfilename : PCWSTR, dwdesiredaccess : u32, dwsharemode : FILE_SHARE_MODE, lpsecurityattributes : *const SECURITY_ATTRIBUTES, dwcreationdisposition : FILE_CREATION_DISPOSITION, dwflagsandattributes : FILE_FLAGS_AND_ATTRIBUTES, htemplatefile : HANDLE) -> HANDLE); | |
| 15 | windows_link::link!("kernel32.dll" "system" fn CreateHardLinkW(lpfilename : PCWSTR, lpexistingfilename : PCWSTR, lpsecurityattributes : *const SECURITY_ATTRIBUTES) -> BOOL); | |
| 16 | windows_link::link!("kernel32.dll" "system" fn CreateNamedPipeW(lpname : PCWSTR, dwopenmode : FILE_FLAGS_AND_ATTRIBUTES, dwpipemode : NAMED_PIPE_MODE, nmaxinstances : u32, noutbuffersize : u32, ninbuffersize : u32, ndefaulttimeout : u32, lpsecurityattributes : *const SECURITY_ATTRIBUTES) -> HANDLE); | |
| 17 | windows_link::link!("kernel32.dll" "system" fn CreatePipe(hreadpipe : *mut HANDLE, hwritepipe : *mut HANDLE, lppipeattributes : *const SECURITY_ATTRIBUTES, nsize : u32) -> BOOL); | |
| 18 | windows_link::link!("kernel32.dll" "system" fn CreateProcessW(lpapplicationname : PCWSTR, lpcommandline : PWSTR, lpprocessattributes : *const SECURITY_ATTRIBUTES, lpthreadattributes : *const SECURITY_ATTRIBUTES, binherithandles : BOOL, dwcreationflags : PROCESS_CREATION_FLAGS, lpenvironment : *const core::ffi::c_void, lpcurrentdirectory : PCWSTR, lpstartupinfo : *const STARTUPINFOW, lpprocessinformation : *mut PROCESS_INFORMATION) -> BOOL); | |
| 19 | windows_link::link!("kernel32.dll" "system" fn CreateSymbolicLinkW(lpsymlinkfilename : PCWSTR, lptargetfilename : PCWSTR, dwflags : SYMBOLIC_LINK_FLAGS) -> bool); | |
| 20 | windows_link::link!("kernel32.dll" "system" fn CreateThread(lpthreadattributes : *const SECURITY_ATTRIBUTES, dwstacksize : usize, lpstartaddress : LPTHREAD_START_ROUTINE, lpparameter : *const core::ffi::c_void, dwcreationflags : THREAD_CREATION_FLAGS, lpthreadid : *mut u32) -> HANDLE); | |
| 21 | windows_link::link!("kernel32.dll" "system" fn CreateWaitableTimerExW(lptimerattributes : *const SECURITY_ATTRIBUTES, lptimername : PCWSTR, dwflags : u32, dwdesiredaccess : u32) -> HANDLE); | |
| 22 | windows_link::link!("kernel32.dll" "system" fn DeleteFileW(lpfilename : PCWSTR) -> BOOL); | |
| 23 | windows_link::link!("kernel32.dll" "system" fn DeleteProcThreadAttributeList(lpattributelist : LPPROC_THREAD_ATTRIBUTE_LIST)); | |
| 24 | windows_link::link!("kernel32.dll" "system" fn DeviceIoControl(hdevice : HANDLE, dwiocontrolcode : u32, lpinbuffer : *const core::ffi::c_void, ninbuffersize : u32, lpoutbuffer : *mut core::ffi::c_void, noutbuffersize : u32, lpbytesreturned : *mut u32, lpoverlapped : *mut OVERLAPPED) -> BOOL); | |
| 25 | windows_link::link!("kernel32.dll" "system" fn DuplicateHandle(hsourceprocesshandle : HANDLE, hsourcehandle : HANDLE, htargetprocesshandle : HANDLE, lptargethandle : *mut HANDLE, dwdesiredaccess : u32, binherithandle : BOOL, dwoptions : DUPLICATE_HANDLE_OPTIONS) -> BOOL); | |
| 26 | windows_link::link!("kernel32.dll" "system" fn ExitProcess(uexitcode : u32) -> !); | |
| 27 | windows_link::link!("kernel32.dll" "system" fn FindClose(hfindfile : HANDLE) -> BOOL); | |
| 28 | windows_link::link!("kernel32.dll" "system" fn FindFirstFileExW(lpfilename : PCWSTR, finfolevelid : FINDEX_INFO_LEVELS, lpfindfiledata : *mut core::ffi::c_void, fsearchop : FINDEX_SEARCH_OPS, lpsearchfilter : *const core::ffi::c_void, dwadditionalflags : FIND_FIRST_EX_FLAGS) -> HANDLE); | |
| 29 | windows_link::link!("kernel32.dll" "system" fn FindNextFileW(hfindfile : HANDLE, lpfindfiledata : *mut WIN32_FIND_DATAW) -> BOOL); | |
| 30 | windows_link::link!("kernel32.dll" "system" fn FlushFileBuffers(hfile : HANDLE) -> BOOL); | |
| 31 | windows_link::link!("kernel32.dll" "system" fn FormatMessageW(dwflags : FORMAT_MESSAGE_OPTIONS, lpsource : *const core::ffi::c_void, dwmessageid : u32, dwlanguageid : u32, lpbuffer : PWSTR, nsize : u32, arguments : *const *const i8) -> u32); | |
| 32 | windows_link::link!("kernel32.dll" "system" fn FreeEnvironmentStringsW(penv : PCWSTR) -> BOOL); | |
| 33 | windows_link::link!("kernel32.dll" "system" fn GetActiveProcessorCount(groupnumber : u16) -> u32); | |
| 34 | windows_link::link!("kernel32.dll" "system" fn GetCommandLineW() -> PCWSTR); | |
| 35 | windows_link::link!("kernel32.dll" "system" fn GetConsoleMode(hconsolehandle : HANDLE, lpmode : *mut CONSOLE_MODE) -> BOOL); | |
| 36 | windows_link::link!("kernel32.dll" "system" fn GetConsoleOutputCP() -> u32); | |
| 37 | windows_link::link!("kernel32.dll" "system" fn GetCurrentDirectoryW(nbufferlength : u32, lpbuffer : PWSTR) -> u32); | |
| 38 | windows_link::link!("kernel32.dll" "system" fn GetCurrentProcess() -> HANDLE); | |
| 39 | windows_link::link!("kernel32.dll" "system" fn GetCurrentProcessId() -> u32); | |
| 40 | windows_link::link!("kernel32.dll" "system" fn GetCurrentThread() -> HANDLE); | |
| 41 | windows_link::link!("kernel32.dll" "system" fn GetCurrentThreadId() -> u32); | |
| 42 | windows_link::link!("kernel32.dll" "system" fn GetEnvironmentStringsW() -> PWSTR); | |
| 43 | windows_link::link!("kernel32.dll" "system" fn GetEnvironmentVariableW(lpname : PCWSTR, lpbuffer : PWSTR, nsize : u32) -> u32); | |
| 44 | windows_link::link!("kernel32.dll" "system" fn GetExitCodeProcess(hprocess : HANDLE, lpexitcode : *mut u32) -> BOOL); | |
| 45 | windows_link::link!("kernel32.dll" "system" fn GetFileAttributesW(lpfilename : PCWSTR) -> u32); | |
| 46 | windows_link::link!("kernel32.dll" "system" fn GetFileInformationByHandle(hfile : HANDLE, lpfileinformation : *mut BY_HANDLE_FILE_INFORMATION) -> BOOL); | |
| 47 | windows_link::link!("kernel32.dll" "system" fn GetFileInformationByHandleEx(hfile : HANDLE, fileinformationclass : FILE_INFO_BY_HANDLE_CLASS, lpfileinformation : *mut core::ffi::c_void, dwbuffersize : u32) -> BOOL); | |
| 48 | windows_link::link!("kernel32.dll" "system" fn GetFileSizeEx(hfile : HANDLE, lpfilesize : *mut i64) -> BOOL); | |
| 49 | windows_link::link!("kernel32.dll" "system" fn GetFileType(hfile : HANDLE) -> FILE_TYPE); | |
| 50 | windows_link::link!("kernel32.dll" "system" fn GetFinalPathNameByHandleW(hfile : HANDLE, lpszfilepath : PWSTR, cchfilepath : u32, dwflags : GETFINALPATHNAMEBYHANDLE_FLAGS) -> u32); | |
| 51 | windows_link::link!("kernel32.dll" "system" fn GetFullPathNameW(lpfilename : PCWSTR, nbufferlength : u32, lpbuffer : PWSTR, lpfilepart : *mut PWSTR) -> u32); | |
| 52 | windows_link::link!("kernel32.dll" "system" fn GetLastError() -> WIN32_ERROR); | |
| 53 | windows_link::link!("kernel32.dll" "system" fn GetModuleFileNameW(hmodule : HMODULE, lpfilename : PWSTR, nsize : u32) -> u32); | |
| 54 | windows_link::link!("kernel32.dll" "system" fn GetModuleHandleA(lpmodulename : PCSTR) -> HMODULE); | |
| 55 | windows_link::link!("kernel32.dll" "system" fn GetModuleHandleW(lpmodulename : PCWSTR) -> HMODULE); | |
| 56 | windows_link::link!("kernel32.dll" "system" fn GetOverlappedResult(hfile : HANDLE, lpoverlapped : *const OVERLAPPED, lpnumberofbytestransferred : *mut u32, bwait : BOOL) -> BOOL); | |
| 57 | windows_link::link!("kernel32.dll" "system" fn GetProcAddress(hmodule : HMODULE, lpprocname : PCSTR) -> FARPROC); | |
| 58 | windows_link::link!("kernel32.dll" "system" fn GetProcessId(process : HANDLE) -> u32); | |
| 59 | windows_link::link!("kernel32.dll" "system" fn GetStdHandle(nstdhandle : STD_HANDLE) -> HANDLE); | |
| 60 | windows_link::link!("kernel32.dll" "system" fn GetSystemDirectoryW(lpbuffer : PWSTR, usize : u32) -> u32); | |
| 61 | windows_link::link!("kernel32.dll" "system" fn GetSystemInfo(lpsysteminfo : *mut SYSTEM_INFO)); | |
| 62 | windows_link::link!("kernel32.dll" "system" fn GetSystemTimeAsFileTime(lpsystemtimeasfiletime : *mut FILETIME)); | |
| 63 | windows_link::link!("kernel32.dll" "system" fn GetSystemTimePreciseAsFileTime(lpsystemtimeasfiletime : *mut FILETIME)); | |
| 64 | windows_link::link!("kernel32.dll" "system" fn GetTempPathW(nbufferlength : u32, lpbuffer : PWSTR) -> u32); | |
| 65 | windows_link::link!("userenv.dll" "system" fn GetUserProfileDirectoryW(htoken : HANDLE, lpprofiledir : PWSTR, lpcchsize : *mut u32) -> BOOL); | |
| 66 | windows_link::link!("kernel32.dll" "system" fn GetWindowsDirectoryW(lpbuffer : PWSTR, usize : u32) -> u32); | |
| 67 | windows_link::link!("kernel32.dll" "system" fn InitOnceBeginInitialize(lpinitonce : *mut INIT_ONCE, dwflags : u32, fpending : *mut BOOL, lpcontext : *mut *mut core::ffi::c_void) -> BOOL); | |
| 68 | windows_link::link!("kernel32.dll" "system" fn InitOnceComplete(lpinitonce : *mut INIT_ONCE, dwflags : u32, lpcontext : *const core::ffi::c_void) -> BOOL); | |
| 69 | windows_link::link!("kernel32.dll" "system" fn InitializeProcThreadAttributeList(lpattributelist : LPPROC_THREAD_ATTRIBUTE_LIST, dwattributecount : u32, dwflags : u32, lpsize : *mut usize) -> BOOL); | |
| 70 | windows_link::link!("kernel32.dll" "system" fn LocalFree(hmem : HLOCAL) -> HLOCAL); | |
| 71 | windows_link::link!("kernel32.dll" "system" fn LockFileEx(hfile : HANDLE, dwflags : LOCK_FILE_FLAGS, dwreserved : u32, nnumberofbytestolocklow : u32, nnumberofbytestolockhigh : u32, lpoverlapped : *mut OVERLAPPED) -> BOOL); | |
| 72 | windows_link::link!("kernel32.dll" "system" fn MoveFileExW(lpexistingfilename : PCWSTR, lpnewfilename : PCWSTR, dwflags : MOVE_FILE_FLAGS) -> BOOL); | |
| 73 | windows_link::link!("kernel32.dll" "system" fn MultiByteToWideChar(codepage : u32, dwflags : MULTI_BYTE_TO_WIDE_CHAR_FLAGS, lpmultibytestr : PCSTR, cbmultibyte : i32, lpwidecharstr : PWSTR, cchwidechar : i32) -> i32); | |
| 74 | windows_link::link!("ntdll.dll" "system" fn NtCreateFile(filehandle : *mut HANDLE, desiredaccess : FILE_ACCESS_RIGHTS, objectattributes : *const OBJECT_ATTRIBUTES, iostatusblock : *mut IO_STATUS_BLOCK, allocationsize : *const i64, fileattributes : FILE_FLAGS_AND_ATTRIBUTES, shareaccess : FILE_SHARE_MODE, createdisposition : NTCREATEFILE_CREATE_DISPOSITION, createoptions : NTCREATEFILE_CREATE_OPTIONS, eabuffer : *const core::ffi::c_void, ealength : u32) -> NTSTATUS); | |
| 75 | windows_link::link!("ntdll.dll" "system" fn NtOpenFile(filehandle : *mut HANDLE, desiredaccess : u32, objectattributes : *const OBJECT_ATTRIBUTES, iostatusblock : *mut IO_STATUS_BLOCK, shareaccess : u32, openoptions : u32) -> NTSTATUS); | |
| 76 | windows_link::link!("ntdll.dll" "system" fn NtReadFile(filehandle : HANDLE, event : HANDLE, apcroutine : PIO_APC_ROUTINE, apccontext : *const core::ffi::c_void, iostatusblock : *mut IO_STATUS_BLOCK, buffer : *mut core::ffi::c_void, length : u32, byteoffset : *const i64, key : *const u32) -> NTSTATUS); | |
| 77 | windows_link::link!("ntdll.dll" "system" fn NtWriteFile(filehandle : HANDLE, event : HANDLE, apcroutine : PIO_APC_ROUTINE, apccontext : *const core::ffi::c_void, iostatusblock : *mut IO_STATUS_BLOCK, buffer : *const core::ffi::c_void, length : u32, byteoffset : *const i64, key : *const u32) -> NTSTATUS); | |
| 78 | windows_link::link!("advapi32.dll" "system" fn OpenProcessToken(processhandle : HANDLE, desiredaccess : TOKEN_ACCESS_MASK, tokenhandle : *mut HANDLE) -> BOOL); | |
| 79 | windows_link::link!("kernel32.dll" "system" fn QueryPerformanceCounter(lpperformancecount : *mut i64) -> BOOL); | |
| 80 | windows_link::link!("kernel32.dll" "system" fn QueryPerformanceFrequency(lpfrequency : *mut i64) -> BOOL); | |
| 81 | windows_link::link!("kernel32.dll" "system" fn ReadConsoleW(hconsoleinput : HANDLE, lpbuffer : *mut core::ffi::c_void, nnumberofcharstoread : u32, lpnumberofcharsread : *mut u32, pinputcontrol : *const CONSOLE_READCONSOLE_CONTROL) -> BOOL); | |
| 82 | windows_link::link!("kernel32.dll" "system" fn ReadFile(hfile : HANDLE, lpbuffer : *mut u8, nnumberofbytestoread : u32, lpnumberofbytesread : *mut u32, lpoverlapped : *mut OVERLAPPED) -> BOOL); | |
| 83 | windows_link::link!("kernel32.dll" "system" fn ReadFileEx(hfile : HANDLE, lpbuffer : *mut u8, nnumberofbytestoread : u32, lpoverlapped : *mut OVERLAPPED, lpcompletionroutine : LPOVERLAPPED_COMPLETION_ROUTINE) -> BOOL); | |
| 84 | windows_link::link!("kernel32.dll" "system" fn ReleaseSRWLockExclusive(srwlock : *mut SRWLOCK)); | |
| 85 | windows_link::link!("kernel32.dll" "system" fn ReleaseSRWLockShared(srwlock : *mut SRWLOCK)); | |
| 86 | windows_link::link!("kernel32.dll" "system" fn RemoveDirectoryW(lppathname : PCWSTR) -> BOOL); | |
| 87 | windows_link::link!("advapi32.dll" "system" "SystemFunction036" fn RtlGenRandom(randombuffer : *mut core::ffi::c_void, randombufferlength : u32) -> bool); | |
| 88 | windows_link::link!("ntdll.dll" "system" fn RtlNtStatusToDosError(status : NTSTATUS) -> u32); | |
| 89 | windows_link::link!("kernel32.dll" "system" fn SetCurrentDirectoryW(lppathname : PCWSTR) -> BOOL); | |
| 90 | windows_link::link!("kernel32.dll" "system" fn SetEnvironmentVariableW(lpname : PCWSTR, lpvalue : PCWSTR) -> BOOL); | |
| 91 | windows_link::link!("kernel32.dll" "system" fn SetFileAttributesW(lpfilename : PCWSTR, dwfileattributes : FILE_FLAGS_AND_ATTRIBUTES) -> BOOL); | |
| 92 | windows_link::link!("kernel32.dll" "system" fn SetFileInformationByHandle(hfile : HANDLE, fileinformationclass : FILE_INFO_BY_HANDLE_CLASS, lpfileinformation : *const core::ffi::c_void, dwbuffersize : u32) -> BOOL); | |
| 93 | windows_link::link!("kernel32.dll" "system" fn SetFilePointerEx(hfile : HANDLE, lidistancetomove : i64, lpnewfilepointer : *mut i64, dwmovemethod : SET_FILE_POINTER_MOVE_METHOD) -> BOOL); | |
| 94 | windows_link::link!("kernel32.dll" "system" fn SetFileTime(hfile : HANDLE, lpcreationtime : *const FILETIME, lplastaccesstime : *const FILETIME, lplastwritetime : *const FILETIME) -> BOOL); | |
| 95 | windows_link::link!("kernel32.dll" "system" fn SetHandleInformation(hobject : HANDLE, dwmask : u32, dwflags : HANDLE_FLAGS) -> BOOL); | |
| 96 | windows_link::link!("kernel32.dll" "system" fn SetLastError(dwerrcode : WIN32_ERROR)); | |
| 97 | windows_link::link!("kernel32.dll" "system" fn SetThreadStackGuarantee(stacksizeinbytes : *mut u32) -> BOOL); | |
| 98 | windows_link::link!("kernel32.dll" "system" fn SetWaitableTimer(htimer : HANDLE, lpduetime : *const i64, lperiod : i32, pfncompletionroutine : PTIMERAPCROUTINE, lpargtocompletionroutine : *const core::ffi::c_void, fresume : BOOL) -> BOOL); | |
| 99 | windows_link::link!("kernel32.dll" "system" fn Sleep(dwmilliseconds : u32)); | |
| 100 | windows_link::link!("kernel32.dll" "system" fn SleepConditionVariableSRW(conditionvariable : *mut CONDITION_VARIABLE, srwlock : *mut SRWLOCK, dwmilliseconds : u32, flags : u32) -> BOOL); | |
| 101 | windows_link::link!("kernel32.dll" "system" fn SleepEx(dwmilliseconds : u32, balertable : BOOL) -> u32); | |
| 102 | windows_link::link!("kernel32.dll" "system" fn SwitchToThread() -> BOOL); | |
| 103 | windows_link::link!("kernel32.dll" "system" fn TerminateProcess(hprocess : HANDLE, uexitcode : u32) -> BOOL); | |
| 104 | windows_link::link!("kernel32.dll" "system" fn TlsAlloc() -> u32); | |
| 105 | windows_link::link!("kernel32.dll" "system" fn TlsFree(dwtlsindex : u32) -> BOOL); | |
| 106 | windows_link::link!("kernel32.dll" "system" fn TlsGetValue(dwtlsindex : u32) -> *mut core::ffi::c_void); | |
| 107 | windows_link::link!("kernel32.dll" "system" fn TlsSetValue(dwtlsindex : u32, lptlsvalue : *const core::ffi::c_void) -> BOOL); | |
| 108 | windows_link::link!("kernel32.dll" "system" fn TryAcquireSRWLockExclusive(srwlock : *mut SRWLOCK) -> bool); | |
| 109 | windows_link::link!("kernel32.dll" "system" fn TryAcquireSRWLockShared(srwlock : *mut SRWLOCK) -> bool); | |
| 110 | windows_link::link!("kernel32.dll" "system" fn UnlockFile(hfile : HANDLE, dwfileoffsetlow : u32, dwfileoffsethigh : u32, nnumberofbytestounlocklow : u32, nnumberofbytestounlockhigh : u32) -> BOOL); | |
| 111 | windows_link::link!("kernel32.dll" "system" fn UpdateProcThreadAttribute(lpattributelist : LPPROC_THREAD_ATTRIBUTE_LIST, dwflags : u32, attribute : usize, lpvalue : *const core::ffi::c_void, cbsize : usize, lppreviousvalue : *mut core::ffi::c_void, lpreturnsize : *const usize) -> BOOL); | |
| 112 | windows_link::link!("ws2_32.dll" "system" fn WSACleanup() -> i32); | |
| 113 | windows_link::link!("ws2_32.dll" "system" fn WSADuplicateSocketW(s : SOCKET, dwprocessid : u32, lpprotocolinfo : *mut WSAPROTOCOL_INFOW) -> i32); | |
| 114 | windows_link::link!("ws2_32.dll" "system" fn WSAGetLastError() -> WSA_ERROR); | |
| 115 | windows_link::link!("ws2_32.dll" "system" fn WSARecv(s : SOCKET, lpbuffers : *const WSABUF, dwbuffercount : u32, lpnumberofbytesrecvd : *mut u32, lpflags : *mut u32, lpoverlapped : *mut OVERLAPPED, lpcompletionroutine : LPWSAOVERLAPPED_COMPLETION_ROUTINE) -> i32); | |
| 116 | windows_link::link!("ws2_32.dll" "system" fn WSASend(s : SOCKET, lpbuffers : *const WSABUF, dwbuffercount : u32, lpnumberofbytessent : *mut u32, dwflags : u32, lpoverlapped : *mut OVERLAPPED, lpcompletionroutine : LPWSAOVERLAPPED_COMPLETION_ROUTINE) -> i32); | |
| 117 | windows_link::link!("ws2_32.dll" "system" fn WSASocketW(af : i32, r#type : i32, protocol : i32, lpprotocolinfo : *const WSAPROTOCOL_INFOW, g : u32, dwflags : u32) -> SOCKET); | |
| 118 | windows_link::link!("ws2_32.dll" "system" fn WSAStartup(wversionrequested : u16, lpwsadata : *mut WSADATA) -> i32); | |
| 119 | windows_link::link!("kernel32.dll" "system" fn WaitForMultipleObjects(ncount : u32, lphandles : *const HANDLE, bwaitall : BOOL, dwmilliseconds : u32) -> WAIT_EVENT); | |
| 120 | windows_link::link!("kernel32.dll" "system" fn WaitForSingleObject(hhandle : HANDLE, dwmilliseconds : u32) -> WAIT_EVENT); | |
| 121 | windows_link::link!("kernel32.dll" "system" fn WakeAllConditionVariable(conditionvariable : *mut CONDITION_VARIABLE)); | |
| 122 | windows_link::link!("kernel32.dll" "system" fn WakeConditionVariable(conditionvariable : *mut CONDITION_VARIABLE)); | |
| 123 | windows_link::link!("kernel32.dll" "system" fn WideCharToMultiByte(codepage : u32, dwflags : u32, lpwidecharstr : PCWSTR, cchwidechar : i32, lpmultibytestr : PSTR, cbmultibyte : i32, lpdefaultchar : PCSTR, lpuseddefaultchar : *mut BOOL) -> i32); | |
| 124 | windows_link::link!("kernel32.dll" "system" fn WriteConsoleW(hconsoleoutput : HANDLE, lpbuffer : PCWSTR, nnumberofcharstowrite : u32, lpnumberofcharswritten : *mut u32, lpreserved : *const core::ffi::c_void) -> BOOL); | |
| 125 | windows_link::link!("kernel32.dll" "system" fn WriteFileEx(hfile : HANDLE, lpbuffer : *const u8, nnumberofbytestowrite : u32, lpoverlapped : *mut OVERLAPPED, lpcompletionroutine : LPOVERLAPPED_COMPLETION_ROUTINE) -> BOOL); | |
| 126 | windows_link::link!("ws2_32.dll" "system" fn accept(s : SOCKET, addr : *mut SOCKADDR, addrlen : *mut i32) -> SOCKET); | |
| 127 | windows_link::link!("ws2_32.dll" "system" fn bind(s : SOCKET, name : *const SOCKADDR, namelen : i32) -> i32); | |
| 128 | windows_link::link!("ws2_32.dll" "system" fn closesocket(s : SOCKET) -> i32); | |
| 129 | windows_link::link!("ws2_32.dll" "system" fn connect(s : SOCKET, name : *const SOCKADDR, namelen : i32) -> i32); | |
| 130 | windows_link::link!("ws2_32.dll" "system" fn freeaddrinfo(paddrinfo : *const ADDRINFOA)); | |
| 131 | windows_link::link!("ws2_32.dll" "system" fn getaddrinfo(pnodename : PCSTR, pservicename : PCSTR, phints : *const ADDRINFOA, ppresult : *mut *mut ADDRINFOA) -> i32); | |
| 132 | windows_link::link!("ws2_32.dll" "system" fn getpeername(s : SOCKET, name : *mut SOCKADDR, namelen : *mut i32) -> i32); | |
| 133 | windows_link::link!("ws2_32.dll" "system" fn getsockname(s : SOCKET, name : *mut SOCKADDR, namelen : *mut i32) -> i32); | |
| 134 | windows_link::link!("ws2_32.dll" "system" fn getsockopt(s : SOCKET, level : i32, optname : i32, optval : PSTR, optlen : *mut i32) -> i32); | |
| 135 | windows_link::link!("ws2_32.dll" "system" fn ioctlsocket(s : SOCKET, cmd : i32, argp : *mut u32) -> i32); | |
| 136 | windows_link::link!("ws2_32.dll" "system" fn listen(s : SOCKET, backlog : i32) -> i32); | |
| 137 | windows_link::link!("kernel32.dll" "system" fn lstrlenW(lpstring : PCWSTR) -> i32); | |
| 138 | windows_link::link!("ws2_32.dll" "system" fn recv(s : SOCKET, buf : PSTR, len : i32, flags : SEND_RECV_FLAGS) -> i32); | |
| 139 | windows_link::link!("ws2_32.dll" "system" fn recvfrom(s : SOCKET, buf : PSTR, len : i32, flags : i32, from : *mut SOCKADDR, fromlen : *mut i32) -> i32); | |
| 140 | windows_link::link!("ws2_32.dll" "system" fn select(nfds : i32, readfds : *mut FD_SET, writefds : *mut FD_SET, exceptfds : *mut FD_SET, timeout : *const TIMEVAL) -> i32); | |
| 141 | windows_link::link!("ws2_32.dll" "system" fn send(s : SOCKET, buf : PCSTR, len : i32, flags : SEND_RECV_FLAGS) -> i32); | |
| 142 | windows_link::link!("ws2_32.dll" "system" fn sendto(s : SOCKET, buf : PCSTR, len : i32, flags : i32, to : *const SOCKADDR, tolen : i32) -> i32); | |
| 143 | windows_link::link!("ws2_32.dll" "system" fn setsockopt(s : SOCKET, level : i32, optname : i32, optval : PCSTR, optlen : i32) -> i32); | |
| 144 | windows_link::link!("ws2_32.dll" "system" fn shutdown(s : SOCKET, how : WINSOCK_SHUTDOWN_HOW) -> i32); | |
| 145 | 145 | pub const ABOVE_NORMAL_PRIORITY_CLASS: PROCESS_CREATION_FLAGS = 32768u32; |
| 146 | 146 | #[repr(C)] |
| 147 | 147 | #[derive(Clone, Copy, Default)] |
library/std/tests/env_modify.rs-1| ... | ... | @@ -99,7 +99,6 @@ fn test_env_set_var() { |
| 99 | 99 | |
| 100 | 100 | #[test] |
| 101 | 101 | #[cfg_attr(not(any(unix, windows)), ignore, allow(unused))] |
| 102 | #[allow(deprecated)] | |
| 103 | 102 | fn env_home_dir() { |
| 104 | 103 | use std::path::PathBuf; |
| 105 | 104 |
library/test/src/term/terminfo/searcher.rs-1| ... | ... | @@ -9,7 +9,6 @@ use std::{env, fs}; |
| 9 | 9 | mod tests; |
| 10 | 10 | |
| 11 | 11 | /// Returns path to database entry for `term` |
| 12 | #[allow(deprecated)] | |
| 13 | 12 | pub(crate) fn get_dbpath_for_term(term: &str) -> Option<PathBuf> { |
| 14 | 13 | let mut dirs_to_search = Vec::new(); |
| 15 | 14 | let first_char = term.chars().next()?; |
library/windows_link/Cargo.toml created+15| ... | ... | @@ -0,0 +1,15 @@ |
| 1 | [package] | |
| 2 | name = "windows-link" | |
| 3 | description = "A drop-in replacement for the real windows-link crate for use in std only." | |
| 4 | version = "0.0.0" | |
| 5 | edition = "2024" | |
| 6 | ||
| 7 | [lib] | |
| 8 | test = false | |
| 9 | bench = false | |
| 10 | doc = false | |
| 11 | ||
| 12 | [features] | |
| 13 | # Enable using raw-dylib for Windows imports. | |
| 14 | # This will eventually be the default. | |
| 15 | windows_raw_dylib = [] |
library/windows_link/src/lib.rs created+52| ... | ... | @@ -0,0 +1,52 @@ |
| 1 | //! Provides the `link!` macro used by the generated windows bindings. | |
| 2 | //! | |
| 3 | //! This is a simple wrapper around an `extern` block with a `#[link]` attribute. | |
| 4 | //! It's very roughly equivalent to the windows-targets crate. | |
| 5 | #![no_std] | |
| 6 | #![no_core] | |
| 7 | #![feature(decl_macro)] | |
| 8 | #![feature(no_core)] | |
| 9 | ||
| 10 | pub macro link_raw_dylib { | |
| 11 | ($library:literal $abi:literal $($link_name:literal)? $(#[$doc:meta])? fn $($function:tt)*) => ( | |
| 12 | #[cfg_attr(not(target_arch = "x86"), link(name = $library, kind = "raw-dylib", modifiers = "+verbatim"))] | |
| 13 | #[cfg_attr(target_arch = "x86", link(name = $library, kind = "raw-dylib", modifiers = "+verbatim", import_name_type = "undecorated"))] | |
| 14 | unsafe extern $abi { | |
| 15 | $(#[link_name=$link_name])? | |
| 16 | pub fn $($function)*; | |
| 17 | } | |
| 18 | ) | |
| 19 | } | |
| 20 | ||
| 21 | pub macro link_dylib { | |
| 22 | ($library:literal $abi:literal $($link_name:literal)? $(#[$doc:meta])? fn $($function:tt)*) => ( | |
| 23 | // Note: the windows-targets crate uses a pre-built Windows.lib import library which we don't | |
| 24 | // have in this repo. So instead we always link kernel32.lib and add the rest of the import | |
| 25 | // libraries below by using an empty extern block. This works because extern blocks are not | |
| 26 | // connected to the library given in the #[link] attribute. | |
| 27 | #[link(name = "kernel32")] | |
| 28 | unsafe extern $abi { | |
| 29 | $(#[link_name=$link_name])? | |
| 30 | pub fn $($function)*; | |
| 31 | } | |
| 32 | ) | |
| 33 | } | |
| 34 | ||
| 35 | #[cfg(feature = "windows_raw_dylib")] | |
| 36 | pub macro link($($tt:tt)*) { | |
| 37 | $crate::link_raw_dylib!($($tt)*); | |
| 38 | } | |
| 39 | ||
| 40 | #[cfg(not(feature = "windows_raw_dylib"))] | |
| 41 | pub macro link($($tt:tt)*) { | |
| 42 | $crate::link_dylib!($($tt)*); | |
| 43 | } | |
| 44 | ||
| 45 | #[cfg(not(feature = "windows_raw_dylib"))] | |
| 46 | #[cfg(not(target_os = "cygwin"))] // Cygwin doesn't need these libs | |
| 47 | #[cfg_attr(target_vendor = "win7", link(name = "advapi32"))] | |
| 48 | #[link(name = "ntdll")] | |
| 49 | #[link(name = "userenv")] | |
| 50 | #[link(name = "ws2_32")] | |
| 51 | #[link(name = "dbghelp")] // required for backtrace-rs symbolization | |
| 52 | unsafe extern "C" {} |
library/windows_targets/Cargo.toml deleted-15| ... | ... | @@ -1,15 +0,0 @@ |
| 1 | [package] | |
| 2 | name = "windows-targets" | |
| 3 | description = "A drop-in replacement for the real windows-targets crate for use in std only." | |
| 4 | version = "0.0.0" | |
| 5 | edition = "2024" | |
| 6 | ||
| 7 | [lib] | |
| 8 | test = false | |
| 9 | bench = false | |
| 10 | doc = false | |
| 11 | ||
| 12 | [features] | |
| 13 | # Enable using raw-dylib for Windows imports. | |
| 14 | # This will eventually be the default. | |
| 15 | windows_raw_dylib = [] |
library/windows_targets/src/lib.rs deleted-52| ... | ... | @@ -1,52 +0,0 @@ |
| 1 | //! Provides the `link!` macro used by the generated windows bindings. | |
| 2 | //! | |
| 3 | //! This is a simple wrapper around an `extern` block with a `#[link]` attribute. | |
| 4 | //! It's very roughly equivalent to the windows-targets crate. | |
| 5 | #![no_std] | |
| 6 | #![no_core] | |
| 7 | #![feature(decl_macro)] | |
| 8 | #![feature(no_core)] | |
| 9 | ||
| 10 | pub macro link_raw_dylib { | |
| 11 | ($library:literal $abi:literal $($link_name:literal)? $(#[$doc:meta])? fn $($function:tt)*) => ( | |
| 12 | #[cfg_attr(not(target_arch = "x86"), link(name = $library, kind = "raw-dylib", modifiers = "+verbatim"))] | |
| 13 | #[cfg_attr(target_arch = "x86", link(name = $library, kind = "raw-dylib", modifiers = "+verbatim", import_name_type = "undecorated"))] | |
| 14 | unsafe extern $abi { | |
| 15 | $(#[link_name=$link_name])? | |
| 16 | pub fn $($function)*; | |
| 17 | } | |
| 18 | ) | |
| 19 | } | |
| 20 | ||
| 21 | pub macro link_dylib { | |
| 22 | ($library:literal $abi:literal $($link_name:literal)? $(#[$doc:meta])? fn $($function:tt)*) => ( | |
| 23 | // Note: the windows-targets crate uses a pre-built Windows.lib import library which we don't | |
| 24 | // have in this repo. So instead we always link kernel32.lib and add the rest of the import | |
| 25 | // libraries below by using an empty extern block. This works because extern blocks are not | |
| 26 | // connected to the library given in the #[link] attribute. | |
| 27 | #[link(name = "kernel32")] | |
| 28 | unsafe extern $abi { | |
| 29 | $(#[link_name=$link_name])? | |
| 30 | pub fn $($function)*; | |
| 31 | } | |
| 32 | ) | |
| 33 | } | |
| 34 | ||
| 35 | #[cfg(feature = "windows_raw_dylib")] | |
| 36 | pub macro link($($tt:tt)*) { | |
| 37 | $crate::link_raw_dylib!($($tt)*); | |
| 38 | } | |
| 39 | ||
| 40 | #[cfg(not(feature = "windows_raw_dylib"))] | |
| 41 | pub macro link($($tt:tt)*) { | |
| 42 | $crate::link_dylib!($($tt)*); | |
| 43 | } | |
| 44 | ||
| 45 | #[cfg(not(feature = "windows_raw_dylib"))] | |
| 46 | #[cfg(not(target_os = "cygwin"))] // Cygwin doesn't need these libs | |
| 47 | #[cfg_attr(target_vendor = "win7", link(name = "advapi32"))] | |
| 48 | #[link(name = "ntdll")] | |
| 49 | #[link(name = "userenv")] | |
| 50 | #[link(name = "ws2_32")] | |
| 51 | #[link(name = "dbghelp")] // required for backtrace-rs symbolization | |
| 52 | unsafe extern "C" {} |
src/bootstrap/src/core/sanity.rs+2| ... | ... | @@ -46,6 +46,8 @@ const STAGE0_MISSING_TARGETS: &[&str] = &[ |
| 46 | 46 | "armv6-none-eabi", |
| 47 | 47 | "armv6-none-eabihf", |
| 48 | 48 | "thumbv6-none-eabi", |
| 49 | "aarch64v8r-unknown-none", | |
| 50 | "aarch64v8r-unknown-none-softfloat", | |
| 49 | 51 | ]; |
| 50 | 52 | |
| 51 | 53 | /// Minimum version threshold for libstdc++ required when using prebuilt LLVM |
src/doc/reference+1-1| ... | ... | @@ -1 +1 @@ |
| 1 | Subproject commit 28b5a54419985f03db5294de5eede71b6665b594 | |
| 1 | Subproject commit 990819b86c22bbf538c0526f0287670f3dc1a67a |
src/doc/rust-by-example+1-1| ... | ... | @@ -1 +1 @@ |
| 1 | Subproject commit 8de6ff811315ac3a96ebe01d74057382e42ffdee | |
| 1 | Subproject commit bac931ef1673af63fb60c3d691633034713cca20 |
src/doc/rustc/src/SUMMARY.md+1| ... | ... | @@ -50,6 +50,7 @@ |
| 50 | 50 | - [aarch64-unknown-linux-gnu](platform-support/aarch64-unknown-linux-gnu.md) |
| 51 | 51 | - [aarch64-unknown-linux-musl](platform-support/aarch64-unknown-linux-musl.md) |
| 52 | 52 | - [aarch64-unknown-none*](platform-support/aarch64-unknown-none.md) |
| 53 | - [aarch64v8r-unknown-none*](platform-support/aarch64v8r-unknown-none.md) | |
| 53 | 54 | - [aarch64_be-unknown-none-softfloat](platform-support/aarch64_be-unknown-none-softfloat.md) |
| 54 | 55 | - [aarch64_be-unknown-linux-musl](platform-support/aarch64_be-unknown-linux-musl.md) |
| 55 | 56 | - [amdgcn-amd-amdhsa](platform-support/amdgcn-amd-amdhsa.md) |
src/doc/rustc/src/platform-support.md+2| ... | ... | @@ -275,6 +275,8 @@ target | std | host | notes |
| 275 | 275 | [`aarch64-unknown-trusty`](platform-support/trusty.md) | ✓ | | |
| 276 | 276 | [`aarch64-uwp-windows-msvc`](platform-support/uwp-windows-msvc.md) | ✓ | | |
| 277 | 277 | [`aarch64-wrs-vxworks`](platform-support/vxworks.md) | ✓ | | ARM64 VxWorks OS |
| 278 | [`aarch64v8r-unknown-none`](platform-support/aarch64v8r-unknown-none.md) | * | | Bare Armv8-R in AArch64 mode, hardfloat | |
| 279 | [`aarch64v8r-unknown-none-softfloat`](platform-support/aarch64v8r-unknown-none.md) | * | | Bare Armv8-R in AArch64 mode, softfloat | |
| 278 | 280 | [`aarch64_be-unknown-hermit`](platform-support/hermit.md) | ✓ | | ARM64 Hermit (big-endian) |
| 279 | 281 | `aarch64_be-unknown-linux-gnu` | ✓ | ✓ | ARM64 Linux (big-endian) |
| 280 | 282 | `aarch64_be-unknown-linux-gnu_ilp32` | ✓ | ✓ | ARM64 Linux (big-endian, ILP32 ABI) |
src/doc/rustc/src/platform-support/aarch64v8r-unknown-none.md created+84| ... | ... | @@ -0,0 +1,84 @@ |
| 1 | # `aarch64v8r-unknown-none` and `aarch64v8r-unknown-none-softfloat` | |
| 2 | ||
| 3 | * **Tier: 3** | |
| 4 | * **Library Support:** core and alloc (bare-metal, `#![no_std]`) | |
| 5 | ||
| 6 | Bare-metal target for CPUs in the Armv8-R architecture family, running in | |
| 7 | AArch64 mode. Processors in this family include the | |
| 8 | [Arm Cortex-R82][cortex-r82]. | |
| 9 | ||
| 10 | For Armv8-R CPUs running in AArch32 mode (such as the Arm Cortex-R52), see | |
| 11 | [`armv8r-none-eabihf`](armv8r-none-eabihf.md) instead. | |
| 12 | ||
| 13 | [cortex-r82]: https://developer.arm.com/processors/Cortex-R82 | |
| 14 | ||
| 15 | ## Target maintainers | |
| 16 | ||
| 17 | - [Rust Embedded Devices Working Group Arm Team] | |
| 18 | - [@rust-lang/arm-maintainers][arm_maintainers] ([rust@arm.com][arm_email]) | |
| 19 | ||
| 20 | [Rust Embedded Devices Working Group Arm Team]: https://github.com/rust-embedded/wg?tab=readme-ov-file#the-arm-team | |
| 21 | [arm_maintainers]: https://github.com/rust-lang/team/blob/master/teams/arm-maintainers.toml | |
| 22 | [arm_email]: mailto:rust@arm.com | |
| 23 | ||
| 24 | ## Target CPU and Target Feature options | |
| 25 | ||
| 26 | Unlike AArch64 v8-A processors, not all AArch64 v8-R processors include an FPU | |
| 27 | (that is, not all Armv8-R AArch64 processors implement the optional Armv8 | |
| 28 | `FEAT_FP` extension). If you do not have an FPU, or have an FPU but wish to use | |
| 29 | a soft-float ABI anyway, you should use the `aarch64v8r-unknown-none-softfloat` | |
| 30 | target. If you wish to use the standard hard-float Arm AArch64 calling | |
| 31 | convention, and you have an FPU, you can use the `aarch64v8r-unknown-none` | |
| 32 | target. | |
| 33 | ||
| 34 | When using the `aarch64v8r-unknown-none` target, the minimum floating-point | |
| 35 | features assumed are the Advanced SIMD features (`FEAT_AdvSIMD`, or `+neon`), | |
| 36 | the implementation of which is branded Arm NEON. | |
| 37 | ||
| 38 | If your processor supports a different set of floating-point features than the | |
| 39 | default expectations then these should also be enabled or disabled as needed | |
| 40 | with [`-C target-feature=(+/-)`][target-feature]. However, note that currently | |
| 41 | Rust does not support building hard-float AArch64 targets with Advanced SIMD | |
| 42 | support disabled. It is also possible to tell Rust (or LLVM) that you have a | |
| 43 | specific model of Arm processor, using the [`-Ctarget-cpu`][target-cpu] option. | |
| 44 | Doing so may change the default set of target-features enabled. | |
| 45 | ||
| 46 | [target-feature]: https://doc.rust-lang.org/rustc/codegen-options/index.html#target-feature | |
| 47 | [target-cpu]: https://doc.rust-lang.org/rustc/codegen-options/index.html#target-cpu | |
| 48 | ||
| 49 | ## Requirements | |
| 50 | ||
| 51 | These targets are cross-compiled and use static linking. | |
| 52 | ||
| 53 | By default, the `lld` linker included with Rust will be used; however, you may | |
| 54 | want to use the GNU linker instead. This can be obtained for Windows/Mac/Linux | |
| 55 | from the [Arm Developer Website][arm-gnu-toolchain], or possibly from your OS's | |
| 56 | package manager. To use it, add the following to your `.cargo/config.toml`: | |
| 57 | ||
| 58 | ```toml | |
| 59 | [target.aarch64-unknown-none] | |
| 60 | linker = "aarch64-none-elf-ld" | |
| 61 | ``` | |
| 62 | ||
| 63 | The GNU linker can also be used by specifying `aarch64-none-elf-gcc` as the | |
| 64 | linker. This is needed when using GCC's link time optimization. | |
| 65 | ||
| 66 | These targets don't provide a linker script, so you'll need to bring your own | |
| 67 | according to the specific device you are using. Pass | |
| 68 | `-Clink-arg=-Tyour_script.ld` as a rustc argument to make the linker use | |
| 69 | `your_script.ld` during linking. | |
| 70 | ||
| 71 | [arm-gnu-toolchain]: https://developer.arm.com/Tools%20and%20Software/GNU%20Toolchain | |
| 72 | ||
| 73 | ## Cross-compilation toolchains and C code | |
| 74 | ||
| 75 | This target supports C code compiled with the `aarch64-none-elf` target | |
| 76 | triple and a suitable `-march` or `-mcpu` flag. | |
| 77 | ||
| 78 | ## Start-up and Low-Level Code | |
| 79 | ||
| 80 | The [Rust Embedded Devices Working Group Arm Team] maintain the | |
| 81 | [`aarch64-cpu`] crate, which may be useful for writing bare-metal code using | |
| 82 | this target. | |
| 83 | ||
| 84 | [`aarch64-cpu`]: https://docs.rs/aarch64-cpu |
src/doc/rustc/src/platform-support/armv8r-none-eabihf.md+3| ... | ... | @@ -15,6 +15,9 @@ and [Cortex-R52+][cortex-r52-plus]. |
| 15 | 15 | See [`arm-none-eabi`](arm-none-eabi.md) for information applicable to all |
| 16 | 16 | `arm-none-eabi` targets. |
| 17 | 17 | |
| 18 | For Armv8-R CPUs running in AArch64 mode (such as the Arm Cortex-R82), see | |
| 19 | [`aarch64v8r-unknown-none`](aarch64v8r-unknown-none.md) instead. | |
| 20 | ||
| 18 | 21 | [cortex-r52]: https://www.arm.com/products/silicon-ip-cpu/cortex-r/cortex-r52 |
| 19 | 22 | [cortex-r52-plus]: https://www.arm.com/products/silicon-ip-cpu/cortex-r/cortex-r52-plus |
| 20 | 23 |
src/doc/rustc/src/platform-support/xtensa.md+1-1| ... | ... | @@ -24,4 +24,4 @@ Xtensa targets that support `std` are documented in the [ESP-IDF platform suppor |
| 24 | 24 | |
| 25 | 25 | ## Building the targets |
| 26 | 26 | |
| 27 | The targets can be built by installing the [Xtensa enabled Rust channel](https://github.com/esp-rs/rust/). See instructions in the [RISC-V and Xtensa Targets section of The Rust on ESP Book](https://docs.espressif.com/projects/rust/book/installation/index.html). | |
| 27 | The targets can be built by installing the [Xtensa enabled Rust channel](https://github.com/esp-rs/rust/). See instructions in the [RISC-V and Xtensa Targets section of The Rust on ESP Book](https://docs.espressif.com/projects/rust/book/getting-started/toolchain.html). |
src/doc/unstable-book/src/language-features/asm-experimental-arch.md+2-39| ... | ... | @@ -8,7 +8,6 @@ The tracking issue for this feature is: [#93335] |
| 8 | 8 | |
| 9 | 9 | This feature tracks `asm!` and `global_asm!` support for the following architectures: |
| 10 | 10 | - NVPTX |
| 11 | - PowerPC | |
| 12 | 11 | - Hexagon |
| 13 | 12 | - MIPS32r2 and MIPS64r2 |
| 14 | 13 | - wasm32 |
| ... | ... | @@ -31,16 +30,6 @@ This feature tracks `asm!` and `global_asm!` support for the following architect |
| 31 | 30 | | NVPTX | `reg64` | None\* | `l` | |
| 32 | 31 | | Hexagon | `reg` | `r[0-28]` | `r` | |
| 33 | 32 | | Hexagon | `preg` | `p[0-3]` | Only clobbers | |
| 34 | | PowerPC | `reg` | `r0`, `r[3-12]`, `r[14-29]`\* | `r` | | |
| 35 | | PowerPC | `reg_nonzero` | `r[3-12]`, `r[14-29]`\* | `b` | | |
| 36 | | PowerPC | `freg` | `f[0-31]` | `f` | | |
| 37 | | PowerPC | `vreg` | `v[0-31]` | `v` | | |
| 38 | | PowerPC | `vsreg | `vs[0-63]` | `wa` | | |
| 39 | | PowerPC | `cr` | `cr[0-7]`, `cr` | Only clobbers | | |
| 40 | | PowerPC | `ctr` | `ctr` | Only clobbers | | |
| 41 | | PowerPC | `lr` | `lr` | Only clobbers | | |
| 42 | | PowerPC | `xer` | `xer` | Only clobbers | | |
| 43 | | PowerPC | `spe_acc` | `spe_acc` | Only clobbers | | |
| 44 | 33 | | wasm32 | `local` | None\* | `r` | |
| 45 | 34 | | BPF | `reg` | `r[0-10]` | `r` | |
| 46 | 35 | | BPF | `wreg` | `w[0-10]` | `w` | |
| ... | ... | @@ -62,10 +51,6 @@ This feature tracks `asm!` and `global_asm!` support for the following architect |
| 62 | 51 | > - NVPTX doesn't have a fixed register set, so named registers are not supported. |
| 63 | 52 | > |
| 64 | 53 | > - WebAssembly doesn't have registers, so named registers are not supported. |
| 65 | > | |
| 66 | > - r29 is reserved only on 32 bit PowerPC targets. | |
| 67 | > | |
| 68 | > - spe_acc is only available on PowerPC SPE targets. | |
| 69 | 54 | |
| 70 | 55 | # Register class supported types |
| 71 | 56 | |
| ... | ... | @@ -80,17 +65,6 @@ This feature tracks `asm!` and `global_asm!` support for the following architect |
| 80 | 65 | | NVPTX | `reg64` | None | `i8`, `i16`, `i32`, `f32`, `i64`, `f64` | |
| 81 | 66 | | Hexagon | `reg` | None | `i8`, `i16`, `i32`, `f32` | |
| 82 | 67 | | Hexagon | `preg` | N/A | Only clobbers | |
| 83 | | PowerPC | `reg` | None | `i8`, `i16`, `i32`, `i64` (powerpc64 only) | | |
| 84 | | PowerPC | `reg_nonzero` | None | `i8`, `i16`, `i32`, `i64` (powerpc64 only) | | |
| 85 | | PowerPC | `freg` | None | `f32`, `f64` | | |
| 86 | | PowerPC | `vreg` | `altivec` | `i8x16`, `i16x8`, `i32x4`, `f32x4` | | |
| 87 | | PowerPC | `vreg` | `vsx` | `f32`, `f64`, `i64x2`, `f64x2` | | |
| 88 | | PowerPC | `vsreg` | `vsx` | The union of vsx and altivec vreg types | | |
| 89 | | PowerPC | `cr` | N/A | Only clobbers | | |
| 90 | | PowerPC | `ctr` | N/A | Only clobbers | | |
| 91 | | PowerPC | `lr` | N/A | Only clobbers | | |
| 92 | | PowerPC | `xer` | N/A | Only clobbers | | |
| 93 | | PowerPC | `spe_acc` | N/A | Only clobbers | | |
| 94 | 68 | | wasm32 | `local` | None | `i8` `i16` `i32` `i64` `f32` `f64` | |
| 95 | 69 | | BPF | `reg` | None | `i8` `i16` `i32` `i64` | |
| 96 | 70 | | BPF | `wreg` | `alu32` | `i8` `i16` `i32` | |
| ... | ... | @@ -111,10 +85,6 @@ This feature tracks `asm!` and `global_asm!` support for the following architect |
| 111 | 85 | | Hexagon | `r29` | `sp` | |
| 112 | 86 | | Hexagon | `r30` | `fr` | |
| 113 | 87 | | Hexagon | `r31` | `lr` | |
| 114 | | PowerPC | `r1` | `sp` | | |
| 115 | | PowerPC | `r31` | `fp` | | |
| 116 | | PowerPC | `r[0-31]` | `[0-31]` | | |
| 117 | | PowerPC | `f[0-31]` | `fr[0-31]`| | |
| 118 | 88 | | BPF | `r[0-10]` | `w[0-10]` | |
| 119 | 89 | | AVR | `XH` | `r27` | |
| 120 | 90 | | AVR | `XL` | `r26` | |
| ... | ... | @@ -153,16 +123,14 @@ This feature tracks `asm!` and `global_asm!` support for the following architect |
| 153 | 123 | | Architecture | Unsupported register | Reason | |
| 154 | 124 | | ------------ | --------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
| 155 | 125 | | All | `sp`, `r14`/`o6` (SPARC) | The stack pointer must be restored to its original value at the end of an asm code block. | |
| 156 | | All | `fr` (Hexagon), `fp` (PowerPC), `$fp` (MIPS), `Y` (AVR), `r4` (MSP430), `a6` (M68k), `r30`/`i6` (SPARC) | The frame pointer cannot be used as an input or output. | | |
| 157 | | All | `r19` (Hexagon), `r29` (PowerPC 32 bit only), `r30` (PowerPC) | These are used internally by LLVM as "base pointer" for functions with complex stack frames. | | |
| 126 | | All | `fr` (Hexagon) `$fp` (MIPS), `Y` (AVR), `r4` (MSP430), `a6` (M68k), `r30`/`i6` (SPARC) | The frame pointer cannot be used as an input or output. | | |
| 127 | | All | `r19` (Hexagon) | These are used internally by LLVM as "base pointer" for functions with complex stack frames. | | |
| 158 | 128 | | MIPS | `$0` or `$zero` | This is a constant zero register which can't be modified. | |
| 159 | 129 | | MIPS | `$1` or `$at` | Reserved for assembler. | |
| 160 | 130 | | MIPS | `$26`/`$k0`, `$27`/`$k1` | OS-reserved registers. | |
| 161 | 131 | | MIPS | `$28`/`$gp` | Global pointer cannot be used as inputs or outputs. | |
| 162 | 132 | | MIPS | `$ra` | Return address cannot be used as inputs or outputs. | |
| 163 | 133 | | Hexagon | `lr` | This is the link register which cannot be used as an input or output. | |
| 164 | | PowerPC | `r2`, `r13` | These are system reserved registers. | | |
| 165 | | PowerPC | `vrsave` | The vrsave register cannot be used as an input or output. | | |
| 166 | 134 | | AVR | `r0`, `r1`, `r1r0` | Due to an issue in LLVM, the `r0` and `r1` registers cannot be used as inputs or outputs. If modified, they must be restored to their original values before the end of the block. | |
| 167 | 135 | |MSP430 | `r0`, `r2`, `r3` | These are the program counter, status register, and constant generator respectively. Neither the status register nor constant generator can be written to. | |
| 168 | 136 | | M68k | `a4`, `a5` | Used internally by LLVM for the base pointer and global base pointer. | |
| ... | ... | @@ -189,11 +157,6 @@ This feature tracks `asm!` and `global_asm!` support for the following architect |
| 189 | 157 | | NVPTX | `reg32` | None | `r0` | None | |
| 190 | 158 | | NVPTX | `reg64` | None | `rd0` | None | |
| 191 | 159 | | Hexagon | `reg` | None | `r0` | None | |
| 192 | | PowerPC | `reg` | None | `0` | None | | |
| 193 | | PowerPC | `reg_nonzero` | None | `3` | None | | |
| 194 | | PowerPC | `freg` | None | `0` | None | | |
| 195 | | PowerPC | `vreg` | None | `0` | None | | |
| 196 | | PowerPC | `vsreg` | None | `0` | None | | |
| 197 | 160 | | SPARC | `reg` | None | `%o0` | None | |
| 198 | 161 | | CSKY | `reg` | None | `r0` | None | |
| 199 | 162 | | CSKY | `freg` | None | `f0` | None | |
src/tools/clippy/tests/ui/recursive_format_impl.stderr-18| ... | ... | @@ -12,72 +12,54 @@ error: using `self` as `Display` in `impl Display` will cause infinite recursion |
| 12 | 12 | | |
| 13 | 13 | LL | write!(f, "{}", self) |
| 14 | 14 | | ^^^^^^^^^^^^^^^^^^^^^ |
| 15 | | | |
| 16 | = note: this error originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 17 | 15 | |
| 18 | 16 | error: using `self` as `Display` in `impl Display` will cause infinite recursion |
| 19 | 17 | --> tests/ui/recursive_format_impl.rs:86:9 |
| 20 | 18 | | |
| 21 | 19 | LL | write!(f, "{}", &self) |
| 22 | 20 | | ^^^^^^^^^^^^^^^^^^^^^^ |
| 23 | | | |
| 24 | = note: this error originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 25 | 21 | |
| 26 | 22 | error: using `self` as `Debug` in `impl Debug` will cause infinite recursion |
| 27 | 23 | --> tests/ui/recursive_format_impl.rs:93:9 |
| 28 | 24 | | |
| 29 | 25 | LL | write!(f, "{:?}", &self) |
| 30 | 26 | | ^^^^^^^^^^^^^^^^^^^^^^^^ |
| 31 | | | |
| 32 | = note: this error originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 33 | 27 | |
| 34 | 28 | error: using `self` as `Display` in `impl Display` will cause infinite recursion |
| 35 | 29 | --> tests/ui/recursive_format_impl.rs:103:9 |
| 36 | 30 | | |
| 37 | 31 | LL | write!(f, "{}", &&&self) |
| 38 | 32 | | ^^^^^^^^^^^^^^^^^^^^^^^^ |
| 39 | | | |
| 40 | = note: this error originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 41 | 33 | |
| 42 | 34 | error: using `self` as `Display` in `impl Display` will cause infinite recursion |
| 43 | 35 | --> tests/ui/recursive_format_impl.rs:178:9 |
| 44 | 36 | | |
| 45 | 37 | LL | write!(f, "{}", &*self) |
| 46 | 38 | | ^^^^^^^^^^^^^^^^^^^^^^^ |
| 47 | | | |
| 48 | = note: this error originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 49 | 39 | |
| 50 | 40 | error: using `self` as `Debug` in `impl Debug` will cause infinite recursion |
| 51 | 41 | --> tests/ui/recursive_format_impl.rs:185:9 |
| 52 | 42 | | |
| 53 | 43 | LL | write!(f, "{:?}", &*self) |
| 54 | 44 | | ^^^^^^^^^^^^^^^^^^^^^^^^^ |
| 55 | | | |
| 56 | = note: this error originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 57 | 45 | |
| 58 | 46 | error: using `self` as `Display` in `impl Display` will cause infinite recursion |
| 59 | 47 | --> tests/ui/recursive_format_impl.rs:202:9 |
| 60 | 48 | | |
| 61 | 49 | LL | write!(f, "{}", *self) |
| 62 | 50 | | ^^^^^^^^^^^^^^^^^^^^^^ |
| 63 | | | |
| 64 | = note: this error originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 65 | 51 | |
| 66 | 52 | error: using `self` as `Display` in `impl Display` will cause infinite recursion |
| 67 | 53 | --> tests/ui/recursive_format_impl.rs:219:9 |
| 68 | 54 | | |
| 69 | 55 | LL | write!(f, "{}", **&&*self) |
| 70 | 56 | | ^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| 71 | | | |
| 72 | = note: this error originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 73 | 57 | |
| 74 | 58 | error: using `self` as `Display` in `impl Display` will cause infinite recursion |
| 75 | 59 | --> tests/ui/recursive_format_impl.rs:236:9 |
| 76 | 60 | | |
| 77 | 61 | LL | write!(f, "{}", &&**&&*self) |
| 78 | 62 | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| 79 | | | |
| 80 | = note: this error originates in the macro `write` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 81 | 63 | |
| 82 | 64 | error: aborting due to 10 previous errors |
| 83 | 65 |
src/tools/generate-windows-sys/Cargo.toml+1-1| ... | ... | @@ -4,4 +4,4 @@ version = "0.1.0" |
| 4 | 4 | edition = "2021" |
| 5 | 5 | |
| 6 | 6 | [dependencies.windows-bindgen] |
| 7 | version = "0.61.0" | |
| 7 | version = "0.66.0" |
src/tools/generate-windows-sys/src/main.rs+1-1| ... | ... | @@ -29,7 +29,7 @@ fn main() -> Result<(), Box<dyn Error>> { |
| 29 | 29 | |
| 30 | 30 | sort_bindings("bindings.txt")?; |
| 31 | 31 | |
| 32 | windows_bindgen::bindgen(["--etc", "bindings.txt"]); | |
| 32 | windows_bindgen::bindgen(["--etc", "bindings.txt"]).unwrap(); | |
| 33 | 33 | |
| 34 | 34 | let mut f = std::fs::File::options().append(true).open("windows_sys.rs")?; |
| 35 | 35 | f.write_all(ARM32_SHIM.as_bytes())?; |
src/tools/miri/tests/fail-dep/concurrency/windows_join_main.stderr-1| ... | ... | @@ -31,7 +31,6 @@ LL | | assert_eq!(WaitForSingleObject(MAIN_THREAD, INFINITE), WAIT_O |
| 31 | 31 | LL | | } |
| 32 | 32 | LL | | }) |
| 33 | 33 | | |______^ |
| 34 | = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 35 | 34 | |
| 36 | 35 | note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace |
| 37 | 36 |
src/tools/miri/tests/fail/dangling_pointers/dangling_primitive.stderr-1| ... | ... | @@ -16,7 +16,6 @@ help: ALLOC was deallocated here: |
| 16 | 16 | | |
| 17 | 17 | LL | }; |
| 18 | 18 | | ^ |
| 19 | = note: this error originates in the macro `$crate::macros::dbg_internal` which comes from the expansion of the macro `dbg` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 20 | 19 | |
| 21 | 20 | note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace |
| 22 | 21 |
src/tools/miri/tests/fail/dangling_pointers/out_of_bounds_read.stderr-1| ... | ... | @@ -11,7 +11,6 @@ help: ALLOC was allocated here: |
| 11 | 11 | | |
| 12 | 12 | LL | let v: Vec<u16> = vec![1, 2]; |
| 13 | 13 | | ^^^^^^^^^^ |
| 14 | = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 15 | 14 | |
| 16 | 15 | note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace |
| 17 | 16 |
src/tools/miri/tests/fail/dangling_pointers/out_of_bounds_read_neg_offset.stderr-1| ... | ... | @@ -11,7 +11,6 @@ help: ALLOC was allocated here: |
| 11 | 11 | | |
| 12 | 12 | LL | let v: Vec<u16> = vec![1, 2]; |
| 13 | 13 | | ^^^^^^^^^^ |
| 14 | = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 15 | 14 | |
| 16 | 15 | note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace |
| 17 | 16 |
src/tools/miri/tests/fail/dangling_pointers/out_of_bounds_write.stderr-1| ... | ... | @@ -11,7 +11,6 @@ help: ALLOC was allocated here: |
| 11 | 11 | | |
| 12 | 12 | LL | let mut v: Vec<u16> = vec![1, 2]; |
| 13 | 13 | | ^^^^^^^^^^ |
| 14 | = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 15 | 14 | |
| 16 | 15 | note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace |
| 17 | 16 |
src/tools/miri/tests/fail/erroneous_const2.stderr-2| ... | ... | @@ -23,8 +23,6 @@ note: erroneous constant encountered |
| 23 | 23 | | |
| 24 | 24 | LL | println!("{}", FOO); |
| 25 | 25 | | ^^^ |
| 26 | | | |
| 27 | = note: this note originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 28 | 26 | |
| 29 | 27 | error: aborting due to 1 previous error |
| 30 | 28 |
src/tools/miri/tests/fail/function_calls/return_pointer_on_unwind.stderr-1| ... | ... | @@ -11,7 +11,6 @@ LL | dbg!(x.0); |
| 11 | 11 | | |
| 12 | 12 | = help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior |
| 13 | 13 | = help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information |
| 14 | = note: this error originates in the macro `$crate::macros::dbg_internal` which comes from the expansion of the macro `dbg` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 15 | 14 | |
| 16 | 15 | Uninitialized memory occurred at ALLOC[0x0..0x4], in this allocation: |
| 17 | 16 | ALLOC (stack variable, size: 132, align: 4) { |
src/tools/miri/tests/fail/intrinsics/simd-scatter.stderr-1| ... | ... | @@ -16,7 +16,6 @@ help: ALLOC was allocated here: |
| 16 | 16 | | |
| 17 | 17 | LL | let mut vec: Vec<i8> = vec![10, 11, 12, 13, 14, 15, 16, 17, 18]; |
| 18 | 18 | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| 19 | = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 20 | 19 | |
| 21 | 20 | note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace |
| 22 | 21 |
src/tools/miri/tests/fail/provenance/mix-ptrs1.stderr-1| ... | ... | @@ -6,7 +6,6 @@ LL | assert_eq!(*strange_ptr.with_addr(ptr.addr()), 0); |
| 6 | 6 | | |
| 7 | 7 | = help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior |
| 8 | 8 | = help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information |
| 9 | = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 10 | 9 | |
| 11 | 10 | note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace |
| 12 | 11 |
src/tools/miri/tests/fail/provenance/mix-ptrs2.stderr-1| ... | ... | @@ -6,7 +6,6 @@ LL | assert_eq!(*ptr, 42); |
| 6 | 6 | | |
| 7 | 7 | = help: this indicates a bug in the program: it performed an invalid operation, and caused Undefined Behavior |
| 8 | 8 | = help: see https://doc.rust-lang.org/nightly/reference/behavior-considered-undefined.html for further information |
| 9 | = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 10 | 9 | |
| 11 | 10 | note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace |
| 12 | 11 |
src/tools/miri/tests/fail/rc_as_ptr.stderr-1| ... | ... | @@ -16,7 +16,6 @@ help: ALLOC was deallocated here: |
| 16 | 16 | | |
| 17 | 17 | LL | drop(strong); |
| 18 | 18 | | ^^^^^^^^^^^^ |
| 19 | = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 20 | 19 | |
| 21 | 20 | note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace |
| 22 | 21 |
src/tools/miri/tests/fail/stacked_borrows/zst_slice.stderr-1| ... | ... | @@ -11,7 +11,6 @@ help: <TAG> would have been created here, but this is a zero-size retag ([0x0..0 |
| 11 | 11 | | |
| 12 | 12 | LL | assert_eq!(*s.as_ptr().add(1), 2); |
| 13 | 13 | | ^^^^^^^^^^ |
| 14 | = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 15 | 14 | |
| 16 | 15 | note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace |
| 17 | 16 |
src/tools/miri/tests/fail/tree_borrows/parent_read_freezes_raw_mut.stderr-1| ... | ... | @@ -24,7 +24,6 @@ help: the accessed tag <TAG> later transitioned to Frozen due to a reborrow (act |
| 24 | 24 | LL | assert_eq!(root, 0); // Parent Read |
| 25 | 25 | | ^^^^^^^^^^^^^^^^^^^ |
| 26 | 26 | = help: this transition corresponds to a loss of write permissions |
| 27 | = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 28 | 27 | |
| 29 | 28 | note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace |
| 30 | 29 |
src/tools/miri/tests/fail/tree_borrows/protector-write-lazy.stderr-1| ... | ... | @@ -18,7 +18,6 @@ help: the accessed tag <TAG> later transitioned to Disabled due to a protector r |
| 18 | 18 | LL | } |
| 19 | 19 | | ^ |
| 20 | 20 | = help: this transition corresponds to a loss of read and write permissions |
| 21 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 22 | 21 | |
| 23 | 22 | note: some details are omitted, run with `MIRIFLAGS=-Zmiri-backtrace=full` for a verbose backtrace |
| 24 | 23 |
src/tools/miri/tests/pass/alloc-access-tracking.stderr-2| ... | ... | @@ -15,8 +15,6 @@ note: read access at ALLOC[0..1] |
| 15 | 15 | | |
| 16 | 16 | LL | assert_eq!(*ptr, 42); |
| 17 | 17 | | ^^^^^^^^^^^^^^^^^^^^ tracking was triggered here |
| 18 | | | |
| 19 | = note: this note originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 20 | 18 | |
| 21 | 19 | note: freed allocation ALLOC |
| 22 | 20 | --> RUSTLIB/alloc/src/boxed.rs:LL:CC |
src/tools/tidy/src/pal.rs+1-1| ... | ... | @@ -38,7 +38,7 @@ use crate::walk::{filter_dirs, walk}; |
| 38 | 38 | const EXCEPTION_PATHS: &[&str] = &[ |
| 39 | 39 | "library/compiler-builtins", |
| 40 | 40 | "library/std_detect", |
| 41 | "library/windows_targets", | |
| 41 | "library/windows_link", | |
| 42 | 42 | "library/panic_abort", |
| 43 | 43 | "library/panic_unwind", |
| 44 | 44 | "library/unwind", |
src/tools/tidy/src/target_specific_tests.rs+1-1| ... | ... | @@ -98,7 +98,7 @@ fn arch_to_llvm_component(arch: &str) -> String { |
| 98 | 98 | // enough for the purpose of this tidy check. |
| 99 | 99 | match arch { |
| 100 | 100 | "amdgcn" => "amdgpu".into(), |
| 101 | "aarch64_be" | "arm64_32" | "arm64e" | "arm64ec" => "aarch64".into(), | |
| 101 | "aarch64v8r" | "aarch64_be" | "arm64_32" | "arm64e" | "arm64ec" => "aarch64".into(), | |
| 102 | 102 | "i386" | "i586" | "i686" | "x86" | "x86_64" | "x86_64h" => "x86".into(), |
| 103 | 103 | "loongarch32" | "loongarch64" => "loongarch".into(), |
| 104 | 104 | "nvptx64" => "nvptx".into(), |
tests/assembly-llvm/targets/targets-elf.rs+6| ... | ... | @@ -67,6 +67,12 @@ |
| 67 | 67 | //@ revisions: aarch64_unknown_none_softfloat |
| 68 | 68 | //@ [aarch64_unknown_none_softfloat] compile-flags: --target aarch64-unknown-none-softfloat |
| 69 | 69 | //@ [aarch64_unknown_none_softfloat] needs-llvm-components: aarch64 |
| 70 | //@ revisions: aarch64v8r_unknown_none | |
| 71 | //@ [aarch64v8r_unknown_none] compile-flags: --target aarch64v8r-unknown-none | |
| 72 | //@ [aarch64v8r_unknown_none] needs-llvm-components: aarch64 | |
| 73 | //@ revisions: aarch64v8r_unknown_none_softfloat | |
| 74 | //@ [aarch64v8r_unknown_none_softfloat] compile-flags: --target aarch64v8r-unknown-none-softfloat | |
| 75 | //@ [aarch64v8r_unknown_none_softfloat] needs-llvm-components: aarch64 | |
| 70 | 76 | //@ revisions: aarch64_unknown_nto_qnx700 |
| 71 | 77 | //@ [aarch64_unknown_nto_qnx700] compile-flags: --target aarch64-unknown-nto-qnx700 |
| 72 | 78 | //@ [aarch64_unknown_nto_qnx700] needs-llvm-components: aarch64 |
tests/codegen-llvm/aarch64v8r-softfloat.rs created+45| ... | ... | @@ -0,0 +1,45 @@ |
| 1 | //@ add-minicore | |
| 2 | //@ compile-flags: --target aarch64v8r-unknown-none-softfloat -Zmerge-functions=disabled | |
| 3 | //@ needs-llvm-components: aarch64 | |
| 4 | #![crate_type = "lib"] | |
| 5 | #![feature(no_core, lang_items)] | |
| 6 | #![no_core] | |
| 7 | ||
| 8 | extern crate minicore; | |
| 9 | use minicore::*; | |
| 10 | ||
| 11 | // CHECK: i64 @pass_f64_C(i64 {{[^,]*}}) | |
| 12 | #[no_mangle] | |
| 13 | extern "C" fn pass_f64_C(x: f64) -> f64 { | |
| 14 | x | |
| 15 | } | |
| 16 | ||
| 17 | // CHECK: i64 @pass_f32_pair_C(i64 {{[^,]*}}) | |
| 18 | #[no_mangle] | |
| 19 | extern "C" fn pass_f32_pair_C(x: (f32, f32)) -> (f32, f32) { | |
| 20 | x | |
| 21 | } | |
| 22 | ||
| 23 | // CHECK: [2 x i64] @pass_f64_pair_C([2 x i64] {{[^,]*}}) | |
| 24 | #[no_mangle] | |
| 25 | extern "C" fn pass_f64_pair_C(x: (f64, f64)) -> (f64, f64) { | |
| 26 | x | |
| 27 | } | |
| 28 | ||
| 29 | // CHECK: i64 @pass_f64_Rust(i64 {{[^,]*}}) | |
| 30 | #[no_mangle] | |
| 31 | fn pass_f64_Rust(x: f64) -> f64 { | |
| 32 | x | |
| 33 | } | |
| 34 | ||
| 35 | // CHECK: i64 @pass_f32_pair_Rust(i64 {{[^,]*}}) | |
| 36 | #[no_mangle] | |
| 37 | fn pass_f32_pair_Rust(x: (f32, f32)) -> (f32, f32) { | |
| 38 | x | |
| 39 | } | |
| 40 | ||
| 41 | // CHECK: void @pass_f64_pair_Rust(ptr {{.*}}%{{[^ ]+}}, ptr {{.*}}%{{[^ ]+}}) | |
| 42 | #[no_mangle] | |
| 43 | fn pass_f64_pair_Rust(x: (f64, f64)) -> (f64, f64) { | |
| 44 | x | |
| 45 | } |
tests/codegen-llvm/sanitizer/kasan-emits-instrumentation.rs+3-1| ... | ... | @@ -2,9 +2,11 @@ |
| 2 | 2 | |
| 3 | 3 | //@ add-minicore |
| 4 | 4 | //@ compile-flags: -Zsanitizer=kernel-address -Copt-level=0 |
| 5 | //@ revisions: aarch64 riscv64imac riscv64gc x86_64 | |
| 5 | //@ revisions: aarch64 aarch64v8r riscv64imac riscv64gc x86_64 | |
| 6 | 6 | //@[aarch64] compile-flags: --target aarch64-unknown-none |
| 7 | 7 | //@[aarch64] needs-llvm-components: aarch64 |
| 8 | //@[aarch64v8r] compile-flags: --target aarch64v8r-unknown-none | |
| 9 | //@[aarch64v8r] needs-llvm-components: aarch64 | |
| 8 | 10 | //@[riscv64imac] compile-flags: --target riscv64imac-unknown-none-elf |
| 9 | 11 | //@[riscv64imac] needs-llvm-components: riscv |
| 10 | 12 | //@[riscv64gc] compile-flags: --target riscv64gc-unknown-none-elf |
tests/codegen-llvm/sanitizer/kcfi/add-cfi-normalize-integers-flag.rs+3-1| ... | ... | @@ -1,9 +1,11 @@ |
| 1 | 1 | // Verifies that "cfi-normalize-integers" module flag is added. |
| 2 | 2 | // |
| 3 | 3 | //@ add-minicore |
| 4 | //@ revisions: aarch64 x86_64 | |
| 4 | //@ revisions: aarch64 aarch64v8r x86_64 | |
| 5 | 5 | //@ [aarch64] compile-flags: --target aarch64-unknown-none |
| 6 | 6 | //@ [aarch64] needs-llvm-components: aarch64 |
| 7 | //@ [aarch64v8r] compile-flags: --target aarch64v8r-unknown-none | |
| 8 | //@ [aarch64v8r] needs-llvm-components: aarch64 | |
| 7 | 9 | //@ [x86_64] compile-flags: --target x86_64-unknown-none |
| 8 | 10 | //@ [x86_64] needs-llvm-components: x86 |
| 9 | 11 | //@ compile-flags: -Ctarget-feature=-crt-static -Zsanitizer=kcfi -Zsanitizer-cfi-normalize-integers |
tests/codegen-llvm/sanitizer/kcfi/add-kcfi-flag.rs+3-1| ... | ... | @@ -1,9 +1,11 @@ |
| 1 | 1 | // Verifies that "kcfi" module flag is added. |
| 2 | 2 | // |
| 3 | 3 | //@ add-minicore |
| 4 | //@ revisions: aarch64 x86_64 | |
| 4 | //@ revisions: aarch64 aarch64v8r x86_64 | |
| 5 | 5 | //@ [aarch64] compile-flags: --target aarch64-unknown-none |
| 6 | 6 | //@ [aarch64] needs-llvm-components: aarch64 |
| 7 | //@ [aarch64v8r] compile-flags: --target aarch64v8r-unknown-none | |
| 8 | //@ [aarch64v8r] needs-llvm-components: aarch64 | |
| 7 | 9 | //@ [x86_64] compile-flags: --target x86_64-unknown-none |
| 8 | 10 | //@ [x86_64] needs-llvm-components: x86 |
| 9 | 11 | //@ compile-flags: -Ctarget-feature=-crt-static -Zsanitizer=kcfi |
tests/codegen-llvm/sanitizer/kcfi/add-kcfi-offset-flag.rs+3-1| ... | ... | @@ -1,9 +1,11 @@ |
| 1 | 1 | // Verifies that "kcfi-offset" module flag is added. |
| 2 | 2 | // |
| 3 | 3 | //@ add-minicore |
| 4 | //@ revisions: aarch64 x86_64 | |
| 4 | //@ revisions: aarch64 aarch64v8r x86_64 | |
| 5 | 5 | //@ [aarch64] compile-flags: --target aarch64-unknown-none |
| 6 | 6 | //@ [aarch64] needs-llvm-components: aarch64 |
| 7 | //@ [aarch64v8r] compile-flags: --target aarch64v8r-unknown-none | |
| 8 | //@ [aarch64v8r] needs-llvm-components: aarch64 | |
| 7 | 9 | //@ [x86_64] compile-flags: --target x86_64-unknown-none |
| 8 | 10 | //@ [x86_64] needs-llvm-components: x86 |
| 9 | 11 | //@ compile-flags: -Ctarget-feature=-crt-static -Zsanitizer=kcfi -Z patchable-function-entry=4,3 |
tests/codegen-llvm/sanitizer/kcfi/emit-kcfi-operand-bundle-attr-sanitize-off.rs+3-1| ... | ... | @@ -1,9 +1,11 @@ |
| 1 | 1 | // Verifies that KCFI operand bundles are omitted. |
| 2 | 2 | // |
| 3 | 3 | //@ add-minicore |
| 4 | //@ revisions: aarch64 x86_64 | |
| 4 | //@ revisions: aarch64 aarch64v8r x86_64 | |
| 5 | 5 | //@ [aarch64] compile-flags: --target aarch64-unknown-none |
| 6 | 6 | //@ [aarch64] needs-llvm-components: aarch64 |
| 7 | //@ [aarch64v8r] compile-flags: --target aarch64v8r-unknown-none | |
| 8 | //@ [aarch64v8r] needs-llvm-components: aarch64 | |
| 7 | 9 | //@ [x86_64] compile-flags: --target x86_64-unknown-none |
| 8 | 10 | //@ [x86_64] needs-llvm-components: x86 |
| 9 | 11 | //@ compile-flags: -Cno-prepopulate-passes -Zsanitizer=kcfi -Copt-level=0 |
tests/codegen-llvm/sanitizer/kcfi/emit-kcfi-operand-bundle-itanium-cxx-abi-generalized.rs+3-1| ... | ... | @@ -1,9 +1,11 @@ |
| 1 | 1 | // Verifies that generalized KCFI type metadata for functions are emitted. |
| 2 | 2 | // |
| 3 | 3 | //@ add-minicore |
| 4 | //@ revisions: aarch64 x86_64 | |
| 4 | //@ revisions: aarch64 aarch64v8r x86_64 | |
| 5 | 5 | //@ [aarch64] compile-flags: --target aarch64-unknown-none |
| 6 | 6 | //@ [aarch64] needs-llvm-components: aarch64 |
| 7 | //@ [aarch64v8r] compile-flags: --target aarch64v8r-unknown-none | |
| 8 | //@ [aarch64v8r] needs-llvm-components: aarch64 | |
| 7 | 9 | //@ [x86_64] compile-flags: --target x86_64-unknown-none |
| 8 | 10 | //@ [x86_64] needs-llvm-components: x86 |
| 9 | 11 | //@ compile-flags: -Cno-prepopulate-passes -Zsanitizer=kcfi -Zsanitizer-cfi-generalize-pointers |
tests/codegen-llvm/sanitizer/kcfi/emit-kcfi-operand-bundle-itanium-cxx-abi-normalized-generalized.rs+3-1| ... | ... | @@ -1,9 +1,11 @@ |
| 1 | 1 | // Verifies that normalized and generalized KCFI type metadata for functions are emitted. |
| 2 | 2 | // |
| 3 | 3 | //@ add-minicore |
| 4 | //@ revisions: aarch64 x86_64 | |
| 4 | //@ revisions: aarch64 aarch64v8r x86_64 | |
| 5 | 5 | //@ [aarch64] compile-flags: --target aarch64-unknown-none |
| 6 | 6 | //@ [aarch64] needs-llvm-components: aarch64 |
| 7 | //@ [aarch64v8r] compile-flags: --target aarch64v8r-unknown-none | |
| 8 | //@ [aarch64v8r] needs-llvm-components: aarch64 | |
| 7 | 9 | //@ [x86_64] compile-flags: --target x86_64-unknown-none |
| 8 | 10 | //@ [x86_64] needs-llvm-components: x86 |
| 9 | 11 | //@ compile-flags: -Cno-prepopulate-passes -Zsanitizer=kcfi -Zsanitizer-cfi-normalize-integers -Zsanitizer-cfi-generalize-pointers |
tests/codegen-llvm/sanitizer/kcfi/emit-kcfi-operand-bundle-itanium-cxx-abi-normalized.rs+3-1| ... | ... | @@ -1,9 +1,11 @@ |
| 1 | 1 | // Verifies that normalized KCFI type metadata for functions are emitted. |
| 2 | 2 | // |
| 3 | 3 | //@ add-minicore |
| 4 | //@ revisions: aarch64 x86_64 | |
| 4 | //@ revisions: aarch64 aarch64v8r x86_64 | |
| 5 | 5 | //@ [aarch64] compile-flags: --target aarch64-unknown-none |
| 6 | 6 | //@ [aarch64] needs-llvm-components: aarch64 |
| 7 | //@ [aarch64v8r] compile-flags: --target aarch64v8r-unknown-none | |
| 8 | //@ [aarch64v8r] needs-llvm-components: aarch64 | |
| 7 | 9 | //@ [x86_64] compile-flags: --target x86_64-unknown-none |
| 8 | 10 | //@ [x86_64] needs-llvm-components: x86 |
| 9 | 11 | //@ compile-flags: -Cno-prepopulate-passes -Zsanitizer=kcfi -Zsanitizer-cfi-normalize-integers |
tests/codegen-llvm/sanitizer/kcfi/emit-kcfi-operand-bundle-itanium-cxx-abi.rs+3-1| ... | ... | @@ -1,9 +1,11 @@ |
| 1 | 1 | // Verifies that KCFI type metadata for functions are emitted. |
| 2 | 2 | // |
| 3 | 3 | //@ add-minicore |
| 4 | //@ revisions: aarch64 x86_64 | |
| 4 | //@ revisions: aarch64 aarch64v8r x86_64 | |
| 5 | 5 | //@ [aarch64] compile-flags: --target aarch64-unknown-none |
| 6 | 6 | //@ [aarch64] needs-llvm-components: aarch64 |
| 7 | //@ [aarch64v8r] compile-flags: --target aarch64v8r-unknown-none | |
| 8 | //@ [aarch64v8r] needs-llvm-components: aarch64 | |
| 7 | 9 | //@ [x86_64] compile-flags: --target x86_64-unknown-none |
| 8 | 10 | //@ [x86_64] needs-llvm-components: x86 |
| 9 | 11 | //@ compile-flags: -Cno-prepopulate-passes -Zsanitizer=kcfi -Copt-level=0 |
tests/codegen-llvm/sanitizer/kcfi/emit-kcfi-operand-bundle.rs+3-1| ... | ... | @@ -1,9 +1,11 @@ |
| 1 | 1 | // Verifies that KCFI operand bundles are emitted. |
| 2 | 2 | // |
| 3 | 3 | //@ add-minicore |
| 4 | //@ revisions: aarch64 x86_64 | |
| 4 | //@ revisions: aarch64 aarch64v8r x86_64 | |
| 5 | 5 | //@ [aarch64] compile-flags: --target aarch64-unknown-none |
| 6 | 6 | //@ [aarch64] needs-llvm-components: aarch64 |
| 7 | //@ [aarch64v8r] compile-flags: --target aarch64v8r-unknown-none | |
| 8 | //@ [aarch64v8r] needs-llvm-components: aarch64 | |
| 7 | 9 | //@ [x86_64] compile-flags: --target x86_64-unknown-none |
| 8 | 10 | //@ [x86_64] needs-llvm-components: x86 |
| 9 | 11 | //@ compile-flags: -Cno-prepopulate-passes -Zsanitizer=kcfi -Copt-level=0 |
tests/codegen-llvm/sanitizer/kcfi/emit-type-metadata-trait-objects.rs+3-1| ... | ... | @@ -1,9 +1,11 @@ |
| 1 | 1 | // Verifies that type metadata identifiers for trait objects are emitted correctly. |
| 2 | 2 | // |
| 3 | 3 | //@ add-minicore |
| 4 | //@ revisions: aarch64 x86_64 | |
| 4 | //@ revisions: aarch64v8r aarch64 x86_64 | |
| 5 | 5 | //@ [aarch64] compile-flags: --target aarch64-unknown-none |
| 6 | 6 | //@ [aarch64] needs-llvm-components: aarch64 |
| 7 | //@ [aarch64v8r] compile-flags: --target aarch64v8r-unknown-none | |
| 8 | //@ [aarch64v8r] needs-llvm-components: aarch64 | |
| 7 | 9 | //@ [x86_64] compile-flags: --target x86_64-unknown-none |
| 8 | 10 | //@ [x86_64] needs-llvm-components: x86 |
| 9 | 11 | //@ compile-flags: -Cno-prepopulate-passes -Zsanitizer=kcfi -Copt-level=0 |
tests/codegen-llvm/sanitizer/kcfi/fn-ptr-reify-shim.rs+3-1| ... | ... | @@ -1,7 +1,9 @@ |
| 1 | 1 | //@ add-minicore |
| 2 | //@ revisions: aarch64 x86_64 | |
| 2 | //@ revisions: aarch64 aarch64v8r x86_64 | |
| 3 | 3 | //@ [aarch64] compile-flags: --target aarch64-unknown-none |
| 4 | 4 | //@ [aarch64] needs-llvm-components: aarch64 |
| 5 | //@ [aarch64v8r] compile-flags: --target aarch64v8r-unknown-none | |
| 6 | //@ [aarch64v8r] needs-llvm-components: aarch64 | |
| 5 | 7 | //@ [x86_64] compile-flags: --target x86_64-unknown-none |
| 6 | 8 | //@ [x86_64] needs-llvm-components: x86 |
| 7 | 9 | //@ compile-flags: -Ctarget-feature=-crt-static -Zsanitizer=kcfi -Cno-prepopulate-passes -Copt-level=0 |
tests/codegen-llvm/sanitizer/kcfi/naked-function.rs+3-1| ... | ... | @@ -1,7 +1,9 @@ |
| 1 | 1 | //@ add-minicore |
| 2 | //@ revisions: aarch64 x86_64 | |
| 2 | //@ revisions: aarch64 aarch64v8r x86_64 | |
| 3 | 3 | //@ [aarch64] compile-flags: --target aarch64-unknown-none |
| 4 | 4 | //@ [aarch64] needs-llvm-components: aarch64 |
| 5 | //@ [aarch64v8r] compile-flags: --target aarch64v8r-unknown-none | |
| 6 | //@ [aarch64v8r] needs-llvm-components: aarch64 | |
| 5 | 7 | //@ [x86_64] compile-flags: --target x86_64-unknown-none |
| 6 | 8 | //@ [x86_64] needs-llvm-components: x86 |
| 7 | 9 | //@ compile-flags: -Ctarget-feature=-crt-static -Zsanitizer=kcfi -Cno-prepopulate-passes -Copt-level=0 |
tests/codegen-llvm/sanitizer/sanitize-off-asan-kasan.rs+3-1| ... | ... | @@ -3,9 +3,11 @@ |
| 3 | 3 | // |
| 4 | 4 | //@ add-minicore |
| 5 | 5 | //@ compile-flags: -Zsanitizer=kernel-address -Ctarget-feature=-crt-static -Copt-level=0 |
| 6 | //@ revisions: aarch64 riscv64imac riscv64gc x86_64 | |
| 6 | //@ revisions: aarch64 aarch64v8r riscv64imac riscv64gc x86_64 | |
| 7 | 7 | //@[aarch64] compile-flags: --target aarch64-unknown-none |
| 8 | 8 | //@[aarch64] needs-llvm-components: aarch64 |
| 9 | //@[aarch64v8r] compile-flags: --target aarch64v8r-unknown-none | |
| 10 | //@[aarch64v8r] needs-llvm-components: aarch64 | |
| 9 | 11 | //@[riscv64imac] compile-flags: --target riscv64imac-unknown-none-elf |
| 10 | 12 | //@[riscv64imac] needs-llvm-components: riscv |
| 11 | 13 | //@[riscv64gc] compile-flags: --target riscv64gc-unknown-none-elf |
tests/run-make/checksum-freshness/binary_file created+1| ... | ... | @@ -0,0 +1 @@ |
| 1 | binary� | |
| \ No newline at end of file |
tests/run-make/checksum-freshness/expected.d+4-2| ... | ... | @@ -1,6 +1,8 @@ |
| 1 | lib.d: lib.rs foo.rs | |
| 1 | lib.d: lib.rs foo.rs binary_file | |
| 2 | 2 | |
| 3 | 3 | lib.rs: |
| 4 | 4 | foo.rs: |
| 5 | # checksum:blake3=94af75ee4ed805434484c3de51c9025278e5c3ada2315e2592052e102168a503 file_len:120 lib.rs | |
| 5 | binary_file: | |
| 6 | # checksum:blake3=4ac56f3f877798fb762d714c7bcb72e70133f4cc585f80dbd99c07755ae2c7f6 file_len:222 lib.rs | |
| 6 | 7 | # checksum:blake3=2720e17bfda4f3b2a5c96bb61b7e76ed8ebe3359b34128c0e5d8032c090a4f1a file_len:119 foo.rs |
| 8 | # checksum:blake3=119a5db8711914922c5b1c1908be4958175c5afa95c08888de594725329b5439 file_len:7 binary_file |
tests/run-make/checksum-freshness/lib.rs+2-1| ... | ... | @@ -1,7 +1,8 @@ |
| 1 | 1 | // A basic library to be used in tests with no real purpose. |
| 2 | 2 | |
| 3 | 3 | mod foo; |
| 4 | ||
| 4 | // Binary file with invalid UTF-8 sequence. | |
| 5 | static BINARY_FILE: &[u8] = include_bytes!("binary_file"); | |
| 5 | 6 | pub fn sum(a: i32, b: i32) -> i32 { |
| 6 | 7 | a + b |
| 7 | 8 | } |
tests/rustdoc-ui/doctest/main-alongside-macro-calls.fail.stdout-4| ... | ... | @@ -13,8 +13,6 @@ error: macros that expand to items must be delimited with braces or followed by |
| 13 | 13 | | |
| 14 | 14 | LL | println!(); |
| 15 | 15 | | ^^^^^^^^^^ |
| 16 | | | |
| 17 | = note: this error originates in the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 18 | 16 | |
| 19 | 17 | error: macro expansion ignores `{` and any tokens following |
| 20 | 18 | --> $SRC_DIR/std/src/macros.rs:LL:COL |
| ... | ... | @@ -35,8 +33,6 @@ error: macros that expand to items must be delimited with braces or followed by |
| 35 | 33 | | |
| 36 | 34 | LL | println!(); |
| 37 | 35 | | ^^^^^^^^^^ |
| 38 | | | |
| 39 | = note: this error originates in the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 40 | 36 | |
| 41 | 37 | error: macro expansion ignores `{` and any tokens following |
| 42 | 38 | --> $SRC_DIR/std/src/macros.rs:LL:COL |
tests/ui/asm/aarch64/type-check-2.stderr-1| ... | ... | @@ -21,7 +21,6 @@ LL | asm!("{}", in(reg) vec![0]); |
| 21 | 21 | | ^^^^^^^ |
| 22 | 22 | | |
| 23 | 23 | = note: only integers, floats, SIMD vectors, pointers and function pointers can be used as arguments for inline assembly |
| 24 | = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 25 | 24 | |
| 26 | 25 | error: cannot use value of type `(i32, i32, i32)` for inline assembly |
| 27 | 26 | --> $DIR/type-check-2.rs:36:28 |
tests/ui/asm/aarch64v8r.rs created+140| ... | ... | @@ -0,0 +1,140 @@ |
| 1 | // Codegen test of mandatory Armv8-R AArch64 extensions | |
| 2 | ||
| 3 | //@ add-minicore | |
| 4 | //@ revisions: hf sf | |
| 5 | //@ [hf] compile-flags: --target aarch64v8r-unknown-none | |
| 6 | //@ [hf] needs-llvm-components: aarch64 | |
| 7 | //@ [sf] compile-flags: --target aarch64v8r-unknown-none-softfloat | |
| 8 | //@ [sf] needs-llvm-components: aarch64 | |
| 9 | //@ build-pass | |
| 10 | //@ ignore-backends: gcc | |
| 11 | ||
| 12 | #![feature(no_core)] | |
| 13 | #![no_core] | |
| 14 | #![no_main] | |
| 15 | #![crate_type = "rlib"] | |
| 16 | #![deny(dead_code)] // ensures we call all private functions from the public one | |
| 17 | ||
| 18 | extern crate minicore; | |
| 19 | use minicore::*; | |
| 20 | ||
| 21 | /* # Mandatory extensions | |
| 22 | * | |
| 23 | * A comment indicates that the extension has no associated assembly instruction and cannot be | |
| 24 | * codegen tested | |
| 25 | * | |
| 26 | * ## References: | |
| 27 | * | |
| 28 | * - Arm Architecture Reference Manual for R-profile AArch64 architecture (DDI 0628) -- has the | |
| 29 | * list of mandatory extensions | |
| 30 | * - Arm Architecture Reference Manual for A-profile architecture (ARM DDI 0487) -- has the | |
| 31 | * mapping from features to instructions | |
| 32 | * - Feature names in A-profile architecture (109697_0100_02_en Version 1.0) -- overview of | |
| 33 | * what each extension mean | |
| 34 | * */ | |
| 35 | pub fn mandatory_extensions() { | |
| 36 | /* ## ARMv8.0 */ | |
| 37 | feat_aa64(); | |
| 38 | // FEAT_AA64EL0 | |
| 39 | // FEAT_AA64EL1 | |
| 40 | // FEAT_AA64EL2 | |
| 41 | feat_crc32(); | |
| 42 | // FEAT_EL0 | |
| 43 | // FEAT_EL1 | |
| 44 | // FEAT_EL2 | |
| 45 | // FEAT_IVIPT | |
| 46 | ||
| 47 | /* ## ARMv8.1 */ | |
| 48 | // FEAT_HPDS | |
| 49 | feat_lse(); | |
| 50 | feat_pan(); | |
| 51 | ||
| 52 | /* ## ARMv8.2 */ | |
| 53 | feat_asmv8p2(); | |
| 54 | feat_dpb(); | |
| 55 | // FEAT_Debugv8p2 | |
| 56 | // FEAT_PAN2 | |
| 57 | feat_ras(); | |
| 58 | // FEAT_TTCNP | |
| 59 | feat_uao(); | |
| 60 | // FEAT_XNX | |
| 61 | ||
| 62 | /* ## ARMv8.3 */ | |
| 63 | feat_lrcpc(); | |
| 64 | feat_pauth(); | |
| 65 | ||
| 66 | /* ## ARMv8.4 */ | |
| 67 | feat_dit(); | |
| 68 | // FEAT_Debugv8p4 | |
| 69 | feat_flagm(); | |
| 70 | // FEAT_IDST | |
| 71 | feat_lrcpc2(); | |
| 72 | // FEAT_LSE2 | |
| 73 | // FEAT_S2FWB | |
| 74 | feat_tlbios(); | |
| 75 | feat_tlbirange(); | |
| 76 | // FEAT_TTL | |
| 77 | } | |
| 78 | ||
| 79 | fn feat_aa64() { | |
| 80 | // CurrentEL register only present when FEAT_AA64 is implemented | |
| 81 | unsafe { asm!("mrs x0, CurrentEL") } | |
| 82 | } | |
| 83 | ||
| 84 | fn feat_crc32() { | |
| 85 | // instruction is present when FEAT_CRC32 is implemented | |
| 86 | unsafe { asm!("crc32b w0, w1, w2") } | |
| 87 | } | |
| 88 | ||
| 89 | fn feat_lse() { | |
| 90 | // instruction is present when FEAT_LSE is implemented | |
| 91 | unsafe { asm!("casp w0, w1, w2, w3, [x4]") } | |
| 92 | } | |
| 93 | ||
| 94 | fn feat_pan() { | |
| 95 | unsafe { asm!("mrs x0, PAN") } | |
| 96 | } | |
| 97 | ||
| 98 | fn feat_asmv8p2() { | |
| 99 | unsafe { asm!("BFC w0, #0, #1") } | |
| 100 | } | |
| 101 | ||
| 102 | fn feat_dpb() { | |
| 103 | unsafe { asm!("DC CVAP, x0") } | |
| 104 | } | |
| 105 | ||
| 106 | fn feat_ras() { | |
| 107 | unsafe { asm!("ESB") } | |
| 108 | } | |
| 109 | ||
| 110 | fn feat_uao() { | |
| 111 | unsafe { asm!("mrs x0, UAO") } | |
| 112 | } | |
| 113 | ||
| 114 | fn feat_lrcpc() { | |
| 115 | unsafe { asm!("ldaprb w0, [x1]") } | |
| 116 | } | |
| 117 | ||
| 118 | fn feat_pauth() { | |
| 119 | unsafe { asm!("xpacd x0") } | |
| 120 | } | |
| 121 | ||
| 122 | fn feat_dit() { | |
| 123 | unsafe { asm!("mrs x0, DIT") } | |
| 124 | } | |
| 125 | ||
| 126 | fn feat_flagm() { | |
| 127 | unsafe { asm!("cfinv") } | |
| 128 | } | |
| 129 | ||
| 130 | fn feat_lrcpc2() { | |
| 131 | unsafe { asm!("stlurb w0, [x1]") } | |
| 132 | } | |
| 133 | ||
| 134 | fn feat_tlbios() { | |
| 135 | unsafe { asm!("tlbi VMALLE1OS") } | |
| 136 | } | |
| 137 | ||
| 138 | fn feat_tlbirange() { | |
| 139 | unsafe { asm!("tlbi RVAE1IS, x0") } | |
| 140 | } |
tests/ui/asm/parse-error.stderr-8| ... | ... | @@ -193,16 +193,12 @@ error: asm template must be a string literal |
| 193 | 193 | | |
| 194 | 194 | LL | asm!(format!("{{{}}}", 0), in(reg) foo); |
| 195 | 195 | | ^^^^^^^^^^^^^^^^^^^^ |
| 196 | | | |
| 197 | = note: this error originates in the macro `format` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 198 | 196 | |
| 199 | 197 | error: asm template must be a string literal |
| 200 | 198 | --> $DIR/parse-error.rs:86:21 |
| 201 | 199 | | |
| 202 | 200 | LL | asm!("{1}", format!("{{{}}}", 0), in(reg) foo, out(reg) bar); |
| 203 | 201 | | ^^^^^^^^^^^^^^^^^^^^ |
| 204 | | | |
| 205 | = note: this error originates in the macro `format` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 206 | 202 | |
| 207 | 203 | error: _ cannot be used for input operands |
| 208 | 204 | --> $DIR/parse-error.rs:88:28 |
| ... | ... | @@ -357,16 +353,12 @@ error: asm template must be a string literal |
| 357 | 353 | | |
| 358 | 354 | LL | global_asm!(format!("{{{}}}", 0), const FOO); |
| 359 | 355 | | ^^^^^^^^^^^^^^^^^^^^ |
| 360 | | | |
| 361 | = note: this error originates in the macro `format` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 362 | 356 | |
| 363 | 357 | error: asm template must be a string literal |
| 364 | 358 | --> $DIR/parse-error.rs:143:20 |
| 365 | 359 | | |
| 366 | 360 | LL | global_asm!("{1}", format!("{{{}}}", 0), const FOO, const BAR); |
| 367 | 361 | | ^^^^^^^^^^^^^^^^^^^^ |
| 368 | | | |
| 369 | = note: this error originates in the macro `format` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 370 | 362 | |
| 371 | 363 | error: the `in` operand cannot be used with `global_asm!` |
| 372 | 364 | --> $DIR/parse-error.rs:146:19 |
tests/ui/asm/x86_64/type-check-2.stderr-1| ... | ... | @@ -21,7 +21,6 @@ LL | asm!("{}", in(reg) vec![0]); |
| 21 | 21 | | ^^^^^^^ |
| 22 | 22 | | |
| 23 | 23 | = note: only integers, floats, SIMD vectors, pointers and function pointers can be used as arguments for inline assembly |
| 24 | = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 25 | 24 | |
| 26 | 25 | error: cannot use value of type `(i32, i32, i32)` for inline assembly |
| 27 | 26 | --> $DIR/type-check-2.rs:52:28 |
tests/ui/associated-consts/defaults-not-assumed-fail.stderr-3| ... | ... | @@ -23,8 +23,6 @@ note: erroneous constant encountered |
| 23 | 23 | | |
| 24 | 24 | LL | assert_eq!(<() as Tr>::B, 0); // causes the error above |
| 25 | 25 | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| 26 | | | |
| 27 | = note: this note originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 28 | 26 | |
| 29 | 27 | note: erroneous constant encountered |
| 30 | 28 | --> $DIR/defaults-not-assumed-fail.rs:34:5 |
| ... | ... | @@ -33,7 +31,6 @@ LL | assert_eq!(<() as Tr>::B, 0); // causes the error above |
| 33 | 31 | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| 34 | 32 | | |
| 35 | 33 | = note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no` |
| 36 | = note: this note originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 37 | 34 | |
| 38 | 35 | error: aborting due to 1 previous error |
| 39 | 36 |
tests/ui/async-await/unreachable-lint-2.stderr-1| ... | ... | @@ -11,7 +11,6 @@ note: the lint level is defined here |
| 11 | 11 | | |
| 12 | 12 | LL | #![deny(unreachable_code)] |
| 13 | 13 | | ^^^^^^^^^^^^^^^^ |
| 14 | = note: this error originates in the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 15 | 14 | |
| 16 | 15 | error: aborting due to 1 previous error |
| 17 | 16 |
tests/ui/binop/binary-operation-error-on-function-70724.stderr-4| ... | ... | @@ -6,8 +6,6 @@ LL | assert_eq!(a, 0); |
| 6 | 6 | | | |
| 7 | 7 | | fn() -> i32 {a} |
| 8 | 8 | | {integer} |
| 9 | | | |
| 10 | = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 11 | 9 | |
| 12 | 10 | error[E0308]: mismatched types |
| 13 | 11 | --> $DIR/binary-operation-error-on-function-70724.rs:7:5 |
| ... | ... | @@ -17,7 +15,6 @@ LL | assert_eq!(a, 0); |
| 17 | 15 | | |
| 18 | 16 | = note: expected fn item `fn() -> i32 {a}` |
| 19 | 17 | found type `{integer}` |
| 20 | = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 21 | 18 | |
| 22 | 19 | error[E0277]: `fn() -> i32 {a}` doesn't implement `Debug` |
| 23 | 20 | --> $DIR/binary-operation-error-on-function-70724.rs:7:5 |
| ... | ... | @@ -29,7 +26,6 @@ LL | assert_eq!(a, 0); |
| 29 | 26 | | ^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for fn item `fn() -> i32 {a}` |
| 30 | 27 | | |
| 31 | 28 | = help: use parentheses to call this function: `a()` |
| 32 | = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 33 | 29 | |
| 34 | 30 | error: aborting due to 3 previous errors |
| 35 | 31 |
tests/ui/binop/eq-vec.stderr-1| ... | ... | @@ -12,7 +12,6 @@ note: an implementation of `PartialEq` might be missing for `Foo` |
| 12 | 12 | | |
| 13 | 13 | LL | enum Foo { |
| 14 | 14 | | ^^^^^^^^ must implement `PartialEq` |
| 15 | = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 16 | 15 | help: consider annotating `Foo` with `#[derive(PartialEq)]` |
| 17 | 16 | | |
| 18 | 17 | LL + #[derive(PartialEq)] |
tests/ui/binop/function-comparison-errors-59488.stderr-6| ... | ... | @@ -80,24 +80,18 @@ LL | assert_eq!(Foo::Bar, i); |
| 80 | 80 | | | |
| 81 | 81 | | fn(usize) -> Foo {Foo::Bar} |
| 82 | 82 | | fn(usize) -> Foo {Foo::Bar} |
| 83 | | | |
| 84 | = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 85 | 83 | |
| 86 | 84 | error[E0277]: `fn(usize) -> Foo {Foo::Bar}` doesn't implement `Debug` |
| 87 | 85 | --> $DIR/function-comparison-errors-59488.rs:31:5 |
| 88 | 86 | | |
| 89 | 87 | LL | assert_eq!(Foo::Bar, i); |
| 90 | 88 | | ^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for fn item `fn(usize) -> Foo {Foo::Bar}` |
| 91 | | | |
| 92 | = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 93 | 89 | |
| 94 | 90 | error[E0277]: `fn(usize) -> Foo {Foo::Bar}` doesn't implement `Debug` |
| 95 | 91 | --> $DIR/function-comparison-errors-59488.rs:31:5 |
| 96 | 92 | | |
| 97 | 93 | LL | assert_eq!(Foo::Bar, i); |
| 98 | 94 | | ^^^^^^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for fn item `fn(usize) -> Foo {Foo::Bar}` |
| 99 | | | |
| 100 | = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 101 | 95 | |
| 102 | 96 | error: aborting due to 10 previous errors |
| 103 | 97 |
tests/ui/binop/issue-77910-1.stderr-3| ... | ... | @@ -6,8 +6,6 @@ LL | assert_eq!(foo, y); |
| 6 | 6 | | | |
| 7 | 7 | | for<'a> fn(&'a i32) -> &'a i32 {foo} |
| 8 | 8 | | _ |
| 9 | | | |
| 10 | = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 11 | 9 | |
| 12 | 10 | error[E0277]: `for<'a> fn(&'a i32) -> &'a i32 {foo}` doesn't implement `Debug` |
| 13 | 11 | --> $DIR/issue-77910-1.rs:8:5 |
| ... | ... | @@ -19,7 +17,6 @@ LL | assert_eq!(foo, y); |
| 19 | 17 | | ^^^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for fn item `for<'a> fn(&'a i32) -> &'a i32 {foo}` |
| 20 | 18 | | |
| 21 | 19 | = help: use parentheses to call this function: `foo(/* &i32 */)` |
| 22 | = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 23 | 20 | |
| 24 | 21 | error[E0381]: used binding `xs` isn't initialized |
| 25 | 22 | --> $DIR/issue-77910-1.rs:3:5 |
tests/ui/borrowck/alias-liveness/higher-ranked-outlives-for-capture.stderr-2| ... | ... | @@ -8,8 +8,6 @@ LL | test(&vec![]) |
| 8 | 8 | | argument requires that borrow lasts for `'static` |
| 9 | 9 | LL | } |
| 10 | 10 | | - temporary value is freed at the end of this statement |
| 11 | | | |
| 12 | = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 13 | 11 | |
| 14 | 12 | error: aborting due to 1 previous error |
| 15 | 13 |
tests/ui/borrowck/borrowck-and-init.stderr-2| ... | ... | @@ -8,8 +8,6 @@ LL | println!("{}", false && { i = 5; true }); |
| 8 | 8 | | ----- binding initialized here in some conditions |
| 9 | 9 | LL | println!("{}", i); |
| 10 | 10 | | ^ `i` used here but it is possibly-uninitialized |
| 11 | | | |
| 12 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 13 | 11 | |
| 14 | 12 | error: aborting due to 1 previous error |
| 15 | 13 |
tests/ui/borrowck/borrowck-borrowed-uniq-rvalue-2.stderr-1| ... | ... | @@ -8,7 +8,6 @@ LL | let x = defer(&vec!["Goodbye", "world!"]); |
| 8 | 8 | LL | x.x[0]; |
| 9 | 9 | | ------ borrow later used here |
| 10 | 10 | | |
| 11 | = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 12 | 11 | help: consider using a `let` binding to create a longer lived value |
| 13 | 12 | | |
| 14 | 13 | LL ~ let binding = vec!["Goodbye", "world!"]; |
tests/ui/borrowck/borrowck-break-uninit-2.stderr-1| ... | ... | @@ -7,7 +7,6 @@ LL | let x: isize; |
| 7 | 7 | LL | println!("{}", x); |
| 8 | 8 | | ^ `x` used here but it isn't initialized |
| 9 | 9 | | |
| 10 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 11 | 10 | help: consider assigning a value |
| 12 | 11 | | |
| 13 | 12 | LL | let x: isize = 42; |
tests/ui/borrowck/borrowck-break-uninit.stderr-1| ... | ... | @@ -7,7 +7,6 @@ LL | let x: isize; |
| 7 | 7 | LL | println!("{}", x); |
| 8 | 8 | | ^ `x` used here but it isn't initialized |
| 9 | 9 | | |
| 10 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 11 | 10 | help: consider assigning a value |
| 12 | 11 | | |
| 13 | 12 | LL | let x: isize = 42; |
tests/ui/borrowck/borrowck-or-init.stderr-2| ... | ... | @@ -8,8 +8,6 @@ LL | println!("{}", false || { i = 5; true }); |
| 8 | 8 | | ----- binding initialized here in some conditions |
| 9 | 9 | LL | println!("{}", i); |
| 10 | 10 | | ^ `i` used here but it is possibly-uninitialized |
| 11 | | | |
| 12 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 13 | 11 | |
| 14 | 12 | error: aborting due to 1 previous error |
| 15 | 13 |
tests/ui/borrowck/borrowck-while-break.stderr-2| ... | ... | @@ -8,8 +8,6 @@ LL | while cond { |
| 8 | 8 | ... |
| 9 | 9 | LL | println!("{}", v); |
| 10 | 10 | | ^ `v` used here but it is possibly-uninitialized |
| 11 | | | |
| 12 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 13 | 11 | |
| 14 | 12 | error: aborting due to 1 previous error |
| 15 | 13 |
tests/ui/borrowck/issue-24267-flow-exit.stderr-2| ... | ... | @@ -7,7 +7,6 @@ LL | loop { x = break; } |
| 7 | 7 | LL | println!("{}", x); |
| 8 | 8 | | ^ `x` used here but it isn't initialized |
| 9 | 9 | | |
| 10 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 11 | 10 | help: consider assigning a value |
| 12 | 11 | | |
| 13 | 12 | LL | let x: i32 = 42; |
| ... | ... | @@ -22,7 +21,6 @@ LL | for _ in 0..10 { x = continue; } |
| 22 | 21 | LL | println!("{}", x); |
| 23 | 22 | | ^ `x` used here but it isn't initialized |
| 24 | 23 | | |
| 25 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 26 | 24 | help: consider assigning a value |
| 27 | 25 | | |
| 28 | 26 | LL | let x: i32 = 42; |
tests/ui/borrowck/issue-47646.stderr-2| ... | ... | @@ -12,8 +12,6 @@ LL | println!("{:?}", heap); |
| 12 | 12 | ... |
| 13 | 13 | LL | }; |
| 14 | 14 | | - ... and the mutable borrow might be used here, when that temporary is dropped and runs the destructor for type `(Option<std::collections::binary_heap::PeekMut<'_, i32>>, ())` |
| 15 | | | |
| 16 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 17 | 15 | |
| 18 | 16 | error: aborting due to 1 previous error |
| 19 | 17 |
tests/ui/borrowck/issue-64453.stderr-1| ... | ... | @@ -8,7 +8,6 @@ note: function `format` is not const |
| 8 | 8 | --> $SRC_DIR/alloc/src/fmt.rs:LL:COL |
| 9 | 9 | = note: calls in statics are limited to constant functions, tuple structs and tuple variants |
| 10 | 10 | = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)` |
| 11 | = note: this error originates in the macro `format` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 12 | 11 | |
| 13 | 12 | error[E0507]: cannot move out of static item `settings_dir` |
| 14 | 13 | --> $DIR/issue-64453.rs:13:37 |
tests/ui/borrowck/ownership-struct-update-moved-error.stderr-1| ... | ... | @@ -13,7 +13,6 @@ note: `Mine::make_string_bar` takes ownership of the receiver `self`, which move |
| 13 | 13 | | |
| 14 | 14 | LL | fn make_string_bar(mut self) -> Mine { |
| 15 | 15 | | ^^^^ |
| 16 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 17 | 16 | |
| 18 | 17 | error: aborting due to 1 previous error |
| 19 | 18 |
tests/ui/borrowck/suggest-assign-rvalue.stderr-10| ... | ... | @@ -19,7 +19,6 @@ LL | let my_float: f32; |
| 19 | 19 | LL | println!("my_float: {}", my_float); |
| 20 | 20 | | ^^^^^^^^ `my_float` used here but it isn't initialized |
| 21 | 21 | | |
| 22 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 23 | 22 | help: consider assigning a value |
| 24 | 23 | | |
| 25 | 24 | LL | let my_float: f32 = 3.14159; |
| ... | ... | @@ -33,7 +32,6 @@ LL | let demo: Demo; |
| 33 | 32 | LL | println!("demo: {:?}", demo); |
| 34 | 33 | | ^^^^ `demo` used here but it isn't initialized |
| 35 | 34 | | |
| 36 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 37 | 35 | help: consider assigning a value |
| 38 | 36 | | |
| 39 | 37 | LL | let demo: Demo = Default::default(); |
| ... | ... | @@ -47,7 +45,6 @@ LL | let demo_no: DemoNoDef; |
| 47 | 45 | LL | println!("demo_no: {:?}", demo_no); |
| 48 | 46 | | ^^^^^^^ `demo_no` used here but it isn't initialized |
| 49 | 47 | | |
| 50 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 51 | 48 | help: consider assigning a value |
| 52 | 49 | | |
| 53 | 50 | LL | let demo_no: DemoNoDef = /* value */; |
| ... | ... | @@ -61,7 +58,6 @@ LL | let arr: [i32; 5]; |
| 61 | 58 | LL | println!("arr: {:?}", arr); |
| 62 | 59 | | ^^^ `arr` used here but it isn't initialized |
| 63 | 60 | | |
| 64 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 65 | 61 | help: consider assigning a value |
| 66 | 62 | | |
| 67 | 63 | LL | let arr: [i32; 5] = [42; 5]; |
| ... | ... | @@ -75,7 +71,6 @@ LL | let foo: Vec<&str>; |
| 75 | 71 | LL | println!("foo: {:?}", foo); |
| 76 | 72 | | ^^^ `foo` used here but it isn't initialized |
| 77 | 73 | | |
| 78 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 79 | 74 | help: consider assigning a value |
| 80 | 75 | | |
| 81 | 76 | LL | let foo: Vec<&str> = vec![]; |
| ... | ... | @@ -89,7 +84,6 @@ LL | let my_string: String; |
| 89 | 84 | LL | println!("my_string: {}", my_string); |
| 90 | 85 | | ^^^^^^^^^ `my_string` used here but it isn't initialized |
| 91 | 86 | | |
| 92 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 93 | 87 | help: consider assigning a value |
| 94 | 88 | | |
| 95 | 89 | LL | let my_string: String = Default::default(); |
| ... | ... | @@ -103,7 +97,6 @@ LL | let my_int: &i32; |
| 103 | 97 | LL | println!("my_int: {}", *my_int); |
| 104 | 98 | | ^^^^^^^ `*my_int` used here but it isn't initialized |
| 105 | 99 | | |
| 106 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 107 | 100 | help: consider assigning a value |
| 108 | 101 | | |
| 109 | 102 | LL | let my_int: &i32 = &42; |
| ... | ... | @@ -117,7 +110,6 @@ LL | let hello: &str; |
| 117 | 110 | LL | println!("hello: {}", hello); |
| 118 | 111 | | ^^^^^ `hello` used here but it isn't initialized |
| 119 | 112 | | |
| 120 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 121 | 113 | help: consider assigning a value |
| 122 | 114 | | |
| 123 | 115 | LL | let hello: &str = ""; |
| ... | ... | @@ -130,8 +122,6 @@ LL | let never: !; |
| 130 | 122 | | ----- binding declared here but left uninitialized |
| 131 | 123 | LL | println!("never: {}", never); |
| 132 | 124 | | ^^^^^ `never` used here but it isn't initialized |
| 133 | | | |
| 134 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 135 | 125 | |
| 136 | 126 | error: aborting due to 10 previous errors |
| 137 | 127 |
tests/ui/closures/2229_closure_analysis/diagnostics/arrays.stderr-2| ... | ... | @@ -53,8 +53,6 @@ LL | println!("{}", arr[3]); |
| 53 | 53 | ... |
| 54 | 54 | LL | c(); |
| 55 | 55 | | - mutable borrow later used here |
| 56 | | | |
| 57 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 58 | 56 | |
| 59 | 57 | error[E0502]: cannot borrow `arr` as immutable because it is also borrowed as mutable |
| 60 | 58 | --> $DIR/arrays.rs:71:24 |
tests/ui/closures/2229_closure_analysis/diagnostics/box.stderr-2| ... | ... | @@ -25,8 +25,6 @@ LL | println!("{}", e.0.0.m.x); |
| 25 | 25 | LL | |
| 26 | 26 | LL | c(); |
| 27 | 27 | | - mutable borrow later used here |
| 28 | | | |
| 29 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 30 | 28 | |
| 31 | 29 | error[E0506]: cannot assign to `e.0.0.m.x` because it is borrowed |
| 32 | 30 | --> $DIR/box.rs:55:5 |
tests/ui/closures/2229_closure_analysis/diagnostics/repr_packed.stderr-1| ... | ... | @@ -7,7 +7,6 @@ LL | println!("{}", foo.x); |
| 7 | 7 | = note: this struct is 1-byte aligned, but the type of this field may require higher alignment |
| 8 | 8 | = note: creating a misaligned reference is undefined behavior (even if that reference is never dereferenced) |
| 9 | 9 | = help: copy the field contents to a local variable, or replace the reference with a raw pointer and use `read_unaligned`/`write_unaligned` (loads and stores via `*p` must be properly aligned even when using raw pointers) |
| 10 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 11 | 10 | |
| 12 | 11 | error: aborting due to 1 previous error |
| 13 | 12 |
tests/ui/closures/2229_closure_analysis/diagnostics/simple-struct-min-capture.stderr-2| ... | ... | @@ -13,8 +13,6 @@ LL | println!("{:?}", p); |
| 13 | 13 | LL | |
| 14 | 14 | LL | c(); |
| 15 | 15 | | - mutable borrow later used here |
| 16 | | | |
| 17 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 18 | 16 | |
| 19 | 17 | error: aborting due to 1 previous error |
| 20 | 18 |
tests/ui/closures/issue-111932.stderr-1| ... | ... | @@ -17,7 +17,6 @@ LL | println!("{:?}", foo); |
| 17 | 17 | | required by this formatting parameter |
| 18 | 18 | | |
| 19 | 19 | = help: the trait `Sized` is not implemented for `dyn Foo` |
| 20 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 21 | 20 | |
| 22 | 21 | error: aborting due to 2 previous errors |
| 23 | 22 |
tests/ui/codemap_tests/bad-format-args.stderr-2| ... | ... | @@ -3,8 +3,6 @@ error: requires at least a format string argument |
| 3 | 3 | | |
| 4 | 4 | LL | format!(); |
| 5 | 5 | | ^^^^^^^^^ |
| 6 | | | |
| 7 | = note: this error originates in the macro `$crate::__export::format_args` which comes from the expansion of the macro `format` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 8 | 6 | |
| 9 | 7 | error: expected `,`, found `1` |
| 10 | 8 | --> $DIR/bad-format-args.rs:3:16 |
tests/ui/codemap_tests/tab_3.stderr-1| ... | ... | @@ -11,7 +11,6 @@ LL | println!("{:?}", some_vec); |
| 11 | 11 | | |
| 12 | 12 | note: `into_iter` takes ownership of the receiver `self`, which moves `some_vec` |
| 13 | 13 | --> $SRC_DIR/core/src/iter/traits/collect.rs:LL:COL |
| 14 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 15 | 14 | help: you can `clone` the value and consume it, but this might not be your desired behavior |
| 16 | 15 | | |
| 17 | 16 | LL | some_vec.clone().into_iter(); |
tests/ui/const-generics/vec-macro-in-static-array.stderr-1| ... | ... | @@ -6,7 +6,6 @@ LL | static VEC: [u32; 256] = vec![]; |
| 6 | 6 | | |
| 7 | 7 | = note: expected array `[u32; 256]` |
| 8 | 8 | found struct `Vec<_>` |
| 9 | = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 10 | 9 | |
| 11 | 10 | error: aborting due to 1 previous error |
| 12 | 11 |
tests/ui/consts/const-eval/const_panic.stderr-4| ... | ... | @@ -21,8 +21,6 @@ error[E0080]: evaluation panicked: not implemented |
| 21 | 21 | | |
| 22 | 22 | LL | const X: () = std::unimplemented!(); |
| 23 | 23 | | ^^^^^^^^^^^^^^^^^^^^^ evaluation of `X` failed here |
| 24 | | | |
| 25 | = note: this error originates in the macro `std::unimplemented` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 26 | 24 | |
| 27 | 25 | error[E0080]: evaluation panicked: hello |
| 28 | 26 | --> $DIR/const_panic.rs:19:15 |
| ... | ... | @@ -59,8 +57,6 @@ error[E0080]: evaluation panicked: not implemented |
| 59 | 57 | | |
| 60 | 58 | LL | const X_CORE: () = core::unimplemented!(); |
| 61 | 59 | | ^^^^^^^^^^^^^^^^^^^^^^ evaluation of `X_CORE` failed here |
| 62 | | | |
| 63 | = note: this error originates in the macro `core::unimplemented` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 64 | 60 | |
| 65 | 61 | error[E0080]: evaluation panicked: hello |
| 66 | 62 | --> $DIR/const_panic.rs:37:20 |
tests/ui/consts/const-eval/const_panic_2021.stderr-4| ... | ... | @@ -21,8 +21,6 @@ error[E0080]: evaluation panicked: not implemented |
| 21 | 21 | | |
| 22 | 22 | LL | const D: () = std::unimplemented!(); |
| 23 | 23 | | ^^^^^^^^^^^^^^^^^^^^^ evaluation of `D` failed here |
| 24 | | | |
| 25 | = note: this error originates in the macro `std::unimplemented` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 26 | 24 | |
| 27 | 25 | error[E0080]: evaluation panicked: hello |
| 28 | 26 | --> $DIR/const_panic_2021.rs:18:15 |
| ... | ... | @@ -53,8 +51,6 @@ error[E0080]: evaluation panicked: not implemented |
| 53 | 51 | | |
| 54 | 52 | LL | const D_CORE: () = core::unimplemented!(); |
| 55 | 53 | | ^^^^^^^^^^^^^^^^^^^^^^ evaluation of `D_CORE` failed here |
| 56 | | | |
| 57 | = note: this error originates in the macro `core::unimplemented` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 58 | 54 | |
| 59 | 55 | error[E0080]: evaluation panicked: hello |
| 60 | 56 | --> $DIR/const_panic_2021.rs:33:20 |
tests/ui/consts/const-eval/const_panic_libcore_bin.stderr-2| ... | ... | @@ -15,8 +15,6 @@ error[E0080]: evaluation panicked: not implemented |
| 15 | 15 | | |
| 16 | 16 | LL | const X: () = unimplemented!(); |
| 17 | 17 | | ^^^^^^^^^^^^^^^^ evaluation of `X` failed here |
| 18 | | | |
| 19 | = note: this error originates in the macro `unimplemented` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 20 | 18 | |
| 21 | 19 | error: aborting due to 3 previous errors |
| 22 | 20 |
tests/ui/consts/const-eval/format.stderr-2| ... | ... | @@ -13,7 +13,6 @@ LL | println!("{:?}", 0); |
| 13 | 13 | | ^^^^^^^^^^^^^^^^^^^ |
| 14 | 14 | | |
| 15 | 15 | = note: calls in constant functions are limited to constant functions, tuple structs and tuple variants |
| 16 | = note: this error originates in the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 17 | 16 | |
| 18 | 17 | error[E0015]: cannot call non-const function `std::io::_print` in constant functions |
| 19 | 18 | --> $DIR/format.rs:7:5 |
| ... | ... | @@ -24,7 +23,6 @@ LL | println!("{:?}", 0); |
| 24 | 23 | note: function `_print` is not const |
| 25 | 24 | --> $SRC_DIR/std/src/io/stdio.rs:LL:COL |
| 26 | 25 | = note: calls in constant functions are limited to constant functions, tuple structs and tuple variants |
| 27 | = note: this error originates in the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 28 | 26 | |
| 29 | 27 | error[E0015]: cannot call non-const formatting macro in constant functions |
| 30 | 28 | --> $DIR/format.rs:13:5 |
tests/ui/consts/const-eval/issue-44578.stderr-3| ... | ... | @@ -23,8 +23,6 @@ note: erroneous constant encountered |
| 23 | 23 | | |
| 24 | 24 | LL | println!("{}", <Bar<u16, u8> as Foo>::AMT); |
| 25 | 25 | | ^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| 26 | | | |
| 27 | = note: this note originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 28 | 26 | |
| 29 | 27 | note: erroneous constant encountered |
| 30 | 28 | --> $DIR/issue-44578.rs:26:20 |
| ... | ... | @@ -33,7 +31,6 @@ LL | println!("{}", <Bar<u16, u8> as Foo>::AMT); |
| 33 | 31 | | ^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| 34 | 32 | | |
| 35 | 33 | = note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no` |
| 36 | = note: this note originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 37 | 34 | |
| 38 | 35 | error: aborting due to 1 previous error |
| 39 | 36 |
tests/ui/consts/control-flow/issue-50577.stderr-2| ... | ... | @@ -3,8 +3,6 @@ error[E0308]: mismatched types |
| 3 | 3 | | |
| 4 | 4 | LL | Drop = assert_eq!(1, 1), |
| 5 | 5 | | ^^^^^^^^^^^^^^^^ expected `isize`, found `()` |
| 6 | | | |
| 7 | = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 8 | 6 | |
| 9 | 7 | error: aborting due to 1 previous error |
| 10 | 8 |
tests/ui/consts/min_const_fn/bad_const_fn_body_ice.stderr-3| ... | ... | @@ -3,8 +3,6 @@ error[E0010]: allocations are not allowed in constant functions |
| 3 | 3 | | |
| 4 | 4 | LL | vec![1, 2, 3] |
| 5 | 5 | | ^^^^^^^^^^^^^ allocation not allowed in constant functions |
| 6 | | | |
| 7 | = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 8 | 6 | |
| 9 | 7 | error[E0015]: cannot call non-const method `slice::<impl [i32]>::into_vec::<std::alloc::Global>` in constant functions |
| 10 | 8 | --> $DIR/bad_const_fn_body_ice.rs:2:5 |
| ... | ... | @@ -13,7 +11,6 @@ LL | vec![1, 2, 3] |
| 13 | 11 | | ^^^^^^^^^^^^^ |
| 14 | 12 | | |
| 15 | 13 | = note: calls in constant functions are limited to constant functions, tuple structs and tuple variants |
| 16 | = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 17 | 14 | |
| 18 | 15 | error: aborting due to 2 previous errors |
| 19 | 16 |
tests/ui/consts/recursive-const-in-impl.stderr-1| ... | ... | @@ -6,7 +6,6 @@ LL | println!("{}", Thing::<i32>::X); |
| 6 | 6 | | |
| 7 | 7 | = help: consider increasing the recursion limit by adding a `#![recursion_limit = "14"]` attribute to your crate (`recursive_const_in_impl`) |
| 8 | 8 | = note: query depth increased by 9 when simplifying constant for the type system `main::promoted[0]` |
| 9 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 10 | 9 | |
| 11 | 10 | error: aborting due to 1 previous error |
| 12 | 11 |
tests/ui/coroutine/yield-while-ref-reborrowed.stderr-2| ... | ... | @@ -10,8 +10,6 @@ LL | println!("{}", x); |
| 10 | 10 | | ^ second borrow occurs here |
| 11 | 11 | LL | Pin::new(&mut b).resume(()); |
| 12 | 12 | | ------ first borrow later used here |
| 13 | | | |
| 14 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 15 | 13 | |
| 16 | 14 | error: aborting due to 1 previous error |
| 17 | 15 |
tests/ui/delegation/ice-line-bounds-issue-148732.stderr-3| ... | ... | @@ -3,8 +3,6 @@ error[E0106]: missing lifetime specifier |
| 3 | 3 | | |
| 4 | 4 | LL | dbg!(b); |
| 5 | 5 | | ^^^^^^^ expected named lifetime parameter |
| 6 | | | |
| 7 | = note: this error originates in the macro `$crate::macros::dbg_internal` which comes from the expansion of the macro `dbg` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 8 | 6 | |
| 9 | 7 | error[E0425]: cannot find function `a` in this scope |
| 10 | 8 | --> $DIR/ice-line-bounds-issue-148732.rs:1:7 |
| ... | ... | @@ -37,7 +35,6 @@ LL | dbg!(b); |
| 37 | 35 | | ^^^^^^^ the trait `Debug` is not implemented for fn item `fn() {b}` |
| 38 | 36 | | |
| 39 | 37 | = help: use parentheses to call this function: `b()` |
| 40 | = note: this error originates in the macro `$crate::macros::dbg_internal` which comes from the expansion of the macro `dbg` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 41 | 38 | |
| 42 | 39 | error: aborting due to 4 previous errors |
| 43 | 40 |
tests/ui/derives/nonsense-input-to-debug.stderr-2| ... | ... | @@ -13,8 +13,6 @@ LL | should_be_vec_t: vec![T], |
| 13 | 13 | | expected type |
| 14 | 14 | | in this macro invocation |
| 15 | 15 | | this macro call doesn't expand to a type |
| 16 | | | |
| 17 | = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 18 | 16 | |
| 19 | 17 | error[E0392]: type parameter `T` is never used |
| 20 | 18 | --> $DIR/nonsense-input-to-debug.rs:5:17 |
tests/ui/error-codes/E0010-teach.stderr-2| ... | ... | @@ -5,7 +5,6 @@ LL | const CON: Vec<i32> = vec![1, 2, 3]; |
| 5 | 5 | | ^^^^^^^^^^^^^ allocation not allowed in constants |
| 6 | 6 | | |
| 7 | 7 | = note: The runtime heap is not yet available at compile-time, so no runtime heap allocations can be created. |
| 8 | = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 9 | 8 | |
| 10 | 9 | error[E0015]: cannot call non-const method `slice::<impl [i32]>::into_vec::<std::alloc::Global>` in constants |
| 11 | 10 | --> $DIR/E0010-teach.rs:5:23 |
| ... | ... | @@ -14,7 +13,6 @@ LL | const CON: Vec<i32> = vec![1, 2, 3]; |
| 14 | 13 | | ^^^^^^^^^^^^^ |
| 15 | 14 | | |
| 16 | 15 | = note: calls in constants are limited to constant functions, tuple structs and tuple variants |
| 17 | = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 18 | 16 | |
| 19 | 17 | error: aborting due to 2 previous errors |
| 20 | 18 |
tests/ui/error-codes/E0010.stderr-3| ... | ... | @@ -3,8 +3,6 @@ error[E0010]: allocations are not allowed in constants |
| 3 | 3 | | |
| 4 | 4 | LL | const CON: Vec<i32> = vec![1, 2, 3]; |
| 5 | 5 | | ^^^^^^^^^^^^^ allocation not allowed in constants |
| 6 | | | |
| 7 | = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 8 | 6 | |
| 9 | 7 | error[E0015]: cannot call non-const method `slice::<impl [i32]>::into_vec::<std::alloc::Global>` in constants |
| 10 | 8 | --> $DIR/E0010.rs:3:23 |
| ... | ... | @@ -13,7 +11,6 @@ LL | const CON: Vec<i32> = vec![1, 2, 3]; |
| 13 | 11 | | ^^^^^^^^^^^^^ |
| 14 | 12 | | |
| 15 | 13 | = note: calls in constants are limited to constant functions, tuple structs and tuple variants |
| 16 | = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 17 | 14 | |
| 18 | 15 | error: aborting due to 2 previous errors |
| 19 | 16 |
tests/ui/errors/span-format_args-issue-140578.stderr-10| ... | ... | @@ -3,40 +3,30 @@ error[E0282]: type annotations needed |
| 3 | 3 | | |
| 4 | 4 | LL | print!("{:?} {a} {a:?}", [], a = 1 + 1); |
| 5 | 5 | | ^^ cannot infer type |
| 6 | | | |
| 7 | = note: this error originates in the macro `$crate::format_args` which comes from the expansion of the macro `print` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 8 | 6 | |
| 9 | 7 | error[E0282]: type annotations needed |
| 10 | 8 | --> $DIR/span-format_args-issue-140578.rs:7:30 |
| 11 | 9 | | |
| 12 | 10 | LL | println!("{:?} {a} {a:?}", [], a = 1 + 1); |
| 13 | 11 | | ^^ cannot infer type |
| 14 | | | |
| 15 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 16 | 12 | |
| 17 | 13 | error[E0282]: type annotations needed |
| 18 | 14 | --> $DIR/span-format_args-issue-140578.rs:12:35 |
| 19 | 15 | | |
| 20 | 16 | LL | println!("{:?} {:?} {a} {a:?}", [], [], a = 1 + 1); |
| 21 | 17 | | ^^ cannot infer type |
| 22 | | | |
| 23 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 24 | 18 | |
| 25 | 19 | error[E0282]: type annotations needed |
| 26 | 20 | --> $DIR/span-format_args-issue-140578.rs:17:41 |
| 27 | 21 | | |
| 28 | 22 | LL | println!("{:?} {:?} {a} {a:?} {b:?}", [], [], a = 1 + 1, b = []); |
| 29 | 23 | | ^^ cannot infer type |
| 30 | | | |
| 31 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 32 | 24 | |
| 33 | 25 | error[E0282]: type annotations needed |
| 34 | 26 | --> $DIR/span-format_args-issue-140578.rs:26:9 |
| 35 | 27 | | |
| 36 | 28 | LL | [], |
| 37 | 29 | | ^^ cannot infer type |
| 38 | | | |
| 39 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 40 | 30 | |
| 41 | 31 | error: aborting due to 5 previous errors |
| 42 | 32 |
tests/ui/expr/if/assert-macro-without-else.stderr-4| ... | ... | @@ -11,16 +11,12 @@ error[E0308]: mismatched types |
| 11 | 11 | | |
| 12 | 12 | LL | assert_eq!(1, 1) |
| 13 | 13 | | ^^^^^^^^^^^^^^^^ expected `i32`, found `()` |
| 14 | | | |
| 15 | = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 16 | 14 | |
| 17 | 15 | error[E0308]: mismatched types |
| 18 | 16 | --> $DIR/assert-macro-without-else.rs:14:5 |
| 19 | 17 | | |
| 20 | 18 | LL | assert_ne!(1, 2) |
| 21 | 19 | | ^^^^^^^^^^^^^^^^ expected `bool`, found `()` |
| 22 | | | |
| 23 | = note: this error originates in the macro `assert_ne` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 24 | 20 | |
| 25 | 21 | error[E0308]: mismatched types |
| 26 | 22 | --> $DIR/assert-macro-without-else.rs:26:9 |
tests/ui/feature-gates/feature-gate-global-registration.stderr-2| ... | ... | @@ -6,8 +6,6 @@ LL | todo!(); |
| 6 | 6 | | | |
| 7 | 7 | | expected one of `!` or `::` |
| 8 | 8 | | in this macro invocation |
| 9 | | | |
| 10 | = note: this error originates in the macro `todo` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 11 | 9 | |
| 12 | 10 | error: aborting due to 1 previous error |
| 13 | 11 |
tests/ui/fmt/format-args-argument-span.stderr-4| ... | ... | @@ -6,7 +6,6 @@ LL | println!("{x:?} {x} {x:?}"); |
| 6 | 6 | | |
| 7 | 7 | = help: the trait `std::fmt::Display` is not implemented for `Option<{integer}>` |
| 8 | 8 | = note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead |
| 9 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 10 | 9 | |
| 11 | 10 | error[E0277]: `Option<{integer}>` doesn't implement `std::fmt::Display` |
| 12 | 11 | --> $DIR/format-args-argument-span.rs:15:37 |
| ... | ... | @@ -18,7 +17,6 @@ LL | println!("{x:?} {x} {x:?}", x = Some(1)); |
| 18 | 17 | | |
| 19 | 18 | = help: the trait `std::fmt::Display` is not implemented for `Option<{integer}>` |
| 20 | 19 | = note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead |
| 21 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 22 | 20 | |
| 23 | 21 | error[E0277]: `DisplayOnly` doesn't implement `Debug` |
| 24 | 22 | --> $DIR/format-args-argument-span.rs:18:19 |
| ... | ... | @@ -28,7 +26,6 @@ LL | println!("{x} {x:?} {x}"); |
| 28 | 26 | | |
| 29 | 27 | = help: the trait `Debug` is not implemented for `DisplayOnly` |
| 30 | 28 | = note: add `#[derive(Debug)]` to `DisplayOnly` or manually `impl Debug for DisplayOnly` |
| 31 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 32 | 29 | help: consider annotating `DisplayOnly` with `#[derive(Debug)]` |
| 33 | 30 | | |
| 34 | 31 | LL + #[derive(Debug)] |
| ... | ... | @@ -45,7 +42,6 @@ LL | println!("{x} {x:?} {x}", x = DisplayOnly); |
| 45 | 42 | | |
| 46 | 43 | = help: the trait `Debug` is not implemented for `DisplayOnly` |
| 47 | 44 | = note: add `#[derive(Debug)]` to `DisplayOnly` or manually `impl Debug for DisplayOnly` |
| 48 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 49 | 45 | help: consider annotating `DisplayOnly` with `#[derive(Debug)]` |
| 50 | 46 | | |
| 51 | 47 | LL + #[derive(Debug)] |
tests/ui/fmt/ifmt-bad-arg.stderr-2| ... | ... | @@ -320,7 +320,6 @@ LL | println!("{} {:.*} {}", 1, 3.2, 4); |
| 320 | 320 | found reference `&{float}` |
| 321 | 321 | note: associated function defined here |
| 322 | 322 | --> $SRC_DIR/core/src/fmt/rt.rs:LL:COL |
| 323 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 324 | 323 | |
| 325 | 324 | error[E0308]: mismatched types |
| 326 | 325 | --> $DIR/ifmt-bad-arg.rs:81:35 |
| ... | ... | @@ -334,7 +333,6 @@ LL | println!("{} {:07$.*} {}", 1, 3.2, 4); |
| 334 | 333 | found reference `&{float}` |
| 335 | 334 | note: associated function defined here |
| 336 | 335 | --> $SRC_DIR/core/src/fmt/rt.rs:LL:COL |
| 337 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 338 | 336 | |
| 339 | 337 | error: aborting due to 38 previous errors |
| 340 | 338 |
tests/ui/fmt/ifmt-unimpl.stderr-1| ... | ... | @@ -17,7 +17,6 @@ LL | format!("{:X}", "3"); |
| 17 | 17 | i32 |
| 18 | 18 | and 9 others |
| 19 | 19 | = note: required for `&str` to implement `UpperHex` |
| 20 | = note: this error originates in the macro `$crate::__export::format_args` which comes from the expansion of the macro `format` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 21 | 20 | |
| 22 | 21 | error: aborting due to 1 previous error |
| 23 | 22 |
tests/ui/fmt/non-source-literals.stderr-4| ... | ... | @@ -10,7 +10,6 @@ help: the trait `std::fmt::Display` is not implemented for `NonDisplay` |
| 10 | 10 | LL | pub struct NonDisplay; |
| 11 | 11 | | ^^^^^^^^^^^^^^^^^^^^^ |
| 12 | 12 | = note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead |
| 13 | = note: this error originates in the macro `$crate::__export::format_args` which comes from the expansion of the macro `format` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 14 | 13 | |
| 15 | 14 | error[E0277]: `NonDisplay` doesn't implement `std::fmt::Display` |
| 16 | 15 | --> $DIR/non-source-literals.rs:10:45 |
| ... | ... | @@ -24,7 +23,6 @@ help: the trait `std::fmt::Display` is not implemented for `NonDisplay` |
| 24 | 23 | LL | pub struct NonDisplay; |
| 25 | 24 | | ^^^^^^^^^^^^^^^^^^^^^ |
| 26 | 25 | = note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead |
| 27 | = note: this error originates in the macro `$crate::__export::format_args` which comes from the expansion of the macro `format` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 28 | 26 | |
| 29 | 27 | error[E0277]: `NonDebug` doesn't implement `Debug` |
| 30 | 28 | --> $DIR/non-source-literals.rs:11:42 |
| ... | ... | @@ -34,7 +32,6 @@ LL | let _ = format!(concat!("{:", "?}"), NonDebug); |
| 34 | 32 | | |
| 35 | 33 | = help: the trait `Debug` is not implemented for `NonDebug` |
| 36 | 34 | = note: add `#[derive(Debug)]` to `NonDebug` or manually `impl Debug for NonDebug` |
| 37 | = note: this error originates in the macro `$crate::__export::format_args` which comes from the expansion of the macro `format` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 38 | 35 | help: consider annotating `NonDebug` with `#[derive(Debug)]` |
| 39 | 36 | | |
| 40 | 37 | LL + #[derive(Debug)] |
| ... | ... | @@ -49,7 +46,6 @@ LL | let _ = format!(concat!("{", "0", ":?}"), NonDebug); |
| 49 | 46 | | |
| 50 | 47 | = help: the trait `Debug` is not implemented for `NonDebug` |
| 51 | 48 | = note: add `#[derive(Debug)]` to `NonDebug` or manually `impl Debug for NonDebug` |
| 52 | = note: this error originates in the macro `$crate::__export::format_args` which comes from the expansion of the macro `format` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 53 | 49 | help: consider annotating `NonDebug` with `#[derive(Debug)]` |
| 54 | 50 | | |
| 55 | 51 | LL + #[derive(Debug)] |
tests/ui/impl-trait/precise-capturing/migration-note.stderr-1| ... | ... | @@ -282,7 +282,6 @@ note: this call may capture more lifetimes than intended, because Rust 2024 has |
| 282 | 282 | | |
| 283 | 283 | LL | let x = { let x = display_len(&mut vec![0]); x }; |
| 284 | 284 | | ^^^^^^^^^^^^^^^^^^^^^^^^^ |
| 285 | = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 286 | 285 | help: use the precise capturing `use<...>` syntax to make the captures explicit |
| 287 | 286 | | |
| 288 | 287 | LL | fn display_len<T>(x: &Vec<T>) -> impl Display + use<T> { |
tests/ui/inference/need_type_info/issue-107745-avoid-expr-from-macro-expansion.stderr-2| ... | ... | @@ -3,8 +3,6 @@ error[E0282]: type annotations needed |
| 3 | 3 | | |
| 4 | 4 | LL | println!("{:?}", []); |
| 5 | 5 | | ^^ cannot infer type |
| 6 | | | |
| 7 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 8 | 6 | |
| 9 | 7 | error: aborting due to 1 previous error |
| 10 | 8 |
tests/ui/issues/issue-42796.stderr-1| ... | ... | @@ -9,7 +9,6 @@ LL | let mut s_copy = s; |
| 9 | 9 | LL | println!("{}", s); |
| 10 | 10 | | ^ value borrowed here after move |
| 11 | 11 | | |
| 12 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 13 | 12 | help: consider cloning the value if the performance cost is acceptable |
| 14 | 13 | | |
| 15 | 14 | LL | let mut s_copy = s.clone(); |
tests/ui/iterators/iter-macro-not-async-closure.stderr-2| ... | ... | @@ -35,7 +35,6 @@ note: required by a bound in `call_async_once` |
| 35 | 35 | | |
| 36 | 36 | LL | async fn call_async_once(f: impl AsyncFnOnce()) { |
| 37 | 37 | | ^^^^^^^^^^^^^ required by this bound in `call_async_once` |
| 38 | = note: this error originates in the macro `pin` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 39 | 38 | |
| 40 | 39 | error[E0277]: the trait bound `{gen closure@$DIR/iter-macro-not-async-closure.rs:19:21: 19:28}: AsyncFnOnce()` is not satisfied |
| 41 | 40 | --> $DIR/iter-macro-not-async-closure.rs:25:13 |
| ... | ... | @@ -48,7 +47,6 @@ note: required by a bound in `call_async_once` |
| 48 | 47 | | |
| 49 | 48 | LL | async fn call_async_once(f: impl AsyncFnOnce()) { |
| 50 | 49 | | ^^^^^^^^^^^^^ required by this bound in `call_async_once` |
| 51 | = note: this error originates in the macro `pin` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 52 | 50 | |
| 53 | 51 | error[E0277]: the trait bound `{gen closure@$DIR/iter-macro-not-async-closure.rs:19:21: 19:28}: AsyncFnOnce()` is not satisfied |
| 54 | 52 | --> $DIR/iter-macro-not-async-closure.rs:30:5 |
tests/ui/lifetimes/borrowck-let-suggestion.stderr-1| ... | ... | @@ -9,7 +9,6 @@ LL | |
| 9 | 9 | LL | x.use_mut(); |
| 10 | 10 | | - borrow later used here |
| 11 | 11 | | |
| 12 | = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 13 | 12 | help: consider consuming the `Vec<i32>` when turning it into an `Iterator` |
| 14 | 13 | | |
| 15 | 14 | LL | let mut x = vec![1].into_iter(); |
tests/ui/lint/dead-code/closure-bang.stderr-1| ... | ... | @@ -11,7 +11,6 @@ note: the lint level is defined here |
| 11 | 11 | | |
| 12 | 12 | LL | #![deny(unreachable_code)] |
| 13 | 13 | | ^^^^^^^^^^^^^^^^ |
| 14 | = note: this error originates in the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 15 | 14 | |
| 16 | 15 | error: aborting due to 1 previous error |
| 17 | 16 |
tests/ui/lint/fn-ptr-comparisons-some.stderr-1| ... | ... | @@ -18,7 +18,6 @@ LL | assert_eq!(Some::<FnPtr>(func), Some(func as unsafe extern "C" fn())); |
| 18 | 18 | = note: the address of the same function can vary between different codegen units |
| 19 | 19 | = note: furthermore, different functions could have the same address after being merged together |
| 20 | 20 | = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html> |
| 21 | = note: this warning originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 22 | 21 | |
| 23 | 22 | warning: 2 warnings emitted |
| 24 | 23 |
tests/ui/lint/fn-ptr-comparisons-weird.stderr-2| ... | ... | @@ -61,7 +61,6 @@ LL | let _ = assert_eq!(g, g); |
| 61 | 61 | = note: the address of the same function can vary between different codegen units |
| 62 | 62 | = note: furthermore, different functions could have the same address after being merged together |
| 63 | 63 | = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html> |
| 64 | = note: this warning originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 65 | 64 | |
| 66 | 65 | warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique |
| 67 | 66 | --> $DIR/fn-ptr-comparisons-weird.rs:35:13 |
| ... | ... | @@ -72,7 +71,6 @@ LL | let _ = assert_ne!(g, g); |
| 72 | 71 | = note: the address of the same function can vary between different codegen units |
| 73 | 72 | = note: furthermore, different functions could have the same address after being merged together |
| 74 | 73 | = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html> |
| 75 | = note: this warning originates in the macro `assert_ne` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 76 | 74 | |
| 77 | 75 | warning: 7 warnings emitted |
| 78 | 76 |
tests/ui/lint/lint-type-overflow2.rs+6| ... | ... | @@ -1,13 +1,19 @@ |
| 1 | 1 | //@ compile-flags: -O |
| 2 | 2 | |
| 3 | #![feature(f16)] | |
| 4 | #![feature(f128)] | |
| 3 | 5 | #![deny(overflowing_literals)] |
| 4 | 6 | |
| 5 | 7 | fn main() { |
| 6 | 8 | let x2: i8 = --128; //~ ERROR literal out of range for `i8` |
| 7 | 9 | //~| WARN use of a double negation |
| 8 | 10 | |
| 11 | let x = -65520.0_f16; //~ ERROR literal out of range for `f16` | |
| 12 | let x = 65520.0_f16; //~ ERROR literal out of range for `f16` | |
| 9 | 13 | let x = -3.40282357e+38_f32; //~ ERROR literal out of range for `f32` |
| 10 | 14 | let x = 3.40282357e+38_f32; //~ ERROR literal out of range for `f32` |
| 11 | 15 | let x = -1.7976931348623159e+308_f64; //~ ERROR literal out of range for `f64` |
| 12 | 16 | let x = 1.7976931348623159e+308_f64; //~ ERROR literal out of range for `f64` |
| 17 | let x = -1.1897314953572317650857593266280075e+4932_f128; //~ ERROR literal out of range for `f128` | |
| 18 | let x = 1.1897314953572317650857593266280075e+4932_f128; //~ ERROR literal out of range for `f128` | |
| 13 | 19 | } |
tests/ui/lint/lint-type-overflow2.stderr+40-8| ... | ... | @@ -1,5 +1,5 @@ |
| 1 | 1 | warning: use of a double negation |
| 2 | --> $DIR/lint-type-overflow2.rs:6:18 | |
| 2 | --> $DIR/lint-type-overflow2.rs:8:18 | |
| 3 | 3 | | |
| 4 | 4 | LL | let x2: i8 = --128; |
| 5 | 5 | | ^^^^^ |
| ... | ... | @@ -13,7 +13,7 @@ LL | let x2: i8 = -(-128); |
| 13 | 13 | | + + |
| 14 | 14 | |
| 15 | 15 | error: literal out of range for `i8` |
| 16 | --> $DIR/lint-type-overflow2.rs:6:20 | |
| 16 | --> $DIR/lint-type-overflow2.rs:8:20 | |
| 17 | 17 | | |
| 18 | 18 | LL | let x2: i8 = --128; |
| 19 | 19 | | ^^^ |
| ... | ... | @@ -21,13 +21,29 @@ LL | let x2: i8 = --128; |
| 21 | 21 | = note: the literal `128` does not fit into the type `i8` whose range is `-128..=127` |
| 22 | 22 | = help: consider using the type `u8` instead |
| 23 | 23 | note: the lint level is defined here |
| 24 | --> $DIR/lint-type-overflow2.rs:3:9 | |
| 24 | --> $DIR/lint-type-overflow2.rs:5:9 | |
| 25 | 25 | | |
| 26 | 26 | LL | #![deny(overflowing_literals)] |
| 27 | 27 | | ^^^^^^^^^^^^^^^^^^^^ |
| 28 | 28 | |
| 29 | error: literal out of range for `f16` | |
| 30 | --> $DIR/lint-type-overflow2.rs:11:14 | |
| 31 | | | |
| 32 | LL | let x = -65520.0_f16; | |
| 33 | | ^^^^^^^^^^^ | |
| 34 | | | |
| 35 | = note: the literal `65520.0_f16` does not fit into the type `f16` and will be converted to `f16::INFINITY` | |
| 36 | ||
| 37 | error: literal out of range for `f16` | |
| 38 | --> $DIR/lint-type-overflow2.rs:12:14 | |
| 39 | | | |
| 40 | LL | let x = 65520.0_f16; | |
| 41 | | ^^^^^^^^^^^ | |
| 42 | | | |
| 43 | = note: the literal `65520.0_f16` does not fit into the type `f16` and will be converted to `f16::INFINITY` | |
| 44 | ||
| 29 | 45 | error: literal out of range for `f32` |
| 30 | --> $DIR/lint-type-overflow2.rs:9:14 | |
| 46 | --> $DIR/lint-type-overflow2.rs:13:14 | |
| 31 | 47 | | |
| 32 | 48 | LL | let x = -3.40282357e+38_f32; |
| 33 | 49 | | ^^^^^^^^^^^^^^^^^^ |
| ... | ... | @@ -35,7 +51,7 @@ LL | let x = -3.40282357e+38_f32; |
| 35 | 51 | = note: the literal `3.40282357e+38_f32` does not fit into the type `f32` and will be converted to `f32::INFINITY` |
| 36 | 52 | |
| 37 | 53 | error: literal out of range for `f32` |
| 38 | --> $DIR/lint-type-overflow2.rs:10:14 | |
| 54 | --> $DIR/lint-type-overflow2.rs:14:14 | |
| 39 | 55 | | |
| 40 | 56 | LL | let x = 3.40282357e+38_f32; |
| 41 | 57 | | ^^^^^^^^^^^^^^^^^^ |
| ... | ... | @@ -43,7 +59,7 @@ LL | let x = 3.40282357e+38_f32; |
| 43 | 59 | = note: the literal `3.40282357e+38_f32` does not fit into the type `f32` and will be converted to `f32::INFINITY` |
| 44 | 60 | |
| 45 | 61 | error: literal out of range for `f64` |
| 46 | --> $DIR/lint-type-overflow2.rs:11:14 | |
| 62 | --> $DIR/lint-type-overflow2.rs:15:14 | |
| 47 | 63 | | |
| 48 | 64 | LL | let x = -1.7976931348623159e+308_f64; |
| 49 | 65 | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| ... | ... | @@ -51,12 +67,28 @@ LL | let x = -1.7976931348623159e+308_f64; |
| 51 | 67 | = note: the literal `1.7976931348623159e+308_f64` does not fit into the type `f64` and will be converted to `f64::INFINITY` |
| 52 | 68 | |
| 53 | 69 | error: literal out of range for `f64` |
| 54 | --> $DIR/lint-type-overflow2.rs:12:14 | |
| 70 | --> $DIR/lint-type-overflow2.rs:16:14 | |
| 55 | 71 | | |
| 56 | 72 | LL | let x = 1.7976931348623159e+308_f64; |
| 57 | 73 | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| 58 | 74 | | |
| 59 | 75 | = note: the literal `1.7976931348623159e+308_f64` does not fit into the type `f64` and will be converted to `f64::INFINITY` |
| 60 | 76 | |
| 61 | error: aborting due to 5 previous errors; 1 warning emitted | |
| 77 | error: literal out of range for `f128` | |
| 78 | --> $DIR/lint-type-overflow2.rs:17:14 | |
| 79 | | | |
| 80 | LL | let x = -1.1897314953572317650857593266280075e+4932_f128; | |
| 81 | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
| 82 | | | |
| 83 | = note: the literal `1.1897314953572317650857593266280075e+4932_f128` does not fit into the type `f128` and will be converted to `f128::INFINITY` | |
| 84 | ||
| 85 | error: literal out of range for `f128` | |
| 86 | --> $DIR/lint-type-overflow2.rs:18:14 | |
| 87 | | | |
| 88 | LL | let x = 1.1897314953572317650857593266280075e+4932_f128; | |
| 89 | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
| 90 | | | |
| 91 | = note: the literal `1.1897314953572317650857593266280075e+4932_f128` does not fit into the type `f128` and will be converted to `f128::INFINITY` | |
| 92 | ||
| 93 | error: aborting due to 9 previous errors; 1 warning emitted | |
| 62 | 94 |
tests/ui/liveness/liveness-move-in-while.stderr-1| ... | ... | @@ -35,7 +35,6 @@ LL | while true { while true { while true { x = y; x.clone(); } } } |
| 35 | 35 | | | inside of this loop |
| 36 | 36 | | inside of this loop |
| 37 | 37 | | |
| 38 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 39 | 38 | help: consider cloning the value if the performance cost is acceptable |
| 40 | 39 | | |
| 41 | 40 | LL | while true { while true { while true { x = y.clone(); x.clone(); } } } |
tests/ui/liveness/liveness-use-after-move.stderr-1| ... | ... | @@ -9,7 +9,6 @@ LL | |
| 9 | 9 | LL | println!("{}", *x); |
| 10 | 10 | | ^^ value borrowed here after move |
| 11 | 11 | | |
| 12 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 13 | 12 | help: consider cloning the value if the performance cost is acceptable |
| 14 | 13 | | |
| 15 | 14 | LL | let y = x.clone(); |
tests/ui/liveness/liveness-use-after-send.stderr-1| ... | ... | @@ -13,7 +13,6 @@ note: consider changing this parameter type in function `send` to borrow instead |
| 13 | 13 | | |
| 14 | 14 | LL | fn send<T:Send + std::fmt::Debug>(ch: Chan<T>, data: T) { |
| 15 | 15 | | ---- in this function ^ this parameter takes ownership of the value |
| 16 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 17 | 16 | help: consider cloning the value if the performance cost is acceptable |
| 18 | 17 | | |
| 19 | 18 | LL | send(ch, message.clone()); |
tests/ui/loops/loop-proper-liveness.stderr-1| ... | ... | @@ -7,7 +7,6 @@ LL | let x: i32; |
| 7 | 7 | LL | println!("{:?}", x); |
| 8 | 8 | | ^ `x` used here but it isn't initialized |
| 9 | 9 | | |
| 10 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 11 | 10 | help: consider assigning a value |
| 12 | 11 | | |
| 13 | 12 | LL | let x: i32 = 42; |
tests/ui/macros/assert.with-generic-asset.stderr-2| ... | ... | @@ -15,8 +15,6 @@ error: macro requires a boolean expression as an argument |
| 15 | 15 | | |
| 16 | 16 | LL | debug_assert!(); |
| 17 | 17 | | ^^^^^^^^^^^^^^^ boolean expression required |
| 18 | | | |
| 19 | = note: this error originates in the macro `debug_assert` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 20 | 18 | |
| 21 | 19 | error: expected expression, found keyword `struct` |
| 22 | 20 | --> $DIR/assert.rs:8:19 |
tests/ui/macros/assert.without-generic-asset.stderr-2| ... | ... | @@ -15,8 +15,6 @@ error: macro requires a boolean expression as an argument |
| 15 | 15 | | |
| 16 | 16 | LL | debug_assert!(); |
| 17 | 17 | | ^^^^^^^^^^^^^^^ boolean expression required |
| 18 | | | |
| 19 | = note: this error originates in the macro `debug_assert` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 20 | 18 | |
| 21 | 19 | error: expected expression, found keyword `struct` |
| 22 | 20 | --> $DIR/assert.rs:8:19 |
tests/ui/macros/failed-to-reparse-issue-139445.stderr-4| ... | ... | @@ -9,16 +9,12 @@ error: expected `while`, `for`, `loop` or `{` after a label |
| 9 | 9 | | |
| 10 | 10 | LL | assert_eq!(3, 'a,) |
| 11 | 11 | | ^^^^^^^^^^^^^^^^^^ expected `while`, `for`, `loop` or `{` after a label |
| 12 | | | |
| 13 | = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 14 | 12 | |
| 15 | 13 | error: expected expression, found `` |
| 16 | 14 | --> $DIR/failed-to-reparse-issue-139445.rs:2:5 |
| 17 | 15 | | |
| 18 | 16 | LL | assert_eq!(3, 'a,) |
| 19 | 17 | | ^^^^^^^^^^^^^^^^^^ expected expression |
| 20 | | | |
| 21 | = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 22 | 18 | |
| 23 | 19 | error: aborting due to 3 previous errors |
| 24 | 20 |
tests/ui/macros/format-parse-errors.stderr-2| ... | ... | @@ -3,8 +3,6 @@ error: requires at least a format string argument |
| 3 | 3 | | |
| 4 | 4 | LL | format!(); |
| 5 | 5 | | ^^^^^^^^^ |
| 6 | | | |
| 7 | = note: this error originates in the macro `$crate::__export::format_args` which comes from the expansion of the macro `format` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 8 | 6 | |
| 9 | 7 | error: expected expression, found keyword `struct` |
| 10 | 8 | --> $DIR/format-parse-errors.rs:5:13 |
tests/ui/macros/macro-expansion-empty-span-147255.stderr-1| ... | ... | @@ -8,7 +8,6 @@ LL | println!("{}", x_str); |
| 8 | 8 | | |
| 9 | 9 | = help: the trait `std::fmt::Display` is not implemented for `()` |
| 10 | 10 | = note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead |
| 11 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 12 | 11 | |
| 13 | 12 | error: aborting due to 1 previous error |
| 14 | 13 |
tests/ui/macros/macro-local-data-key-priv.stderr-1| ... | ... | @@ -9,7 +9,6 @@ note: the constant `baz` is defined here |
| 9 | 9 | | |
| 10 | 10 | LL | thread_local!(static baz: f64 = 0.0); |
| 11 | 11 | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| 12 | = note: this error originates in the macro `$crate::thread::local_impl::thread_local_process_attrs` which comes from the expansion of the macro `thread_local` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 13 | 12 | |
| 14 | 13 | error: aborting due to 1 previous error |
| 15 | 14 |
tests/ui/macros/vec-macro-in-pattern.stderr-3| ... | ... | @@ -5,7 +5,6 @@ LL | Some(vec![43]) => {} |
| 5 | 5 | | ^^^^^^^^ not a tuple struct or tuple variant |
| 6 | 6 | | |
| 7 | 7 | = note: function calls are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html> |
| 8 | = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 9 | 8 | |
| 10 | 9 | error[E0658]: usage of qualified paths in this context is experimental |
| 11 | 10 | --> $DIR/vec-macro-in-pattern.rs:7:14 |
| ... | ... | @@ -16,7 +15,6 @@ LL | Some(vec![43]) => {} |
| 16 | 15 | = note: see issue #86935 <https://github.com/rust-lang/rust/issues/86935> for more information |
| 17 | 16 | = help: add `#![feature(more_qualified_paths)]` to the crate attributes to enable |
| 18 | 17 | = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date |
| 19 | = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 20 | 18 | |
| 21 | 19 | error[E0164]: expected tuple struct or tuple variant, found associated function `<[_]>::into_vec` |
| 22 | 20 | --> $DIR/vec-macro-in-pattern.rs:7:14 |
| ... | ... | @@ -25,7 +23,6 @@ LL | Some(vec![43]) => {} |
| 25 | 23 | | ^^^^^^^^ `fn` calls are not allowed in patterns |
| 26 | 24 | | |
| 27 | 25 | = help: for more information, visit https://doc.rust-lang.org/book/ch19-00-patterns.html |
| 28 | = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 29 | 26 | |
| 30 | 27 | error: aborting due to 3 previous errors |
| 31 | 28 |
tests/ui/mismatched_types/mismatched-types-issue-126222.stderr-4| ... | ... | @@ -4,7 +4,6 @@ error[E0308]: mismatched types |
| 4 | 4 | LL | x => dbg!(x), |
| 5 | 5 | | ^^^^^^^ expected `()`, found integer |
| 6 | 6 | | |
| 7 | = note: this error originates in the macro `$crate::macros::dbg_internal` which comes from the expansion of the macro `dbg` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 8 | 7 | help: you might have meant to return this value |
| 9 | 8 | | |
| 10 | 9 | LL | x => return dbg!(x), |
| ... | ... | @@ -16,7 +15,6 @@ error[E0308]: mismatched types |
| 16 | 15 | LL | dbg!(x) |
| 17 | 16 | | ^^^^^^^ expected `()`, found integer |
| 18 | 17 | | |
| 19 | = note: this error originates in the macro `$crate::macros::dbg_internal` which comes from the expansion of the macro `dbg` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 20 | 18 | help: you might have meant to return this value |
| 21 | 19 | | |
| 22 | 20 | LL | return dbg!(x) |
| ... | ... | @@ -28,7 +26,6 @@ error[E0308]: mismatched types |
| 28 | 26 | LL | _ => dbg!(1) |
| 29 | 27 | | ^^^^^^^ expected `()`, found integer |
| 30 | 28 | | |
| 31 | = note: this error originates in the macro `$crate::macros::dbg_internal` which comes from the expansion of the macro `dbg` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 32 | 29 | help: you might have meant to return this value |
| 33 | 30 | | |
| 34 | 31 | LL | _ => return dbg!(1) |
| ... | ... | @@ -40,7 +37,6 @@ error[E0308]: mismatched types |
| 40 | 37 | LL | _ => {dbg!(1)} |
| 41 | 38 | | ^^^^^^^ expected `()`, found integer |
| 42 | 39 | | |
| 43 | = note: this error originates in the macro `$crate::macros::dbg_internal` which comes from the expansion of the macro `dbg` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 44 | 40 | help: you might have meant to return this value |
| 45 | 41 | | |
| 46 | 42 | LL | _ => {return dbg!(1)} |
tests/ui/modules/issue-107649.stderr-1| ... | ... | @@ -5,7 +5,6 @@ error[E0277]: `Dummy` doesn't implement `Debug` |
| 5 | 5 | | ^^^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `Dummy` |
| 6 | 6 | | |
| 7 | 7 | = note: add `#[derive(Debug)]` to `Dummy` or manually `impl Debug for Dummy` |
| 8 | = note: this error originates in the macro `$crate::macros::dbg_internal` which comes from the expansion of the macro `dbg` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 9 | 8 | help: consider annotating `Dummy` with `#[derive(Debug)]` |
| 10 | 9 | --> $DIR/auxiliary/dummy_lib.rs:2:1 |
| 11 | 10 | | |
tests/ui/moves/moves-based-on-type-capture-clause-bad.stderr-1| ... | ... | @@ -11,7 +11,6 @@ LL | }); |
| 11 | 11 | LL | println!("{}", x); |
| 12 | 12 | | ^ value borrowed here after move |
| 13 | 13 | | |
| 14 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 15 | 14 | help: consider cloning the value before moving it into the closure |
| 16 | 15 | | |
| 17 | 16 | LL ~ let value = x.clone(); |
tests/ui/nll/polonius/nll-problem-case-3-issue-21906.nll.stderr-2| ... | ... | @@ -59,8 +59,6 @@ LL | return Some(y); |
| 59 | 59 | ... |
| 60 | 60 | LL | println!("{:?}", x.data); |
| 61 | 61 | | ^^^^^^ immutable borrow occurs here |
| 62 | | | |
| 63 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 64 | 62 | |
| 65 | 63 | error[E0499]: cannot borrow `*vec` as mutable more than once at a time |
| 66 | 64 | --> $DIR/nll-problem-case-3-issue-21906.rs:77:9 |
tests/ui/on-unimplemented/no-debug.stderr-4| ... | ... | @@ -8,7 +8,6 @@ LL | println!("{:?} {:?}", Foo, Bar); |
| 8 | 8 | | |
| 9 | 9 | = help: the trait `Debug` is not implemented for `Foo` |
| 10 | 10 | = note: add `#[derive(Debug)]` to `Foo` or manually `impl Debug for Foo` |
| 11 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 12 | 11 | help: consider annotating `Foo` with `#[derive(Debug)]` |
| 13 | 12 | | |
| 14 | 13 | LL + #[derive(Debug)] |
| ... | ... | @@ -24,7 +23,6 @@ LL | println!("{:?} {:?}", Foo, Bar); |
| 24 | 23 | | required by this formatting parameter |
| 25 | 24 | | |
| 26 | 25 | = help: the trait `Debug` is not implemented for `Bar` |
| 27 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 28 | 26 | |
| 29 | 27 | error[E0277]: `Foo` doesn't implement `std::fmt::Display` |
| 30 | 28 | --> $DIR/no-debug.rs:11:23 |
| ... | ... | @@ -40,7 +38,6 @@ help: the trait `std::fmt::Display` is not implemented for `Foo` |
| 40 | 38 | LL | struct Foo; |
| 41 | 39 | | ^^^^^^^^^^ |
| 42 | 40 | = note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead |
| 43 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 44 | 41 | |
| 45 | 42 | error[E0277]: `Bar` doesn't implement `std::fmt::Display` |
| 46 | 43 | --> $DIR/no-debug.rs:11:28 |
| ... | ... | @@ -52,7 +49,6 @@ LL | println!("{} {}", Foo, Bar); |
| 52 | 49 | | |
| 53 | 50 | = help: the trait `std::fmt::Display` is not implemented for `Bar` |
| 54 | 51 | = note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead |
| 55 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 56 | 52 | |
| 57 | 53 | error: aborting due to 4 previous errors |
| 58 | 54 |
tests/ui/pattern/deref-patterns/ice-adjust-mode-unimplemented-for-constblock.stderr-3| ... | ... | @@ -5,7 +5,6 @@ LL | let vec![const { vec![] }]: Vec<usize> = vec![]; |
| 5 | 5 | | ^^^^^^^^^^^^^^^^^^^^^^ not a tuple struct or tuple variant |
| 6 | 6 | | |
| 7 | 7 | = note: function calls are not allowed in patterns: <https://doc.rust-lang.org/book/ch19-00-patterns.html> |
| 8 | = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 9 | 8 | |
| 10 | 9 | error[E0658]: usage of qualified paths in this context is experimental |
| 11 | 10 | --> $DIR/ice-adjust-mode-unimplemented-for-constblock.rs:5:9 |
| ... | ... | @@ -16,7 +15,6 @@ LL | let vec![const { vec![] }]: Vec<usize> = vec![]; |
| 16 | 15 | = note: see issue #86935 <https://github.com/rust-lang/rust/issues/86935> for more information |
| 17 | 16 | = help: add `#![feature(more_qualified_paths)]` to the crate attributes to enable |
| 18 | 17 | = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date |
| 19 | = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 20 | 18 | |
| 21 | 19 | error: arbitrary expressions aren't allowed in patterns |
| 22 | 20 | --> $DIR/ice-adjust-mode-unimplemented-for-constblock.rs:5:14 |
| ... | ... | @@ -33,7 +31,6 @@ LL | let vec![const { vec![] }]: Vec<usize> = vec![]; |
| 33 | 31 | | ^^^^^^^^^^^^^^^^^^^^^^ `fn` calls are not allowed in patterns |
| 34 | 32 | | |
| 35 | 33 | = help: for more information, visit https://doc.rust-lang.org/book/ch19-00-patterns.html |
| 36 | = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 37 | 34 | |
| 38 | 35 | error: aborting due to 4 previous errors |
| 39 | 36 |
tests/ui/pin-macro/lifetime_errors_on_promotion_misusage.stderr-2| ... | ... | @@ -10,7 +10,6 @@ LL | stuff(phantom_pinned) |
| 10 | 10 | | -------------- borrow later used here |
| 11 | 11 | | |
| 12 | 12 | = note: consider using a `let` binding to create a longer lived value |
| 13 | = note: this error originates in the macro `pin` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 14 | 13 | |
| 15 | 14 | error[E0716]: temporary value dropped while borrowed |
| 16 | 15 | --> $DIR/lifetime_errors_on_promotion_misusage.rs:18:30 |
| ... | ... | @@ -24,7 +23,6 @@ LL | }; |
| 24 | 23 | | - temporary value is freed at the end of this statement |
| 25 | 24 | | |
| 26 | 25 | = note: consider using a `let` binding to create a longer lived value |
| 27 | = note: this error originates in the macro `pin` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 28 | 26 | |
| 29 | 27 | error: aborting due to 2 previous errors |
| 30 | 28 |
tests/ui/reachable/expr_again.stderr-1| ... | ... | @@ -11,7 +11,6 @@ note: the lint level is defined here |
| 11 | 11 | | |
| 12 | 12 | LL | #![deny(unreachable_code)] |
| 13 | 13 | | ^^^^^^^^^^^^^^^^ |
| 14 | = note: this error originates in the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 15 | 14 | |
| 16 | 15 | error: aborting due to 1 previous error |
| 17 | 16 |
tests/ui/reachable/expr_block.stderr-2| ... | ... | @@ -19,8 +19,6 @@ LL | return; |
| 19 | 19 | | ------ any code following this expression is unreachable |
| 20 | 20 | LL | println!("foo"); |
| 21 | 21 | | ^^^^^^^^^^^^^^^ unreachable statement |
| 22 | | | |
| 23 | = note: this error originates in the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 24 | 22 | |
| 25 | 23 | error: aborting due to 2 previous errors |
| 26 | 24 |
tests/ui/reachable/expr_if.stderr-2| ... | ... | @@ -23,8 +23,6 @@ LL | return; |
| 23 | 23 | ... |
| 24 | 24 | LL | println!("But I am."); |
| 25 | 25 | | ^^^^^^^^^^^^^^^^^^^^^ unreachable statement |
| 26 | | | |
| 27 | = note: this error originates in the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 28 | 26 | |
| 29 | 27 | error: aborting due to 2 previous errors |
| 30 | 28 |
tests/ui/reachable/expr_loop.stderr-5| ... | ... | @@ -11,7 +11,6 @@ note: the lint level is defined here |
| 11 | 11 | | |
| 12 | 12 | LL | #![deny(unreachable_code)] |
| 13 | 13 | | ^^^^^^^^^^^^^^^^ |
| 14 | = note: this error originates in the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 15 | 14 | |
| 16 | 15 | error: unreachable statement |
| 17 | 16 | --> $DIR/expr_loop.rs:21:5 |
| ... | ... | @@ -20,8 +19,6 @@ LL | loop { return; } |
| 20 | 19 | | ------ any code following this expression is unreachable |
| 21 | 20 | LL | println!("I am dead."); |
| 22 | 21 | | ^^^^^^^^^^^^^^^^^^^^^^ unreachable statement |
| 23 | | | |
| 24 | = note: this error originates in the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 25 | 22 | |
| 26 | 23 | error: unreachable statement |
| 27 | 24 | --> $DIR/expr_loop.rs:32:5 |
| ... | ... | @@ -30,8 +27,6 @@ LL | loop { 'middle: loop { loop { break 'middle; } } } |
| 30 | 27 | | -------------------------------------------------- any code following this expression is unreachable |
| 31 | 28 | LL | println!("I am dead."); |
| 32 | 29 | | ^^^^^^^^^^^^^^^^^^^^^^ unreachable statement |
| 33 | | | |
| 34 | = note: this error originates in the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 35 | 30 | |
| 36 | 31 | error: aborting due to 3 previous errors |
| 37 | 32 |
tests/ui/reachable/expr_match.stderr-5| ... | ... | @@ -11,7 +11,6 @@ note: the lint level is defined here |
| 11 | 11 | | |
| 12 | 12 | LL | #![deny(unreachable_code)] |
| 13 | 13 | | ^^^^^^^^^^^^^^^^ |
| 14 | = note: this error originates in the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 15 | 14 | |
| 16 | 15 | error: unreachable statement |
| 17 | 16 | --> $DIR/expr_match.rs:19:5 |
| ... | ... | @@ -20,8 +19,6 @@ LL | match () { () if false => return, () => return } |
| 20 | 19 | | ------------------------------------------------ any code following this `match` expression is unreachable, as all arms diverge |
| 21 | 20 | LL | println!("I am dead"); |
| 22 | 21 | | ^^^^^^^^^^^^^^^^^^^^^ unreachable statement |
| 23 | | | |
| 24 | = note: this error originates in the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 25 | 22 | |
| 26 | 23 | error: unreachable expression |
| 27 | 24 | --> $DIR/expr_match.rs:25:25 |
| ... | ... | @@ -42,8 +39,6 @@ LL | | } |
| 42 | 39 | | |_____- any code following this `match` expression is unreachable, as all arms diverge |
| 43 | 40 | LL | println!("I am dead"); |
| 44 | 41 | | ^^^^^^^^^^^^^^^^^^^^^ unreachable statement |
| 45 | | | |
| 46 | = note: this error originates in the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 47 | 42 | |
| 48 | 43 | error: aborting due to 4 previous errors |
| 49 | 44 |
tests/ui/reachable/unreachable-code-ret.stderr-1| ... | ... | @@ -11,7 +11,6 @@ note: the lint level is defined here |
| 11 | 11 | | |
| 12 | 12 | LL | #![deny(unreachable_code)] |
| 13 | 13 | | ^^^^^^^^^^^^^^^^ |
| 14 | = note: this error originates in the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 15 | 14 | |
| 16 | 15 | error: aborting due to 1 previous error |
| 17 | 16 |
tests/ui/resolve/underscore-bindings-disambiguators.stderr-12| ... | ... | @@ -21,48 +21,36 @@ error[E0080]: evaluation panicked: not yet implemented |
| 21 | 21 | | |
| 22 | 22 | LL | const _: () = todo!(); |
| 23 | 23 | | ^^^^^^^ evaluation of `impls::_` failed here |
| 24 | | | |
| 25 | = note: this error originates in the macro `todo` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 26 | 24 | |
| 27 | 25 | error[E0080]: evaluation panicked: not yet implemented |
| 28 | 26 | --> $DIR/underscore-bindings-disambiguators.rs:20:19 |
| 29 | 27 | | |
| 30 | 28 | LL | const _: () = todo!(); |
| 31 | 29 | | ^^^^^^^ evaluation of `impls::_` failed here |
| 32 | | | |
| 33 | = note: this error originates in the macro `todo` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 34 | 30 | |
| 35 | 31 | error[E0080]: evaluation panicked: not yet implemented |
| 36 | 32 | --> $DIR/underscore-bindings-disambiguators.rs:21:19 |
| 37 | 33 | | |
| 38 | 34 | LL | const _: () = todo!(); |
| 39 | 35 | | ^^^^^^^ evaluation of `impls::_` failed here |
| 40 | | | |
| 41 | = note: this error originates in the macro `todo` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 42 | 36 | |
| 43 | 37 | error[E0080]: evaluation panicked: not yet implemented |
| 44 | 38 | --> $DIR/underscore-bindings-disambiguators.rs:22:19 |
| 45 | 39 | | |
| 46 | 40 | LL | const _: () = todo!(); |
| 47 | 41 | | ^^^^^^^ evaluation of `impls::_` failed here |
| 48 | | | |
| 49 | = note: this error originates in the macro `todo` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 50 | 42 | |
| 51 | 43 | error[E0080]: evaluation panicked: not yet implemented |
| 52 | 44 | --> $DIR/underscore-bindings-disambiguators.rs:23:19 |
| 53 | 45 | | |
| 54 | 46 | LL | const _: () = todo!(); |
| 55 | 47 | | ^^^^^^^ evaluation of `impls::_` failed here |
| 56 | | | |
| 57 | = note: this error originates in the macro `todo` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 58 | 48 | |
| 59 | 49 | error[E0080]: evaluation panicked: not yet implemented |
| 60 | 50 | --> $DIR/underscore-bindings-disambiguators.rs:28:15 |
| 61 | 51 | | |
| 62 | 52 | LL | const _: () = todo!(); |
| 63 | 53 | | ^^^^^^^ evaluation of `_` failed here |
| 64 | | | |
| 65 | = note: this error originates in the macro `todo` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 66 | 54 | |
| 67 | 55 | error: aborting due to 8 previous errors |
| 68 | 56 |
tests/ui/rfcs/rfc-0000-never_patterns/diverge-causes-unreachable-code.stderr-7| ... | ... | @@ -11,7 +11,6 @@ note: the lint level is defined here |
| 11 | 11 | | |
| 12 | 12 | LL | #![deny(unreachable_code)] |
| 13 | 13 | | ^^^^^^^^^^^^^^^^ |
| 14 | = note: this error originates in the macro `$crate::print` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 15 | 14 | |
| 16 | 15 | error: unreachable statement |
| 17 | 16 | --> $DIR/diverge-causes-unreachable-code.rs:16:5 |
| ... | ... | @@ -20,8 +19,6 @@ LL | fn ref_never_arg(&!: &Void) -> u32 { |
| 20 | 19 | | -- any code following a never pattern is unreachable |
| 21 | 20 | LL | println!(); |
| 22 | 21 | | ^^^^^^^^^^ unreachable statement |
| 23 | | | |
| 24 | = note: this error originates in the macro `$crate::print` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 25 | 22 | |
| 26 | 23 | error: unreachable statement |
| 27 | 24 | --> $DIR/diverge-causes-unreachable-code.rs:25:5 |
| ... | ... | @@ -31,8 +28,6 @@ LL | let ! = *ptr; |
| 31 | 28 | LL | } |
| 32 | 29 | LL | println!(); |
| 33 | 30 | | ^^^^^^^^^^ unreachable statement |
| 34 | | | |
| 35 | = note: this error originates in the macro `$crate::print` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 36 | 31 | |
| 37 | 32 | error: unreachable statement |
| 38 | 33 | --> $DIR/diverge-causes-unreachable-code.rs:34:5 |
| ... | ... | @@ -42,8 +37,6 @@ LL | match *ptr { ! }; |
| 42 | 37 | LL | } |
| 43 | 38 | LL | println!(); |
| 44 | 39 | | ^^^^^^^^^^ unreachable statement |
| 45 | | | |
| 46 | = note: this error originates in the macro `$crate::print` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 47 | 40 | |
| 48 | 41 | error: aborting due to 4 previous errors |
| 49 | 42 |
tests/ui/rfcs/rfc-2361-dbg-macro/dbg-macro-move-semantics.stderr-1| ... | ... | @@ -8,7 +8,6 @@ LL | let _ = dbg!(a); |
| 8 | 8 | LL | let _ = dbg!(a); |
| 9 | 9 | | ^^^^^^^ value used here after move |
| 10 | 10 | | |
| 11 | = note: this error originates in the macro `$crate::macros::dbg_internal` which comes from the expansion of the macro `dbg` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 12 | 11 | help: consider borrowing instead of transferring ownership |
| 13 | 12 | | |
| 14 | 13 | LL | let _ = dbg!(&a); |
tests/ui/rfcs/rfc-2361-dbg-macro/dbg-macro-requires-debug.stderr-1| ... | ... | @@ -5,7 +5,6 @@ LL | let _: NotDebug = dbg!(NotDebug); |
| 5 | 5 | | ^^^^^^^^^^^^^^ the trait `Debug` is not implemented for `NotDebug` |
| 6 | 6 | | |
| 7 | 7 | = note: add `#[derive(Debug)]` to `NotDebug` or manually `impl Debug for NotDebug` |
| 8 | = note: this error originates in the macro `$crate::macros::dbg_internal` which comes from the expansion of the macro `dbg` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 9 | 8 | help: consider annotating `NotDebug` with `#[derive(Debug)]` |
| 10 | 9 | | |
| 11 | 10 | LL + #[derive(Debug)] |
tests/ui/span/coerce-suggestions.stderr-2| ... | ... | @@ -56,8 +56,6 @@ error[E0308]: mismatched types |
| 56 | 56 | | |
| 57 | 57 | LL | s = format!("foo"); |
| 58 | 58 | | ^^^^^^^^^^^^^^ expected `&mut String`, found `String` |
| 59 | | | |
| 60 | = note: this error originates in the macro `format` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 61 | 59 | |
| 62 | 60 | error: aborting due to 5 previous errors |
| 63 | 61 |
tests/ui/span/issue-33884.stderr-2| ... | ... | @@ -3,8 +3,6 @@ error[E0308]: mismatched types |
| 3 | 3 | | |
| 4 | 4 | LL | stream.write_fmt(format!("message received")) |
| 5 | 5 | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Arguments<'_>`, found `String` |
| 6 | | | |
| 7 | = note: this error originates in the macro `format` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 8 | 6 | |
| 9 | 7 | error: aborting due to 1 previous error |
| 10 | 8 |
tests/ui/span/issue-39698.stderr-2| ... | ... | @@ -71,8 +71,6 @@ LL | T::T1(a, d) | T::T2(d, b) | T::T3(c) | T::T4(a) => { println!("{:?} |
| 71 | 71 | | | binding initialized here in some conditions |
| 72 | 72 | | binding initialized here in some conditions |
| 73 | 73 | | binding declared here but left uninitialized |
| 74 | | | |
| 75 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 76 | 74 | |
| 77 | 75 | error: aborting due to 5 previous errors |
| 78 | 76 |
tests/ui/span/slice-borrow.stderr-1| ... | ... | @@ -10,7 +10,6 @@ LL | y.use_ref(); |
| 10 | 10 | | - borrow later used here |
| 11 | 11 | | |
| 12 | 12 | = note: consider using a `let` binding to create a longer lived value |
| 13 | = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 14 | 13 | |
| 15 | 14 | error: aborting due to 1 previous error |
| 16 | 15 |
tests/ui/statics/check-values-constraints.stderr-21| ... | ... | @@ -16,8 +16,6 @@ error[E0010]: allocations are not allowed in statics |
| 16 | 16 | | |
| 17 | 17 | LL | static STATIC11: Vec<MyOwned> = vec![MyOwned]; |
| 18 | 18 | | ^^^^^^^^^^^^^ allocation not allowed in statics |
| 19 | | | |
| 20 | = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 21 | 19 | |
| 22 | 20 | error[E0015]: cannot call non-const method `slice::<impl [MyOwned]>::into_vec::<std::alloc::Global>` in statics |
| 23 | 21 | --> $DIR/check-values-constraints.rs:81:33 |
| ... | ... | @@ -27,7 +25,6 @@ LL | static STATIC11: Vec<MyOwned> = vec![MyOwned]; |
| 27 | 25 | | |
| 28 | 26 | = note: calls in statics are limited to constant functions, tuple structs and tuple variants |
| 29 | 27 | = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)` |
| 30 | = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 31 | 28 | |
| 32 | 29 | error[E0015]: cannot call non-const method `<str as ToString>::to_string` in statics |
| 33 | 30 | --> $DIR/check-values-constraints.rs:92:38 |
| ... | ... | @@ -50,8 +47,6 @@ error[E0010]: allocations are not allowed in statics |
| 50 | 47 | | |
| 51 | 48 | LL | vec![MyOwned], |
| 52 | 49 | | ^^^^^^^^^^^^^ allocation not allowed in statics |
| 53 | | | |
| 54 | = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 55 | 50 | |
| 56 | 51 | error[E0015]: cannot call non-const method `slice::<impl [MyOwned]>::into_vec::<std::alloc::Global>` in statics |
| 57 | 52 | --> $DIR/check-values-constraints.rs:96:5 |
| ... | ... | @@ -61,15 +56,12 @@ LL | vec![MyOwned], |
| 61 | 56 | | |
| 62 | 57 | = note: calls in statics are limited to constant functions, tuple structs and tuple variants |
| 63 | 58 | = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)` |
| 64 | = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 65 | 59 | |
| 66 | 60 | error[E0010]: allocations are not allowed in statics |
| 67 | 61 | --> $DIR/check-values-constraints.rs:98:5 |
| 68 | 62 | | |
| 69 | 63 | LL | vec![MyOwned], |
| 70 | 64 | | ^^^^^^^^^^^^^ allocation not allowed in statics |
| 71 | | | |
| 72 | = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 73 | 65 | |
| 74 | 66 | error[E0015]: cannot call non-const method `slice::<impl [MyOwned]>::into_vec::<std::alloc::Global>` in statics |
| 75 | 67 | --> $DIR/check-values-constraints.rs:98:5 |
| ... | ... | @@ -79,15 +71,12 @@ LL | vec![MyOwned], |
| 79 | 71 | | |
| 80 | 72 | = note: calls in statics are limited to constant functions, tuple structs and tuple variants |
| 81 | 73 | = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)` |
| 82 | = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 83 | 74 | |
| 84 | 75 | error[E0010]: allocations are not allowed in statics |
| 85 | 76 | --> $DIR/check-values-constraints.rs:103:6 |
| 86 | 77 | | |
| 87 | 78 | LL | &vec![MyOwned], |
| 88 | 79 | | ^^^^^^^^^^^^^ allocation not allowed in statics |
| 89 | | | |
| 90 | = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 91 | 80 | |
| 92 | 81 | error[E0015]: cannot call non-const method `slice::<impl [MyOwned]>::into_vec::<std::alloc::Global>` in statics |
| 93 | 82 | --> $DIR/check-values-constraints.rs:103:6 |
| ... | ... | @@ -97,15 +86,12 @@ LL | &vec![MyOwned], |
| 97 | 86 | | |
| 98 | 87 | = note: calls in statics are limited to constant functions, tuple structs and tuple variants |
| 99 | 88 | = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)` |
| 100 | = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 101 | 89 | |
| 102 | 90 | error[E0010]: allocations are not allowed in statics |
| 103 | 91 | --> $DIR/check-values-constraints.rs:105:6 |
| 104 | 92 | | |
| 105 | 93 | LL | &vec![MyOwned], |
| 106 | 94 | | ^^^^^^^^^^^^^ allocation not allowed in statics |
| 107 | | | |
| 108 | = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 109 | 95 | |
| 110 | 96 | error[E0015]: cannot call non-const method `slice::<impl [MyOwned]>::into_vec::<std::alloc::Global>` in statics |
| 111 | 97 | --> $DIR/check-values-constraints.rs:105:6 |
| ... | ... | @@ -115,15 +101,12 @@ LL | &vec![MyOwned], |
| 115 | 101 | | |
| 116 | 102 | = note: calls in statics are limited to constant functions, tuple structs and tuple variants |
| 117 | 103 | = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)` |
| 118 | = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 119 | 104 | |
| 120 | 105 | error[E0010]: allocations are not allowed in statics |
| 121 | 106 | --> $DIR/check-values-constraints.rs:111:31 |
| 122 | 107 | | |
| 123 | 108 | LL | static STATIC19: Vec<isize> = vec![3]; |
| 124 | 109 | | ^^^^^^^ allocation not allowed in statics |
| 125 | | | |
| 126 | = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 127 | 110 | |
| 128 | 111 | error[E0015]: cannot call non-const method `slice::<impl [isize]>::into_vec::<std::alloc::Global>` in statics |
| 129 | 112 | --> $DIR/check-values-constraints.rs:111:31 |
| ... | ... | @@ -133,15 +116,12 @@ LL | static STATIC19: Vec<isize> = vec![3]; |
| 133 | 116 | | |
| 134 | 117 | = note: calls in statics are limited to constant functions, tuple structs and tuple variants |
| 135 | 118 | = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)` |
| 136 | = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 137 | 119 | |
| 138 | 120 | error[E0010]: allocations are not allowed in statics |
| 139 | 121 | --> $DIR/check-values-constraints.rs:117:32 |
| 140 | 122 | | |
| 141 | 123 | LL | static x: Vec<isize> = vec![3]; |
| 142 | 124 | | ^^^^^^^ allocation not allowed in statics |
| 143 | | | |
| 144 | = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 145 | 125 | |
| 146 | 126 | error[E0015]: cannot call non-const method `slice::<impl [isize]>::into_vec::<std::alloc::Global>` in statics |
| 147 | 127 | --> $DIR/check-values-constraints.rs:117:32 |
| ... | ... | @@ -151,7 +131,6 @@ LL | static x: Vec<isize> = vec![3]; |
| 151 | 131 | | |
| 152 | 132 | = note: calls in statics are limited to constant functions, tuple structs and tuple variants |
| 153 | 133 | = note: consider wrapping this expression in `std::sync::LazyLock::new(|| ...)` |
| 154 | = note: this error originates in the macro `vec` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 155 | 134 | |
| 156 | 135 | error[E0507]: cannot move out of static item `x` |
| 157 | 136 | --> $DIR/check-values-constraints.rs:119:9 |
tests/ui/suggestions/bound-suggestions.stderr-6| ... | ... | @@ -6,7 +6,6 @@ LL | println!("{:?}", t); |
| 6 | 6 | | | |
| 7 | 7 | | required by this formatting parameter |
| 8 | 8 | | |
| 9 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 10 | 9 | help: consider restricting opaque type `impl Sized` with trait `Debug` |
| 11 | 10 | | |
| 12 | 11 | LL | fn test_impl(t: impl Sized + std::fmt::Debug) { |
| ... | ... | @@ -20,7 +19,6 @@ LL | println!("{:?}", t); |
| 20 | 19 | | | |
| 21 | 20 | | required by this formatting parameter |
| 22 | 21 | | |
| 23 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 24 | 22 | help: consider restricting type parameter `T` with trait `Debug` |
| 25 | 23 | | |
| 26 | 24 | LL | fn test_no_bounds<T: std::fmt::Debug>(t: T) { |
| ... | ... | @@ -34,7 +32,6 @@ LL | println!("{:?}", t); |
| 34 | 32 | | | |
| 35 | 33 | | required by this formatting parameter |
| 36 | 34 | | |
| 37 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 38 | 35 | help: consider further restricting type parameter `T` with trait `Debug` |
| 39 | 36 | | |
| 40 | 37 | LL | fn test_one_bound<T: Sized + std::fmt::Debug>(t: T) { |
| ... | ... | @@ -48,7 +45,6 @@ LL | println!("{:?} {:?}", x, y); |
| 48 | 45 | | | |
| 49 | 46 | | required by this formatting parameter |
| 50 | 47 | | |
| 51 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 52 | 48 | help: consider further restricting type parameter `Y` with trait `Debug` |
| 53 | 49 | | |
| 54 | 50 | LL | fn test_no_bounds_where<X, Y>(x: X, y: Y) where X: std::fmt::Debug, Y: std::fmt::Debug { |
| ... | ... | @@ -62,7 +58,6 @@ LL | println!("{:?}", x); |
| 62 | 58 | | | |
| 63 | 59 | | required by this formatting parameter |
| 64 | 60 | | |
| 65 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 66 | 61 | help: consider further restricting type parameter `X` with trait `Debug` |
| 67 | 62 | | |
| 68 | 63 | LL | fn test_one_bound_where<X>(x: X) where X: Sized + std::fmt::Debug { |
| ... | ... | @@ -76,7 +71,6 @@ LL | println!("{:?}", x); |
| 76 | 71 | | | |
| 77 | 72 | | required by this formatting parameter |
| 78 | 73 | | |
| 79 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 80 | 74 | help: consider further restricting type parameter `X` with trait `Debug` |
| 81 | 75 | | |
| 82 | 76 | LL | fn test_many_bounds_where<X>(x: X) where X: Sized + std::fmt::Debug, X: Sized { |
tests/ui/suggestions/issue-97760.stderr-1| ... | ... | @@ -6,7 +6,6 @@ LL | println!("{x}"); |
| 6 | 6 | | |
| 7 | 7 | = help: the trait `std::fmt::Display` is not implemented for `<impl IntoIterator as IntoIterator>::Item` |
| 8 | 8 | = note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead |
| 9 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 10 | 9 | help: introduce a type parameter with a trait bound instead of using `impl Trait` |
| 11 | 10 | | |
| 12 | 11 | LL ~ pub fn print_values<I: IntoIterator>(values: &I) |
tests/ui/suggestions/path-display.stderr-2| ... | ... | @@ -10,7 +10,6 @@ LL | println!("{}", path); |
| 10 | 10 | = note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead |
| 11 | 11 | = note: call `.display()` or `.to_string_lossy()` to safely print paths, as they may contain non-Unicode data |
| 12 | 12 | = note: required for `&Path` to implement `std::fmt::Display` |
| 13 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 14 | 13 | |
| 15 | 14 | error[E0277]: `PathBuf` doesn't implement `std::fmt::Display` |
| 16 | 15 | --> $DIR/path-display.rs:9:20 |
| ... | ... | @@ -23,7 +22,6 @@ LL | println!("{}", path); |
| 23 | 22 | = help: the trait `std::fmt::Display` is not implemented for `PathBuf` |
| 24 | 23 | = note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead |
| 25 | 24 | = note: call `.display()` or `.to_string_lossy()` to safely print paths, as they may contain non-Unicode data |
| 26 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 27 | 25 | |
| 28 | 26 | error: aborting due to 2 previous errors |
| 29 | 27 |
tests/ui/thread-local/no-unstable.stderr-4| ... | ... | @@ -10,7 +10,6 @@ LL | | } |
| 10 | 10 | = help: add `#![feature(rustc_attrs)]` to the crate attributes to enable |
| 11 | 11 | = note: the `#[rustc_dummy]` attribute is an internal implementation detail that will never be stable |
| 12 | 12 | = note: the `#[rustc_dummy]` attribute is used for rustc unit tests |
| 13 | = note: this error originates in the macro `$crate::thread::local_impl::thread_local_process_attrs` which comes from the expansion of the macro `thread_local` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 14 | 13 | |
| 15 | 14 | error[E0658]: use of an internal attribute |
| 16 | 15 | --> $DIR/no-unstable.rs:1:1 |
| ... | ... | @@ -24,7 +23,6 @@ LL | | } |
| 24 | 23 | = help: add `#![feature(rustc_attrs)]` to the crate attributes to enable |
| 25 | 24 | = note: the `#[rustc_dummy]` attribute is an internal implementation detail that will never be stable |
| 26 | 25 | = note: the `#[rustc_dummy]` attribute is used for rustc unit tests |
| 27 | = note: this error originates in the macro `$crate::thread::local_impl::thread_local_process_attrs` which comes from the expansion of the macro `thread_local` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 28 | 26 | |
| 29 | 27 | error[E0658]: `#[used(linker)]` is currently unstable |
| 30 | 28 | --> $DIR/no-unstable.rs:1:1 |
| ... | ... | @@ -38,7 +36,6 @@ LL | | } |
| 38 | 36 | = note: see issue #93798 <https://github.com/rust-lang/rust/issues/93798> for more information |
| 39 | 37 | = help: add `#![feature(used_with_arg)]` to the crate attributes to enable |
| 40 | 38 | = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date |
| 41 | = note: this error originates in the macro `$crate::thread::local_impl::thread_local_process_attrs` which comes from the expansion of the macro `thread_local` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 42 | 39 | |
| 43 | 40 | error: `#[used]` attribute cannot be used on constants |
| 44 | 41 | --> $DIR/no-unstable.rs:1:1 |
| ... | ... | @@ -50,7 +47,6 @@ LL | | } |
| 50 | 47 | | |_^ |
| 51 | 48 | | |
| 52 | 49 | = help: `#[used]` can only be applied to statics |
| 53 | = note: this error originates in the macro `$crate::thread::local_impl::thread_local_process_attrs` which comes from the expansion of the macro `thread_local` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 54 | 50 | |
| 55 | 51 | error: aborting due to 4 previous errors |
| 56 | 52 |
tests/ui/traits/const-traits/issue-79450.stderr-1| ... | ... | @@ -7,7 +7,6 @@ LL | println!("lul"); |
| 7 | 7 | note: function `_print` is not const |
| 8 | 8 | --> $SRC_DIR/std/src/io/stdio.rs:LL:COL |
| 9 | 9 | = note: calls in constant functions are limited to constant functions, tuple structs and tuple variants |
| 10 | = note: this error originates in the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 11 | 10 | |
| 12 | 11 | error: aborting due to 1 previous error |
| 13 | 12 |
tests/ui/try-block/try-block-maybe-bad-lifetime.stderr-1| ... | ... | @@ -22,7 +22,6 @@ LL | }; |
| 22 | 22 | LL | println!("{}", x); |
| 23 | 23 | | ^ value borrowed here after move |
| 24 | 24 | | |
| 25 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 26 | 25 | help: consider cloning the value if the performance cost is acceptable |
| 27 | 26 | | |
| 28 | 27 | LL | ::std::mem::drop(x.clone()); |
tests/ui/try-block/try-block-opt-init.stderr-2| ... | ... | @@ -9,8 +9,6 @@ LL | cfg_res = 5; |
| 9 | 9 | ... |
| 10 | 10 | LL | assert_eq!(cfg_res, 5); |
| 11 | 11 | | ^^^^^^^^^^^^^^^^^^^^^^ `cfg_res` used here but it is possibly-uninitialized |
| 12 | | | |
| 13 | = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 14 | 12 | |
| 15 | 13 | error: aborting due to 1 previous error |
| 16 | 14 |
tests/ui/type-alias-impl-trait/imply_bounds_from_bounds_param.edition2024.stderr-3| ... | ... | @@ -35,7 +35,6 @@ note: this call may capture more lifetimes than intended, because Rust 2024 has |
| 35 | 35 | | |
| 36 | 36 | LL | let mut thing = test(&mut z); |
| 37 | 37 | | ^^^^^^^^^^^^ |
| 38 | = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 39 | 38 | help: use the precise capturing `use<...>` syntax to make the captures explicit |
| 40 | 39 | | |
| 41 | 40 | LL | fn test<'a>(y: &'a mut i32) -> impl PlusOne + use<> { |
| ... | ... | @@ -57,7 +56,6 @@ note: this call may capture more lifetimes than intended, because Rust 2024 has |
| 57 | 56 | | |
| 58 | 57 | LL | let mut thing = test(&mut z); |
| 59 | 58 | | ^^^^^^^^^^^^ |
| 60 | = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 61 | 59 | help: use the precise capturing `use<...>` syntax to make the captures explicit |
| 62 | 60 | | |
| 63 | 61 | LL | fn test<'a>(y: &'a mut i32) -> impl PlusOne + use<> { |
| ... | ... | @@ -79,7 +77,6 @@ note: this call may capture more lifetimes than intended, because Rust 2024 has |
| 79 | 77 | | |
| 80 | 78 | LL | let mut thing = test(&mut z); |
| 81 | 79 | | ^^^^^^^^^^^^ |
| 82 | = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 83 | 80 | help: use the precise capturing `use<...>` syntax to make the captures explicit |
| 84 | 81 | | |
| 85 | 82 | LL | fn test<'a>(y: &'a mut i32) -> impl PlusOne + use<> { |
tests/ui/type-alias-impl-trait/nested.stderr-1| ... | ... | @@ -20,7 +20,6 @@ LL | println!("{:?}", bar()); |
| 20 | 20 | | required by this formatting parameter |
| 21 | 21 | | |
| 22 | 22 | = help: the trait `Debug` is not implemented for `Bar` |
| 23 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 24 | 23 | |
| 25 | 24 | error: aborting due to 2 previous errors |
| 26 | 25 |
tests/ui/type/binding-assigned-block-without-tail-expression.stderr-4| ... | ... | @@ -11,7 +11,6 @@ LL | println!("{}", x); |
| 11 | 11 | | |
| 12 | 12 | = help: the trait `std::fmt::Display` is not implemented for `()` |
| 13 | 13 | = note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead |
| 14 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 15 | 14 | |
| 16 | 15 | error[E0277]: `()` doesn't implement `std::fmt::Display` |
| 17 | 16 | --> $DIR/binding-assigned-block-without-tail-expression.rs:15:20 |
| ... | ... | @@ -26,7 +25,6 @@ LL | println!("{}", y); |
| 26 | 25 | | |
| 27 | 26 | = help: the trait `std::fmt::Display` is not implemented for `()` |
| 28 | 27 | = note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead |
| 29 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 30 | 28 | |
| 31 | 29 | error[E0277]: `()` doesn't implement `std::fmt::Display` |
| 32 | 30 | --> $DIR/binding-assigned-block-without-tail-expression.rs:16:20 |
| ... | ... | @@ -41,7 +39,6 @@ LL | println!("{}", z); |
| 41 | 39 | | |
| 42 | 40 | = help: the trait `std::fmt::Display` is not implemented for `()` |
| 43 | 41 | = note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead |
| 44 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 45 | 42 | |
| 46 | 43 | error[E0277]: `()` doesn't implement `std::fmt::Display` |
| 47 | 44 | --> $DIR/binding-assigned-block-without-tail-expression.rs:17:20 |
| ... | ... | @@ -59,7 +56,6 @@ LL | println!("{}", s); |
| 59 | 56 | | |
| 60 | 57 | = help: the trait `std::fmt::Display` is not implemented for `()` |
| 61 | 58 | = note: in format strings you may be able to use `{:?}` (or {:#?} for pretty-print) instead |
| 62 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 63 | 59 | |
| 64 | 60 | error[E0308]: mismatched types |
| 65 | 61 | --> $DIR/binding-assigned-block-without-tail-expression.rs:18:18 |
tests/ui/typeck/closure-ty-mismatch-issue-128561.stderr-2| ... | ... | @@ -14,8 +14,6 @@ error[E0308]: mismatched types |
| 14 | 14 | | |
| 15 | 15 | LL | b"abc".iter().for_each(|x| dbg!(x)); |
| 16 | 16 | | ^^^^^^^ expected `()`, found `&u8` |
| 17 | | | |
| 18 | = note: this error originates in the macro `$crate::macros::dbg_internal` which comes from the expansion of the macro `dbg` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 19 | 17 | |
| 20 | 18 | error[E0308]: mismatched types |
| 21 | 19 | --> $DIR/closure-ty-mismatch-issue-128561.rs:8:9 |
tests/ui/typeck/issue-110017-format-into-help-deletes-macro.stderr-1| ... | ... | @@ -6,7 +6,6 @@ LL | Err(format!("error: {x}")) |
| 6 | 6 | | |
| 7 | 7 | = note: expected struct `Box<dyn std::error::Error>` |
| 8 | 8 | found struct `String` |
| 9 | = note: this error originates in the macro `format` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 10 | 9 | help: call `Into::into` on this expression to convert `String` into `Box<dyn std::error::Error>` |
| 11 | 10 | | |
| 12 | 11 | LL | Err(format!("error: {x}").into()) |
tests/ui/typeck/issue-112007-leaked-writeln-macro-internals.stderr-1| ... | ... | @@ -12,7 +12,6 @@ LL | | } |
| 12 | 12 | | |
| 13 | 13 | = note: expected unit type `()` |
| 14 | 14 | found enum `Result<(), std::fmt::Error>` |
| 15 | = note: this error originates in the macro `writeln` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 16 | 15 | help: consider using a semicolon here |
| 17 | 16 | | |
| 18 | 17 | LL | }; |
tests/ui/typeck/question-mark-operator-suggestion-span.stderr-1| ... | ... | @@ -12,7 +12,6 @@ LL | | } |
| 12 | 12 | | |
| 13 | 13 | = note: expected unit type `()` |
| 14 | 14 | found enum `Result<(), std::fmt::Error>` |
| 15 | = note: this error originates in the macro `writeln` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 16 | 15 | help: consider using a semicolon here |
| 17 | 16 | | |
| 18 | 17 | LL | }; |
tests/ui/typeck/suggestions/suggest-clone-in-macro-issue-139253.stderr-2| ... | ... | @@ -26,7 +26,6 @@ error[E0308]: mismatched types |
| 26 | 26 | LL | let c: S = dbg!(field); |
| 27 | 27 | | ^^^^^^^^^^^ expected `S`, found `&S` |
| 28 | 28 | | |
| 29 | = note: this error originates in the macro `$crate::macros::dbg_internal` which comes from the expansion of the macro `dbg` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 30 | 29 | help: consider using clone here |
| 31 | 30 | | |
| 32 | 31 | LL | let c: S = dbg!(field).clone(); |
| ... | ... | @@ -38,7 +37,6 @@ error[E0308]: mismatched types |
| 38 | 37 | LL | let c: S = dbg!(dbg!(field)); |
| 39 | 38 | | ^^^^^^^^^^^^^^^^^ expected `S`, found `&S` |
| 40 | 39 | | |
| 41 | = note: this error originates in the macro `$crate::macros::dbg_internal` which comes from the expansion of the macro `dbg` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 42 | 40 | help: consider using clone here |
| 43 | 41 | | |
| 44 | 42 | LL | let c: S = dbg!(dbg!(field)).clone(); |
tests/ui/uninhabited/void-branch.stderr-2| ... | ... | @@ -16,7 +16,6 @@ note: the lint level is defined here |
| 16 | 16 | | |
| 17 | 17 | LL | #![deny(unreachable_code)] |
| 18 | 18 | | ^^^^^^^^^^^^^^^^ |
| 19 | = note: this error originates in the macro `$crate::format_args` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 20 | 19 | |
| 21 | 20 | error: unreachable expression |
| 22 | 21 | --> $DIR/void-branch.rs:25:9 |
| ... | ... | @@ -31,7 +30,6 @@ note: this expression has type `Infallible`, which is uninhabited |
| 31 | 30 | | |
| 32 | 31 | LL | infallible(); |
| 33 | 32 | | ^^^^^^^^^^^^ |
| 34 | = note: this error originates in the macro `$crate::format_args` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 35 | 33 | |
| 36 | 34 | error: aborting due to 2 previous errors |
| 37 | 35 |
tests/ui/use/use-after-move-based-on-type.stderr-1| ... | ... | @@ -8,7 +8,6 @@ LL | let _y = x; |
| 8 | 8 | LL | println!("{}", x); |
| 9 | 9 | | ^ value borrowed here after move |
| 10 | 10 | | |
| 11 | = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info) | |
| 12 | 11 | help: consider cloning the value if the performance cost is acceptable |
| 13 | 12 | | |
| 14 | 13 | LL | let _y = x.clone(); |