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 "
-                       "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];
@@ -671,7 +671,8 @@ execute_stack_op (struct dwarf_expr_context *ctx,
            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];
@@ -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
-         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
@@ -903,6 +904,13 @@ execute_stack_op (struct dwarf_expr_context *ctx,
          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);
@@ -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);
-    no_push:;
+    no_push:
+      ;
     }
 
   /* 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);
 
+abort_expression:
   ctx->recursion_depth--;
   gdb_assert (ctx->recursion_depth >= 0);
 #undef sign_ext
This page took 0.03591 seconds and 4 git commands to generate.