| // Regression test for ICE #129503 |
| |
| |
| // Tests that we come up with decent error spans |
| // when the template fed to `asm!()` is itself a |
| // macro call like `concat!()` and should not ICE |
| |
| use std::arch::asm; |
| |
| fn main() { |
| // Should not ICE |
| asm!(concat!(r#"lJ�.�"#, "r} {}")); |
| //~^ ERROR invalid asm template string: unmatched `}` found |
| |
| |
| // Macro call template: should point to |
| // everything within `asm!()` as error span |
| asm!(concat!("abc", "r} {}")); |
| //~^ ERROR invalid asm template string: unmatched `}` found |
| |
| |
| // Literal template: should point precisely to |
| // just the `}` as error span |
| asm!("abc", "r} {}"); |
| //~^ ERROR invalid asm template string: unmatched `}` found |
| } |