Update the minimum external LLVM to 17
This commit is contained in:
parent
35dfc67d94
commit
29430554f6
6
.github/workflows/ci.yml
vendored
6
.github/workflows/ci.yml
vendored
@ -58,7 +58,7 @@ jobs:
|
|||||||
- name: mingw-check-tidy
|
- name: mingw-check-tidy
|
||||||
os: ubuntu-20.04-4core-16gb
|
os: ubuntu-20.04-4core-16gb
|
||||||
env: {}
|
env: {}
|
||||||
- name: x86_64-gnu-llvm-16
|
- name: x86_64-gnu-llvm-17
|
||||||
env:
|
env:
|
||||||
ENABLE_GCC_CODEGEN: "1"
|
ENABLE_GCC_CODEGEN: "1"
|
||||||
os: ubuntu-20.04-16core-64gb
|
os: ubuntu-20.04-16core-64gb
|
||||||
@ -323,10 +323,6 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
RUST_BACKTRACE: 1
|
RUST_BACKTRACE: 1
|
||||||
os: ubuntu-20.04-8core-32gb
|
os: ubuntu-20.04-8core-32gb
|
||||||
- name: x86_64-gnu-llvm-16
|
|
||||||
env:
|
|
||||||
RUST_BACKTRACE: 1
|
|
||||||
os: ubuntu-20.04-8core-32gb
|
|
||||||
- name: x86_64-gnu-nopt
|
- name: x86_64-gnu-nopt
|
||||||
os: ubuntu-20.04-4core-16gb
|
os: ubuntu-20.04-4core-16gb
|
||||||
env: {}
|
env: {}
|
||||||
|
@ -126,17 +126,6 @@ pub unsafe fn create_module<'ll>(
|
|||||||
|
|
||||||
let mut target_data_layout = sess.target.data_layout.to_string();
|
let mut target_data_layout = sess.target.data_layout.to_string();
|
||||||
let llvm_version = llvm_util::get_version();
|
let llvm_version = llvm_util::get_version();
|
||||||
if llvm_version < (17, 0, 0) {
|
|
||||||
if sess.target.arch.starts_with("powerpc") {
|
|
||||||
// LLVM 17 specifies function pointer alignment for ppc:
|
|
||||||
// https://reviews.llvm.org/D147016
|
|
||||||
target_data_layout = target_data_layout
|
|
||||||
.replace("-Fn32", "")
|
|
||||||
.replace("-Fi32", "")
|
|
||||||
.replace("-Fn64", "")
|
|
||||||
.replace("-Fi64", "");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if llvm_version < (18, 0, 0) {
|
if llvm_version < (18, 0, 0) {
|
||||||
if sess.target.arch == "x86" || sess.target.arch == "x86_64" {
|
if sess.target.arch == "x86" || sess.target.arch == "x86_64" {
|
||||||
// LLVM 18 adjusts i128 to be 128-bit aligned on x86 variants.
|
// LLVM 18 adjusts i128 to be 128-bit aligned on x86 variants.
|
||||||
|
@ -24,9 +24,7 @@
|
|||||||
#include "llvm/Passes/StandardInstrumentations.h"
|
#include "llvm/Passes/StandardInstrumentations.h"
|
||||||
#include "llvm/Support/CBindingWrapping.h"
|
#include "llvm/Support/CBindingWrapping.h"
|
||||||
#include "llvm/Support/FileSystem.h"
|
#include "llvm/Support/FileSystem.h"
|
||||||
#if LLVM_VERSION_GE(17, 0)
|
|
||||||
#include "llvm/Support/VirtualFileSystem.h"
|
#include "llvm/Support/VirtualFileSystem.h"
|
||||||
#endif
|
|
||||||
#include "llvm/Target/TargetMachine.h"
|
#include "llvm/Target/TargetMachine.h"
|
||||||
#include "llvm/Transforms/IPO/AlwaysInliner.h"
|
#include "llvm/Transforms/IPO/AlwaysInliner.h"
|
||||||
#include "llvm/Transforms/IPO/FunctionImport.h"
|
#include "llvm/Transforms/IPO/FunctionImport.h"
|
||||||
@ -334,14 +332,8 @@ extern "C" void LLVMRustPrintTargetCPUs(LLVMTargetMachineRef TM,
|
|||||||
|
|
||||||
std::ostringstream Buf;
|
std::ostringstream Buf;
|
||||||
|
|
||||||
#if LLVM_VERSION_GE(17, 0)
|
|
||||||
const MCSubtargetInfo *MCInfo = Target->getMCSubtargetInfo();
|
const MCSubtargetInfo *MCInfo = Target->getMCSubtargetInfo();
|
||||||
const ArrayRef<SubtargetSubTypeKV> CPUTable = MCInfo->getAllProcessorDescriptions();
|
const ArrayRef<SubtargetSubTypeKV> CPUTable = MCInfo->getAllProcessorDescriptions();
|
||||||
#else
|
|
||||||
Buf << "Full target CPU help is not supported by this LLVM version.\n\n";
|
|
||||||
SubtargetSubTypeKV TargetCPUKV = { TargetCPU, {{}}, {{}} };
|
|
||||||
const ArrayRef<SubtargetSubTypeKV> CPUTable = TargetCPUKV;
|
|
||||||
#endif
|
|
||||||
unsigned MaxCPULen = getLongestEntryLength(CPUTable);
|
unsigned MaxCPULen = getLongestEntryLength(CPUTable);
|
||||||
|
|
||||||
Buf << "Available CPUs for this target:\n";
|
Buf << "Available CPUs for this target:\n";
|
||||||
@ -476,10 +468,6 @@ extern "C" LLVMTargetMachineRef LLVMRustCreateTargetMachine(
|
|||||||
Options.RelaxELFRelocations = RelaxELFRelocations;
|
Options.RelaxELFRelocations = RelaxELFRelocations;
|
||||||
#endif
|
#endif
|
||||||
Options.UseInitArray = UseInitArray;
|
Options.UseInitArray = UseInitArray;
|
||||||
|
|
||||||
#if LLVM_VERSION_LT(17, 0)
|
|
||||||
Options.ExplicitEmulatedTLS = true;
|
|
||||||
#endif
|
|
||||||
Options.EmulatedTLS = UseEmulatedTls;
|
Options.EmulatedTLS = UseEmulatedTls;
|
||||||
|
|
||||||
if (TrapUnreachable) {
|
if (TrapUnreachable) {
|
||||||
@ -761,16 +749,10 @@ LLVMRustOptimize(
|
|||||||
}
|
}
|
||||||
|
|
||||||
std::optional<PGOOptions> PGOOpt;
|
std::optional<PGOOptions> PGOOpt;
|
||||||
#if LLVM_VERSION_GE(17, 0)
|
|
||||||
auto FS = vfs::getRealFileSystem();
|
auto FS = vfs::getRealFileSystem();
|
||||||
#endif
|
|
||||||
if (PGOGenPath) {
|
if (PGOGenPath) {
|
||||||
assert(!PGOUsePath && !PGOSampleUsePath);
|
assert(!PGOUsePath && !PGOSampleUsePath);
|
||||||
PGOOpt = PGOOptions(PGOGenPath, "", "",
|
PGOOpt = PGOOptions(PGOGenPath, "", "", "", FS,
|
||||||
#if LLVM_VERSION_GE(17, 0)
|
|
||||||
"",
|
|
||||||
FS,
|
|
||||||
#endif
|
|
||||||
PGOOptions::IRInstr, PGOOptions::NoCSAction,
|
PGOOptions::IRInstr, PGOOptions::NoCSAction,
|
||||||
#if LLVM_VERSION_GE(19, 0)
|
#if LLVM_VERSION_GE(19, 0)
|
||||||
PGOOptions::ColdFuncOpt::Default,
|
PGOOptions::ColdFuncOpt::Default,
|
||||||
@ -778,33 +760,21 @@ LLVMRustOptimize(
|
|||||||
DebugInfoForProfiling);
|
DebugInfoForProfiling);
|
||||||
} else if (PGOUsePath) {
|
} else if (PGOUsePath) {
|
||||||
assert(!PGOSampleUsePath);
|
assert(!PGOSampleUsePath);
|
||||||
PGOOpt = PGOOptions(PGOUsePath, "", "",
|
PGOOpt = PGOOptions(PGOUsePath, "", "", "", FS,
|
||||||
#if LLVM_VERSION_GE(17, 0)
|
|
||||||
"",
|
|
||||||
FS,
|
|
||||||
#endif
|
|
||||||
PGOOptions::IRUse, PGOOptions::NoCSAction,
|
PGOOptions::IRUse, PGOOptions::NoCSAction,
|
||||||
#if LLVM_VERSION_GE(19, 0)
|
#if LLVM_VERSION_GE(19, 0)
|
||||||
PGOOptions::ColdFuncOpt::Default,
|
PGOOptions::ColdFuncOpt::Default,
|
||||||
#endif
|
#endif
|
||||||
DebugInfoForProfiling);
|
DebugInfoForProfiling);
|
||||||
} else if (PGOSampleUsePath) {
|
} else if (PGOSampleUsePath) {
|
||||||
PGOOpt = PGOOptions(PGOSampleUsePath, "", "",
|
PGOOpt = PGOOptions(PGOSampleUsePath, "", "", "", FS,
|
||||||
#if LLVM_VERSION_GE(17, 0)
|
|
||||||
"",
|
|
||||||
FS,
|
|
||||||
#endif
|
|
||||||
PGOOptions::SampleUse, PGOOptions::NoCSAction,
|
PGOOptions::SampleUse, PGOOptions::NoCSAction,
|
||||||
#if LLVM_VERSION_GE(19, 0)
|
#if LLVM_VERSION_GE(19, 0)
|
||||||
PGOOptions::ColdFuncOpt::Default,
|
PGOOptions::ColdFuncOpt::Default,
|
||||||
#endif
|
#endif
|
||||||
DebugInfoForProfiling);
|
DebugInfoForProfiling);
|
||||||
} else if (DebugInfoForProfiling) {
|
} else if (DebugInfoForProfiling) {
|
||||||
PGOOpt = PGOOptions("", "", "",
|
PGOOpt = PGOOptions("", "", "", "", FS,
|
||||||
#if LLVM_VERSION_GE(17, 0)
|
|
||||||
"",
|
|
||||||
FS,
|
|
||||||
#endif
|
|
||||||
PGOOptions::NoAction, PGOOptions::NoCSAction,
|
PGOOptions::NoAction, PGOOptions::NoCSAction,
|
||||||
#if LLVM_VERSION_GE(19, 0)
|
#if LLVM_VERSION_GE(19, 0)
|
||||||
PGOOptions::ColdFuncOpt::Default,
|
PGOOptions::ColdFuncOpt::Default,
|
||||||
@ -1353,9 +1323,7 @@ LLVMRustCreateThinLTOData(LLVMRustThinLTOModule *modules,
|
|||||||
ComputeCrossModuleImport(
|
ComputeCrossModuleImport(
|
||||||
Ret->Index,
|
Ret->Index,
|
||||||
Ret->ModuleToDefinedGVSummaries,
|
Ret->ModuleToDefinedGVSummaries,
|
||||||
#if LLVM_VERSION_GE(17, 0)
|
|
||||||
isPrevailing,
|
isPrevailing,
|
||||||
#endif
|
|
||||||
Ret->ImportLists,
|
Ret->ImportLists,
|
||||||
Ret->ExportLists
|
Ret->ExportLists
|
||||||
);
|
);
|
||||||
|
@ -2152,19 +2152,3 @@ extern "C" LLVMValueRef LLVMConstStringInContext2(LLVMContextRef C,
|
|||||||
return wrap(ConstantDataArray::getString(*unwrap(C), StringRef(Str, Length), !DontNullTerminate));
|
return wrap(ConstantDataArray::getString(*unwrap(C), StringRef(Str, Length), !DontNullTerminate));
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// FIXME: Remove when Rust's minimum supported LLVM version reaches 17.
|
|
||||||
// https://github.com/llvm/llvm-project/commit/35276f16e5a2cae0dfb49c0fbf874d4d2f177acc
|
|
||||||
#if LLVM_VERSION_LT(17, 0)
|
|
||||||
extern "C" LLVMValueRef LLVMConstArray2(LLVMTypeRef ElementTy,
|
|
||||||
LLVMValueRef *ConstantVals,
|
|
||||||
uint64_t Length) {
|
|
||||||
ArrayRef<Constant *> V(unwrap<Constant>(ConstantVals, Length), Length);
|
|
||||||
return wrap(ConstantArray::get(ArrayType::get(unwrap(ElementTy), Length), V));
|
|
||||||
}
|
|
||||||
|
|
||||||
extern "C" LLVMTypeRef LLVMArrayType2(LLVMTypeRef ElementTy,
|
|
||||||
uint64_t ElementCount) {
|
|
||||||
return wrap(ArrayType::get(unwrap(ElementTy), ElementCount));
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
@ -564,11 +564,11 @@ fn check_llvm_version(builder: &Builder<'_>, llvm_config: &Path) {
|
|||||||
let version = output(cmd.arg("--version"));
|
let version = output(cmd.arg("--version"));
|
||||||
let mut parts = version.split('.').take(2).filter_map(|s| s.parse::<u32>().ok());
|
let mut parts = version.split('.').take(2).filter_map(|s| s.parse::<u32>().ok());
|
||||||
if let (Some(major), Some(_minor)) = (parts.next(), parts.next()) {
|
if let (Some(major), Some(_minor)) = (parts.next(), parts.next()) {
|
||||||
if major >= 16 {
|
if major >= 17 {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
panic!("\n\nbad LLVM version: {version}, need >=16.0\n\n")
|
panic!("\n\nbad LLVM version: {version}, need >=17.0\n\n")
|
||||||
}
|
}
|
||||||
|
|
||||||
fn configure_cmake(
|
fn configure_cmake(
|
||||||
|
@ -1,67 +0,0 @@
|
|||||||
FROM ubuntu:23.04
|
|
||||||
|
|
||||||
ARG DEBIAN_FRONTEND=noninteractive
|
|
||||||
|
|
||||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
||||||
g++ \
|
|
||||||
gcc-multilib \
|
|
||||||
make \
|
|
||||||
ninja-build \
|
|
||||||
file \
|
|
||||||
curl \
|
|
||||||
ca-certificates \
|
|
||||||
python3 \
|
|
||||||
git \
|
|
||||||
cmake \
|
|
||||||
sudo \
|
|
||||||
gdb \
|
|
||||||
llvm-16-tools \
|
|
||||||
llvm-16-dev \
|
|
||||||
libedit-dev \
|
|
||||||
libssl-dev \
|
|
||||||
pkg-config \
|
|
||||||
zlib1g-dev \
|
|
||||||
xz-utils \
|
|
||||||
nodejs \
|
|
||||||
mingw-w64 \
|
|
||||||
# libgccjit dependencies
|
|
||||||
flex \
|
|
||||||
libmpfr-dev \
|
|
||||||
libgmp-dev \
|
|
||||||
libmpc3 \
|
|
||||||
libmpc-dev \
|
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
# Note: libgccjit needs to match the default gcc version for the linker to find it.
|
|
||||||
|
|
||||||
# Install powershell (universal package) so we can test x.ps1 on Linux
|
|
||||||
RUN curl -sL "https://github.com/PowerShell/PowerShell/releases/download/v7.3.1/powershell_7.3.1-1.deb_amd64.deb" > powershell.deb && \
|
|
||||||
dpkg -i powershell.deb && \
|
|
||||||
rm -f powershell.deb
|
|
||||||
|
|
||||||
COPY scripts/sccache.sh /scripts/
|
|
||||||
RUN sh /scripts/sccache.sh
|
|
||||||
|
|
||||||
# We are disabling CI LLVM since this builder is intentionally using a host
|
|
||||||
# LLVM, rather than the typical src/llvm-project LLVM.
|
|
||||||
ENV NO_DOWNLOAD_CI_LLVM 1
|
|
||||||
|
|
||||||
# This is not the latest LLVM version, so some components required by tests may
|
|
||||||
# be missing.
|
|
||||||
ENV IS_NOT_LATEST_LLVM 1
|
|
||||||
|
|
||||||
# Using llvm-link-shared due to libffi issues -- see #34486
|
|
||||||
ENV RUST_CONFIGURE_ARGS \
|
|
||||||
--build=x86_64-unknown-linux-gnu \
|
|
||||||
--llvm-root=/usr/lib/llvm-16 \
|
|
||||||
--enable-llvm-link-shared \
|
|
||||||
--set rust.thin-lto-import-instr-limit=10
|
|
||||||
|
|
||||||
COPY host-x86_64/x86_64-gnu-llvm-16/script.sh /tmp/
|
|
||||||
|
|
||||||
COPY host-x86_64/dist-x86_64-linux/shared.sh /scripts/
|
|
||||||
COPY host-x86_64/dist-x86_64-linux/build-gccjit.sh /scripts/
|
|
||||||
|
|
||||||
RUN /scripts/build-gccjit.sh /scripts
|
|
||||||
|
|
||||||
ENV SCRIPT /tmp/script.sh
|
|
@ -56,11 +56,10 @@ ENV RUST_CONFIGURE_ARGS \
|
|||||||
--enable-llvm-link-shared \
|
--enable-llvm-link-shared \
|
||||||
--set rust.thin-lto-import-instr-limit=10
|
--set rust.thin-lto-import-instr-limit=10
|
||||||
|
|
||||||
COPY host-x86_64/x86_64-gnu-llvm-16/script.sh /tmp/
|
|
||||||
|
|
||||||
COPY host-x86_64/dist-x86_64-linux/shared.sh /scripts/
|
COPY host-x86_64/dist-x86_64-linux/shared.sh /scripts/
|
||||||
COPY host-x86_64/dist-x86_64-linux/build-gccjit.sh /scripts/
|
COPY host-x86_64/dist-x86_64-linux/build-gccjit.sh /scripts/
|
||||||
|
|
||||||
RUN /scripts/build-gccjit.sh /scripts
|
RUN /scripts/build-gccjit.sh /scripts
|
||||||
|
|
||||||
|
COPY scripts/x86_64-gnu-llvm.sh /tmp/script.sh
|
||||||
ENV SCRIPT /tmp/script.sh
|
ENV SCRIPT /tmp/script.sh
|
||||||
|
@ -24,11 +24,14 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
|||||||
xz-utils \
|
xz-utils \
|
||||||
nodejs \
|
nodejs \
|
||||||
mingw-w64 \
|
mingw-w64 \
|
||||||
libgccjit-13-dev \
|
# libgccjit dependencies
|
||||||
|
flex \
|
||||||
|
libmpfr-dev \
|
||||||
|
libgmp-dev \
|
||||||
|
libmpc3 \
|
||||||
|
libmpc-dev \
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
# Note: libgccjit needs to match the default gcc version for the linker to find it.
|
|
||||||
|
|
||||||
# Install powershell (universal package) so we can test x.ps1 on Linux
|
# Install powershell (universal package) so we can test x.ps1 on Linux
|
||||||
# FIXME: need a "universal" version that supports libicu74, but for now it still works to ignore that dep.
|
# FIXME: need a "universal" version that supports libicu74, but for now it still works to ignore that dep.
|
||||||
RUN curl -sL "https://github.com/PowerShell/PowerShell/releases/download/v7.3.1/powershell_7.3.1-1.deb_amd64.deb" > powershell.deb && \
|
RUN curl -sL "https://github.com/PowerShell/PowerShell/releases/download/v7.3.1/powershell_7.3.1-1.deb_amd64.deb" > powershell.deb && \
|
||||||
@ -50,6 +53,10 @@ ENV RUST_CONFIGURE_ARGS \
|
|||||||
--enable-llvm-link-shared \
|
--enable-llvm-link-shared \
|
||||||
--set rust.thin-lto-import-instr-limit=10
|
--set rust.thin-lto-import-instr-limit=10
|
||||||
|
|
||||||
COPY host-x86_64/x86_64-gnu-llvm-16/script.sh /tmp/
|
COPY host-x86_64/dist-x86_64-linux/shared.sh /scripts/
|
||||||
|
COPY host-x86_64/dist-x86_64-linux/build-gccjit.sh /scripts/
|
||||||
|
|
||||||
|
RUN /scripts/build-gccjit.sh /scripts
|
||||||
|
|
||||||
|
COPY scripts/x86_64-gnu-llvm.sh /tmp/script.sh
|
||||||
ENV SCRIPT /tmp/script.sh
|
ENV SCRIPT /tmp/script.sh
|
||||||
|
@ -357,7 +357,7 @@ jobs:
|
|||||||
- name: mingw-check-tidy
|
- name: mingw-check-tidy
|
||||||
<<: *job-linux-4c
|
<<: *job-linux-4c
|
||||||
|
|
||||||
- name: x86_64-gnu-llvm-16
|
- name: x86_64-gnu-llvm-17
|
||||||
env:
|
env:
|
||||||
ENABLE_GCC_CODEGEN: "1"
|
ENABLE_GCC_CODEGEN: "1"
|
||||||
<<: *job-linux-16c
|
<<: *job-linux-16c
|
||||||
@ -520,11 +520,6 @@ jobs:
|
|||||||
RUST_BACKTRACE: 1
|
RUST_BACKTRACE: 1
|
||||||
<<: *job-linux-8c
|
<<: *job-linux-8c
|
||||||
|
|
||||||
- name: x86_64-gnu-llvm-16
|
|
||||||
env:
|
|
||||||
RUST_BACKTRACE: 1
|
|
||||||
<<: *job-linux-8c
|
|
||||||
|
|
||||||
- name: x86_64-gnu-nopt
|
- name: x86_64-gnu-nopt
|
||||||
<<: *job-linux-4c
|
<<: *job-linux-4c
|
||||||
|
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
//@ compile-flags: -O
|
//@ compile-flags: -O
|
||||||
//@ min-llvm-version: 17
|
|
||||||
//@ only-x86_64-unknown-linux-gnu
|
//@ only-x86_64-unknown-linux-gnu
|
||||||
|
|
||||||
// We want to check that this function does not mis-optimize to loop jumping.
|
// We want to check that this function does not mis-optimize to loop jumping.
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
// Verify that move before the call of the function with noalias, nocapture, readonly.
|
// Verify that move before the call of the function with noalias, nocapture, readonly.
|
||||||
// #107436
|
// #107436
|
||||||
//@ compile-flags: -O
|
//@ compile-flags: -O
|
||||||
//@ min-llvm-version: 17
|
|
||||||
|
|
||||||
#![crate_type = "lib"]
|
#![crate_type = "lib"]
|
||||||
|
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
//@ compile-flags: -O
|
//@ compile-flags: -O
|
||||||
//@ min-llvm-version: 17
|
|
||||||
|
|
||||||
#![crate_type = "lib"]
|
#![crate_type = "lib"]
|
||||||
|
|
||||||
|
@ -1,8 +1,5 @@
|
|||||||
//@ revisions: old new
|
|
||||||
// LLVM 17 realizes double panic is not possible and doesn't generate calls
|
// LLVM 17 realizes double panic is not possible and doesn't generate calls
|
||||||
// to panic_cannot_unwind.
|
// to panic_cannot_unwind.
|
||||||
//@ [old]ignore-llvm-version: 17 - 99
|
|
||||||
//@ [new]min-llvm-version: 17
|
|
||||||
//@ compile-flags: -O
|
//@ compile-flags: -O
|
||||||
//@ ignore-debug: plain old debug assertions
|
//@ ignore-debug: plain old debug assertions
|
||||||
//@ needs-unwind
|
//@ needs-unwind
|
||||||
@ -22,14 +19,6 @@ pub fn shrink_to_fit(vec: &mut Vec<u32>) {
|
|||||||
// CHECK-LABEL: @issue71861
|
// CHECK-LABEL: @issue71861
|
||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
pub fn issue71861(vec: Vec<u32>) -> Box<[u32]> {
|
pub fn issue71861(vec: Vec<u32>) -> Box<[u32]> {
|
||||||
// CHECK-NOT: panic
|
|
||||||
|
|
||||||
// Call to panic_cannot_unwind in case of double-panic is expected
|
|
||||||
// on LLVM 16 and older, but other panics are not.
|
|
||||||
// old: filter
|
|
||||||
// old-NEXT: ; call core::panicking::panic_cannot_unwind
|
|
||||||
// old-NEXT: panic_cannot_unwind
|
|
||||||
|
|
||||||
// CHECK-NOT: panic
|
// CHECK-NOT: panic
|
||||||
vec.into_boxed_slice()
|
vec.into_boxed_slice()
|
||||||
}
|
}
|
||||||
@ -40,6 +29,3 @@ pub fn issue75636<'a>(iter: &[&'a str]) -> Box<[&'a str]> {
|
|||||||
// CHECK-NOT: panic
|
// CHECK-NOT: panic
|
||||||
iter.iter().copied().collect()
|
iter.iter().copied().collect()
|
||||||
}
|
}
|
||||||
|
|
||||||
// old: ; core::panicking::panic_cannot_unwind
|
|
||||||
// old: declare void @{{.*}}panic_cannot_unwind
|
|
||||||
|
@ -2,7 +2,6 @@ include ../tools.mk
|
|||||||
|
|
||||||
# Verify that the impl_* symbols are preserved. #108030
|
# Verify that the impl_* symbols are preserved. #108030
|
||||||
# only-x86_64-unknown-linux-gnu
|
# only-x86_64-unknown-linux-gnu
|
||||||
# min-llvm-version: 17
|
|
||||||
|
|
||||||
all:
|
all:
|
||||||
$(RUSTC) -Cdebuginfo=0 -Copt-level=3 lib.rs
|
$(RUSTC) -Cdebuginfo=0 -Copt-level=3 lib.rs
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
//@ needs-llvm-components: webassembly
|
//@ needs-llvm-components: webassembly
|
||||||
//@ min-llvm-version: 17
|
|
||||||
//@ compile-flags: --print=target-cpus --target=wasm32-unknown-unknown
|
//@ compile-flags: --print=target-cpus --target=wasm32-unknown-unknown
|
||||||
//@ check-pass
|
//@ check-pass
|
||||||
|
Loading…
Reference in New Issue
Block a user