Commit graph

38 commits

Author SHA1 Message Date
Matthias Krüger
254f61ae43 add test for #72960
Fixes #72960
2020-06-05 12:08:54 +02:00
Amanieu d'Antras
d49020573c Clarify errors and warnings about the transition to the new asm! 2020-05-31 18:25:05 +01:00
Ralf Jung
fadfcb644e
Rollup merge of #72625 - Amanieu:asm-srcloc, r=petrochenkov
Improve inline asm error diagnostics

Previously we were just using the raw LLVM error output (with line, caret, etc) as the diagnostic message, which ends up looking rather out of place with our existing diagnostics.

The new diagnostics properly format the diagnostics and also take advantage of LLVM's per-line `srcloc` attribute to map an error in inline assembly directly to the relevant line of source code.

Incidentally also fixes #71639 by disabling `srcloc` metadata during LTO builds since we don't know what crate it might have come from. We can only resolve `srcloc`s from the currently crate since it indexes into the source map for the current crate.

Fixes #72664
Fixes #71639

r? @petrochenkov

### Old style

```rust
#![feature(llvm_asm)]

fn main() {
    unsafe {
        let _x: i32;
        llvm_asm!(
            "mov $0, $1
             invalid_instruction $0, $1
             mov $0, $1"
             : "=&r" (_x)
             : "r" (0)
             :: "intel"
        );
    }
}
```

```
error: <inline asm>:3:14: error: invalid instruction mnemonic 'invalid_instruction'
             invalid_instruction ecx, eax
             ^~~~~~~~~~~~~~~~~~~

  --> src/main.rs:6:9
   |
6  | /         llvm_asm!(
7  | |             "mov $0, $1
8  | |              invalid_instruction $0, $1
9  | |              mov $0, $1"
...  |
12 | |              :: "intel"
13 | |         );
   | |__________^
```

### New style

```rust
#![feature(asm)]

fn main() {
    unsafe {
        asm!(
            "mov {0}, {1}
             invalid_instruction {0}, {1}
             mov {0}, {1}",
            out(reg) _,
            in(reg) 0i64,
        );
    }
}
```

```
error: invalid instruction mnemonic 'invalid_instruction'
 --> test.rs:7:14
  |
7 |              invalid_instruction {0}, {1}
  |              ^
  |
note: instantiated into assembly here
 --> <inline asm>:3:14
  |
3 |              invalid_instruction rax, rcx
  |              ^^^^^^^^^^^^^^^^^^^
```
2020-05-30 23:08:44 +02:00
Ralf Jung
69310dea89
Rollup merge of #72607 - Amanieu:fix-72570, r=oli-obk
Eagerly lower asm sub-expressions to HIR even if there is an error

Fixes #72570

