summaryrefslogtreecommitdiff
path: root/lang/c/pseudoc.cpp
AgeCommit message (Collapse)Author
2025-07-02Add outlining support for wmemcpy.Brian Potchik
2025-06-28Fix psuedo-c semicolon highlighting in ternary operationsAlexander Khosrowshahi
2025-06-28Add support for ternary simplification in Psuedo C and disable in graph viewAlexander Khosrowshahi
2025-06-25Remove implicit conversions from Confidence to underlying type, these can ↵Rusty Wagner
cause bugs and also issues with C++20
2025-06-18[ObjC] Improve how [super ...] calls are displayedMark Rowe
1. Skip displaying the declaration and initialization of the objc_super struct since that's an artifact of how objc_msgSendSuper is called. 2. Display the message receiver as `super` rather than `&super`
2025-06-18Have PseudoCFunction use its language's type printerMark Rowe
It was previously explicitly using the default. Retreiving it from the language will make it possible for PseudoObjCFunction to provide its own type printer.
2025-05-29Light unused variable cleanup in Psuedo C/Obj-C Pluginkat
2025-05-29Implement a Pseudo Objective-C language representationMark Rowe
This is implemented in the Pseudo C plug-in as it shares 99% of the logic. The Objective-C support is implemented in a subclass of `PseudoCFunction`. The handling of instruction types that the Objective-C representation needs to customize is extracted into virtual functions that the Objective-C subclass overrides. This currently supports: * Rewriting `objc_msgSend` / `objc_msgSendSuper2` with constant selectors to `[receiver message]` notation. * Rewriting calls to `objc_alloc` / `objc_alloc_init` / `objc_new` to the equivalent message send notation. * Rewriting `objc_retain` / `objc_release` and friends to the equivalent message send notation. * Displaying Objective-C class references as their class names rather than `_OBJC_CLASS_$_` symbol names. * Displaying Objective-C string literals as `@"..."`. This works best when used in conjunction with https://github.com/bdash/bn-objc-extras as the reference counting runtime calls add so much clutter.
2025-05-21Fix HLIL_LABEL renderingGlenn Smith
2025-05-06Add cast to partial var accesses in pseudo C/RustBrandon Miller
Add casts to HLIL_STRUCT_FIELD expressions where the size of the source expression is greater than the size of access
2025-04-15Cast on indexed array assignments in pseudo C/RustBrandon Miller
2025-04-15Fix pseudo C/Rust absent lhs on comparisonBrandon Miller
This issue was caused because HLIL_SPLIT was not being handled on the left and right expressions of HLIL_IF instructions
2025-04-15Handle var assign with split src in pseudo C/RustBrandon Miller
Fixes issue with absent rhs when the instruction is HLIL_ASSIGN with a source expression of HLIL_SPLIT (var_60.q = r1:r0)
2025-04-11Fix pseudo C and rust type cast on HLIL_DEREFBrandon Miller
Should be using the instruction size of the HLIL_DEREF instruction, not the size of the HLIL_DEREF's source expression
2025-01-24Add line formatter API and a generic line formatter pluginRusty Wagner
2025-01-20Revert "Add line formatter API and a generic line formatter plugin"Rusty Wagner
This reverts commit 1699c71999d29d32aba5c9f8fea193a661a4b02b.
2025-01-17Add line formatter API and a generic line formatter pluginRusty Wagner
2024-12-27Make pseudo-c use the default type printerGlenn Smith
2024-12-27Clean up langreps' opcode print switchGlenn Smith
2024-10-28Eliminate AST parameter in high level rendering APIs, as it is already part ↵Rusty Wagner
of the HLIL instruction
2024-10-28hlr: expose ability to claim line addressesRyan Snyder
2024-10-24Fix alignment of top level braces in PseudoCPeter LaFosse
2024-10-23Linear view function regions collapsePeter LaFosse
Update collapse code to support PseudoC
2024-10-21Allow multiple high level representations for display, add Pseudo Rust and a ↵Rusty Wagner
Pseudo Python example plugin