rust/tests/codegen
2023-07-20 11:33:49 -07:00
..
auxiliary
avr Always name the return place. 2023-07-08 15:38:40 +02:00
dllimports
instrument-xray
intrinsics Always name the return place. 2023-07-08 15:38:40 +02:00
issues
loongarch-abi
non-terminate
remap_path_prefix
riscv-abi Always name the return place. 2023-07-08 15:38:40 +02:00
simd-intrinsic Always name the return place. 2023-07-08 15:38:40 +02:00
src-hash-algorithm
unwind-abis
aarch64-struct-align-128.rs aarch64-linux: properly handle 128bit aligned aggregates 2023-07-10 19:19:40 -04: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 add align attr to addr-of-mutate test 2023-07-10 19:19:36 -04:00
adjustments.rs
align-byval-vector.rs implement vector-containing aggregate alignment for x86 darwin 2023-07-10 19:19:36 -04:00
align-byval.rs i686-windows: make requested alignment > 4 special case apply transitively 2023-07-14 17:48:13 -04:00
align-enum.rs
align-fn.rs
align-offset.rs
align-struct.rs
alloc-optimisation.rs
array-clone.rs
array-codegen.rs Always name the return place. 2023-07-08 15:38:40 +02:00
array-equality.rs
array-map.rs update array-map test for removed alloca 2023-07-10 19:19:35 -04: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
binary-search-index-no-bound-check.rs
bool-cmp.rs
box-maybe-uninit-llvm14.rs
box-maybe-uninit.rs
bpf-alu32.rs
branch-protection.rs
c-variadic-copy.rs
c-variadic-opt.rs
c-variadic.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
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 Always name the return place. 2023-07-08 15:38:40 +02:00
dealloc-no-unwind.rs
debug-alignment.rs
debug-column-msvc.rs
debug-column.rs
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
debuginfo-constant-locals.rs
debuginfo-generic-closure-env-names.rs
deduced-param-attrs.rs
default-requires-uwtable.rs
drop-in-place-noalias.rs
drop.rs
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 Always name the return place. 2023-07-08 15:38:40 +02:00
enum-u128.rs
export-no-mangle.rs
external-no-mangle-fns.rs
external-no-mangle-statics.rs
fastcall-inreg.rs
fatptr.rs
fewer-names.rs Always name the return place. 2023-07-08 15:38:40 +02: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 rustc_target: Add alignment to indirectly-passed by-value types, correcting the 2023-07-10 19:19:30 -04:00
function-arguments.rs rustc_target: Add alignment to indirectly-passed by-value types, correcting the 2023-07-10 19:19:30 -04: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
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 Get !nonnull metadata consistently in slice iterators, without needing assumes 2023-07-20 11:33:49 -07:00
layout-size-checks.rs
lifetime_start_end.rs
link_section.rs
link-dead-code.rs
loads.rs
local-generics-in-exe-internalized.rs
lto-removes-invokes.rs
mainsubprogram.rs
mainsubprogramstart.rs
match-optimized.rs Always name the return place. 2023-07-08 15:38:40 +02:00
match-optimizes-away.rs
match-unoptimized.rs
mem-replace-big-type.rs Always name the return place. 2023-07-08 15:38:40 +02:00
mem-replace-simple-type.rs Always name the return place. 2023-07-08 15:38:40 +02:00
merge-functions.rs
mir_zst_stores.rs
mir-inlined-line-numbers.rs
move-operands.rs Enable MIR opts for test. 2023-07-19 09:59:12 +00:00
naked-functions.rs
naked-nocoverage.rs
naked-noinline.rs
no_builtins-at-crate.rs Add the no-builtins attribute to functions when no_builtins is applied at the crate level. 2023-07-18 22:15:47 +08:00
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
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
pie-relocation-model.rs
ptr-read-metadata.rs
README.md
refs.rs
repeat-trusted-len.rs Always name the return place. 2023-07-08 15:38:40 +02:00
repr-transparent-aggregates-1.rs test-various: run codegen and assembly tests 2023-07-02 02:22:22 +02:00
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 Fix a codegen test 2023-06-22 15:36:46 +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
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
sanitizer-memory-track-orgins.rs
sanitizer-no-sanitize-inlining.rs
sanitizer-no-sanitize.rs
sanitizer-recover.rs
sanitizer-safestack-attr-check.rs
scalar-pair-bool.rs
set-discriminant-invalid.rs
simd_arith_offset.rs Always name the return place. 2023-07-08 15:38:40 +02:00
simd-wide-sum.rs Reenable all cases of simd-wide-sum 2023-07-11 20:21:32 -07:00
slice_as_from_ptr_range.rs
slice-as_chunks.rs
slice-indexing.rs
slice-init.rs Fortify codegen test. 2023-07-10 16:01:18 +00:00
slice-iter-fold.rs
slice-iter-len-eq-zero.rs Get !nonnull metadata consistently in slice iterators, without needing assumes 2023-07-20 11:33:49 -07:00
slice-iter-nonnull.rs Get !nonnull metadata consistently in slice iterators, without needing assumes 2023-07-20 11:33:49 -07:00
slice-position-bounds-check.rs
slice-ref-equality.rs Perform reference propagation earlier. 2023-07-10 16:01:18 +00:00
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 tests: be even more permissive on attributes in one test 2023-06-23 09:48:00 -04:00
static-relocation-model-msvc.rs
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
tied-features-strength.rs
to_vec.rs
transmute-optimized.rs
transmute-scalar.rs Always name the return place. 2023-07-08 15:38:40 +02:00
try_identity.rs
try_question_mark_nop.rs
tune-cpu-on-functions.rs
tuple-layout-opt.rs
unchecked_shifts.rs [libs] Simplify unchecked_{shl,shr} 2023-06-16 16:03:19 -07:00
unchecked-float-casts.rs
uninit-consts.rs Always name the return place. 2023-07-08 15:38:40 +02:00
union-abi.rs Always name the return place. 2023-07-08 15:38:40 +02:00
unpadded-simd.rs
unwind-and-panic-abort.rs
unwind-extern-exports.rs
unwind-extern-imports.rs
used_with_arg.rs
var-names.rs Always name the return place. 2023-07-08 15:38:40 +02: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
vec-shrink-panik.rs use indexed loop instead of ptr bumping 2023-06-14 22:22:41 +02:00
vecdeque_no_panic.rs
virtual-function-elimination-32bit.rs
virtual-function-elimination.rs
wasm_casts_trapping.rs
wasm_exceptions.rs add codegen-test: wasm-exceptions 2023-07-01 20:24:15 +02:00
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