bitrot: no trailing ';' in macros when eval'd in expr position

https://github.com/rust-lang/rust/issues/79813

At least some of these don't initially appear to be in expr position,
but the end of a block is always an expression, so these being wrapped
in `{}` don't actually help. Seems weird but whatever, easy enough to
fix!
This commit is contained in:
2021-10-27 17:36:30 -07:00
parent 054d40aa95
commit 212431a9f2

View File

@@ -50,7 +50,7 @@ macro_rules! step {
$cpu:expr, $bus:expr, $prefix:tt, $modrm:tt,
$(name=$name:ident$(<$($tyargs:tt),*>)?,)? $cycles:literal,
()) => {
$(ops::$name$(::<$($tyargs),*>)?)?($($done),*);
$(ops::$name$(::<$($tyargs),*>)?)?($($done),*)
};
// Inductive case: decode next arg to be placed in list
@@ -274,7 +274,7 @@ macro_rules! step {
(@prefix $cookie:tt, $cpu:expr, $bus:expr,
($segment:ident, $repeat:ident, $prefix_loop:lifetime),
$modrm:tt) => {
continue $prefix_loop;
continue $prefix_loop
};
(@r16 $cookie:tt, $cpu:expr, $bus:expr, $prefix:tt, ($modrm_val:ident, $($modrm_rest:tt),*)) => { {
@@ -310,19 +310,19 @@ macro_rules! step {
} };
(@reg=$reg:ident $cookie:tt, $cpu:expr, $bus:expr, $prefix:tt, $modrm:tt) => {
step!(@arg $cookie, Reg { reg: &$cpu.$reg });
step!(@arg $cookie, Reg { reg: &$cpu.$reg })
};
(@reghi=$reg:ident $cookie:tt, $cpu:expr, $bus:expr, $prefix:tt, $modrm:tt) => {
step!(@arg $cookie, RegHi { reg: &$cpu.$reg });
step!(@arg $cookie, RegHi { reg: &$cpu.$reg })
};
(@reglo=$reg:ident $cookie:tt, $cpu:expr, $bus:expr, $prefix:tt, $modrm:tt) => {
step!(@arg $cookie, RegLo { reg: &$cpu.$reg });
step!(@arg $cookie, RegLo { reg: &$cpu.$reg })
};
(@regval=$reg:ident $cookie:tt, $cpu:expr, $bus:expr, $prefix:tt, $modrm:tt) => {
step!(@arg $cookie, $cpu.$reg.get());
step!(@arg $cookie, $cpu.$reg.get())
};
(@rel8 $cookie:tt, $cpu:expr, $bus:expr, $prefix:tt, $modrm:tt) => { {
@@ -773,7 +773,7 @@ impl i8088 {
0xC5 => reghi=c, convert / R 0,
0xC6 => reghi=d, convert / R 0,
0xC7 => reghi=b, convert / R 0,
})
});
}
}