diff options
author | 2018-12-15 16:14:06 +0000 | |
---|---|---|
committer | 2018-12-15 16:14:06 +0000 | |
commit | 0cabf09a7ac11962b57a75e52a6cc0c5aa2709a8 (patch) | |
tree | 8565f0edc28016ea1acc1f14dd63591d21c3fe32 /cortex-m-rt/tests | |
parent | c7e6e5f78203b55b0094bd26d78e17c9c9d155a2 (diff) | |
parent | c69ff66f4c1d353be5d683ca8c131a04e997e4ed (diff) | |
download | cortex-m-0cabf09a7ac11962b57a75e52a6cc0c5aa2709a8.tar.gz cortex-m-0cabf09a7ac11962b57a75e52a6cc0c5aa2709a8.tar.zst cortex-m-0cabf09a7ac11962b57a75e52a6cc0c5aa2709a8.zip |
Merge #159
159: static mut transform: forward `#[cfg]` r=therealprof a=japaric
as reported in japaric/cortex-m-rtfm#110 the following code fails to compile
``` rust
#[entry]
fn main() -> ! {
#[cfg(something)]
static mut FOO: u32 = 0; //~ ERROR cannot find value `FOO` in this scope
}
```
the issue is that the expansion of the static looks like this:
``` rust
let FOO = unsafe {
#[cfg(never)]
static mut FOO: u32 = 0;
&mut FOO
};
```
so when the `#[cfg]` evals to false the static is gone but the `let FOO` is not
removed.
this PR forwards `#[cfg]` attributes to the `let` expression and fixes the error
``` rust
#[cfg(never)] // <- added
let FOO = unsafe {
#[cfg(never)]
static mut FOO: u32 = 0;
&mut FOO
};
```
Co-authored-by: Jorge Aparicio <jorge@japaric.io>
Diffstat (limited to 'cortex-m-rt/tests')
0 files changed, 0 insertions, 0 deletions