rust/tests/codegen
2023-01-17 16:23:22 +01:00
..
auxiliary
avr
dllimports Add more codegen tests 2023-01-17 16:23:22 +01:00
intrinsics Add more codegen tests 2023-01-17 16:23:22 +01:00
non-terminate
remap_path_prefix
riscv-abi Put noundef on all scalars that don't allow uninit 2023-01-17 08:14:35 +01:00
simd-intrinsic
src-hash-algorithm
unwind-abis
abi-efiapi.rs Stabilize abi_efiapi feature 2023-01-11 20:42:13 -05:00
abi-main-signature-16bit-c-int.rs
abi-main-signature-32bit-c-int.rs
abi-repr-ext.rs
abi-sysv64.rs Add more codegen tests 2023-01-17 16:23:22 +01:00
abi-x86_64_sysv.rs
abi-x86-interrupt.rs Add more codegen tests 2023-01-17 16:23:22 +01:00
adjustments.rs Add more codegen tests 2023-01-17 16:23:22 +01:00
align-enum.rs
align-fn.rs
align-struct.rs
alloc-optimisation.rs
array-clone.rs
array-equality.rs
asm-clobber_abi.rs
asm-clobbers.rs
asm-may_unwind.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-maybe-uninit-llvm14.rs Put noundef on all scalars that don't allow uninit 2023-01-17 08:14:35 +01:00
box-maybe-uninit.rs Put noundef on all scalars that don't allow uninit 2023-01-17 08:14:35 +01:00
bpf-alu32.rs
branch-protection.rs
c-variadic-copy.rs
c-variadic-opt.rs
c-variadic.rs Add more codegen tests 2023-01-17 16:23:22 +01:00
call-llvm-intrinsics.rs Add more codegen tests 2023-01-17 16:23:22 +01:00
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
codemodels.rs
coercions.rs
cold-call-declare-and-call.rs
comparison-operators-newtype.rs Put noundef on all scalars that don't allow uninit 2023-01-17 08:14:35 +01:00
consts.rs
dealloc-no-unwind.rs
debug-alignment.rs
debug-column-msvc.rs
debug-column.rs
debug-compile-unit-path.rs
debug-linkage-name.rs
debug-vtable.rs
debuginfo-generic-closure-env-names.rs
deduced-param-attrs.rs
default-requires-uwtable.rs
drop.rs
dst-vtable-align-nonzero.rs
dst-vtable-size-range.rs
enum-bounds-check-derived-idx.rs
enum-bounds-check-issue-13926.rs
enum-bounds-check-issue-82871.rs
enum-bounds-check.rs
enum-debug-clike.rs
enum-debug-niche-2.rs
enum-debug-niche.rs
enum-debug-tagged.rs
enum-discriminant-value.rs
enum-match.rs Put noundef on all scalars that don't allow uninit 2023-01-17 08:14:35 +01:00
export-no-mangle.rs
external-no-mangle-fns.rs
external-no-mangle-statics.rs
fastcall-inreg.rs Put noundef on all scalars that don't allow uninit 2023-01-17 08:14:35 +01:00
fatptr.rs
fewer-names.rs Put noundef on all scalars that don't allow uninit 2023-01-17 08:14:35 +01:00
ffi-const.rs
ffi-out-of-bounds-loads.rs
ffi-pure.rs
ffi-returns-twice.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 Add more codegen tests 2023-01-17 16:23:22 +01:00
function-arguments-noopt.rs
function-arguments.rs Add more codegen tests 2023-01-17 16:23:22 +01:00
gdb_debug_script_load.rs
generator-debug-msvc.rs
generator-debug.rs
generic-debug.rs
global_asm_include.rs
global_asm_x2.rs
global_asm.rs
i686-macosx-deployment-target.rs
i686-no-macosx-deployment-target.rs
inline-always-works-always.rs
inline-debuginfo.rs
inline-hint.rs
instrument-coverage.rs
instrument-mcount.rs
integer-cmp.rs
integer-overflow.rs
internalize-closures.rs
intrinsic-no-unnamed-attr.rs
issue-13018.rs
issue-15953.rs
issue-27130.rs
issue-32031.rs Add more codegen tests 2023-01-17 16:23:22 +01:00
issue-32364.rs
issue-34634.rs
issue-34947-pow-i32.rs
issue-37945.rs
issue-44056-macos-tls-align.rs
issue-45222.rs
issue-45466.rs
issue-45964-bounds-check-slice-pos.rs replace manual ptr arithmetic with ptr_sub 2023-01-15 17:38:05 +01:00
issue-47278.rs
issue-47442.rs
issue-56267-2.rs
issue-56267.rs
issue-56927.rs
issue-58881.rs Add more codegen tests 2023-01-17 16:23:22 +01:00
issue-59352.rs
issue-69101-bounds-check.rs
issue-73031.rs
issue-73338-effecient-cmp.rs
issue-73396-bounds-check-after-position.rs
issue-73827-bounds-check-index-in-subexpr.rs
issue-75525-bounds-checks.rs
issue-75546.rs
issue-75659.rs
issue-77812.rs
issue-81408-dllimport-thinlto-windows.rs
issue-84268.rs
issue-85872-multiple-reverse.rs
issue-86106.rs
issue-96274.rs
issue-96497-slice-size-nowrap.rs
issue-98156-const-arg-temp-lifetime.rs
issue-98294-get-mut-copy-from-slice-opt.rs
issue-103285-ptr-addr-overflow-check.rs
issue-103840.rs
issue-105386-ub-in-debuginfo.rs
iter-repeat-n-trivial-drop.rs Add more codegen tests 2023-01-17 16:23:22 +01:00
layout-size-checks.rs
lifetime_start_end.rs
link_section.rs
link-dead-code.rs
loads.rs Add more codegen tests 2023-01-17 16:23:22 +01:00
local-generics-in-exe-internalized.rs
lto-removes-invokes.rs
mainsubprogram.rs
mainsubprogramstart.rs
match-optimized.rs
match-optimizes-away.rs
match-unoptimized.rs
mem-replace-direct-memcpy.rs
merge-functions.rs
mir_zst_stores.rs
mir-inlined-line-numbers.rs
move-operands.rs Add a regression test for argument copies with DestinationPropagation 2023-01-11 10:27:06 -05:00
naked-functions.rs Add more codegen tests 2023-01-17 16:23:22 +01:00
naked-nocoverage.rs
naked-noinline.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-nonzero-eq.rs
packed.rs
panic-abort-windows.rs
panic-in-drop-abort.rs
panic-unwind-default-uwtable.rs
personality_lifetimes.rs
pgo-counter-bias.rs
pgo-instrumentation.rs
pic-relocation-model.rs Add more codegen tests 2023-01-17 16:23:22 +01:00
pie-relocation-model.rs Add more codegen tests 2023-01-17 16:23:22 +01:00
README.md
refs.rs Add more codegen tests 2023-01-17 16:23:22 +01:00
repeat-trusted-len.rs
repr-transparent-aggregates-1.rs
repr-transparent-aggregates-2.rs
repr-transparent-aggregates-3.rs
repr-transparent-sysv64.rs
repr-transparent.rs Put noundef on all scalars that don't allow uninit 2023-01-17 08:14:35 +01:00
sanitizer_memtag_attr_check.rs
sanitizer_scs_attr_check.rs
sanitizer-cfi-add-canonical-jump-tables-flag.rs
sanitizer-cfi-emit-type-checks.rs Add more codegen tests 2023-01-17 16:23:22 +01:00
sanitizer-cfi-emit-type-metadata-id-itanium-cxx-abi.rs
sanitizer-cfi-emit-type-metadata-itanium-cxx-abi.rs
sanitizer-kcfi-add-kcfi-flag.rs
sanitizer-kcfi-emit-kcfi-operand-bundle-itanium-cxx-abi.rs Add more codegen tests 2023-01-17 16:23:22 +01:00
sanitizer-memory-track-orgins.rs
sanitizer-no-sanitize-inlining.rs
sanitizer-no-sanitize.rs
sanitizer-recover.rs Add more codegen tests 2023-01-17 16:23:22 +01:00
scalar-pair-bool.rs Put noundef on all scalars that don't allow uninit 2023-01-17 08:14:35 +01:00
set-discriminant-invalid.rs
simd_arith_offset.rs
simd-wide-sum.rs
slice_as_from_ptr_range.rs
slice-as_chunks.rs
slice-init.rs
slice-iter-len-eq-zero.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 Add more codegen tests 2023-01-17 16:23:22 +01:00
some-global-nonnull.rs
sparc-struct-abi.rs
sse42-implies-crc32.rs
stack-probes-call.rs
stack-probes-inline.rs
stack-protector.rs
static-relocation-model-msvc.rs Add more codegen tests 2023-01-17 16:23:22 +01:00
staticlib-external-inline-fns.rs
stores.rs
swap-large-types.rs
swap-simd-types.rs
swap-small-types.rs
target-cpu-on-functions.rs
target-feature-overrides.rs
thread-local.rs
to_vec.rs
transmute-scalar.rs Put noundef on all scalars that don't allow uninit 2023-01-17 08:14:35 +01:00
try_identity.rs
try_question_mark_nop.rs
tune-cpu-on-functions.rs
tuple-layout-opt.rs Add more codegen tests 2023-01-17 16:23:22 +01:00
unchecked_shifts.rs
unchecked-float-casts.rs
uninit-consts.rs
union-abi.rs
unpadded-simd.rs
unwind-and-panic-abort.rs
unwind-extern-exports.rs
unwind-extern-imports.rs
used_with_arg.rs
var-names.rs Put noundef on all scalars that don't allow uninit 2023-01-17 08:14:35 +01:00
vec-calloc-llvm14.rs
vec-calloc.rs Add more codegen tests 2023-01-17 16:23:22 +01:00
vec-in-place.rs
vec-iter-collect-len.rs
vec-optimizes-away.rs
vec-shrink-panik.rs
vecdeque_no_panic.rs
virtual-function-elimination-32bit.rs
virtual-function-elimination.rs
wasm_casts_trapping.rs
x86_64-macosx-deployment-target.rs
x86_64-no-macosx-deployment-target.rs
zip.rs
zst-offset.rs Add more codegen tests 2023-01-17 16:23:22 +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