do not call decode_compound with Ada expressions.
authorJoel Brobecker <brobecker@gnat.com>
Wed, 4 Jan 2012 14:24:57 +0000 (14:24 +0000)
committerJoel Brobecker <brobecker@gnat.com>
Wed, 4 Jan 2012 14:24:57 +0000 (14:24 +0000)
commit1dabb4c40720ac3cc311f1cf6cb0b144d34f1af3
tree6e96f3f43134740081832dcb2d512b9968d4ab86
parent5931a2fae3e830d0eac105fc60c9652432be6a54
do not call decode_compound with Ada expressions.

Trying to insert a breakpoint on `ops."<"', we get the following error:

    (gdb) b ops."<"
    malformed template specification in command

This is because locate_first_half skips the linespec until the dot,
and the decode_line_internal thinks that the dot might mean that
we have C++ or Java compound.  It then tries calling decode_compound
which errors out because it sees the opening angle bracket but not
the closing one (I am guessing).

This patch short-circuits this part of the code when the current
language is Ada.

gdb/ChangeLog:

        * linespec.c (decode_line_internal): Check for C++ or Java
        compound constructs only if the current language is C, C++
        or Java.
gdb/ChangeLog
gdb/linespec.c