mirror of
https://github.com/bminor/binutils-gdb.git
synced 2025-11-16 12:34:43 +00:00
libsframe: s390: No further decode if sframe_get_fre_offset returns err
SFrame FREs without any offsets will later be used to represent .cfi_undefined RA in SFrame. As a result the API to get the CFA offset can return an error value, if there are no offsets. Do not apply the s390x-specific decoding of CFA offset on the error return value. libsframe/ * sframe.c (sframe_fre_get_cfa_offset): Do not apply s390x- specific decoding to error return value. Signed-off-by: Jens Remus <jremus@linux.ibm.com>
This commit is contained in:
@@ -698,12 +698,15 @@ int32_t
|
|||||||
sframe_fre_get_cfa_offset (sframe_decoder_ctx *dctx,
|
sframe_fre_get_cfa_offset (sframe_decoder_ctx *dctx,
|
||||||
sframe_frame_row_entry *fre, int *errp)
|
sframe_frame_row_entry *fre, int *errp)
|
||||||
{
|
{
|
||||||
int32_t offset = sframe_get_fre_offset (fre, SFRAME_FRE_CFA_OFFSET_IDX, errp);
|
int err;
|
||||||
|
int32_t offset = sframe_get_fre_offset (fre, SFRAME_FRE_CFA_OFFSET_IDX, &err);
|
||||||
|
|
||||||
/* For s390x undo adjustment of CFA offset (to enable 8-bit offsets). */
|
/* For s390x undo adjustment of CFA offset (to enable 8-bit offsets). */
|
||||||
if (sframe_decoder_get_abi_arch (dctx) == SFRAME_ABI_S390X_ENDIAN_BIG)
|
if (!err && sframe_decoder_get_abi_arch (dctx) == SFRAME_ABI_S390X_ENDIAN_BIG)
|
||||||
offset = SFRAME_V2_S390X_CFA_OFFSET_DECODE (offset);
|
offset = SFRAME_V2_S390X_CFA_OFFSET_DECODE (offset);
|
||||||
|
|
||||||
|
if (errp)
|
||||||
|
*errp = err;
|
||||||
return offset;
|
return offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user