* ada-lang.c (ada_evaluate_subexp): Modify the value returned
authorJoel Brobecker <brobecker@gnat.com>
Wed, 2 Jan 2008 12:03:06 +0000 (12:03 +0000)
committerJoel Brobecker <brobecker@gnat.com>
Wed, 2 Jan 2008 12:03:06 +0000 (12:03 +0000)
        when noside is EVAL_AVOID_SIDE_EFFECTS to be an lval_memory.
        This is needed to make sure that any other treatment applied
        to the resulting value does not fail for spurious reason,
        such as trying to take the address of this value.

gdb/ChangeLog
gdb/ada-lang.c

index e2784e8949777d47f00638e83ca15ca53eb7570b..e3b9714a06cc32c960bf0c1613b99b78a978869b 100644 (file)
@@ -1,3 +1,11 @@
+2008-01-02  Joel Brobecker  <brobecker@adacore.com>
+
+       * ada-lang.c (ada_evaluate_subexp): Modify the value returned
+       when noside is EVAL_AVOID_SIDE_EFFECTS to be an lval_memory.
+       This is needed to make sure that any other treatment applied
+       to the resulting value does not fail for spurious reason,
+       such as trying to take the address of this value.
+
 2008-01-02  Joel Brobecker  <brobecker@adacore.com>
 
        * ada-lang.c (ada_value_equal): Dereference reference types when
index b3090a301ccfcd45756766661ddc9f64e38e7d00..6db11265ccdc2fde7e472597483c912f9e3adad3 100644 (file)
@@ -8397,7 +8397,7 @@ ada_evaluate_subexp (struct type *expect_type, struct expression *exp,
             if (arity != nargs)
               error (_("wrong number of subscripts; expecting %d"), arity);
             if (noside == EVAL_AVOID_SIDE_EFFECTS)
-              return allocate_value (ada_aligned_type (type));
+              return value_zero (ada_aligned_type (type), lval_memory);
             return
               unwrap_value (ada_value_subscript
                             (argvec[0], nargs, argvec + 1));
@@ -8409,7 +8409,7 @@ ada_evaluate_subexp (struct type *expect_type, struct expression *exp,
               if (type == NULL)
                 error (_("element type of array unknown"));
               else
-                return allocate_value (ada_aligned_type (type));
+                return value_zero (ada_aligned_type (type), lval_memory);
             }
           return
             unwrap_value (ada_value_subscript
@@ -8423,7 +8423,7 @@ ada_evaluate_subexp (struct type *expect_type, struct expression *exp,
               if (type == NULL)
                 error (_("element type of array unknown"));
               else
-                return allocate_value (ada_aligned_type (type));
+                return value_zero (ada_aligned_type (type), lval_memory);
             }
           return
             unwrap_value (ada_value_ptr_subscript (argvec[0], type,