diff options
author | Tom Tromey <tromey@redhat.com> | 2012-04-27 14:14:14 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 2012-04-27 14:14:14 +0000 |
commit | 11ec770e46f664966c53b6af90a2849c1eb4dbd1 (patch) | |
tree | 575755334553a36f8125712174d0e7eda2bf9d9a /libiberty/dwarfnames.c | |
parent | 809c929ccfeb2dfb3fdd19fd3bf5e540c778b4bc (diff) |
dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
gcc
* dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
(dwarf_tag_name): Use get_DW_TAG_name.
(dwarf_attr_name): Use get_DW_AT_name.
(dwarf_form_name): Use get_DW_FORM_name.
* dwarf2cfi.c (dwarf_cfi_name): Use get_DW_CFA_name.
include
* dwarf2.h (enum dwarf_tag, enum dwarf_form, enum dwarf_attribute)
(enum dwarf_location_atom, enum dwarf_type, enum
dwarf_call_frame_info): Remove.
(DW_TAG, DW_TAG_DUP, DW_FORM, DW_AT, DW_AT_DUP, DW_OP)
(DW_OP_DUP, DW_ATE, DW_ATE_DUP, DW_CFA): New macros.
Include dwarf2.def.
(get_DW_TAG_name, get_DW_AT_name, get_DW_FORM_name)
(get_DW_OP_name, get_DW_ATE_name): Declare.
* dwarf2.def: New file, from dwarf2.h.
libiberty
* dwarfnames.c: New file.
* Makefile.in (CFILES): Add dwarfnames.
(REQUIRED_OFILES): Add dwarfnames.
(./dwarfnames.$(objext)): New target.
From-SVN: r186908
Diffstat (limited to 'libiberty/dwarfnames.c')
-rw-r--r-- | libiberty/dwarfnames.c | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/libiberty/dwarfnames.c b/libiberty/dwarfnames.c new file mode 100644 index 00000000000..7017308d987 --- /dev/null +++ b/libiberty/dwarfnames.c @@ -0,0 +1,98 @@ +/* Names of various DWARF tags. + Copyright (C) 2012 Free Software Foundation, Inc. + +This file is part of GNU CC. + +GNU CC is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +In addition to the permissions in the GNU General Public License, the +Free Software Foundation gives you unlimited permission to link the +compiled version of this file into combinations with other programs, +and to distribute those combinations without any restriction coming +from the use of this file. (The General Public License restrictions +do apply in other respects; for example, they cover modification of +the file, and distribution when not linked into a combined +executable.) + +GNU CC is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU CC; see the file COPYING. If not, write to +the Free Software Foundation, 51 Franklin Street - Fifth Floor, +Boston, MA 02110-1301, USA. */ + +#include "dwarf2.h" + +#define DW_FIRST_TAG(name, value) \ + const char *get_DW_TAG_name (unsigned int tag) \ + { switch (tag) { \ + DW_TAG (name, value) +#define DW_END_TAG } return 0; } +#define DW_FIRST_FORM(name, value) \ + const char *get_DW_FORM_name (unsigned int form) \ + { switch (form) { \ + DW_FORM (name, value) +#define DW_END_FORM } return 0; } +#define DW_FIRST_AT(name, value) \ + const char *get_DW_AT_name (unsigned int attr) { \ + switch (attr) { \ + DW_AT (name, value) +#define DW_END_AT } return 0; } +#define DW_FIRST_OP(name, value) \ + const char *get_DW_OP_name (unsigned int op) { \ + switch (op) { \ + DW_OP (name, value) +#define DW_END_OP } return 0; } +#define DW_FIRST_ATE(name, value) \ + const char *get_DW_ATE_name (unsigned int enc) { \ + switch (enc) { \ + DW_ATE (name, value) +#define DW_END_ATE } return 0; } +#define DW_FIRST_CFA(name, value) \ + const char *get_DW_CFA_name (unsigned int opc) { \ + switch (opc) { \ + DW_CFA (name, value) +#define DW_END_CFA } return 0; } + +#define DW_TAG(name, value) case name: return # name ; +#define DW_TAG_DUP(name, value) +#define DW_FORM(name, value) case name: return # name ; +#define DW_AT(name, value) case name: return # name ; +#define DW_AT_DUP(name, value) +#define DW_OP(name, value) case name: return # name ; +#define DW_OP_DUP(name, value) +#define DW_ATE(name, value) case name: return # name ; +#define DW_ATE_DUP(name, value) +#define DW_CFA(name, value) case name: return # name ; + +#include "dwarf2.def" + +#undef DW_FIRST_TAG +#undef DW_END_TAG +#undef DW_FIRST_FORM +#undef DW_END_FORM +#undef DW_FIRST_AT +#undef DW_END_AT +#undef DW_FIRST_OP +#undef DW_END_OP +#undef DW_FIRST_ATE +#undef DW_END_ATE +#undef DW_FIRST_CFA +#undef DW_END_CFA + +#undef DW_TAG +#undef DW_TAG_DUP +#undef DW_FORM +#undef DW_AT +#undef DW_AT_DUP +#undef DW_OP +#undef DW_OP_DUP +#undef DW_ATE +#undef DW_ATE_DUP +#undef DW_CFA |