diff options
author | Tom Tromey <tom@tromey.com> | 2020-12-14 09:43:20 -0700 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2020-12-14 09:43:20 -0700 |
commit | a6f3c8a1a8353424f00946f073e11c321119a719 (patch) | |
tree | 3b84a745976a7a44b5c467dc092edd930c33b00e /gdb/dtrace-probe.c | |
parent | 18f1cb1fc5355629c74f7615e358e3007f4e3bae (diff) | |
download | gdb-a6f3c8a1a8353424f00946f073e11c321119a719.zip gdb-a6f3c8a1a8353424f00946f073e11c321119a719.tar.gz gdb-a6f3c8a1a8353424f00946f073e11c321119a719.tar.bz2 |
Do not manually dissect OP_TYPE operations
Some code in GDB will examine the structure of an expression to see if
it starts with OP_TYPE, and then proceed to extract the type by hand.
There is no need to do this dissection manually. evaluate_type does
the same thing via an "allowed" API.
This patch changes such code to use evaluate_type. In two cases this
simplifies the code.
Regression tested on x86-64 Fedora 28.
gdb/ChangeLog
2020-12-14 Tom Tromey <tom@tromey.com>
* dtrace-probe.c (dtrace_process_dof_probe): Use value_type.
* typeprint.c (whatis_exp): Always use evaluate_type.
(maintenance_print_type): Likewise. Simplify.
Diffstat (limited to 'gdb/dtrace-probe.c')
-rw-r--r-- | gdb/dtrace-probe.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gdb/dtrace-probe.c b/gdb/dtrace-probe.c index 1d150fb..3ea047f 100644 --- a/gdb/dtrace-probe.c +++ b/gdb/dtrace-probe.c @@ -493,7 +493,7 @@ dtrace_process_dof_probe (struct objfile *objfile, } if (expr != NULL && expr.get ()->elts[0].opcode == OP_TYPE) - type = expr.get ()->elts[1].type; + type = value_type (evaluate_type (expr.get ())); args.emplace_back (type, std::move (type_str), std::move (expr)); } |