gdb: throw OPTIMIZED_OUT_ERROR rather than GENERIC_ERROR
authorAndrew Burgess <aburgess@redhat.com>
Tue, 9 Nov 2021 13:22:05 +0000 (13:22 +0000)
committerAndrew Burgess <aburgess@redhat.com>
Tue, 16 Nov 2021 17:35:03 +0000 (17:35 +0000)
commita6e7fea128b8e1da3ea99dc906df56f85589d335
tree6befb7056fdcd80cd87ab3c896f4227d25296024
parentb7c9d393d60957b901418359d2cf5d276bcc5e4b
gdb: throw OPTIMIZED_OUT_ERROR rather than GENERIC_ERROR

While reviewing this patch:

  https://sourceware.org/pipermail/gdb-patches/2021-November/183227.html

I spotted that the patch could be improved if we threw
OPTIMIZED_OUT_ERROR rather than GENERIC_ERROR in a few places.

This commit updates error_value_optimized_out and
require_not_optimized_out to throw OPTIMIZED_OUT_ERROR.

I ran the testsuite and saw no regressions.  This doesn't really
surprise me, we don't usually write code like:

  catch (const gdb_exception_error &ex)
    {
      (if ex.error == GENERIC_ERROR)
        ...
      else
        ...
    }

There are a three places where we write something like:

  catch (const gdb_exception_error &ex)
    {
      (if ex.error == OPTIMIZED_OUT_ERROR)
        ...
    }

In frame.c:unwind_pc, stack.c:info_frame_command_core, and
value.c:value_optimized_out, but if we are hitting these cases then
it's not significantly changing GDB's behaviour.
gdb/value.c