make parameter being watched is a non-constant.
authorJoel Brobecker <brobecker@gnat.com>
Mon, 17 May 2010 21:32:57 +0000 (21:32 +0000)
committerJoel Brobecker <brobecker@gnat.com>
Mon, 17 May 2010 21:32:57 +0000 (21:32 +0000)
The gdb.ada/watch_arg testcase is testing a situation where we are
leaving the scope where a parameter being watched is defined. The
testcase is a little non-sensical that we're watching a parameter
declared as an "access integer", which in non-Ada terms means
a constant pointer.  Doesn't make much sense to watch a constant...

So this patch changes the code a little to use an "in out Integer",
which makes the parameter a non-constant integer, rather than a
constant access Integer.  I verified that I could still reproduce
the problem with the original debugger and the modified testcase.

This was motivated by a patch that Sergio is about to submit which
will forbid the user from watching a constant (discussed on IRC)

2010-05-17  Joel Brobecker  <brobecker@adacore.com>

        * gdb.ada/watch_arg/watch.adb: Rewrite testcase to avoid the
        parameter that we want to watch being a constant.

Tested on both sparc-solaris (where the ancient debugger could still
run ;-), and on x86_64-linux.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.ada/watch_arg/watch.adb

index bc55d701dbf3682fc256890f6e394df12c7fb661..91fea82ee27cbc7cc77a805d341f7443dd9e9282 100644 (file)
@@ -1,3 +1,8 @@
+2010-05-17  Joel Brobecker  <brobecker@adacore.com>
+
+       * gdb.ada/watch_arg/watch.adb: Rewrite testcase to avoid the
+       parameter that we want to watch being a constant.
+
 2010-05-17  Joel Brobecker  <brobecker@adacore.com>
 
        * gdb.ada/cond_lang: New testcase.
index b95e3a0d655266078202d3afe6dc359396b3d237..3b7cb27a7279ecc3ac315119671c999c24b514b3 100644 (file)
 
 procedure Watch is
 
-   procedure Foo (X : access Integer) is
+   procedure Foo (X : in out Integer) is
    begin
-      X.all := 3;  -- BREAK1
+      X := 3;  -- BREAK1
    end Foo;
 
-   X : aliased Integer := 1;
+   X : Integer := 1;
 
 begin
-   Foo (X'Access);
+   Foo (X);
    X := 2;  -- BREAK2
 end Watch;