* ada-lang.c (ada_value_equal): Dereference reference types when
authorJoel Brobecker <brobecker@gnat.com>
Wed, 2 Jan 2008 11:18:03 +0000 (11:18 +0000)
committerJoel Brobecker <brobecker@gnat.com>
Wed, 2 Jan 2008 11:18:03 +0000 (11:18 +0000)
        comparing arrays.

gdb/ChangeLog
gdb/ada-lang.c

index 823082ed060fd0efc86c8abe04c4db3527088cf8..e2784e8949777d47f00638e83ca15ca53eb7570b 100644 (file)
@@ -1,3 +1,8 @@
+2008-01-02  Joel Brobecker  <brobecker@adacore.com>
+
+       * ada-lang.c (ada_value_equal): Dereference reference types when
+       comparing arrays.
 2008-01-01  Daniel Jacobowitz  <dan@codesourcery.com>
 
        Updated copyright notices for most files.
index 58a2f5781b4a0dccf5ecfbb262921a36407b4821..b3090a301ccfcd45756766661ddc9f64e38e7d00 100644 (file)
@@ -7744,6 +7744,11 @@ ada_value_equal (struct value *arg1, struct value *arg2)
   if (ada_is_direct_array_type (value_type (arg1))
       || ada_is_direct_array_type (value_type (arg2)))
     {
+      /* Automatically dereference any array reference before
+         we attempt to perform the comparison.  */
+      arg1 = ada_coerce_ref (arg1);
+      arg2 = ada_coerce_ref (arg2);
+      
       arg1 = ada_coerce_to_simple_array (arg1);
       arg2 = ada_coerce_to_simple_array (arg2);
       if (TYPE_CODE (value_type (arg1)) != TYPE_CODE_ARRAY