diff options
| author | Alex Crichton <alex@alexcrichton.com> | 2021-11-10 10:55:30 -0800 |
|---|---|---|
| committer | Alex Crichton <alex@alexcrichton.com> | 2021-11-10 11:07:43 -0800 |
| commit | 1ac5d7dcde57c3f4baa975d79dbdb57dfdb2489c (patch) | |
| tree | eae37e304a8d3f072dd69823d59c2601447e858c /compiler/rustc_codegen_llvm/src | |
| parent | 68ca579406f2fa9ec62710e4a4d5d3e07a168d3c (diff) | |
| download | rust-1ac5d7dcde57c3f4baa975d79dbdb57dfdb2489c.tar.gz rust-1ac5d7dcde57c3f4baa975d79dbdb57dfdb2489c.zip | |
std: Tweak expansion of thread-local const
This commit tweaks the expansion of `thread_local!` when combined with a
`const { ... }` value to help ensure that the rules which apply to
`const { ... }` blocks will be the same as when they're stabilized.
Previously with this invocation:
thread_local!(static NAME: Type = const { init_expr });
this would generate (on supporting platforms):
#[thread_local]
static NAME: Type = init_expr;
instead the macro now expands to:
const INIT_EXPR: Type = init_expr;
#[thread_local]
static NAME: Type = INIT_EXPR;
with the hope that because `init_expr` is defined as a `const` item then
it's not accidentally allowing more behavior than if it were put into a
`static`. For example on the stabilization issue [this example][ex] now
gives the same error both ways.
[ex]: https://github.com/rust-lang/rust/issues/84223#issuecomment-953384298
Diffstat (limited to 'compiler/rustc_codegen_llvm/src')
0 files changed, 0 insertions, 0 deletions
