Files
rust/tests/ui
bors 6faf0bd3e5 Auto merge of #127731 - veluca93:abi_checks, r=RalfJung
Emit future-incompatibility lint when calling/declaring functions with vectors that require missing target feature

On some architectures, vector types may have a different ABI depending on whether the relevant target features are enabled. (The ABI when the feature is disabled is often not specified, but LLVM implements some de-facto ABI.)

As discussed in https://github.com/rust-lang/lang-team/issues/235, this turns out to very easily lead to unsound code.

This commit makes it a post-monomorphization error to declare or call functions using those vector types in a context in which the corresponding target features are disabled, if using an ABI for which the difference is relevant. This ensures that these functions are always called with a consistent ABI.

See the [nomination comment](https://github.com/rust-lang/rust/pull/127731#issuecomment-2288558187) for more discussion.

r? RalfJung

Part of https://github.com/rust-lang/rust/issues/116558
2024-10-25 15:17:47 +00:00
..
2024-07-18 00:00:04 +00:00
2024-10-14 20:24:30 +02:00
2024-08-10 12:07:17 +02:00
2024-08-11 09:58:11 +01:00
2024-09-20 10:02:14 -07:00
2024-10-24 01:56:08 +08:00
2024-08-10 12:07:17 +02:00
2024-10-11 11:30:08 -04:00
2024-10-15 20:42:17 -04:00
2024-10-15 20:42:17 -04:00
2024-09-20 01:20:10 +03:00
2024-09-05 06:37:38 -04:00
2024-09-15 09:51:32 +02:00
2024-07-12 03:22:32 +00:00
2024-09-06 10:32:48 -04:00
2024-09-20 10:02:14 -07:00
2024-08-18 19:46:53 +02:00
2024-09-27 14:40:38 +01:00
2024-10-22 12:55:16 +00:00
2024-08-03 07:57:31 -04:00
2024-09-09 19:39:43 -07:00
2024-10-22 00:03:09 +00:00
2024-10-12 13:01:36 +02:00
2024-10-11 11:30:08 -04:00
2024-10-24 23:43:31 +00:00
2024-10-19 18:07:35 +00:00
2024-10-01 13:55:46 -04:00
2024-06-25 18:06:22 +02:00
2024-10-07 14:45:49 -07:00

UI Tests

This folder contains rustc's UI tests.

Test Directives (Headers)

Typically, a UI test will have some test directives / headers which are special comments that tell compiletest how to build and intepret a test.

As part of an on-going effort to rewrite compiletest (see https://github.com/rust-lang/compiler-team/issues/536), a major change proposal to change legacy compiletest-style headers // <directive> to ui_test-style headers //@ <directive> was accepted (see https://github.com/rust-lang/compiler-team/issues/512.

An example directive is ignore-test. In legacy compiletest style, the header would be written as

// ignore-test

but in ui_test style, the header would be written as

//@ ignore-test

compiletest is changed to accept only //@ directives for UI tests (currently), and will reject and report an error if it encounters any comments // <content> that may be parsed as an legacy compiletest-style test header. To fix this, you should migrate to the ui_test-style header //@ <content>.