gdb/fortran: Add 'LOC' intrinsic support.
authorFelix Willgerodt <felix.willgerodt@intel.com>
Tue, 9 Mar 2021 10:34:55 +0000 (11:34 +0100)
committerFelix Willgerodt <felix.willgerodt@intel.com>
Tue, 9 Mar 2021 10:34:55 +0000 (11:34 +0100)
commit611aa09d994fc5a8a9444075e65f0d6d4ebf4922
treeeffc6393a6e4c210d02a40ce547454402215ed99
parenteef32f59988bb0e4514d5395093c9e6d8d073ebb
gdb/fortran: Add 'LOC' intrinsic support.

LOC(X) returns the address of X as an integer:
https://gcc.gnu.org/onlinedocs/gfortran/LOC.html

Before:
(gdb) p LOC(r)
No symbol "LOC" in current context.

After:
(gdb) p LOC(r)
$1 = 0xffffdf48

gdb/ChangeLog:
2021-03-09  Felix Willgerodt  <felix.willgerodt@intel.com>

        * f-exp.h (eval_op_f_loc): Declare.
        (expr::fortran_loc_operation): New typedef.
        * f-exp.y (exp): Handle UNOP_FORTRAN_LOC after parsing an
        UNOP_INTRINSIC.
        (f77_keywords): Add LOC keyword.
        * f-lang.c (eval_op_f_loc): New function.
        * std-operator.def (UNOP_FORTRAN_LOC): New operator.

gdb/testsuite/ChangeLog:
2020-03-09  Felix Willgerodt  <felix.willgerodt@intel.com>

        * gdb.fortran/intrinsics.exp: Add LOC tests.
gdb/ChangeLog
gdb/f-exp.h
gdb/f-exp.y
gdb/f-lang.c
gdb/std-operator.def
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.fortran/intrinsics.exp