Skip to content

Macro ICE #68058

Closed
Closed
@olegnn

Description

@olegnn

This code

macro_rules! def_target {
    ($target: expr) => {
        #[target_feature(enable=$target)]
        unsafe fn f() {
            #[target_feature(enable=$target)]
            ()
        }
    };
}

def_target!("avx2");

fn main() {}

(Playground)

Produces ICE on any channel:

   Compiling playground v0.0.1 (/playground)
thread 'rustc' panicked at 'src/librustc/ich/impls_syntax.rs:326: interpolated tokens should not be present in the HIR', src/librustc/util/bug.rs:37:26
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.

error: internal compiler error: unexpected panic

note: the compiler unexpectedly panicked. this is a bug.

note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports

note: rustc 1.40.0 (73528e339 2019-12-16) running on x86_64-unknown-linux-gnu

note: compiler flags: -C codegen-units=1 -C debuginfo=2 --crate-type bin

note: some of the compiler flags provided by cargo are hidden

error: could not compile `playground`.

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-HIRArea: The high-level intermediate representation (HIR)A-macrosArea: All kinds of macros (custom derive, macro_rules!, proc macros, ..)C-bugCategory: This is a bug.I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions