Skip to content

Commit

Permalink
Auto merge of #34816 - jseyfried:fix_include_path, r=nrc
Browse files Browse the repository at this point in the history
Fix `include!()`s inside `asm!()` invocations

Fixes #34812, a regression caused by #33749 that was not fixed in #34450.
r? @nrc
  • Loading branch information
bors committed Jul 16, 2016
2 parents dc8212f + 11f24a9 commit eb196dc
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 1 deletion.
6 changes: 6 additions & 0 deletions src/libsyntax/ext/base.rs
Expand Up @@ -816,6 +816,12 @@ impl<'a> ExtCtxt<'a> {
/// compilation on error, merely emits a non-fatal error and returns None.
pub fn expr_to_string(cx: &mut ExtCtxt, expr: P<ast::Expr>, err_msg: &str)
-> Option<(InternedString, ast::StrStyle)> {
// Update `expr.span`'s expn_id now in case expr is an `include!` macro invocation.
let expr = expr.map(|mut expr| {
expr.span.expn_id = cx.backtrace;
expr
});

// we want to be able to handle e.g. concat("foo", "bar")
let expr = cx.expander().fold_expr(expr);
match expr.node {
Expand Down
4 changes: 4 additions & 0 deletions src/test/compile-fail/macro-expanded-include/foo/mod.rs
Expand Up @@ -13,3 +13,7 @@
macro_rules! m {
() => { include!("file.txt"); }
}

macro_rules! n {
() => { unsafe { asm!(include_str!("file.txt")); } }
}
4 changes: 3 additions & 1 deletion src/test/compile-fail/macro-expanded-include/test.rs
Expand Up @@ -8,12 +8,14 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.

#![feature(rustc_attrs)]
#![feature(asm, rustc_attrs)]
#![allow(unused)]

#[macro_use]
mod foo;

m!();
fn f() { n!(); }

#[rustc_error]
fn main() {} //~ ERROR compilation successful

0 comments on commit eb196dc

Please sign in to comment.