2010-05-14 Michael Snyder <msnyder@vmware.com>
[deliverable/binutils-gdb.git] / gdb / expprint.c
index 98df0708c347451d7d19b7de782cdc4a1ffdb2d5..7299d646bb9362b31557e41ae028ec5b1964113b 100644 (file)
@@ -42,6 +42,7 @@ void
 print_expression (struct expression *exp, struct ui_file *stream)
 {
   int pc = 0;
+
   print_subexp (exp, &pc, stream, PREC_NULL);
 }
 
@@ -96,6 +97,7 @@ print_subexp_standard (struct expression *exp, int *pos,
     case OP_LONG:
       {
        struct value_print_options opts;
+
        get_raw_print_options (&opts);
        (*pos) += 3;
        value_print (value_from_longest (exp->elts[pc + 1].type,
@@ -107,6 +109,7 @@ print_subexp_standard (struct expression *exp, int *pos,
     case OP_DOUBLE:
       {
        struct value_print_options opts;
+
        get_raw_print_options (&opts);
        (*pos) += 3;
        value_print (value_from_double (exp->elts[pc + 1].type,
@@ -118,6 +121,7 @@ print_subexp_standard (struct expression *exp, int *pos,
     case OP_VAR_VALUE:
       {
        struct block *b;
+
        (*pos) += 3;
        b = exp->elts[pc + 1].block;
        if (b != NULL
@@ -140,6 +144,7 @@ print_subexp_standard (struct expression *exp, int *pos,
     case OP_REGISTER:
       {
        const char *name = &exp->elts[pc + 2].string;
+
        (*pos) += 3 + BYTES_TO_EXP_ELEM (exp->elts[pc + 1].longconst + 1);
        fprintf_filtered (stream, "$%s", name);
        return;
@@ -181,6 +186,7 @@ print_subexp_standard (struct expression *exp, int *pos,
     case OP_STRING:
       {
        struct value_print_options opts;
+
        nargs = longest_to_int (exp->elts[pc + 1].longconst);
        (*pos) += 3 + BYTES_TO_EXP_ELEM (nargs + 1);
        /* LA_PRINT_STRING will print using the current repeat count threshold.
@@ -188,7 +194,7 @@ print_subexp_standard (struct expression *exp, int *pos,
           additional parameter to LA_PRINT_STRING.  -fnf */
        get_user_print_options (&opts);
        LA_PRINT_STRING (stream, builtin_type (exp->gdbarch)->builtin_char,
-                        &exp->elts[pc + 2].string, nargs, 0, &opts);
+                        &exp->elts[pc + 2].string, nargs, NULL, 0, &opts);
       }
       return;
 
@@ -202,12 +208,13 @@ print_subexp_standard (struct expression *exp, int *pos,
     case OP_OBJC_NSSTRING:     /* Objective-C Foundation Class NSString constant.  */
       {
        struct value_print_options opts;
+
        nargs = longest_to_int (exp->elts[pc + 1].longconst);
        (*pos) += 3 + BYTES_TO_EXP_ELEM (nargs + 1);
        fputs_filtered ("@\"", stream);
        get_user_print_options (&opts);
        LA_PRINT_STRING (stream, builtin_type (exp->gdbarch)->builtin_char,
-                        &exp->elts[pc + 2].string, nargs, 0, &opts);
+                        &exp->elts[pc + 2].string, nargs, NULL, 0, &opts);
        fputs_filtered ("\"", stream);
       }
       return;
@@ -215,6 +222,7 @@ print_subexp_standard (struct expression *exp, int *pos,
     case OP_OBJC_MSGCALL:
       {                        /* Objective C message (method) call.  */
        char *selector;
+
        (*pos) += 3;
        nargs = longest_to_int (exp->elts[pc + 2].longconst);
        fprintf_unfiltered (stream, "[");
@@ -228,6 +236,7 @@ print_subexp_standard (struct expression *exp, int *pos,
        if (nargs)
          {
            char *s, *nextS;
+
            s = alloca (strlen (selector) + 1);
            strcpy (s, selector);
            for (tem = 0; tem < nargs; tem++)
@@ -291,9 +300,10 @@ print_subexp_standard (struct expression *exp, int *pos,
       if (tem > 0)
        {
          struct value_print_options opts;
+
          get_user_print_options (&opts);
          LA_PRINT_STRING (stream, builtin_type (exp->gdbarch)->builtin_char,
-                          tempstr, nargs - 1, 0, &opts);
+                          tempstr, nargs - 1, NULL, 0, &opts);
          (*pos) = pc;
        }
       else
@@ -410,6 +420,18 @@ print_subexp_standard (struct expression *exp, int *pos,
        fputs_filtered (")", stream);
       return;
 
+    case UNOP_DYNAMIC_CAST:
+    case UNOP_REINTERPRET_CAST:
+      fputs_filtered (opcode == UNOP_DYNAMIC_CAST ? "dynamic_cast"
+                     : "reinterpret_cast", stream);
+      fputs_filtered ("<", stream);
+      (*pos) += 2;
+      type_print (exp->elts[pc + 1].type, "", stream, 0);
+      fputs_filtered ("> (", stream);
+      print_subexp (exp, pos, stream, PREC_PREFIX);
+      fputs_filtered (")", stream);
+      return;
+
     case UNOP_MEMVAL:
       (*pos) += 2;
       if ((int) prec > (int) PREC_PREFIX)
@@ -730,6 +752,10 @@ op_name_standard (enum exp_opcode opcode)
       return "OP_ARRAY";
     case UNOP_CAST:
       return "UNOP_CAST";
+    case UNOP_DYNAMIC_CAST:
+      return "UNOP_DYNAMIC_CAST";
+    case UNOP_REINTERPRET_CAST:
+      return "UNOP_REINTERPRET_CAST";
     case UNOP_MEMVAL:
       return "UNOP_MEMVAL";
     case UNOP_MEMVAL_TLS:
@@ -800,6 +826,8 @@ op_name_standard (enum exp_opcode opcode)
       return "OP_TYPE";
     case OP_LABELED:
       return "OP_LABELED";
+    case OP_ADL_FUNC:
+      return "OP_ADL_FUNC";
     }
 }
 
@@ -1036,6 +1064,8 @@ dump_subexp_body_standard (struct expression *exp,
       break;
     case UNOP_MEMVAL:
     case UNOP_CAST:
+    case UNOP_DYNAMIC_CAST:
+    case UNOP_REINTERPRET_CAST:
       fprintf_filtered (stream, "Type @");
       gdb_print_host_address (exp->elts[elt].type, stream);
       fprintf_filtered (stream, " (");
This page took 0.026933 seconds and 4 git commands to generate.