error: requires at least a template string argument
  --> $DIR/parse-error.rs:9:9
   |
LL |         asm!();
   |         ^^^^^^

error: asm template must be a string literal
  --> $DIR/parse-error.rs:11:14
   |
LL |         asm!(foo);
   |              ^^^

error: expected token: `,`
  --> $DIR/parse-error.rs:13:19
   |
LL |         asm!("{}" foo);
   |                   ^^^ expected `,`

error: expected operand, clobber_abi, options, or additional template string
  --> $DIR/parse-error.rs:15:20
   |
LL |         asm!("{}", foo);
   |                    ^^^ expected operand, clobber_abi, options, or additional template string

error: expected `(`, found `foo`
  --> $DIR/parse-error.rs:17:23
   |
LL |         asm!("{}", in foo);
   |                       ^^^ expected `(`

error: expected `)`, found `foo`
  --> $DIR/parse-error.rs:19:27
   |
LL |         asm!("{}", in(reg foo));
   |                           ^^^ expected `)`

error: expected expression, found end of macro arguments
  --> $DIR/parse-error.rs:21:27
   |
LL |         asm!("{}", in(reg));
   |                           ^ expected expression

error: expected register class or explicit register
  --> $DIR/parse-error.rs:23:26
   |
LL |         asm!("{}", inout(=) foo => bar);
   |                          ^

error: expected expression, found end of macro arguments
  --> $DIR/parse-error.rs:25:37
   |
LL |         asm!("{}", inout(reg) foo =>);
   |                                     ^ expected expression

error: expected one of `!`, `,`, `.`, `::`, `?`, `{`, or an operator, found `=>`
  --> $DIR/parse-error.rs:27:32
   |
LL |         asm!("{}", in(reg) foo => bar);
   |                                ^^ expected one of 7 possible tokens

error: argument to `sym` must be a path expression
  --> $DIR/parse-error.rs:29:24
   |
LL |         asm!("{}", sym foo + bar);
   |                        ^^^^^^^^^

error: expected one of `)`, `att_syntax`, `nomem`, `noreturn`, `nostack`, `preserves_flags`, `pure`, `raw`, or `readonly`, found `foo`
  --> $DIR/parse-error.rs:31:26
   |
LL |         asm!("", options(foo));
   |                          ^^^ expected one of 9 possible tokens

error: expected one of `)` or `,`, found `foo`
  --> $DIR/parse-error.rs:33:32
   |
LL |         asm!("", options(nomem foo));
   |                                ^^^ expected one of `)` or `,`

error: expected one of `)`, `att_syntax`, `nomem`, `noreturn`, `nostack`, `preserves_flags`, `pure`, `raw`, or `readonly`, found `foo`
  --> $DIR/parse-error.rs:35:33
   |
LL |         asm!("", options(nomem, foo));
   |                                 ^^^ expected one of 9 possible tokens

error: arguments are not allowed after options
  --> $DIR/parse-error.rs:37:31
   |
LL |         asm!("{}", options(), const foo);
   |                    ---------  ^^^^^^^^^ argument
   |                    |
   |                    previous options

error: expected string literal
  --> $DIR/parse-error.rs:40:30
   |
LL |         asm!("", clobber_abi(foo));
   |                              ^^^ not a string literal

error: expected one of `)` or `,`, found `foo`
  --> $DIR/parse-error.rs:42:34
   |
LL |         asm!("", clobber_abi("C" foo));
   |                                  ^^^ expected one of `)` or `,`

error: expected string literal
  --> $DIR/parse-error.rs:44:35
   |
LL |         asm!("", clobber_abi("C", foo));
   |                                   ^^^ not a string literal

error: arguments are not allowed after clobber_abi
  --> $DIR/parse-error.rs:46:38
   |
LL |         asm!("{}", clobber_abi("C"), const foo);
   |                    ----------------  ^^^^^^^^^ argument
   |                    |
   |                    clobber_abi

