aboutsummaryrefslogtreecommitdiff
path: root/contrib/binutils/gas/ehopt.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/binutils/gas/ehopt.c')
-rw-r--r--contrib/binutils/gas/ehopt.c39
1 files changed, 2 insertions, 37 deletions
diff --git a/contrib/binutils/gas/ehopt.c b/contrib/binutils/gas/ehopt.c
index a0a5f62f4d7a..068e8242f5c2 100644
--- a/contrib/binutils/gas/ehopt.c
+++ b/contrib/binutils/gas/ehopt.c
@@ -261,52 +261,17 @@ check_eh_frame (exp, pnbytes)
expressionS *exp;
unsigned int *pnbytes;
{
- static int saw_size;
- static symbolS *size_end_sym;
static int saw_advance_loc4;
static fragS *loc4_frag;
static int loc4_fix;
- if (saw_size
- && S_IS_DEFINED (size_end_sym))
- {
- /* We have come to the end of the CIE or FDE. See below where
- we set saw_size. We must check this first because we may now
- be looking at the next size. */
- saw_size = 0;
- saw_advance_loc4 = 0;
- }
-
if (flag_traditional_format)
{
/* Don't optimize. */
}
else if (strcmp (segment_name (now_seg), ".eh_frame") != 0)
- {
- saw_size = 0;
- saw_advance_loc4 = 0;
- }
- else if (! saw_size
- && *pnbytes == 4)
- {
- /* This might be the size of the CIE or FDE. We want to know
- the size so that we don't accidentally optimize across an FDE
- boundary. We recognize the size in one of two forms: a
- symbol which will later be defined as a difference, or a
- subtraction of two symbols. Either way, we can tell when we
- are at the end of the FDE because the symbol becomes defined
- (in the case of a subtraction, the end symbol, from which the
- start symbol is being subtracted). Other ways of describing
- the size will not be optimized. */
- if ((exp->X_op == O_symbol || exp->X_op == O_subtract)
- && ! S_IS_DEFINED (exp->X_add_symbol))
- {
- saw_size = 1;
- size_end_sym = exp->X_add_symbol;
- }
- }
- else if (saw_size
- && *pnbytes == 1
+ saw_advance_loc4 = 0;
+ else if (*pnbytes == 1
&& exp->X_op == O_constant
&& exp->X_add_number == DW_CFA_advance_loc4)
{