rust/tests/codegen-llvm
bors b1b26b834d Auto merge of #145093 - nikic:dead-on-return, r=nnethercote
Set dead_on_return attribute for indirect arguments

Set the dead_on_return attribute (added in LLVM 21) for arguments that are passed indirectly, but not byval.

This indicates that the value of the argument on return does not matter, enabling additional dead store elimination.

From LangRef:

> This attribute indicates that the memory pointed to by the argument is dead upon function return, both upon normal return and if the calls unwinds, meaning that the caller will not depend on its contents. Stores that would be observable either on the return path or on the unwind path may be elided.
>
> Specifically, the behavior is as-if any memory written through the pointer during the execution of the function is overwritten with a poison value upon function return. The caller may access the memory, but any load not preceded by a store will return poison.
>
> This attribute does not imply aliasing properties. For pointer arguments that do not alias other memory locations, noalias attribute may be used in conjunction. Conversely, this attribute always implies dead_on_unwind.
>
> This attribute cannot be applied to return values.

This fixes parts of https://github.com/rust-lang/rust/issues/96497.
2025-08-13 04:18:43 +00:00
..
asm Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
autodiff Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
autovec Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
auxiliary Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
avr Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
bounds-checking Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
cffi add codegen test for variadics (also replacing some existing does-this-build tests) 2025-07-23 14:19:14 +02:00
compiletest-self-test Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
cross-crate-inlining Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
debug-accessibility Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
debuginfo-proc-macro Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
dllimports Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
enum [codegen] assume the tag, not the relative discriminant 2025-08-06 09:11:35 -07:00
ergonomic-clones Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
float Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
gpu_offload Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
hint Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
instrument-coverage Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
instrument-xray Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
intrinsics Auto merge of #143860 - scottmcm:transmute-always-rvalue, r=WaffleLapkin 2025-07-26 22:45:18 +00:00
issues Add regression test for saturating_sub bounds check issue 2025-08-07 15:11:52 -04:00
lib-optimizations Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
loongarch-abi Set dead_on_return attribute for indirect arguments 2025-08-11 12:39:23 +02:00
macos Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
meta-filecheck Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
naked-fn Verify llvm-needs-components are not empty and match the --target value 2025-07-29 11:20:23 -07:00
non-terminate Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
option-niche-unfixed Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
patchable-function-entry Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
remap_path_prefix Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
repr Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
riscv-abi Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
sanitizer Prevent name collisions with internal implementation details 2025-08-07 13:41:17 +00:00
simd Fix tests/codegen-llvm/simd/extract-insert-dyn.rs test failure on riscv64 2025-07-28 11:58:38 +00:00
simd-intrinsic Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
src-hash-algorithm Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
unwind-abis Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
aarch64-softfloat.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
aarch64-struct-align-128.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
abi-efiapi.rs Verify llvm-needs-components are not empty and match the --target value 2025-07-29 11:20:23 -07:00
abi-main-signature-16bit-c-int.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
abi-main-signature-32bit-c-int.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
abi-repr-ext.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
abi-sysv64.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
abi-win64-zst.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
abi-x86-interrupt.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
abi-x86-sse.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
abi-x86_64_sysv.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
addr-of-mutate.rs Set dead_on_return attribute for indirect arguments 2025-08-11 12:39:23 +02:00
adjustments.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
align-byval-alignment-mismatch.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
align-byval-vector.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
align-byval.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
align-enum.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
align-fn.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
align-offset.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
align-struct.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
alloc-optimisation.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
amdgpu-addrspacecast.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
array-clone.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
array-cmp.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
array-codegen.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
array-equality.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
array-from_fn.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
array-map.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
array-optimized.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
array-repeat.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
ascii-char.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
assign-desugar-debuginfo.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
async-closure-debug.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
async-fn-debug-awaitee-field.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
async-fn-debug-msvc.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
async-fn-debug.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
atomic-operations.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
atomicptr.rs atomicrmw on pointers: move integer-pointer cast hacks into backend 2025-07-23 08:32:55 +02:00
autodiffv2.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
autovectorize-f32x4.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
become-musttail.rs Implement support for explicit tail calls in the MIR block builders and the LLVM codegen backend. 2025-07-26 01:02:29 +02:00
bigint-helpers.rs Stop using uadd.with.overflow 2025-08-08 21:59:28 -07:00
binary-heap-peek-mut-pop-no-panic.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
binary-search-index-no-bound-check.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
bool-cmp.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
bounds-check-elision-slice-min.rs Multiple bounds checking elision failures 2025-08-01 18:38:22 +01:00
box-default-debug-copies.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
box-uninit-bytes.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
bpf-alu32.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
branch-protection.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
call-llvm-intrinsics.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
call-tmps-lifetime.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
cast-optimized.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
cast-target-abi.rs Verify llvm-needs-components are not empty and match the --target value 2025-07-29 11:20:23 -07:00
catch-unwind.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
cdylib-external-inline-fns.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
cf-protection.rs Verify llvm-needs-components are not empty and match the --target value 2025-07-29 11:20:23 -07:00
cfguard-checks.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
cfguard-disabled.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
cfguard-nochecks.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
cfguard-non-msvc.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
char-ascii-branchless.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
char-escape-debug-no-bounds-check.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
checked_ilog.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
checked_math.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
clone-shims.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
clone_as_copy.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
codemodels.rs Verify llvm-needs-components are not empty and match the --target value 2025-07-29 11:20:23 -07:00
coercions.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
cold-call-declare-and-call.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
common_prim_int_ptr.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
comparison-operators-2-struct.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
comparison-operators-2-tuple.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
comparison-operators-newtype.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
const-array.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
const-vector.rs Fix tests/codegen-llvm/const-vector.rs test failure on riscv64 2025-07-23 11:23:36 +00:00
const_scalar_pair.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
constant-branch.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
consts.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
coroutine-debug-msvc.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
coroutine-debug.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
dead_on_return.rs Set dead_on_return attribute for indirect arguments 2025-08-11 12:39:23 +02:00
dealloc-no-unwind.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
debug-alignment.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
debug-column-msvc.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
debug-column.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
debug-compile-unit-path.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
debug-fndef-size.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
debug-limited.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
debug-line-directives-only.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
debug-line-tables-only.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
debug-linkage-name.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
debug-vtable.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
debuginfo-constant-locals.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
debuginfo-cyclic-structure.rs fix(debuginfo): disable overflow check for 2025-07-27 14:42:07 +03:00
debuginfo-generic-closure-env-names.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
debuginfo-inline-callsite-location.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
deduced-param-attrs.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
default-requires-uwtable.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
default-visibility.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
direct-access-external-data.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
diverging-function-call-debuginfo.rs tests: Test line number in debuginfo for diverging function calls 2025-07-29 18:59:09 +02:00
dont_codegen_private_const_fn_only_used_in_const_eval.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
drop-in-place-noalias.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
drop.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
dst-offset.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
dst-vtable-align-nonzero.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
dst-vtable-size-range.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
ehcontguard_disabled.rs Verify llvm-needs-components are not empty and match the --target value 2025-07-29 11:20:23 -07:00
ehcontguard_enabled.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
emscripten-catch-unwind-js-eh.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
emscripten-catch-unwind-wasm-eh.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
enable-lto-unit-splitting.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
error-provide.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
export-no-mangle.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
external-no-mangle-fns.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
external-no-mangle-statics.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
f128-wasm32-callconv.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
fastcall-inreg.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
fatptr.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
fewer-names.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
fixed-x18.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
float_math.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
fn-impl-trait-self.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
fn-parameters-on-different-lines-debuginfo.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
force-frame-pointers.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
force-no-unwind-tables.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
force-unwind-tables.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
frame-pointer-cli-control.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
frame-pointer.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
function-arguments-noopt.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
function-arguments.rs Set dead_on_return attribute for indirect arguments 2025-08-11 12:39:23 +02:00
function-return.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
gdb_debug_script_load.rs Revert "Preserve the .debug_gdb_scripts section" 2025-08-06 18:01:07 +00:00
generic-debug.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
gep-index.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
gpu-kernel-abi.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
i128-wasm32-callconv.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
i128-x86-align.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
i128-x86-callconv.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
infallible-unwrap-in-opt-z.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
inherit_overflow.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
inline-always-works-always.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
inline-debuginfo.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
inline-function-args-debug-info.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
inline-hint.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
instrument-mcount.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
integer-cmp.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
integer-overflow.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
internalize-closures.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
intrinsic-no-unnamed-attr.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
is_val_statically_known.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
issue-97217.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
iter-repeat-n-trivial-drop.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
layout-size-checks.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
lifetime_start_end.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
link-dead-code.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
link_section.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
llvm-ident.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
llvm_module_flags.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
loads.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
local-generics-in-exe-internalized.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
lto-removes-invokes.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
mainsubprogram.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
match-optimized.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
match-optimizes-away.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
match-unoptimized.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
maybeuninit-rvo.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
mem-replace-big-type.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
mem-replace-simple-type.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
merge-functions.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
method-declaration.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
min-function-alignment.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
mir-aggregate-no-alloca.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
mir-inlined-line-numbers.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
mir_zst_stores.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
move-before-nocapture-ref-arg.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
move-operands.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
naked-asan.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
no-alloca-inside-if-false.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
no-assumes-on-casts.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
no-dllimport-w-cross-lang-lto.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
no-jump-tables.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
no-plt.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
no-redundant-item-monomorphization.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
no_builtins-at-crate.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
noalias-box-off.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
noalias-box.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
noalias-flag.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
noalias-freeze.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
noalias-refcell.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
noalias-rwlockreadguard.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
noalias-unpin.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
noreturn-uninhabited.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
noreturnflag.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
nounwind.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
nrvo.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
optimize-attr-1.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
option-as-slice.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
option-niche-eq.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
overaligned-constant.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
packed.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
panic-abort-windows.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
panic-in-drop-abort.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
panic-unwind-default-uwtable.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
pattern_type_symbols.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
personality_lifetimes.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
pgo-counter-bias.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
pgo-instrumentation.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
pic-relocation-model.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
pie-relocation-model.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
placement-new.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
powerpc64le-struct-align-128.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
precondition-checks.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
ptr-arithmetic.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
ptr-read-metadata.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
range-attribute.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
range-loop.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
range_to_inclusive.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
README.md Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
refs.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
reg-struct-return.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
regparm-inreg.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
repeat-operand-zero-len.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
repeat-operand-zst-elem.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
repeat-trusted-len.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
retpoline.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
riscv-target-abi.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
rust-abi-arch-specific-adjustment.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
s390x-simd.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
scalar-pair-bool.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
set-discriminant-invalid.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
skip-mono-inside-if-false.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
slice-as_chunks.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
slice-indexing.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
slice-init.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
slice-is-ascii.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
slice-iter-fold.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
slice-iter-len-eq-zero.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
slice-iter-nonnull.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
slice-last-elements-optimization.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
slice-pointer-nonnull-unwrap.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
slice-position-bounds-check.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
slice-ref-equality.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
slice-reverse.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
slice-split-at.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
slice-windows-no-bounds-check.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
slice_as_from_ptr_range.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
some-abis-do-extend-params-to-32-bits.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
some-global-nonnull.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
sparc-struct-abi.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
split-lto-unit.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
sroa-fragment-debuginfo.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
sse42-implies-crc32.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
stack-probes-inline.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
stack-protector.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
static-relocation-model-msvc.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
staticlib-external-inline-fns.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
step_by-overflow-checks.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
stores.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
string-push.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
swap-large-types.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
swap-small-types.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
target-cpu-on-functions.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
target-feature-inline-closure.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
target-feature-negative-implication.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
target-feature-overrides.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
terminating-catchpad.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
thread-local.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
tied-features-strength.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
to_vec.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
trailing_zeros.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
transmute-optimized.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
transmute-scalar.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
try_question_mark_nop.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
tune-cpu-on-functions.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
tuple-layout-opt.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
ub-checks.rs Verify llvm-needs-components are not empty and match the --target value 2025-07-29 11:20:23 -07:00
unchecked-float-casts.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
unchecked_shifts.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
uninhabited-transparent-return-abi.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
uninit-consts.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
uninit-repeat-in-aggregate.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
union-abi.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
union-aggregate.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
unwind-and-panic-abort.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
unwind-extern-exports.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
unwind-extern-imports.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
unwind-landingpad-cold.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
unwind-landingpad-inline.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
used_with_arg.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
var-names.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
vec-as-ptr.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
vec-calloc.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
vec-in-place.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
vec-iter-collect-len.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
vec-iter.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
vec-len-invariant.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
vec-optimizes-away.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
vec-reserve-extend.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
vec-shrink-panik.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
vec-with-capacity.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
vec_pop_push_noop.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
vecdeque-drain.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
vecdeque-nonempty-get-no-panic.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
vecdeque_no_panic.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
vecdeque_pop_push.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
virtual-call-attrs-issue-137646.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
virtual-function-elimination-32bit.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
virtual-function-elimination.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
vtable-loads.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
vtable-upcast.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
wasm_casts_trapping.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
wasm_exceptions.rs Don't special-case llvm.* as nounwind 2025-07-23 02:17:54 +03:00
zip.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
zst-offset.rs Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00

The files here use the LLVM FileCheck framework, documented at https://llvm.org/docs/CommandGuide/FileCheck.html.

One extension worth noting is the use of revisions as custom prefixes for FileCheck. If your codegen test has different behavior based on the chosen target or different compiler flags that you want to exercise, you can use a revisions annotation, like so:

// revisions: aaa bbb
// [bbb] compile-flags: --flags-for-bbb

After specifying those variations, you can write different expected, or explicitly unexpected output by using <prefix>-SAME: and <prefix>-NOT:, like so:

// CHECK: expected code
// aaa-SAME: emitted-only-for-aaa
// aaa-NOT:                        emitted-only-for-bbb
// bbb-NOT:  emitted-only-for-aaa
// bbb-SAME:                       emitted-only-for-bbb