error: clobber_abi is not allowed after options
  --> $DIR/parse-error.rs:49:29
   |
LL |         asm!("", options(), clobber_abi("C"));
   |                  ---------  ^^^^^^^^^^^^^^^^
   |                  |
   |                  options

error: clobber_abi is not allowed after options
  --> $DIR/parse-error.rs:51:31
   |
LL |         asm!("{}", options(), clobber_abi("C"), const foo);
   |                    ---------  ^^^^^^^^^^^^^^^^
   |                    |
   |                    options

error: duplicate argument named `a`
  --> $DIR/parse-error.rs:53:36
   |
LL |         asm!("{a}", a = const foo, a = const bar);
   |                     -------------  ^^^^^^^^^^^^^ duplicate argument
   |                     |
   |                     previously here

error: argument never used
  --> $DIR/parse-error.rs:53:36
   |
LL |         asm!("{a}", a = const foo, a = const bar);
   |                                    ^^^^^^^^^^^^^ argument never used
   |
   = help: if this argument is intentionally unused, consider using it in an asm comment: `"/* {1} */"`

error: explicit register arguments cannot have names
  --> $DIR/parse-error.rs:58:18
   |
LL |         asm!("", a = in("x0") foo);
   |                  ^^^^^^^^^^^^^^^^

error: named arguments cannot follow explicit register arguments
  --> $DIR/parse-error.rs:60:35
   |
LL |         asm!("{a}", in("x0") foo, a = const bar);
   |                     ------------  ^^^^^^^^^^^^^ named argument
   |                     |
   |                     explicit register argument

error: named arguments cannot follow explicit register arguments
  --> $DIR/parse-error.rs:63:35
   |
LL |         asm!("{a}", in("x0") foo, a = const bar);
   |                     ------------  ^^^^^^^^^^^^^ named argument
   |                     |
   |                     explicit register argument

error: positional arguments cannot follow named arguments or explicit register arguments
  --> $DIR/parse-error.rs:66:35
   |
LL |         asm!("{1}", in("x0") foo, const bar);
   |                     ------------  ^^^^^^^^^ positional argument
   |                     |
   |                     explicit register argument

error: expected one of `clobber_abi`, `const`, `in`, `inlateout`, `inout`, `lateout`, `options`, `out`, or `sym`, found `""`
  --> $DIR/parse-error.rs:69:29
   |
LL |         asm!("", options(), "");
   |                             ^^ expected one of 9 possible tokens

error: expected one of `clobber_abi`, `const`, `in`, `inlateout`, `inout`, `lateout`, `options`, `out`, or `sym`, found `"{}"`
  --> $DIR/parse-error.rs:71:33
   |
LL |         asm!("{}", in(reg) foo, "{}", out(reg) foo);
   |                                 ^^^^ expected one of 9 possible tokens

error: asm template must be a string literal
  --> $DIR/parse-error.rs:73:14
   |
LL |         asm!(format!("{{{}}}", 0), in(reg) foo);
   |              ^^^^^^^^^^^^^^^^^^^^
   |
   = note: this error originates in the macro `format` (in Nightly builds, run with -Z macro-backtrace for more info)

error: asm template must be a string literal
  --> $DIR/parse-error.rs:75:21
   |
LL |         asm!("{1}", format!("{{{}}}", 0), in(reg) foo, out(reg) bar);
   |                     ^^^^^^^^^^^^^^^^^^^^
   |
   = note: this error originates in the macro `format` (in Nightly builds, run with -Z macro-backtrace for more info)

error: _ cannot be used for input operands
  --> $DIR/parse-error.rs:77:28
   |
LL |         asm!("{}", in(reg) _);
   |                            ^

error: _ cannot be used for input operands
  --> $DIR/parse-error.rs:79:31
   |
LL |         asm!("{}", inout(reg) _);
   |                               ^

error: _ cannot be used for input operands
  --> $DIR/parse-error.rs:81:35
   |
LL |         asm!("{}", inlateout(reg) _);
   |                                   ^

