From 2e826078410bdb117710890b0e99bbdbbbf7e95d Mon Sep 17 00:00:00 2001 From: David Benjamin Date: Tue, 29 Jan 2019 17:41:39 -0600 Subject: Check for unpaired .cfi_remember_state Reviewed-by: Richard Levitte GH: #8109 (cherry picked from commit e09633107b7e987b2179850715ba60d8fb069278) --- crypto/perlasm/x86_64-xlate.pl | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'crypto/perlasm') diff --git a/crypto/perlasm/x86_64-xlate.pl b/crypto/perlasm/x86_64-xlate.pl index b81d03a753..1b0bf42f8c 100755 --- a/crypto/perlasm/x86_64-xlate.pl +++ b/crypto/perlasm/x86_64-xlate.pl @@ -649,7 +649,13 @@ my %globals; # why it starts with -8. Recall that CFA is top of caller's # stack... /startproc/ && do { ($cfa_reg, $cfa_rsp) = ("%rsp", -8); last; }; - /endproc/ && do { ($cfa_reg, $cfa_rsp) = ("%rsp", 0); last; }; + /endproc/ && do { ($cfa_reg, $cfa_rsp) = ("%rsp", 0); + # .cfi_remember_state directives that are not + # matched with .cfi_restore_state are + # unnecessary. + die "unpaired .cfi_remember_state" if (@cfa_stack); + last; + }; /def_cfa_register/ && do { $cfa_reg = $$line; last; }; /def_cfa_offset/ -- cgit v1.2.3