Skip to content

Commit 6e8e26f

Browse files
committed
fix(portkit): don't mention a reference type in inline assembly operands
Work-around for [rust-lang/rust#96304][1]. Fixes ICE in tests. [1]: rust-lang/rust#96304
1 parent ab4ee70 commit 6e8e26f

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

src/r3_portkit/src/sym.rs

+7-7
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ pub macro sym_static {
147147
.dc.a {2}
148148
",
149149
sym Self::$sym_name,
150-
const $crate::sym::mem::align_of::<&'static $ty>().trailing_zeros(),
150+
const $crate::sym::mem::align_of::<*const $ty>().trailing_zeros(),
151151
sym $static,
152152
options(noreturn),
153153
);
@@ -170,23 +170,23 @@ mod tests {
170170
static S1: u32 = 1;
171171
static S2: u32 = 2;
172172

173-
impl Tr for &'static u8 {
173+
impl Tr for u8 {
174174
sym_static!(
175175
#[sym(p_var)]
176176
fn var() -> &u32 {
177177
&S0
178178
}
179179
);
180180
}
181-
impl Tr for &'static u16 {
181+
impl Tr for u16 {
182182
sym_static!(
183183
#[sym(p_var)]
184184
fn var() -> &u32 {
185185
&S1
186186
}
187187
);
188188
}
189-
impl Tr for &'static u32 {
189+
impl Tr for u32 {
190190
sym_static!(
191191
#[sym(p_var)]
192192
fn var() -> &u32 {
@@ -197,9 +197,9 @@ mod tests {
197197

198198
#[test]
199199
fn uniqueness() {
200-
let var1 = dbg!(<&'static u8>::var() as *const u32);
201-
let var2 = dbg!(<&'static u16>::var() as *const u32);
202-
let var3 = dbg!(<&'static u32>::var() as *const u32);
200+
let var1 = dbg!(<u8>::var() as *const u32);
201+
let var2 = dbg!(<u16>::var() as *const u32);
202+
let var3 = dbg!(<u32>::var() as *const u32);
203203
assert_ne!(var1, var2);
204204
assert_ne!(var2, var3);
205205
assert_ne!(var1, var3);

0 commit comments

Comments
 (0)