error: requires at least a template string argument
  --> $DIR/parse-error.rs:88:1
   |
LL | global_asm!();
   | ^^^^^^^^^^^^^

error: asm template must be a string literal
  --> $DIR/parse-error.rs:90:13
   |
LL | global_asm!(FOO);
   |             ^^^

error: expected token: `,`
  --> $DIR/parse-error.rs:92:18
   |
LL | global_asm!("{}" FOO);
   |                  ^^^ expected `,`

error: expected operand, options, or additional template string
  --> $DIR/parse-error.rs:94:19
   |
LL | global_asm!("{}", FOO);
   |                   ^^^ expected operand, options, or additional template string

error: expected expression, found end of macro arguments
  --> $DIR/parse-error.rs:96:24
   |
LL | global_asm!("{}", const);
   |                        ^ expected expression

error: expected one of `,`, `.`, `?`, or an operator, found `FOO`
  --> $DIR/parse-error.rs:98:30
   |
LL | global_asm!("{}", const(reg) FOO);
   |                              ^^^ expected one of `,`, `.`, `?`, or an operator

error: expected one of `)`, `att_syntax`, or `raw`, found `FOO`
  --> $DIR/parse-error.rs:100:25
   |
LL | global_asm!("", options(FOO));
   |                         ^^^ expected one of `)`, `att_syntax`, or `raw`

error: expected one of `)`, `att_syntax`, or `raw`, found `nomem`
  --> $DIR/parse-error.rs:102:25
   |
LL | global_asm!("", options(nomem FOO));
   |                         ^^^^^ expected one of `)`, `att_syntax`, or `raw`

error: expected one of `)`, `att_syntax`, or `raw`, found `nomem`
  --> $DIR/parse-error.rs:104:25
   |
LL | global_asm!("", options(nomem, FOO));
   |                         ^^^^^ expected one of `)`, `att_syntax`, or `raw`

error: arguments are not allowed after options
  --> $DIR/parse-error.rs:106:30
   |
LL | global_asm!("{}", options(), const FOO);
   |                   ---------  ^^^^^^^^^ argument
   |                   |
   |                   previous options

error: expected string literal
  --> $DIR/parse-error.rs:108:29
   |
LL | global_asm!("", clobber_abi(FOO));
   |                             ^^^ not a string literal

error: expected one of `)` or `,`, found `FOO`
  --> $DIR/parse-error.rs:110:33
   |
LL | global_asm!("", clobber_abi("C" FOO));
   |                                 ^^^ expected one of `)` or `,`

error: expected string literal
  --> $DIR/parse-error.rs:112:34
   |
LL | global_asm!("", clobber_abi("C", FOO));
   |                                  ^^^ not a string literal

error: arguments are not allowed after clobber_abi
  --> $DIR/parse-error.rs:114:37
   |
LL | global_asm!("{}", clobber_abi("C"), const FOO);
   |                   ----------------  ^^^^^^^^^ argument
   |                   |
   |                   clobber_abi

error: `clobber_abi` cannot be used with `global_asm!`
  --> $DIR/parse-error.rs:114:19
   |
LL | global_asm!("{}", clobber_abi("C"), const FOO);
   |                   ^^^^^^^^^^^^^^^^

error: clobber_abi is not allowed after options
  --> $DIR/parse-error.rs:117:28
   |
LL | global_asm!("", options(), clobber_abi("C"));
   |                 ---------  ^^^^^^^^^^^^^^^^
   |                 |
   |                 options

error: clobber_abi is not allowed after options
  --> $DIR/parse-error.rs:119:30
   |
LL | global_asm!("{}", options(), clobber_abi("C"), const FOO);
   |                   ---------  ^^^^^^^^^^^^^^^^
   |                   |
   |                   options

error: duplicate argument named `a`
  --> $DIR/parse-error.rs:121:35
   |
LL | global_asm!("{a}", a = const FOO, a = const BAR);
   |                    -------------  ^^^^^^^^^^^^^ duplicate argument
   |                    |
   |                    previously here