r? @oli-obk
2020-05-30 13:45:15 +02:00
Amanieu d'Antras
b78b15665b Improve inline asm error diagnostics 2020-05-29 17:05:35 +01:00
Amanieu d'Antras
de53276aac Fix test 2020-05-26 11:27:27 +01:00
Amanieu d'Antras
6faa82be42 Eagerly lower asm sub-expressions to HIR even if there is an error
Fixes #72570
2020-05-26 11:06:25 +01:00
Amanieu d'Antras
3ed1e79cc4 Properly handle InlineAsmOperand::SymFn when collecting monomorphized items
Fixes #72484
2020-05-24 02:04:49 +01:00
Amanieu d'Antras
cecffdc1d7 Fix const handling and add tests for const operands 2020-05-18 14:41:35 +01:00
Amanieu d'Antras
2aa9aaada5 Add borrow-check test 2020-05-18 14:41:34 +01:00
Amanieu d'Antras
08822546a5 Implement att_syntax option 2020-05-18 14:41:33 +01:00
Amanieu d'Antras
7dfa486d4a Add support for high byte registers on x86 2020-05-18 14:41:32 +01:00
Amanieu d'Antras
ff97db1e54 Apply review feedback 2020-05-18 14:41:32 +01:00
Amanieu d'Antras
8ab0f2d3c5 Add tests for asm! 2020-05-18 14:41:32 +01:00
Yuki Okushi
af442d964d
Rename asm test directory in favor of llvm_asm 2020-04-17 18:36:16 +09:00
Yuki Okushi
119bbbe31a
Add test for issue-54067 2020-04-17 06:16:15 +09:00
RoccoDev
b85c64c3ea
rustc: Add a warning count upon completion 2020-04-11 16:15:24 +02:00
Amanieu d'Antras
1cc521ef9d Update tests to use llvm_asm! 2020-03-26 15:49:22 +00:00
Yuki Okushi
7c987eb020
Add test for issue-69092 2020-03-13 16:06:09 +09:00
Yuki Okushi
d32924f89d
Check if output is immediate value 2020-03-09 07:48:08 +09:00
Mazdak Farrokhzad
b4420c8f5c rework run-fail and support check,build-fail 2019-12-21 22:16:00 +01:00
Vadim Petrochenkov
28aec1beaa Add some more tests 2019-11-17 01:11:35 +03:00
Vadim Petrochenkov
11580ced40 Address review comments 2019-11-17 01:11:28 +03:00
Guillaume Gomez
cfd4e9722e Fix ui tests with better error code usage 2019-11-14 13:05:56 +01:00
Yuki Okushi
dd0f98bc3e Add test for issue-51431 2019-10-22 17:05:03 +09:00
Alexander Regueiro
022d9c8eb5 Fixed grammar/style in error messages and reblessed tests. 2019-09-06 03:46:08 +01:00
Vadim Petrochenkov
932ea64175 compiletest: Remove skip-codegen 2019-06-16 12:23:22 +03:00
Matthew Jasper
8eef102270 update tests for migrate mode by default 2019-04-22 08:40:08 +01:00
Andy Russell
b6f148c8bd
hide --explain hint if error has no extended info 2019-04-18 13:29:28 -04:00
Vadim Petrochenkov
fa72a81bea Update tests 2019-03-11 23:10:26 +03:00
Andy Russell
0a6fb84738
make panictry! private to libsyntax
This commit completely removes usage of the `panictry!` macro from
outside libsyntax. The macro causes parse errors to be fatal, so using
it in libsyntax_ext caused parse failures *within* a syntax extension to
be fatal, which is probably not intended.

Furthermore, this commit adds spans to diagnostics emitted by empty
extensions if they were missing, à la #56491.
2019-01-02 11:02:30 -05:00
Mark Rousskov
2a663555dd Remove licenses 2018-12-25 21:08:33 -07:00
Felix S. Klock II
a2e090624e Removed #[rustc_error] from tests that are all // compile-pass.
I also added `// skip-codegen` to each one, to address potential concerns
that this change would otherwise slow down our test suite spending time
generating code for files that are really just meant to be checks of
compiler diagnostics.

(However, I will say: My preference is to not use `// skip-codegen` if
one can avoid it. We can use all the testing of how we drive LLVM that
we can get...)

(Updated post rebase.)
2018-11-07 13:09:52 +01:00
Felix S. Klock II
bf544fa920 remove #[rustc_error] from ui/ tests that remain compile-fail tests. 2018-11-07 13:09:52 +01:00
Esteban Küber
57f10c7911 Point to variable in asm! macro when failing borrowck 2018-10-09 15:53:37 -07:00
Andy Russell
d871b8ad4a
use structured suggestion for "missing mut" label
Fixes #54133.
2018-09-12 17:16:18 -04:00
David Wood
67ec37b608
Moved problematic tests on armhf-gnu back to compile-fail. 2018-08-14 11:12:12 +02:00
David Wood
3fc7ab2373
Merged migrated compile-fail tests and ui tests. Fixes #46841. 2018-08-14 11:12:09 +02:00