rust/tests/codegen
2024-04-16 12:35:22 +00:00
..
auxiliary
avr
cffi Rollup merge of #123249 - goolmoos:naked_variadics, r=pnkfelix 2024-04-12 17:41:33 +02:00
cross-crate-inlining
debug-accessibility
dllimports
enum Add test case for #119014 2024-04-08 19:20:04 +08:00
float Add basic library support for f16 and f128 2024-04-10 13:50:27 -04:00
instrument-coverage
instrument-xray
intrinsics Add codegen tests for changed intrinsics 2024-04-16 12:35:22 +00:00
issues Update 122805 test for PR 123185 2024-04-10 08:28:43 -07:00
lib-optimizations
loongarch-abi
macos
meta-filecheck
naked-fn do not add prolog for variadic naked functions 2024-04-12 15:29:39 +03:00
non-terminate
remap_path_prefix
repr
riscv-abi
sanitizer
simd
simd-intrinsic
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
abi-repr-ext.rs
abi-sysv64.rs
abi-x86_64_sysv.rs
abi-x86-interrupt.rs
addr-of-mutate.rs
adjustments.rs
align-byval-alignment-mismatch.rs
align-byval-vector.rs
align-byval.rs
align-enum.rs
align-fn.rs
align-offset.rs
align-struct.rs
alloc-optimisation.rs
array-clone.rs
array-codegen.rs Remove my scalar_copy_backend_type optimization attempt 2024-04-09 08:51:32 -07:00
array-equality.rs
array-map.rs
array-optimized.rs Remove my scalar_copy_backend_type optimization attempt 2024-04-09 08:51:32 -07:00
ascii-char.rs codegen tests: Tolerate nuw nsw on trunc 2024-04-11 17:20:08 +00:00
asm-clobber_abi.rs
asm-clobbers.rs
asm-goto.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-closure-debug.rs
async-fn-debug-awaitee-field.rs
async-fn-debug-msvc.rs
async-fn-debug.rs
atomic-operations.rs
atomicptr.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
cast-target-abi.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
common_prim_int_ptr.rs
comparison-operators-2-tuple.rs
comparison-operators-newtype.rs
const_scalar_pair.rs
constant-branch.rs
consts.rs
coroutine-debug-msvc.rs
coroutine-debug.rs
dealloc-no-unwind.rs
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
deduced-param-attrs.rs
default-hidden-visibility.rs
default-requires-uwtable.rs
direct-access-external-data.rs
dont_codegen_private_const_fn_only_used_in_const_eval.rs
drop-in-place-noalias.rs
drop.rs
dst-offset.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
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
function-arguments.rs
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
infallible-unwrap-in-opt-z.rs
inherit_overflow.rs
inline-always-works-always.rs
inline-debuginfo.rs
inline-function-args-debug-info.rs
inline-hint.rs
instrument-mcount.rs
integer-cmp.rs
integer-overflow.rs
internalize-closures.rs
intrinsic-no-unnamed-attr.rs
is_val_statically_known.rs
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 Transforms match into an assignment statement 2024-04-08 19:00:53 +08:00
match-optimizes-away.rs
match-unoptimized.rs
maybeuninit-rvo.rs
mem-replace-big-type.rs
mem-replace-simple-type.rs Remove my scalar_copy_backend_type optimization attempt 2024-04-09 08:51:32 -07:00
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
no-redundant-item-monomorphization.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-niche-eq.rs
overaligned-constant.rs
packed.rs
panic-abort-windows.rs
panic-in-drop-abort.rs
panic-unwind-default-uwtable.rs
pattern_type_symbols.rs Actually create ranged int types in the type system. 2024-04-08 12:02:19 +00:00
personality_lifetimes.rs
pgo-counter-bias.rs
pgo-instrumentation.rs
pic-relocation-model.rs
pie-relocation-model.rs
powerpc64le-struct-align-128.rs Fix argument ABI for overaligned structs on ppc64le 2024-04-08 11:15:36 +09:00
precondition-checks.rs
ptr-arithmetic.rs
ptr-read-metadata.rs
README.md
refs.rs
repeat-trusted-len.rs
riscv-target-abi.rs Set target-abi module flag for RISC-V targets 2024-04-09 05:25:51 +02:00
scalar-pair-bool.rs
set-discriminant-invalid.rs
skip-mono-inside-if-false.rs
slice_as_from_ptr_range.rs
slice-as_chunks.rs
slice-indexing.rs Use unchecked_sub in str indexing 2024-04-06 14:09:03 -04:00
slice-init.rs
slice-iter-fold.rs
slice-iter-len-eq-zero.rs
slice-iter-nonnull.rs
slice-position-bounds-check.rs
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
split-lto-unit.rs
sroa-fragment-debuginfo.rs
sse42-implies-crc32.rs
stack-probes-inline.rs
stack-protector.rs
static-relocation-model-msvc.rs
staticlib-external-inline-fns.rs
step_by-overflow-checks.rs Don't emit divide-by-zero panic paths in StepBy::len 2024-04-06 11:37:57 -07:00
stores.rs
swap-large-types.rs
swap-small-types.rs
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
ub-checks.rs Put checks that detect UB under their own flag below debug_assertions 2024-04-06 11:21:47 -04:00
unchecked_shifts.rs codegen tests: Tolerate nuw nsw on trunc 2024-04-11 17:20:08 +00:00
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
vec-as-ptr.rs
vec-calloc.rs
vec-in-place.rs
vec-iter-collect-len.rs
vec-iter.rs
vec-optimizes-away.rs
vec-reserve-extend.rs
vec-shrink-panik.rs
vec-with-capacity.rs
vecdeque_no_panic.rs
vecdeque_pop_push.rs Add invariant to VecDeque::pop_* that len < cap if pop successful 2024-04-08 12:12:13 +02:00
vecdeque-drain.rs
vecdeque-nonempty-get-no-panic.rs
virtual-function-elimination-32bit.rs
virtual-function-elimination.rs
vtable-upcast.rs
wasm_casts_trapping.rs
wasm_exceptions.rs
zip.rs
zst-offset.rs

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