error: argument never used
  --> $DIR/parse-error.rs:121:35
   |
LL | global_asm!("{a}", a = const FOO, a = const BAR);
   |                                   ^^^^^^^^^^^^^ argument never used
   |
   = help: if this argument is intentionally unused, consider using it in an asm comment: `"/* {1} */"`

error: expected one of `clobber_abi`, `const`, or `options`, found `""`
  --> $DIR/parse-error.rs:124:28
   |
LL | global_asm!("", options(), "");
   |                            ^^ expected one of `clobber_abi`, `const`, or `options`

error: expected one of `clobber_abi`, `const`, or `options`, found `"{}"`
  --> $DIR/parse-error.rs:126:30
   |
LL | global_asm!("{}", const FOO, "{}", const FOO);
   |                              ^^^^ expected one of `clobber_abi`, `const`, or `options`

error: asm template must be a string literal
  --> $DIR/parse-error.rs:128:13
   |
LL | global_asm!(format!("{{{}}}", 0), const FOO);
   |             ^^^^^^^^^^^^^^^^^^^^
   |
   = note: this error originates in the macro `format` (in Nightly builds, run with -Z macro-backtrace for more info)

error: asm template must be a string literal
  --> $DIR/parse-error.rs:130:20
   |
LL | global_asm!("{1}", format!("{{{}}}", 0), const FOO, const BAR);
   |                    ^^^^^^^^^^^^^^^^^^^^
   |
   = note: this error originates in the macro `format` (in Nightly builds, run with -Z macro-backtrace for more info)

error[E0435]: attempt to use a non-constant value in a constant
  --> $DIR/parse-error.rs:37:37
   |
LL |     let mut foo = 0;
   |      ---------- help: consider using `const` instead of `let`: `const foo`
...
LL |         asm!("{}", options(), const foo);
   |                                     ^^^ non-constant value

error[E0435]: attempt to use a non-constant value in a constant
  --> $DIR/parse-error.rs:46:44
   |
LL |     let mut foo = 0;
   |      ---------- help: consider using `const` instead of `let`: `const foo`
...
LL |         asm!("{}", clobber_abi("C"), const foo);
   |                                            ^^^ non-constant value

error[E0435]: attempt to use a non-constant value in a constant
  --> $DIR/parse-error.rs:53:31
   |
LL |     let mut foo = 0;
   |      ---------- help: consider using `const` instead of `let`: `const foo`
...
LL |         asm!("{a}", a = const foo, a = const bar);
   |                               ^^^ non-constant value

error[E0435]: attempt to use a non-constant value in a constant
  --> $DIR/parse-error.rs:53:46
   |
LL |     let mut bar = 0;
   |      ---------- help: consider using `const` instead of `let`: `const bar`
...
LL |         asm!("{a}", a = const foo, a = const bar);
   |                                              ^^^ non-constant value

error[E0435]: attempt to use a non-constant value in a constant
  --> $DIR/parse-error.rs:60:45
   |
LL |     let mut bar = 0;
   |      ---------- help: consider using `const` instead of `let`: `const bar`
...
LL |         asm!("{a}", in("x0") foo, a = const bar);
   |                                             ^^^ non-constant value

error[E0435]: attempt to use a non-constant value in a constant
  --> $DIR/parse-error.rs:63:45
   |
LL |     let mut bar = 0;
   |      ---------- help: consider using `const` instead of `let`: `const bar`
...
LL |         asm!("{a}", in("x0") foo, a = const bar);
   |                                             ^^^ non-constant value

error[E0435]: attempt to use a non-constant value in a constant
  --> $DIR/parse-error.rs:66:41
   |
LL |     let mut bar = 0;
   |      ---------- help: consider using `const` instead of `let`: `const bar`
...
LL |         asm!("{1}", in("x0") foo, const bar);
   |                                         ^^^ non-constant value

error: aborting due to 64 previous errors

For more information about this error, try `rustc --explain E0435`.
