rust/tests/codegen
2023-06-04 00:51:49 -07:00
..
auxiliary
avr
dllimports
instrument-xray
intrinsics Add a distinct OperandValue::ZeroSized variant for ZSTs 2023-05-31 19:10:28 -07:00
issues Rollup merge of - ferrocene:pa-codegen-tests, r=Mark-Simulacrum 2023-06-03 20:38:11 +02:00
loongarch-abi
non-terminate
remap_path_prefix
riscv-abi
simd-intrinsic
src-hash-algorithm
unwind-abis codegen: add needs-unwind to tests that require it 2023-05-23 16:54:35 +02:00
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 allow mutating function args through &raw const 2023-05-13 00:00:51 +02:00
adjustments.rs
align-enum.rs
align-fn.rs
align-offset.rs
align-struct.rs
alloc-optimisation.rs Prevent insta-stable no alloc shim support 2023-05-11 14:35:09 +00:00
array-clone.rs
array-codegen.rs Use load-store instead of memcpy for short integer arrays 2023-06-04 00:51:49 -07:00
array-equality.rs
array-map.rs Remove array_zip 2023-05-30 00:40:39 -07:00
ascii-char.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 Test from_fn autovectorizes 2023-05-30 20:45:40 -07:00
binary-search-index-no-bound-check.rs Stop checking for the absense of something that doesn't exist 2023-05-12 21:59:26 -07:00
bool-cmp.rs
box-maybe-uninit-llvm14.rs codegen: allow the dso_local attribute 2023-05-23 16:54:33 +02:00
box-maybe-uninit.rs codegen: do not require the uwtables attribute 2023-05-23 16:54:34 +02:00
bpf-alu32.rs
branch-protection.rs
c-variadic-copy.rs
c-variadic-opt.rs
c-variadic.rs
call-llvm-intrinsics.rs
call-metadata.rs codegen: allow extra attributes to functions when panic=abort 2023-05-23 16:54:30 +02:00
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-2-tuple.rs
comparison-operators-newtype.rs
const_scalar_pair.rs Explain the reason for why a test exists 2023-05-31 14:07:16 +00:00
consts.rs
dealloc-no-unwind.rs
debug-alignment.rs
debug-column-msvc.rs
debug-column.rs codegen: allow extra attributes to functions when panic=abort 2023-05-23 16:54:30 +02:00
debug-compile-unit-path.rs
debug-limited.rs
debug-line-directives-only.rs
debug-line-tables-only.rs
debug-linkage-name.rs
debug-vtable.rs Fix test 2023-05-11 14:35:10 +00:00
debuginfo-constant-locals.rs
debuginfo-generic-closure-env-names.rs
deduced-param-attrs.rs
default-requires-uwtable.rs
drop-in-place-noalias.rs drop-in-place-noalias test: needs -O to ensure attributes are added on nopt builders 2023-05-22 20:20:45 -04:00
drop.rs codegen: add needs-unwind to tests that require it 2023-05-23 16:54:35 +02:00
dst-vtable-align-nonzero.rs
dst-vtable-size-range.rs
enable-lto-unit-splitting.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
export-no-mangle.rs
external-no-mangle-fns.rs
external-no-mangle-statics.rs codegen: allow the dso_local attribute 2023-05-23 16:54:33 +02:00
fastcall-inreg.rs
fatptr.rs
fewer-names.rs Merge return place with other locals in CopyProp. 2023-05-14 12:06:34 +00: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
function-arguments-noopt.rs
function-arguments.rs
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
inherit_overflow.rs
inline-always-works-always.rs
inline-debuginfo.rs
inline-function-args-debug-info.rs
inline-hint.rs
instrument-coverage.rs
instrument-mcount.rs
integer-cmp.rs
integer-overflow.rs
internalize-closures.rs
intrinsic-no-unnamed-attr.rs
iter-repeat-n-trivial-drop.rs
layout-size-checks.rs
lifetime_start_end.rs
link_section.rs codegen: allow the dso_local attribute 2023-05-23 16:54:33 +02:00
link-dead-code.rs
loads.rs
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-big-type.rs Merge return place with other locals in CopyProp. 2023-05-14 12:06:34 +00:00
mem-replace-simple-type.rs Use load-store instead of memcpy for short integer arrays 2023-06-04 00:51:49 -07:00
merge-functions.rs
mir_zst_stores.rs
mir-inlined-line-numbers.rs codegen: allow extra attributes to functions when panic=abort 2023-05-23 16:54:30 +02:00
move-operands.rs
naked-functions.rs
naked-nocoverage.rs
naked-noinline.rs codegen: allow the dso_local attribute 2023-05-23 16:54:33 +02:00
no-assumes-on-casts.rs
no-dllimport-w-cross-lang-lto.rs
no-jump-tables.rs
no-plt.rs
noalias-box-off.rs make noalias-box-off filecheck more precise 2023-05-20 19:41:28 -04:00
noalias-box.rs
noalias-flag.rs
noalias-refcell.rs
noalias-rwlockreadguard.rs
noalias-unpin.rs
noreturn-uninhabited.rs
noreturnflag.rs
nounwind.rs
nrvo.rs Disable nrvo mir opt 2023-05-08 03:55:41 -07:00
optimize-attr-1.rs
option-as-slice.rs
option-nonzero-eq.rs Also assume wrap-around discriminants in as MIR building 2023-05-18 10:28:36 -07:00
packed.rs
panic-abort-windows.rs
panic-in-drop-abort.rs
panic-unwind-default-uwtable.rs
personality_lifetimes.rs codegen: add needs-unwind to tests that require it 2023-05-23 16:54:35 +02:00
pgo-counter-bias.rs
pgo-instrumentation.rs
pic-relocation-model.rs
pie-relocation-model.rs
ptr-read-metadata.rs codegen: allow the dso_local attribute 2023-05-23 16:54:33 +02:00
README.md
refs.rs
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
sanitizer_memtag_attr_check.rs
sanitizer_scs_attr_check.rs
sanitizer-cfi-add-canonical-jump-tables-flag.rs
sanitizer-cfi-add-enable-split-lto-unit-flag.rs
sanitizer-cfi-emit-type-checks-attr-no-sanitize.rs
sanitizer-cfi-emit-type-checks.rs
sanitizer-cfi-emit-type-metadata-attr-cfi-encoding.rs
sanitizer-cfi-emit-type-metadata-id-itanium-cxx-abi.rs CFI: Fix cfi with repr(transparent): transform_ty: unexpected Alias(Proj 2023-06-01 19:56:36 +00:00
sanitizer-cfi-emit-type-metadata-itanium-cxx-abi-generalized.rs
sanitizer-cfi-emit-type-metadata-itanium-cxx-abi-normalized-generalized.rs
sanitizer-cfi-emit-type-metadata-itanium-cxx-abi-normalized.rs
sanitizer-cfi-emit-type-metadata-itanium-cxx-abi.rs
sanitizer-cfi-emit-type-metadata-trait-objects.rs CFI: Fix encode_region: unexpected ReEarlyBound(0, 'a) 2023-05-23 16:44:03 +00:00
sanitizer-cfi-generalize-pointers.rs
sanitizer-cfi-normalize-integers.rs
sanitizer-kasan-emits-instrumentation.rs
sanitizer-kcfi-add-kcfi-flag.rs
sanitizer-kcfi-emit-kcfi-operand-bundle-attr-no-sanitize.rs
sanitizer-kcfi-emit-kcfi-operand-bundle-itanium-cxx-abi-generalized.rs
sanitizer-kcfi-emit-kcfi-operand-bundle-itanium-cxx-abi-normalized-generalized.rs
sanitizer-kcfi-emit-kcfi-operand-bundle-itanium-cxx-abi-normalized.rs
sanitizer-kcfi-emit-kcfi-operand-bundle-itanium-cxx-abi.rs
sanitizer-kcfi-emit-kcfi-operand-bundle.rs
sanitizer-kcfi-emit-type-metadata-trait-objects.rs CFI: Fix encode_region: unexpected ReEarlyBound(0, 'a) 2023-05-23 16:44:03 +00:00
sanitizer-memory-track-orgins.rs
sanitizer-no-sanitize-inlining.rs
sanitizer-no-sanitize.rs
sanitizer-recover.rs
sanitizer-safestack-attr-check.rs Add SafeStack support to rustc 2023-05-26 15:18:54 -04:00
scalar-pair-bool.rs
set-discriminant-invalid.rs
simd_arith_offset.rs
simd-wide-sum.rs
slice_as_from_ptr_range.rs
slice-as_chunks.rs
slice-indexing.rs
slice-init.rs
slice-iter-len-eq-zero.rs
slice-iter-nonnull.rs Remove useless assumes from slice::iter(_mut) 2023-05-12 17:34:55 -07:00
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
sse42-implies-crc32.rs
stack-probes-call.rs
stack-probes-inline.rs
stack-protector.rs
static-relocation-model-msvc.rs
staticlib-external-inline-fns.rs
stores.rs
swap-large-types.rs
swap-simd-types.rs Use load-store instead of memcpy for short integer arrays 2023-06-04 00:51:49 -07:00
swap-small-types.rs Use load-store instead of memcpy for short integer arrays 2023-06-04 00:51:49 -07:00
target-cpu-on-functions.rs
target-feature-overrides.rs
thread-local.rs
tied-features-strength.rs Create a structure to define the features from to_llvm_features. 2023-05-22 14:46:40 +01:00
to_vec.rs
transmute-optimized.rs
transmute-scalar.rs
try_identity.rs
try_question_mark_nop.rs
tune-cpu-on-functions.rs
tuple-layout-opt.rs codegen: allow the dso_local attribute 2023-05-23 16:54:33 +02:00
unchecked_shifts.rs
unchecked-float-casts.rs
uninit-consts.rs
union-abi.rs codegen: allow the dso_local attribute 2023-05-23 16:54:33 +02:00
unpadded-simd.rs
unwind-and-panic-abort.rs
unwind-extern-exports.rs codegen: add needs-unwind to tests that require it 2023-05-23 16:54:35 +02:00
unwind-extern-imports.rs codegen: add needs-unwind to tests that require it 2023-05-23 16:54:35 +02:00
used_with_arg.rs
var-names.rs Merge return place with other locals in CopyProp. 2023-05-14 12:06:34 +00:00
vec-as-ptr.rs
vec-calloc-llvm14.rs
vec-calloc.rs
vec-in-place.rs
vec-iter-collect-len.rs
vec-optimizes-away.rs Prevent insta-stable no alloc shim support 2023-05-11 14:35:09 +00:00
vec-shrink-panik.rs codegen: add needs-unwind to tests that require it 2023-05-23 16:54:35 +02:00
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

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