Skip to content

Commit

Permalink
Remove unused spans that started producing unused attribute warnings.
Browse files Browse the repository at this point in the history
  • Loading branch information
CensoredUsername committed Sep 27, 2024
1 parent 66462ca commit 18173fb
Show file tree
Hide file tree
Showing 6 changed files with 16 additions and 32 deletions.
12 changes: 2 additions & 10 deletions plugin/src/arch/aarch64/ast.rs
Original file line number Diff line number Diff line change
Expand Up @@ -281,14 +281,12 @@ impl ModifyExpr {
#[derive(Debug)]
pub enum RefItem {
Direct {
span: Span,
reg: Register
},
Immediate {
value: syn::Expr
},
Modifier {
span: Span,
modifier: ModifyExpr
}
}
Expand Down Expand Up @@ -341,9 +339,7 @@ pub enum RawArg {
modifier: ModifyExpr
},
// a dot
Dot {
span: Span
},
Dot {},
// an ident, not intended to be parsed as an expression
Lit {
ident: syn::Ident
Expand Down Expand Up @@ -391,12 +387,9 @@ pub enum CleanArg {
value: syn::Expr,
},
Modifier {
span: Span,
modifier: ModifyExpr
},
Dot {
span: Span
},
Dot {},
Lit {
ident: syn::Ident
}
Expand All @@ -413,7 +406,6 @@ pub enum FlatArg {
value: syn::Expr,
},
Modifier {
span: Span,
modifier: Modifier,
},
JumpTarget {
Expand Down
12 changes: 6 additions & 6 deletions plugin/src/arch/aarch64/matching.rs
Original file line number Diff line number Diff line change
Expand Up @@ -68,11 +68,11 @@ fn sanitize_args(args: Vec<RawArg>) -> Result<Vec<CleanArg>, Option<String>> {
return Err(None);
}

res.push(CleanArg::Modifier { span, modifier });
res.push(CleanArg::Modifier { modifier });
},
// dot: passthrough
RawArg::Dot { span } => {
res.push(CleanArg::Dot { span } );
RawArg::Dot {} => {
res.push(CleanArg::Dot {} );
},
// lit: passthrough
RawArg::Lit { ident } => {
Expand Down Expand Up @@ -592,7 +592,7 @@ fn flatten_args(args: Vec<CleanArg>, data: &Opdata, ctx: &mut MatchData) {
RefKind::Indexed(index, modifier) => {
new_args.push(FlatArg::Direct { span, reg: index.kind_owned() } );
if let Some(modifier) = modifier {
new_args.push(FlatArg::Modifier { span, modifier: modifier.op } );
new_args.push(FlatArg::Modifier { modifier: modifier.op } );
if let Some(expr) = modifier.expr {
new_args.push(FlatArg::Immediate { value: expr } );
}
Expand Down Expand Up @@ -625,9 +625,9 @@ fn flatten_args(args: Vec<CleanArg>, data: &Opdata, ctx: &mut MatchData) {
CleanArg::Immediate { value, .. } => {
new_args.push(FlatArg::Immediate { value } );
},
CleanArg::Modifier { span, modifier } => {
CleanArg::Modifier { modifier } => {
if arg_count >= 2 {
new_args.push(FlatArg::Modifier { span, modifier: modifier.op } );
new_args.push(FlatArg::Modifier { modifier: modifier.op } );
}
if let Some(expr) = modifier.expr {
new_args.push(FlatArg::Immediate { value: expr });
Expand Down
7 changes: 2 additions & 5 deletions plugin/src/arch/aarch64/parser.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,10 @@ pub(super) fn parse_instruction(ctx: &mut Context, input: parse::ParseStream) ->

// parse any dot args
while input.peek(Token![.]) {
let span = input.cursor().span();
let _: Token![.] = input.parse()?;
let arg: syn::Ident = input.parse()?;

args.push(RawArg::Dot { span } );
args.push(RawArg::Dot {} );
args.push(RawArg::Lit { ident: arg });
}

Expand Down Expand Up @@ -206,7 +205,6 @@ fn parse_refitem(ctx: &mut Context, input: parse::ParseStream) -> parse::Result<
// modifier
if let Some(modifier) = input.parse_opt()? {
return Ok(RefItem::Modifier {
span: _start,
modifier
});
}
Expand All @@ -223,8 +221,7 @@ fn parse_refitem(ctx: &mut Context, input: parse::ParseStream) -> parse::Result<
// register
if let Some(reg) = parse_reg(ctx, input)? {
return Ok(RefItem::Direct {
reg,
span: _start
reg
})
}

Expand Down
4 changes: 0 additions & 4 deletions plugin/src/arch/x64/ast.rs
Original file line number Diff line number Diff line change
Expand Up @@ -273,7 +273,6 @@ pub enum RawArg {
},
// direct register reference,
Direct {
span: Span,
reg: Register
},
// a jump offset, i.e. ->foo
Expand Down Expand Up @@ -309,7 +308,6 @@ pub enum CleanArg {
},
// direct register reference,
Direct {
span: Span,
reg: Register
},
// a jump offset, i.e. ->foo
Expand All @@ -334,15 +332,13 @@ pub enum SizedArg {
// memory reference. size info is lost here as
// it is never actually encoded
Indirect {
span: Span,
disp_size: Option<Size>,
base: Option<Register>,
index: Option<(Register, isize, Option<syn::Expr>)>,
disp: Option<syn::Expr>
},
// direct register reference,
Direct {
span: Span,
reg: Register
},
// a jump offset, i.e. ->foo
Expand Down
10 changes: 5 additions & 5 deletions plugin/src/arch/x64/compiler.rs
Original file line number Diff line number Diff line change
Expand Up @@ -522,7 +522,7 @@ pub(super) fn compile_instruction(ctx: &mut Context, instruction: Instruction, a
// Folds RawArgs into CleanArgs by analyzing the different raw memoryref variants
fn clean_memoryref(arg: RawArg) -> Result<CleanArg, Option<String>> {
Ok(match arg {
RawArg::Direct {span, reg} => CleanArg::Direct {span, reg},
RawArg::Direct {reg} => CleanArg::Direct {reg},
RawArg::JumpTarget {jump, size} => CleanArg::JumpTarget {jump, size},
RawArg::IndirectJumpTarget {jump, size} => {
if let JumpKind::Bare(_) = jump.kind {
Expand Down Expand Up @@ -1257,16 +1257,16 @@ fn size_operands(fmt: &Opdata, args: Vec<CleanArg>) -> Result<(Option<Size>, Vec
};

new_args.push(match arg {
CleanArg::Direct {span, reg} =>
SizedArg::Direct {span, reg},
CleanArg::Direct {reg} =>
SizedArg::Direct {reg},
CleanArg::JumpTarget {jump, ..} =>
SizedArg::JumpTarget {jump, size},
CleanArg::IndirectJumpTarget {jump, ..} =>
SizedArg::IndirectJumpTarget {jump},
CleanArg::Immediate {value, ..} =>
SizedArg::Immediate {value, size},
CleanArg::Indirect {span, disp_size, base, index, disp, ..} =>
SizedArg::Indirect {span, disp_size, base, index, disp},
CleanArg::Indirect {disp_size, base, index, disp, ..} =>
SizedArg::Indirect {disp_size, base, index, disp},
});
}

Expand Down
3 changes: 1 addition & 2 deletions plugin/src/arch/x64/parser.rs
Original file line number Diff line number Diff line change
Expand Up @@ -214,8 +214,7 @@ fn parse_arg(ctx: &mut Context, input: parse::ParseStream) -> parse::Result<RawA
emit_error!(span, "size hint with direct register");
}
return Ok(RawArg::Direct {
reg,
span
reg
})
}

Expand Down

0 comments on commit 18173fb

Please sign in to comment.