Skip to content

feat: Support bitwise, logical, and unary operators in linker script expressions#1768

Merged
davidlattimore merged 7 commits into
wild-linker:mainfrom
plasmaDestroyer:add-bitwise-logical-operators
Mar 26, 2026
Merged

feat: Support bitwise, logical, and unary operators in linker script expressions#1768
davidlattimore merged 7 commits into
wild-linker:mainfrom
plasmaDestroyer:add-bitwise-logical-operators

Conversation

@plasmaDestroyer

Copy link
Copy Markdown
Contributor

New operators: &, |, ^, <<, >>, &&, ||, !, ~, -(unary).

I followed C operator precedence for parsing of these in linker_script.rs and evaluation logic in expression_eval.rs. Logical operators return 0 or 1. Handled ambiguous tokens (& vs &&, | vs ||, ! vs !=) using winnow::combinator::not.

Also added 4 unit tests.

@davidlattimore davidlattimore merged commit c66881f into wild-linker:main Mar 26, 2026
24 checks passed
@plasmaDestroyer plasmaDestroyer deleted the add-bitwise-logical-operators branch March 26, 2026 23:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants