Skip to content

Modern LLVM IR support and robustness fixes#114

Open
tkaitchuck wants to merge 1 commit into
japaric:mainfrom
tkaitchuck:main
Open

Modern LLVM IR support and robustness fixes#114
tkaitchuck wants to merge 1 commit into
japaric:mainfrom
tkaitchuck:main

Conversation

@tkaitchuck

Copy link
Copy Markdown

This commit improves compatibility with modern Rust toolchains and adds safety checks for embedded projects with non-standard memory layouts (like XIP from Flash).

  1. Fault-Tolerant IR Parsing: The parser now skips unrecognized lines instead of failing the entire analysis.
  2. Robust Attribute Parsing: Updated the attribute parser to handle balanced parentheses (e.g., initializes((0, 8))).
  3. Support for Metadata Lines: Added logic to skip lines starting with # (like #dbg_value) inside functions.
  4. Safe Memory Range Indexing: Added range validation to prevent panics when symbols reside in Flash (XIP).
  5. Soft Assertions: Downgraded stack size mismatches between LLVM and manual analysis to warnings.
  6. Improved Wrapper Parsing: Made crate_name optional and handle Cargo-injected prefixes like noprelude:.

This commit improves compatibility with modern Rust toolchains and adds safety checks for embedded projects with non-standard memory layouts (like XIP from Flash).

1. Fault-Tolerant IR Parsing: The parser now skips unrecognized lines instead of failing the entire analysis.
2. Robust Attribute Parsing: Updated the attribute parser to handle balanced parentheses (e.g., initializes((0, 8))).
3. Support for Metadata Lines: Added logic to skip lines starting with # (like #dbg_value) inside functions.
4. Safe Memory Range Indexing: Added range validation to prevent panics when symbols reside in Flash (XIP).
5. Soft Assertions: Downgraded stack size mismatches between LLVM and manual analysis to warnings.
6. Improved Wrapper Parsing: Made crate_name optional and handle Cargo-injected prefixes like noprelude:.
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.

1 participant