Do not reuse Patch struct for outputting assertions (#2184)

This commit is contained in:
Rangi authored and GitHub committed 2026-10-03 19:24:49 +02:00
1 parent 6c76606839
commit 9095c5b320
9 files changed
+427 -361

No files matched your search

+5 -3
View File
@@ -11,10 +11,12 @@
struct Symbol;
struct Assertion {
Patch patch; // Also used for its `.type`
Expression rpn;
uint32_t offset;
AssertionType type;
std::string message;
// This would be redundant with `patch.pcSection->fileSymbols`, but `section` is sometimes
// `nullptr`!
// This would be redundant with `rpn.pcSection->fileSymbols`,
// but `rpn.pcSection` is sometimes `nullptr`!
std::vector<Symbol> *fileSymbols;
};
+7 -3
View File
@@ -15,15 +15,19 @@ struct FileStackNode;
struct Section;
struct Symbol;
struct Patch {
struct Expression {
FileStackNode const *src;
uint32_t lineNo;
uint32_t offset;
Section const *pcSection;
uint32_t pcSectionID;
uint32_t pcOffset;
std::vector<uint8_t> rpn;
};
struct Patch {
Expression rpn;
uint32_t offset;
PatchType type;
std::vector<uint8_t> rpnExpression;
};
struct Section {