about summary refs log tree commit diff
path: root/compiler/rustc_llvm/llvm-wrapper/PassWrapper.cpp
diff options
context:
space:
mode:
authorYuki Okushi <jtitor@2k36.org>2021-09-19 17:31:31 +0900
committerGitHub <noreply@github.com>2021-09-19 17:31:31 +0900
commit1c3fce01dfb63da3a88161d5744389f827ffe0d8 (patch)
treeaa909783cd7604e8b2addc6ea773a0679ef4805c /compiler/rustc_llvm/llvm-wrapper/PassWrapper.cpp
parentba1a90a417bf81b33c793552b4fd95e6df81a38a (diff)
parentbd4c9676c76a1df1ea14c04fa0150e4048d5ba77 (diff)
downloadrust-1c3fce01dfb63da3a88161d5744389f827ffe0d8.tar.gz
rust-1c3fce01dfb63da3a88161d5744389f827ffe0d8.zip
Rollup merge of #88996 - Aaron1011:trailing-macro-semi, r=petrochenkov
Fix linting when trailing macro expands to a trailing semi

When a macro is used in the trailing expression position of a block
(e.g. `fn foo() { my_macro!() }`), we currently parse it as an
expression, rather than a statement. As a result, we ended up
using the `NodeId` of the containing statement as our `lint_node_id`,
even though we don't normally do this for macro calls.

If such a macro expands to an expression with a `#[cfg]` attribute,
then the trailing statement can get removed entirely. This lead to
an ICE, since we were usng the `NodeId` of the expression to emit
a lint.

Ths commit makes us skip updating `lint_node_id` when handling
a macro in trailing expression position. This will cause us to
lint at the closest parent of the macro call.
Diffstat (limited to 'compiler/rustc_llvm/llvm-wrapper/PassWrapper.cpp')
0 files changed, 0 insertions, 0 deletions