rust/tests/codegen
Matthias Krüger 59ba8024af
Rollup merge of #120502 - clubby789:remove-ffi-returns-twice, r=compiler-errors
Remove `ffi_returns_twice` feature

The [tracking issue](https://github.com/rust-lang/rust/issues/58314) and [RFC](https://github.com/rust-lang/rfcs/pull/2633) have been closed for a couple of years.

There is also an attribute gate in R-A which should be removed if this lands.
2024-02-06 22:45:42 +01:00
..
auxiliary
avr
cffi Remove ffi_returns_twice feature 2024-01-30 22:09:09 +00:00
cross-crate-inlining
debug-accessibility Adapt debug-accessibility tests for msvc-style enums 2023-12-15 11:45:03 +00:00
dllimports
enum
instrument-xray
intrinsics Separate immediate and in-memory ScalarPair representation 2023-12-15 17:42:05 +01:00
issues Remove uses of no-system-llvm 2024-01-23 10:31:07 +01:00
lib-optimizations
loongarch-abi
macos
naked-fn
non-terminate
remap_path_prefix
repr
riscv-abi
sanitizer CFI: Add char to CFI integer normalization 2023-12-07 11:28:16 -08:00
simd
simd-intrinsic Fix alignment passed down to LLVM for simd_masked_load 2023-12-12 13:11:59 +01:00
src-hash-algorithm
unwind-abis
aarch64-struct-align-128.rs
abi-efiapi.rs
abi-main-signature-16bit-c-int.rs
abi-main-signature-32bit-c-int.rs llvm: Allow noundef in codegen tests 2024-01-02 18:02:17 +00:00
abi-repr-ext.rs
abi-sysv64.rs
abi-x86_64_sysv.rs
abi-x86-interrupt.rs
addr-of-mutate.rs
adjustments.rs
align-byval-vector.rs
align-byval.rs Separate immediate and in-memory ScalarPair representation 2023-12-15 17:42:05 +01:00
align-enum.rs
align-fn.rs
align-offset.rs
align-struct.rs Separate immediate and in-memory ScalarPair representation 2023-12-15 17:42:05 +01:00
alloc-optimisation.rs Remove uses of no-system-llvm 2024-01-23 10:31:07 +01:00
array-clone.rs
array-codegen.rs
array-equality.rs
array-map.rs Remove uses of no-system-llvm 2024-01-23 10:31:07 +01:00
array-optimized.rs
ascii-char.rs
asm-clobber_abi.rs
asm-clobbers.rs
asm-may_unwind.rs
asm-maybe-uninit.rs
asm-multiple-options.rs
asm-options.rs
asm-powerpc-clobbers.rs
asm-sanitize-llvm.rs
asm-target-clobbers.rs
async-fn-debug-awaitee-field.rs
async-fn-debug-msvc.rs
async-fn-debug.rs
atomic-operations.rs
autovectorize-f32x4.rs
binary-search-index-no-bound-check.rs
bool-cmp.rs
box-uninit-bytes.rs
bpf-alu32.rs
branch-protection.rs
call-llvm-intrinsics.rs
call-metadata.rs
catch-unwind.rs
cdylib-external-inline-fns.rs
cf-protection.rs
cfguard-checks.rs
cfguard-disabled.rs
cfguard-nochecks.rs
cfguard-non-msvc.rs
char-ascii-branchless.rs
codemodels.rs
coercions.rs
cold-call-declare-and-call.rs
comparison-operators-2-tuple.rs
comparison-operators-newtype.rs
const_scalar_pair.rs
consts.rs
coroutine-debug-msvc.rs
coroutine-debug.rs
dealloc-no-unwind.rs Remove uses of no-system-llvm 2024-01-23 10:31:07 +01:00
debug-alignment.rs
debug-column-msvc.rs
debug-column.rs
debug-compile-unit-path.rs
debug-fndef-size.rs
debug-limited.rs
debug-line-directives-only.rs
debug-line-tables-only.rs
debug-linkage-name.rs
debug-vtable.rs
debuginfo-constant-locals.rs
debuginfo-generic-closure-env-names.rs
debuginfo-inline-callsite-location.rs Split out option::unwrap_failed like we have result::unwrap_failed 2024-01-14 12:45:01 -08:00
deduced-param-attrs.rs
default-hidden-visibility.rs Add unstable -Zdefault-hidden-visibility cmdline flag for rustc. 2023-12-13 21:14:23 +00:00
default-requires-uwtable.rs
drop-in-place-noalias.rs
drop.rs
dst-vtable-align-nonzero.rs
dst-vtable-size-range.rs
ehcontguard_disabled.rs
ehcontguard_enabled.rs
enable-lto-unit-splitting.rs
export-no-mangle.rs
external-no-mangle-fns.rs
external-no-mangle-statics.rs
fastcall-inreg.rs
fatptr.rs
fewer-names.rs Remove uses of no-system-llvm 2024-01-23 10:31:07 +01:00
float_math.rs
fn-impl-trait-self.rs
foo.s
force-frame-pointers.rs
force-no-unwind-tables.rs
force-unwind-tables.rs
frame-pointer.rs
function-arguments-noopt.rs Separate immediate and in-memory ScalarPair representation 2023-12-15 17:42:05 +01:00
function-arguments.rs Separate immediate and in-memory ScalarPair representation 2023-12-15 17:42:05 +01:00
function-return.rs
gdb_debug_script_load.rs
generic-debug.rs
global_asm_include.rs
global_asm_x2.rs
global_asm.rs
i128-x86-align.rs Directly use volatile_load intrinsic 2024-01-19 10:52:01 +01:00
infallible-unwrap-in-opt-z.rs adapt test for v0 symbol mangling 2024-01-24 14:57:21 +00:00
inherit_overflow.rs Replace legacy ConstProp by GVN. 2023-12-24 20:08:57 +00:00
inline-always-works-always.rs
inline-debuginfo.rs
inline-function-args-debug-info.rs
inline-hint.rs
instrument-coverage-off.rs
instrument-coverage.rs
instrument-mcount.rs
integer-cmp.rs
integer-overflow.rs Remove uses of no-system-llvm 2024-01-23 10:31:07 +01:00
internalize-closures.rs
intrinsic-no-unnamed-attr.rs
is_val_statically_known.rs Add additional test cases for is_val_statically_known 2024-01-30 14:37:59 -05:00
issue-97217.rs
iter-repeat-n-trivial-drop.rs
layout-size-checks.rs
lifetime_start_end.rs
link_section.rs
link-dead-code.rs
llvm_module_flags.rs
llvm-ident.rs
loads.rs
local-generics-in-exe-internalized.rs
lto-removes-invokes.rs
mainsubprogram.rs
mainsubprogramstart.rs
match-optimized.rs
match-optimizes-away.rs Remove uses of no-system-llvm 2024-01-23 10:31:07 +01:00
match-unoptimized.rs
maybeuninit-rvo.rs Add codegen test for RVO on MaybeUninit 2024-01-03 21:18:07 +01:00
mem-replace-big-type.rs
mem-replace-simple-type.rs
merge-functions.rs
method-declaration.rs
mir_zst_stores.rs
mir-inlined-line-numbers.rs
move-before-nocapture-ref-arg.rs
move-operands.rs
no_builtins-at-crate.rs
no-assumes-on-casts.rs
no-dllimport-w-cross-lang-lto.rs
no-jump-tables.rs
no-plt.rs
noalias-box-off.rs
noalias-box.rs
noalias-flag.rs
noalias-refcell.rs
noalias-rwlockreadguard.rs
noalias-unpin.rs
noreturn-uninhabited.rs
noreturnflag.rs
nounwind.rs
nrvo.rs
optimize-attr-1.rs
option-as-slice.rs
option-nonzero-eq.rs
overaligned-constant.rs tests: fix overaligned-constant to not over-specify getelementptr instr 2023-12-21 15:53:28 -05:00
packed.rs
panic-abort-windows.rs
panic-in-drop-abort.rs
panic-unwind-default-uwtable.rs
personality_lifetimes.rs Make test compatible with 32-bit as well 2024-01-05 11:45:57 +01:00
pgo-counter-bias.rs
pgo-instrumentation.rs
pic-relocation-model.rs
pie-relocation-model.rs
ptr-arithmetic.rs
ptr-read-metadata.rs Remove uses of no-system-llvm 2024-01-23 10:31:07 +01:00
README.md
refs.rs Separate immediate and in-memory ScalarPair representation 2023-12-15 17:42:05 +01:00
repeat-trusted-len.rs
scalar-pair-bool.rs Separate immediate and in-memory ScalarPair representation 2023-12-15 17:42:05 +01:00
set-discriminant-invalid.rs
slice_as_from_ptr_range.rs
slice-as_chunks.rs Remove uses of no-system-llvm 2024-01-23 10:31:07 +01:00
slice-indexing.rs
slice-init.rs
slice-iter-fold.rs
slice-iter-len-eq-zero.rs Remove uses of no-system-llvm 2024-01-23 10:31:07 +01:00
slice-iter-nonnull.rs Remove uses of no-system-llvm 2024-01-23 10:31:07 +01:00
slice-position-bounds-check.rs Remove uses of no-system-llvm 2024-01-23 10:31:07 +01:00
slice-ref-equality.rs
slice-reverse.rs
slice-windows-no-bounds-check.rs
some-abis-do-extend-params-to-32-bits.rs
some-global-nonnull.rs
sparc-struct-abi.rs llvm: Allow noundef in codegen tests 2024-01-02 18:02:17 +00:00
split-lto-unit.rs
sroa-fragment-debuginfo.rs
sse42-implies-crc32.rs
stack-probes-inline.rs Enable stack probes on aarch64 for LLVM 18 2023-12-07 17:17:00 -08:00
stack-protector.rs
static-relocation-model-msvc.rs
staticlib-external-inline-fns.rs
stores.rs
swap-large-types.rs
swap-small-types.rs Tweak the threshold for chunked swapping 2024-01-19 23:00:34 -08:00
target-cpu-on-functions.rs
target-feature-inline-closure.rs
target-feature-overrides.rs
thin-lto.rs
thread-local.rs
tied-features-strength.rs
to_vec.rs
trailing_zeros.rs
transmute-optimized.rs
transmute-scalar.rs
try_identity.rs
try_question_mark_nop.rs
tune-cpu-on-functions.rs
tuple-layout-opt.rs
unchecked_shifts.rs
unchecked-float-casts.rs
uninit-consts.rs
union-abi.rs
unwind-and-panic-abort.rs
unwind-extern-exports.rs
unwind-extern-imports.rs
unwind-landingpad-cold.rs
unwind-landingpad-inline.rs
used_with_arg.rs
var-names.rs
vec_pop_push_noop.rs update codegen tests 2024-01-22 15:46:32 +01:00
vec-as-ptr.rs
vec-calloc.rs
vec-in-place.rs
vec-iter-collect-len.rs Remove uses of no-system-llvm 2024-01-23 10:31:07 +01:00
vec-iter.rs mark vec::IntoIter pointers as !nonnull 2024-01-07 03:44:04 +01:00
vec-optimizes-away.rs Remove uses of no-system-llvm 2024-01-23 10:31:07 +01:00
vec-reserve-extend.rs update codegen tests 2024-01-22 15:46:32 +01:00
vec-shrink-panik.rs
vecdeque_no_panic.rs
vecdeque-nonempty-get-no-panic.rs
virtual-function-elimination-32bit.rs
virtual-function-elimination.rs
wasm_casts_trapping.rs
wasm_exceptions.rs
zip.rs
zst-offset.rs Address review comments 2024-01-02 15:03:14 +01: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