Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
[submodule "src/llvm-project"]
path = src/llvm-project
url = https://github.com/rust-lang/llvm-project.git
branch = rustc/22.1-2026-05-19
branch = rustc/23.1-2026-07-22
shallow = true
[submodule "src/doc/embedded-book"]
path = src/doc/embedded-book
Expand Down
24 changes: 14 additions & 10 deletions compiler/rustc_codegen_cranelift/src/abi/mod.rs
Comment thread
nikic marked this conversation as resolved.
Original file line number Diff line number Diff line change
Expand Up @@ -141,16 +141,19 @@ impl<'tcx> FunctionCx<'_, '_, 'tcx> {
) -> Cow<'_, [Value]> {
// FIXME any way to reuse the abi adjustment code in rustc_target?

// Pass i128 arguments by-ref on Windows.
// Pass and return f128 indirectly on s390x and x86_64 Windows.
let indirect_f128 = self.tcx.sess.target.arch == Arch::S390x
|| (self.tcx.sess.target.is_like_windows && self.tcx.sess.target.arch == Arch::X86_64);

// Pass i128 arguments by-ref on s390x and Windows.
let (params, args): (Vec<_>, Cow<'_, [_]>) =
if self.tcx.sess.target.is_like_windows || self.tcx.sess.target.arch == Arch::S390x {
let (params, args): (Vec<_>, Vec<_>) = params
.into_iter()
.zip(args)
.map(|(param, &arg)| {
if param.value_type == types::I128
|| (self.tcx.sess.target.arch == Arch::S390x
&& param.value_type == types::F128)
|| (indirect_f128 && param.value_type == types::F128)
{
let arg_ptr = self.create_stack_slot(16, 16);
arg_ptr.store(self, arg, MemFlagsData::trusted());
Expand All @@ -166,19 +169,20 @@ impl<'tcx> FunctionCx<'_, '_, 'tcx> {
(params, args.into())
};

if self.tcx.sess.target.is_like_windows
&& matches!(*returns, [AbiParam { value_type: types::I128, .. }])
{
let ret_single_i128 = matches!(*returns, [AbiParam { value_type: types::I128, .. }]);
let ret_single_f128 = matches!(*returns, [AbiParam { value_type: types::F128, .. }]);
if ret_single_i128 && self.tcx.sess.target.is_like_windows {
// Return i128 using the vector ABI on Windows
returns[0].value_type = types::I64X2;

let ret = self.lib_call_unadjusted(name, params, returns, &args)[0];

Cow::Owned(vec![codegen_bitcast(self, types::I128, ret)])
} else if self.tcx.sess.target.arch == Arch::S390x
&& matches!(*returns, [AbiParam { value_type: types::I128 | types::F128, .. }])
} else if (ret_single_i128 && self.tcx.sess.target.arch == Arch::S390x)
|| (ret_single_f128 && indirect_f128)
{
// Return i128 and f128 using a return area pointer on s390x.
// Return x86_64 Windows f128 and s390x i128 indirectly (sret in LLVM terminology).
let ret_ty = returns[0].value_type;
let mut params = params;
let mut args = args.to_vec();

Expand All @@ -188,7 +192,7 @@ impl<'tcx> FunctionCx<'_, '_, 'tcx> {

self.lib_call_unadjusted(name, params, vec![], &args);

Cow::Owned(vec![ret_ptr.load(self, types::I128, MemFlagsData::trusted())])
Cow::Owned(vec![ret_ptr.load(self, ret_ty, MemFlagsData::trusted())])
} else {
Cow::Borrowed(self.lib_call_unadjusted(name, params, returns, &args))
}
Expand Down
8 changes: 2 additions & 6 deletions compiler/rustc_target/src/callconv/x86_win64.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use rustc_abi::{BackendRepr, Float, Integer, Primitive, Size, TyAbiInterface};
use rustc_abi::{BackendRepr, Integer, Primitive, Size, TyAbiInterface};

use crate::callconv::{ArgAbi, FnAbi, Reg};
use crate::spec::{HasTargetSpec, RustcAbi};
Expand Down Expand Up @@ -35,11 +35,7 @@ where
// FIXME(#134288): This may change for the `-msvc` targets in the future.
a.cast_to(Reg::opaque_vector(Size::from_bits(128)));
}
} else if a.layout.size.bytes() > 8
&& !matches!(scalar.primitive(), Primitive::Float(Float::F128))
{
// Match what LLVM does for `f128` so that `compiler-builtins` builtins match up
// with what LLVM expects.
} else if a.layout.size.bytes() > 8 {
a.make_indirect();
} else {
a.extend_integer_width_to(32);
Expand Down
4 changes: 4 additions & 0 deletions library/compiler-builtins/compiler-builtins/build.rs
Original file line number Diff line number Diff line change
Expand Up @@ -362,6 +362,10 @@ mod c {
("__aeabi_div0", "arm/aeabi_div0.c"),
("__aeabi_drsub", "arm/aeabi_drsub.c"),
("__aeabi_frsub", "arm/aeabi_frsub.c"),
("__aeabi_uread4", "arm/aeabi_uread4.S"),
("__aeabi_uread8", "arm/aeabi_uread8.S"),
("__aeabi_uwrite4", "arm/aeabi_uwrite4.S"),
("__aeabi_uwrite8", "arm/aeabi_uwrite8.S"),
("__bswapdi2", "arm/bswapdi2.S"),
("__bswapsi2", "arm/bswapsi2.S"),
("__divmodsi4", "arm/divmodsi4.S"),
Expand Down
1 change: 1 addition & 0 deletions src/bootstrap/src/core/build_steps/dist.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1070,6 +1070,7 @@ fn copy_src_dirs(

static LLVM_PROJECTS: &[&str] = &[
"llvm-project/clang",
"llvm-project/libc",
"llvm-project/libunwind",
"llvm-project/lld",
"llvm-project/lldb",
Expand Down
2 changes: 2 additions & 0 deletions src/bootstrap/src/core/build_steps/llvm.rs
Original file line number Diff line number Diff line change
Expand Up @@ -409,6 +409,8 @@ impl Step for Llvm {
// equally well everywhere.
if builder.llvm_link_shared() {
cfg.define("LLVM_LINK_LLVM_DYLIB", "ON");
// Keep the pre-LLVM23 behavior for now.
cfg.define("LLVM_VERSIONED_DYLIB_NAME_ON_DARWIN", "OFF");
}

if (target.starts_with("csky")
Expand Down
2 changes: 1 addition & 1 deletion src/ci/docker/host-x86_64/dist-x86_64-netbsd/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ RUN sh /scripts/cross-apt-packages.sh
RUN apt-get install -y zlib1g-dev

COPY host-x86_64/dist-x86_64-netbsd/build-netbsd-toolchain.sh /tmp/
# GCC 10 changed the default to -fno-common, which causes errors with the NetBSD-9.0 sources like:
# GCC 10 changed the default to -fno-common, which causes errors with the NetBSD sources like:
# /usr/bin/ld: buf.o:(.bss+0x0): multiple definition of `debug_file'; arch.o:(.bss+0x0): first defined here
RUN env HOST_CFLAGS="-O -fcommon" /tmp/build-netbsd-toolchain.sh

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,24 +41,24 @@ cd netbsd

mkdir -p /x-tools/x86_64-unknown-netbsd/sysroot

# Hashes come from https://cdn.netbsd.org/pub/NetBSD/security/hashes/NetBSD-9.0_hashes.asc
SRC_SHA=2c791ae009a6929c6fc893ec5df7e62910ee8207e0b2159d6937309c03efe175b6ae1e445829a13d041b6851334ad35c521f2fa03c97675d4a05f1fafe58ede0
GNUSRC_SHA=3710085a73feecf6a843415271ec794c90146b03f6bbd30f07c9e0c79febf8995d557e40194f1e05db655e4f5ef2fae97563f8456fceaae65d4ea98857a83b1c
SHARESRC_SHA=f080776ed82c3ac5d6272dee39746f87897d8e6984996caf5bf6d87bf11d9c9e0c1ad5c437c21258bd278bb6fd76974946e878f548517885f71c556096231369
SYSSRC_SHA=60b9ddf4cc6402256473e2e1eefeabd9001aa4e205208715ecc6d6fc3f5b400e469944580077271b8e80562a4c2f601249e69e07a504f46744e0c50335f1cbf1
BASE_SHA=b5926b107cebf40c3c19b4f6cd039b610987dd7f819e7cdde3bd1e5230a856906e7930b15ab242d52ced9f0bda01d574be59488b8dbb95fa5df2987d0a70995f
COMP_SHA=38ea54f30d5fc2afea87e5096f06873e00182789e8ad9cec0cb3e9f7c538c1aa4779e63fd401a36ba02676158e83fa5c95e8e87898db59c1914fb206aecd82d2

SOURCE_URL=https://ci-mirrors.rust-lang.org/rustc/2025-03-14-netbsd-9.0-src
download src.tgz "$SOURCE_URL-src.tgz" "$SRC_SHA" tar xzf src.tgz
download gnusrc.tgz "$SOURCE_URL-gnusrc.tgz" "$GNUSRC_SHA" tar xzf gnusrc.tgz
download sharesrc.tgz "$SOURCE_URL-sharesrc.tgz" "$SHARESRC_SHA" tar xzf sharesrc.tgz
download syssrc.tgz "$SOURCE_URL-syssrc.tgz" "$SYSSRC_SHA" tar xzf syssrc.tgz

BINARY_URL=https://ci-mirrors.rust-lang.org/rustc/2025-03-14-netbsd-9.0-amd64-binary
download base.tar.xz "$BINARY_URL-base.tar.xz" "$BASE_SHA" \
# Hashes come from https://cdn.netbsd.org/pub/NetBSD/security/hashes/NetBSD-10.1_hashes.asc
SRC_SHA=6ae2053b4b75821238c0757d4f7258daece425de72524c616e07d3adee7c48d87422dd47d852a137918cec3dd3c0d339e372f4504dfe9f1bc5520011775bdb86
GNUSRC_SHA=8a1c42030ba44eb2a0c7a5111187bc02e8f4d0860d8491b7863579e612333665c478625c37b01f08732e3cfd29ec31335f1db1274fd7dcfdc048b09d1b4bbb83
SHARESRC_SHA=703eeb306fc0328cad7e6f0e100d2e7af194f82e613338f4611a7bcd5f6d773d8789e7ce03ec25268ec2b95ccdb97c3b4289a838a629716498b4d7c3184cb1ef
SYSSRC_SHA=766ac21f33cfe0e701dfedb894fa07f36d811da1a12e979181e8fca7af4e627852680ce42a7b29e97dd3e2e402ddf9ae7bfba60c8d7dc6b8a3354d8ce8c06926
BASE_SHA=1c6b74cedd7fc92adfe51239808d41e63fc6eb9e9877c1101c1da515a38457278c7774e8fc3041d69cefc49821bad836cfdcc5147ad757f2f4a1f59f9e3862e5
COMP_SHA=ea90d527d1475bd64d2b4c36d9d6ae53cb353cbc8c4feaa2b2bf006710282d2f47349a8aeeb64531f9da04268ed368ff2603c1e11a30bdfc8b2539ad73fe725f

SOURCE_URL=https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/source/sets
Comment thread
ZuseZ4 marked this conversation as resolved.
download src.tgz "$SOURCE_URL/src.tgz" "$SRC_SHA" tar xzf src.tgz
download gnusrc.tgz "$SOURCE_URL/gnusrc.tgz" "$GNUSRC_SHA" tar xzf gnusrc.tgz
download sharesrc.tgz "$SOURCE_URL/sharesrc.tgz" "$SHARESRC_SHA" tar xzf sharesrc.tgz
download syssrc.tgz "$SOURCE_URL/syssrc.tgz" "$SYSSRC_SHA" tar xzf syssrc.tgz

BINARY_URL=https://cdn.netbsd.org/pub/NetBSD/NetBSD-10.1/amd64/binary/sets
download base.tar.xz "$BINARY_URL/base.tar.xz" "$BASE_SHA" \
tar xJf base.tar.xz -C /x-tools/x86_64-unknown-netbsd/sysroot ./usr/include ./usr/lib ./lib
download comp.tar.xz "$BINARY_URL-comp.tar.xz" "$COMP_SHA" \
download comp.tar.xz "$BINARY_URL/comp.tar.xz" "$COMP_SHA" \
tar xJf comp.tar.xz -C /x-tools/x86_64-unknown-netbsd/sysroot ./usr/include ./usr/lib

cd usr/src
Expand Down
2 changes: 1 addition & 1 deletion src/ci/docker/scripts/build-clang.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ set -ex
source shared.sh

# Try to keep the LLVM version here in sync with src/ci/scripts/install-clang.sh
LLVM=llvmorg-22.1.0-rc2
LLVM=llvmorg-23.1.0-rc1

mkdir llvm-project
cd llvm-project
Expand Down
3 changes: 2 additions & 1 deletion src/ci/docker/scripts/build-gcc.sh
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
#!/usr/bin/env bash
# ignore-tidy-file-linelength
set -eux

source shared.sh
Expand Down Expand Up @@ -29,7 +30,7 @@ cd gcc-$GCC
# the expression will need to be updated. That new URL is available at:
# https://github.com/gcc-mirror/gcc/blob/6e6e3f144a33ae504149dc992453b4f6dea12fdb/contrib/download_prerequisites#L35
#
sed -i'' 's|ftp://gcc\.gnu\.org/|https://gcc.gnu.org/|g' ./contrib/download_prerequisites
sed -i'' 's|ftp://gcc\.gnu\.org/pub/gcc/infrastructure|https://ci-mirrors.rust-lang.org/rustc/gcc|g' ./contrib/download_prerequisites

./contrib/download_prerequisites
mkdir ../gcc-build
Expand Down
2 changes: 2 additions & 0 deletions src/ci/github-actions/jobs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -742,9 +742,11 @@ auto:

- name: dist-i686-mingw
env:
# Disable RISCV target because building it OOMs.
RUST_CONFIGURE_ARGS: >-
--build=i686-pc-windows-gnu
--enable-full-tools
--set llvm.targets=AArch64;AMDGPU;ARM;BPF;Hexagon;LoongArch;MSP430;Mips;NVPTX;PowerPC;Sparc;SystemZ;WebAssembly;X86
SCRIPT: python x.py dist bootstrap --include-default-paths
DIST_REQUIRE_ALL_TOOLS: 1
CODEGEN_BACKENDS: llvm,cranelift
Expand Down
1 change: 1 addition & 0 deletions src/doc/rustc/src/platform-support/netbsd.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ All use the "native" `stdc++` library which goes along with the natively
supplied GNU C++ compiler for the given OS version. Many of the bootstraps
are built for NetBSD 9.x, although some exceptions exist (some
are built for NetBSD 8.x but also work on newer OS versions).
`x86_64-unknown-netbsd` is built for NetBSD 10.x to access a newer gcc.


## Target Maintainers
Expand Down
2 changes: 1 addition & 1 deletion src/llvm-project
13 changes: 4 additions & 9 deletions tests/assembly-llvm/x86_64-windows-float-abi.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,6 @@
//@ compile-flags: --target x86_64-pc-windows-msvc
//@ needs-llvm-components: x86
//@ add-minicore
//@ revisions: LLVM22 LLVM23
//@ [LLVM22] max-llvm-major-version: 22
//@ [LLVM23] min-llvm-version: 23

#![feature(f16, f128)]
#![feature(no_core)]
Expand Down Expand Up @@ -40,12 +37,10 @@ pub extern "C" fn second_f64(_: f64, x: f64) -> f64 {
}

// CHECK-LABEL: second_f128
// LLVM22: movaps (%rdx), %xmm0
// LLVM22-NEXT: retq
// LLVM23: movq %rcx, %rax
// LLVM23-NEXT: movaps (%r8), %xmm0
// LLVM23-NEXT: movaps %xmm0, (%rcx)
// LLVM23-NEXT: retq
// CHECK: movq %rcx, %rax
// CHECK-NEXT: movaps (%r8), %xmm0
// CHECK-NEXT: movaps %xmm0, (%rcx)
// CHECK-NEXT: retq
#[no_mangle]
pub extern "C" fn second_f128(_: f128, x: f128) -> f128 {
x
Expand Down
8 changes: 4 additions & 4 deletions tests/coverage/async.cov-map
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,7 @@ Number of file 0 mappings: 1
Highest counter ID seen: c0

Function name: async::i::{closure#0}
Raw bytes (75): 0x[01, 01, 03, 05, 09, 11, 15, 0d, 11, 0d, 01, 2c, 13, 00, 14, 01, 04, 0b, 00, 0c, 09, 01, 09, 00, 0a, 01, 00, 0e, 00, 0f, 01, 00, 0e, 00, 18, 05, 00, 1c, 00, 21, 09, 00, 27, 00, 30, 15, 01, 09, 00, 0a, 02, 00, 0e, 00, 17, 11, 00, 1b, 00, 20, 15, 00, 24, 00, 26, 06, 01, 0e, 00, 10, 0b, 02, 01, 00, 02]
Raw bytes (75): 0x[01, 01, 03, 05, 09, 11, 15, 0d, 11, 0d, 01, 2c, 13, 00, 14, 01, 04, 0b, 00, 0c, 09, 01, 09, 00, 0a, 01, 00, 0e, 00, 18, 01, 00, 0e, 00, 0f, 05, 00, 1c, 00, 21, 09, 00, 27, 00, 30, 15, 01, 09, 00, 0a, 02, 00, 0e, 00, 17, 11, 00, 1b, 00, 20, 15, 00, 24, 00, 26, 06, 01, 0e, 00, 10, 0b, 02, 01, 00, 02]
Number of files: 1
- file 0 => $DIR/async.rs
Number of expressions: 3
Expand All @@ -177,8 +177,8 @@ Number of file 0 mappings: 13
- Code(Counter(0)) at (prev + 44, 19) to (start + 0, 20)
- Code(Counter(0)) at (prev + 4, 11) to (start + 0, 12)
- Code(Counter(2)) at (prev + 1, 9) to (start + 0, 10)
- Code(Counter(0)) at (prev + 0, 14) to (start + 0, 15)
- Code(Counter(0)) at (prev + 0, 14) to (start + 0, 24)
- Code(Counter(0)) at (prev + 0, 14) to (start + 0, 15)
- Code(Counter(1)) at (prev + 0, 28) to (start + 0, 33)
- Code(Counter(2)) at (prev + 0, 39) to (start + 0, 48)
- Code(Counter(5)) at (prev + 1, 9) to (start + 0, 10)
Expand All @@ -193,7 +193,7 @@ Number of file 0 mappings: 13
Highest counter ID seen: c5

Function name: async::j
Raw bytes (65): 0x[01, 01, 03, 01, 05, 01, 0b, 05, 09, 0b, 01, 37, 01, 00, 0c, 01, 0b, 0b, 00, 0c, 05, 01, 09, 00, 0a, 01, 00, 0e, 00, 0f, 01, 00, 0e, 00, 1b, 05, 00, 1f, 00, 27, 09, 01, 09, 00, 0a, 02, 00, 0e, 00, 1a, 09, 00, 1e, 00, 20, 06, 01, 0e, 00, 10, 01, 02, 01, 00, 02]
Raw bytes (65): 0x[01, 01, 03, 01, 05, 01, 0b, 05, 09, 0b, 01, 37, 01, 00, 0c, 01, 0b, 0b, 00, 0c, 05, 01, 09, 00, 0a, 01, 00, 0e, 00, 1b, 01, 00, 0e, 00, 0f, 05, 00, 1f, 00, 27, 09, 01, 09, 00, 0a, 02, 00, 0e, 00, 1a, 09, 00, 1e, 00, 20, 06, 01, 0e, 00, 10, 01, 02, 01, 00, 02]
Number of files: 1
- file 0 => $DIR/async.rs
Number of expressions: 3
Expand All @@ -204,8 +204,8 @@ Number of file 0 mappings: 11
- Code(Counter(0)) at (prev + 55, 1) to (start + 0, 12)
- Code(Counter(0)) at (prev + 11, 11) to (start + 0, 12)
- Code(Counter(1)) at (prev + 1, 9) to (start + 0, 10)
- Code(Counter(0)) at (prev + 0, 14) to (start + 0, 15)
- Code(Counter(0)) at (prev + 0, 14) to (start + 0, 27)
- Code(Counter(0)) at (prev + 0, 14) to (start + 0, 15)
- Code(Counter(1)) at (prev + 0, 31) to (start + 0, 39)
- Code(Counter(2)) at (prev + 1, 9) to (start + 0, 10)
- Code(Expression(0, Sub)) at (prev + 0, 14) to (start + 0, 26)
Expand Down
2 changes: 1 addition & 1 deletion tests/coverage/async.coverage
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
LL| |#![rustfmt::skip]
LL| |//@ edition: 2018
LL| |//@ compile-flags: -Copt-level=1
LL| |
LL| |//@ min-llvm-version: 23
LL| |//@ aux-build: executor.rs
LL| |extern crate executor;
LL| |
Expand Down
2 changes: 1 addition & 1 deletion tests/coverage/async.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
#![rustfmt::skip]
//@ edition: 2018
//@ compile-flags: -Copt-level=1

//@ min-llvm-version: 23
//@ aux-build: executor.rs
extern crate executor;

Expand Down
16 changes: 8 additions & 8 deletions tests/coverage/coroutine.cov-map
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
Function name: coroutine::get_u32
Raw bytes (31): 0x[01, 01, 01, 01, 05, 05, 01, 0b, 01, 00, 2d, 01, 01, 08, 00, 0b, 05, 01, 09, 00, 0e, 02, 02, 09, 00, 28, 01, 02, 01, 00, 02]
Raw bytes (31): 0x[01, 01, 01, 01, 05, 05, 01, 0c, 01, 00, 2d, 01, 01, 08, 00, 0b, 05, 01, 09, 00, 0e, 02, 02, 09, 00, 28, 01, 02, 01, 00, 02]
Number of files: 1
- file 0 => $DIR/coroutine.rs
Number of expressions: 1
- expression 0 operands: lhs = Counter(0), rhs = Counter(1)
Number of file 0 mappings: 5
- Code(Counter(0)) at (prev + 11, 1) to (start + 0, 45)
- Code(Counter(0)) at (prev + 12, 1) to (start + 0, 45)
- Code(Counter(0)) at (prev + 1, 8) to (start + 0, 11)
- Code(Counter(1)) at (prev + 1, 9) to (start + 0, 14)
- Code(Expression(0, Sub)) at (prev + 2, 9) to (start + 0, 40)
Expand All @@ -14,14 +14,14 @@ Number of file 0 mappings: 5
Highest counter ID seen: c1

Function name: coroutine::main
Raw bytes (93): 0x[01, 01, 02, 01, 05, 05, 09, 11, 01, 13, 01, 00, 0a, 01, 01, 09, 00, 10, 01, 00, 13, 00, 2e, 01, 01, 09, 00, 16, 01, 06, 0b, 00, 13, 01, 00, 14, 00, 22, 01, 00, 24, 00, 2a, 01, 00, 2b, 00, 2d, 05, 01, 2b, 00, 2d, 02, 01, 0e, 00, 14, 05, 02, 0b, 00, 13, 05, 00, 0b, 00, 2e, 05, 00, 14, 00, 22, 0d, 01, 22, 00, 27, 09, 00, 2c, 00, 2e, 06, 01, 0e, 00, 14, 09, 02, 01, 00, 02]
Raw bytes (93): 0x[01, 01, 02, 01, 05, 05, 09, 11, 01, 14, 01, 00, 0a, 01, 01, 09, 00, 10, 01, 00, 13, 00, 2e, 01, 01, 09, 00, 16, 01, 06, 0b, 00, 13, 01, 00, 14, 00, 22, 01, 00, 24, 00, 2a, 01, 00, 2b, 00, 2d, 05, 01, 2b, 00, 2d, 02, 01, 0e, 00, 14, 05, 02, 0b, 00, 2e, 05, 00, 0b, 00, 13, 05, 00, 14, 00, 22, 0d, 01, 22, 00, 27, 09, 00, 2c, 00, 2e, 06, 01, 0e, 00, 14, 09, 02, 01, 00, 02]
Number of files: 1
- file 0 => $DIR/coroutine.rs
Number of expressions: 2
- expression 0 operands: lhs = Counter(0), rhs = Counter(1)
- expression 1 operands: lhs = Counter(1), rhs = Counter(2)
Number of file 0 mappings: 17
- Code(Counter(0)) at (prev + 19, 1) to (start + 0, 10)
- Code(Counter(0)) at (prev + 20, 1) to (start + 0, 10)
- Code(Counter(0)) at (prev + 1, 9) to (start + 0, 16)
- Code(Counter(0)) at (prev + 0, 19) to (start + 0, 46)
- Code(Counter(0)) at (prev + 1, 9) to (start + 0, 22)
Expand All @@ -32,8 +32,8 @@ Number of file 0 mappings: 17
- Code(Counter(1)) at (prev + 1, 43) to (start + 0, 45)
- Code(Expression(0, Sub)) at (prev + 1, 14) to (start + 0, 20)
= (c0 - c1)
- Code(Counter(1)) at (prev + 2, 11) to (start + 0, 19)
- Code(Counter(1)) at (prev + 0, 11) to (start + 0, 46)
- Code(Counter(1)) at (prev + 2, 11) to (start + 0, 46)
- Code(Counter(1)) at (prev + 0, 11) to (start + 0, 19)
- Code(Counter(1)) at (prev + 0, 20) to (start + 0, 34)
- Code(Counter(3)) at (prev + 1, 34) to (start + 0, 39)
- Code(Counter(2)) at (prev + 0, 44) to (start + 0, 46)
Expand All @@ -43,12 +43,12 @@ Number of file 0 mappings: 17
Highest counter ID seen: c3

Function name: coroutine::main::{closure#0}
Raw bytes (24): 0x[01, 01, 00, 04, 01, 16, 08, 00, 09, 01, 01, 09, 00, 1f, 05, 01, 10, 00, 15, 05, 01, 05, 00, 06]
Raw bytes (24): 0x[01, 01, 00, 04, 01, 17, 08, 00, 09, 01, 01, 09, 00, 1f, 05, 01, 10, 00, 15, 05, 01, 05, 00, 06]
Number of files: 1
- file 0 => $DIR/coroutine.rs
Number of expressions: 0
Number of file 0 mappings: 4
- Code(Counter(0)) at (prev + 22, 8) to (start + 0, 9)
- Code(Counter(0)) at (prev + 23, 8) to (start + 0, 9)
- Code(Counter(0)) at (prev + 1, 9) to (start + 0, 31)
- Code(Counter(1)) at (prev + 1, 16) to (start + 0, 21)
- Code(Counter(1)) at (prev + 1, 5) to (start + 0, 6)
Expand Down
1 change: 1 addition & 0 deletions tests/coverage/coroutine.coverage
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
LL| |//@ min-llvm-version: 23
LL| |#![feature(coroutines, coroutine_trait, stmt_expr_attributes)]
LL| |
LL| |use std::ops::{Coroutine, CoroutineState};
Expand Down
1 change: 1 addition & 0 deletions tests/coverage/coroutine.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
//@ min-llvm-version: 23
#![feature(coroutines, coroutine_trait, stmt_expr_attributes)]

use std::ops::{Coroutine, CoroutineState};
Expand Down
Loading
Loading