rust/tests/ui/asm
Matthias Krüger a13f40dae6
Rollup merge of #127853 - folkertdev:naked-function-error-messages, r=bjorn3
`#[naked]`: report incompatible attributes

tracking issue: https://github.com/rust-lang/rust/issues/90957

this is a re-implementation of https://github.com/rust-lang/rust/pull/93809 by ``@bstrie`` which was closed 2 years ago due to inactivity.

This PR takes some of the final comments into account, specifically providing a little more context in error messages, and using an allow list to determine which attributes are compatible with `#[naked]`.

Notable attributes that are incompatible with `#[naked]` are:

  * `#[inline]`
  * `#[track_caller]`
  * ~~`#[target_feature]`~~ (this is now allowed, see PR discussion)
  * `#[test]`, `#[ignore]`, `#[should_panic]`

These attributes just directly conflict with what `#[naked]` should do.

Naked functions are still important for systems programming, embedded, and operating systems, so I'd like to move them forward.
2024-07-28 08:57:16 +02:00
..
aarch64 update aarch64 asm tests 2024-07-27 19:08:59 +02:00
x86_64 improve error message when global_asm! uses asm! options 2024-07-25 22:33:52 +02:00
arm-low-dreg.rs compiler: Fix arm32 asm issues by hierarchically sorting reg classes 2024-06-22 21:39:58 -07:00
bad-arch.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
bad-arch.stderr trigger unsafe_code on global_asm! invocations 2024-02-20 00:14:53 +01:00
bad-template.aarch64.stderr Update tests 2024-03-03 09:24:38 -05:00
bad-template.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
bad-template.x86_64.stderr Update tests 2024-03-03 09:24:38 -05:00
binary_asm_labels_allowed.rs Change binary_asm_labels to only fire on x86 and x86_64 2024-07-18 15:00:56 -05:00
binary_asm_labels.rs add lint for inline asm labels that look like binary 2024-07-09 01:23:49 +00:00
binary_asm_labels.stderr Update the binary_asm_label message 2024-07-18 17:00:43 -04:00
const-error.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
const-error.stderr make sure we still eagerly emit errors 2023-11-25 18:00:35 +00:00
empty_global_asm.rs Move 100 entries from tests/ui into subdirs 2024-05-20 19:55:59 -07:00
fail-const-eval-issue-121099.rs Update test with //@ needs-asm-support 2024-03-18 22:33:04 -04:00
fail-const-eval-issue-121099.stderr Update test with //@ needs-asm-support 2024-03-18 22:33:04 -04:00
generic-const.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
inline-syntax.arm_llvm_18.stderr Fix two UI tests with incorrect directive / invalid revision 2024-02-14 09:13:53 +00:00
inline-syntax.arm.stderr Fix two UI tests with incorrect directive / invalid revision 2024-02-14 09:13:53 +00:00
inline-syntax.rs Remove useless configs in tests 2024-04-07 01:16:45 +02:00
inline-syntax.x86_64.stderr Fix two UI tests with incorrect directive / invalid revision 2024-02-14 09:13:53 +00:00
issue-72570.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-72570.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
issue-85247.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-85247.rwpi.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
issue-87802.rs Update test directives for wasm32-wasip1 2024-03-11 09:36:35 -07:00
issue-87802.stderr Update test directives for wasm32-wasip1 2024-03-11 09:36:35 -07:00
issue-89305.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-89305.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
issue-92378.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-97490.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-99071.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-99071.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
issue-99122-2.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-99122.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-99122.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
issue-113788.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
issue-113788.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
may_unwind.rs Add needs-unwind annotations to a couple of tests 2024-03-25 14:19:07 +00:00
naked-functions-ffi.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
naked-functions-ffi.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
naked-functions-inline.rs switch to an allowlist approach 2024-07-27 12:55:39 +02:00
naked-functions-inline.stderr switch to an allowlist approach 2024-07-27 12:55:39 +02:00
naked-functions-instruction-set.rs switch to an allowlist approach 2024-07-27 12:55:39 +02:00
naked-functions-testattrs.rs switch to an allowlist approach 2024-07-27 12:55:39 +02:00
naked-functions-testattrs.stderr switch to an allowlist approach 2024-07-27 12:55:39 +02:00
naked-functions-unused.aarch64.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
naked-functions-unused.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
naked-functions-unused.x86_64.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
naked-functions.rs Rollup merge of #127853 - folkertdev:naked-function-error-messages, r=bjorn3 2024-07-28 08:57:16 +02:00
naked-functions.stderr Rollup merge of #127853 - folkertdev:naked-function-error-messages, r=bjorn3 2024-07-28 08:57:16 +02:00
naked-invalid-attr.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
naked-invalid-attr.stderr Move /src/test to /tests 2023-01-11 09:32:08 +00:00
named-asm-labels.rs add lint for inline asm labels that look like binary 2024-07-09 01:23:49 +00:00
named-asm-labels.s Move /src/test to /tests 2023-01-11 09:32:08 +00:00
named-asm-labels.stderr add lint for inline asm labels that look like binary 2024-07-09 01:23:49 +00:00
noreturn.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
parse-error.rs improve error message when global_asm! uses asm! options 2024-07-25 22:33:52 +02:00
parse-error.stderr improve error message when global_asm! uses asm! options 2024-07-25 22:33:52 +02:00
reg-conflict.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
reg-conflict.stderr Show number in error message even for one error 2023-11-24 19:15:52 +01:00
simple_global_asm.rs Move 100 entries from tests/ui into subdirs 2024-05-20 19:55:59 -07:00
type-check-1.rs Update test directives for wasm32-wasip1 2024-03-11 09:36:35 -07:00
type-check-1.stderr Account for let foo = expr; to suggest const foo: Ty = expr; 2024-07-11 20:39:24 +00:00
type-check-4.rs Update test directives for wasm32-wasip1 2024-03-11 09:36:35 -07:00
type-check-4.stderr Update test directives for wasm32-wasip1 2024-03-11 09:36:35 -07:00
unpretty-expanded.rs [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
unpretty-expanded.stdout [AUTO-GENERATED] Migrate ui tests from // to //@ directives 2024-02-16 20:02:50 +00:00
unsupported-option.fixed add needs-asm-support to tests/ui/asm/unsupported-option.rs 2024-07-27 19:27:20 +02:00
unsupported-option.rs add needs-asm-support to tests/ui/asm/unsupported-option.rs 2024-07-27 19:27:20 +02:00
unsupported-option.stderr add needs-asm-support to tests/ui/asm/unsupported-option.rs 2024-07-27 19:27:20 +02:00