Update copyright year.
[deliverable/binutils-gdb.git] / gdb / dwarf2expr.c
index aa8c8cf9c8e9b3905d6c38844628cb667552372c..91fccf9cc6f36acd0e45993f1716d9890b26dc2b 100644 (file)
@@ -652,7 +652,7 @@ execute_stack_op (struct dwarf_expr_context *ctx,
 
            if (ctx->stack_len < 2)
               error (_("Not enough elements for "
 
            if (ctx->stack_len < 2)
               error (_("Not enough elements for "
-                       "DW_OP_swap. Need 2, have %d."),
+                       "DW_OP_swap.  Need 2, have %d."),
                      ctx->stack_len);
            t1 = ctx->stack[ctx->stack_len - 1];
            t2 = ctx->stack[ctx->stack_len - 2];
                      ctx->stack_len);
            t1 = ctx->stack[ctx->stack_len - 1];
            t2 = ctx->stack[ctx->stack_len - 2];
@@ -671,7 +671,8 @@ execute_stack_op (struct dwarf_expr_context *ctx,
            struct dwarf_stack_value t1, t2, t3;
 
            if (ctx->stack_len < 3)
            struct dwarf_stack_value t1, t2, t3;
 
            if (ctx->stack_len < 3)
-              error (_("Not enough elements for DW_OP_rot. Need 3, have %d."),
+              error (_("Not enough elements for "
+                       "DW_OP_rot.  Need 3, have %d."),
                      ctx->stack_len);
            t1 = ctx->stack[ctx->stack_len - 1];
            t2 = ctx->stack[ctx->stack_len - 2];
                      ctx->stack_len);
            t1 = ctx->stack[ctx->stack_len - 1];
            t2 = ctx->stack[ctx->stack_len - 2];
@@ -821,7 +822,7 @@ execute_stack_op (struct dwarf_expr_context *ctx,
        case DW_OP_GNU_push_tls_address:
          /* Variable is at a constant offset in the thread-local
          storage block into the objfile for the current thread and
        case DW_OP_GNU_push_tls_address:
          /* Variable is at a constant offset in the thread-local
          storage block into the objfile for the current thread and
-         the dynamic linker module containing this expression. Here
+         the dynamic linker module containing this expression.  Here
          we return returns the offset from that base.  The top of the
          stack has the offset from the beginning of the thread
          control block at which the variable is located.  Nothing
          we return returns the offset from that base.  The top of the
          stack has the offset from the beginning of the thread
          control block at which the variable is located.  Nothing
@@ -903,6 +904,13 @@ execute_stack_op (struct dwarf_expr_context *ctx,
          op_ptr += 4;
          ctx->dwarf_call (ctx, result);
          goto no_push;
          op_ptr += 4;
          ctx->dwarf_call (ctx, result);
          goto no_push;
+       
+       case DW_OP_GNU_entry_value:
+         /* This operation is not yet supported by GDB.  */
+         ctx->location = DWARF_VALUE_OPTIMIZED_OUT;
+         ctx->stack_len = 0;
+         ctx->num_pieces = 0;
+         goto abort_expression;
 
        default:
          error (_("Unhandled dwarf expression opcode 0x%x"), op);
 
        default:
          error (_("Unhandled dwarf expression opcode 0x%x"), op);
@@ -910,7 +918,8 @@ execute_stack_op (struct dwarf_expr_context *ctx,
 
       /* Most things push a result value.  */
       dwarf_expr_push (ctx, result, in_stack_memory);
 
       /* Most things push a result value.  */
       dwarf_expr_push (ctx, result, in_stack_memory);
-    no_push:;
+    no_push:
+      ;
     }
 
   /* To simplify our main caller, if the result is an implicit
     }
 
   /* To simplify our main caller, if the result is an implicit
@@ -919,6 +928,7 @@ execute_stack_op (struct dwarf_expr_context *ctx,
   if (ctx->location == DWARF_VALUE_IMPLICIT_POINTER)
     add_piece (ctx, 8 * ctx->addr_size, 0);
 
   if (ctx->location == DWARF_VALUE_IMPLICIT_POINTER)
     add_piece (ctx, 8 * ctx->addr_size, 0);
 
+abort_expression:
   ctx->recursion_depth--;
   gdb_assert (ctx->recursion_depth >= 0);
 #undef sign_ext
   ctx->recursion_depth--;
   gdb_assert (ctx->recursion_depth >= 0);
 #undef sign_ext
This page took 0.024633 seconds and 4 git commands to generate.