mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-04 18:29:37 +02:00
GP-4133 Adjustment for forced indirect return
This commit is contained in:
parent
2259379a67
commit
99d8762b9c
2 changed files with 3 additions and 7 deletions
|
@ -1512,13 +1512,12 @@ void ParamListStandardOut::assignMap(const PrototypePieces &proto,TypeFactory &t
|
|||
Datatype *pointertp = typefactory.getTypePointer(pointersize, proto.outtype, wordsize);
|
||||
if (responseCode == AssignAction::hiddenret_specialreg_void) {
|
||||
res.back().type = typefactory.getTypeVoid();
|
||||
res.back().flags = 0;
|
||||
}
|
||||
else {
|
||||
if (assignAddressFallback(TYPECLASS_PTR,pointertp,false,status,res.back()) == AssignAction::fail)
|
||||
throw ParamUnassignedError("Cannot assign return value as a pointer");
|
||||
res.back().flags = ParameterPieces::indirectstorage;
|
||||
}
|
||||
res.back().flags = ParameterPieces::indirectstorage;
|
||||
|
||||
res.emplace_back(); // Add extra storage location in the input params
|
||||
res.back().type = pointertp; // that holds a pointer to where the return value should be stored
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue