xref: /netbsd-src/external/gpl3/gdb/dist/libiberty/dwarfnames.c (revision 5173eb0a33e5d83890ba976253e703be4c92557c)
1a2e2270fSchristos /* Names of various DWARF tags.
2*5173eb0aSchristos    Copyright (C) 2012-2024 Free Software Foundation, Inc.
3a2e2270fSchristos 
4a2e2270fSchristos This file is part of GNU CC.
5a2e2270fSchristos 
6a2e2270fSchristos GNU CC is free software; you can redistribute it and/or modify
7a2e2270fSchristos it under the terms of the GNU General Public License as published by
8a2e2270fSchristos the Free Software Foundation; either version 2, or (at your option)
9a2e2270fSchristos any later version.
10a2e2270fSchristos 
11a2e2270fSchristos In addition to the permissions in the GNU General Public License, the
12a2e2270fSchristos Free Software Foundation gives you unlimited permission to link the
13a2e2270fSchristos compiled version of this file into combinations with other programs,
14a2e2270fSchristos and to distribute those combinations without any restriction coming
15a2e2270fSchristos from the use of this file.  (The General Public License restrictions
16a2e2270fSchristos do apply in other respects; for example, they cover modification of
17a2e2270fSchristos the file, and distribution when not linked into a combined
18a2e2270fSchristos executable.)
19a2e2270fSchristos 
20a2e2270fSchristos GNU CC is distributed in the hope that it will be useful,
21a2e2270fSchristos but WITHOUT ANY WARRANTY; without even the implied warranty of
22a2e2270fSchristos MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
23a2e2270fSchristos GNU General Public License for more details.
24a2e2270fSchristos 
25a2e2270fSchristos You should have received a copy of the GNU General Public License
26a2e2270fSchristos along with GNU CC; see the file COPYING.  If not, write to
27a2e2270fSchristos the Free Software Foundation, 51 Franklin Street - Fifth Floor,
28a2e2270fSchristos Boston, MA 02110-1301, USA.  */
29a2e2270fSchristos 
30a2e2270fSchristos #include "dwarf2.h"
31a2e2270fSchristos 
32a2e2270fSchristos #define DW_FIRST_TAG(name, value) \
33a2e2270fSchristos   const char *get_DW_TAG_name (unsigned int tag)	\
34a2e2270fSchristos   { switch (tag) { \
35a2e2270fSchristos   DW_TAG (name, value)
36a2e2270fSchristos #define DW_END_TAG } return 0; }
37a2e2270fSchristos #define DW_FIRST_FORM(name, value) \
38a2e2270fSchristos   const char *get_DW_FORM_name (unsigned int form)	\
39a2e2270fSchristos   { switch (form) { \
40a2e2270fSchristos   DW_FORM (name, value)
41a2e2270fSchristos #define DW_END_FORM } return 0; }
42a2e2270fSchristos #define DW_FIRST_AT(name, value) \
43a2e2270fSchristos   const char *get_DW_AT_name (unsigned int attr) {	\
44a2e2270fSchristos   switch (attr) { \
45a2e2270fSchristos   DW_AT (name, value)
46a2e2270fSchristos #define DW_END_AT } return 0; }
47a2e2270fSchristos #define DW_FIRST_OP(name, value) \
48a2e2270fSchristos   const char *get_DW_OP_name (unsigned int op) {	\
49a2e2270fSchristos   switch (op) { \
50a2e2270fSchristos   DW_OP (name, value)
51a2e2270fSchristos #define DW_END_OP } return 0; }
52a2e2270fSchristos #define DW_FIRST_ATE(name, value)			\
53a2e2270fSchristos   const char *get_DW_ATE_name (unsigned int enc) {	\
54a2e2270fSchristos   switch (enc) { \
55a2e2270fSchristos   DW_ATE (name, value)
56a2e2270fSchristos #define DW_END_ATE } return 0; }
57a2e2270fSchristos #define DW_FIRST_CFA(name, value) \
58a2e2270fSchristos   const char *get_DW_CFA_name (unsigned int opc) {	\
59a2e2270fSchristos   switch (opc) {					\
60a2e2270fSchristos   DW_CFA (name, value)
61a2e2270fSchristos #define DW_END_CFA } return 0; }
624559860eSchristos #define DW_FIRST_IDX(name, value) \
634559860eSchristos   const char *get_DW_IDX_name (unsigned int idx) {	\
644559860eSchristos   switch (idx) {					\
654559860eSchristos   DW_IDX (name, value)
664559860eSchristos #define DW_END_IDX } return 0; }
674b169a6bSchristos #define DW_FIRST_UT(name, value) \
684b169a6bSchristos   const char *get_DW_UT_name (unsigned int ut) {	\
694b169a6bSchristos   switch (ut) {					\
704b169a6bSchristos   DW_UT (name, value)
714b169a6bSchristos #define DW_END_UT } return 0; }
72a2e2270fSchristos 
73a2e2270fSchristos #define DW_TAG(name, value) case name: return # name ;
74a2e2270fSchristos #define DW_TAG_DUP(name, value)
75a2e2270fSchristos #define DW_FORM(name, value) case name: return # name ;
76a2e2270fSchristos #define DW_AT(name, value) case name: return # name ;
77a2e2270fSchristos #define DW_AT_DUP(name, value)
78a2e2270fSchristos #define DW_OP(name, value) case name: return # name ;
79a2e2270fSchristos #define DW_OP_DUP(name, value)
80a2e2270fSchristos #define DW_ATE(name, value) case name: return # name ;
81a2e2270fSchristos #define DW_ATE_DUP(name, value)
82a2e2270fSchristos #define DW_CFA(name, value) case name: return # name ;
834559860eSchristos #define DW_CFA_DUP(name, value)
844559860eSchristos #define DW_IDX(name, value) case name: return # name ;
854559860eSchristos #define DW_IDX_DUP(name, value)
864b169a6bSchristos #define DW_UT(name, value) case name: return # name ;
87a2e2270fSchristos 
88a2e2270fSchristos #include "dwarf2.def"
89a2e2270fSchristos 
90a2e2270fSchristos #undef DW_FIRST_TAG
91a2e2270fSchristos #undef DW_END_TAG
92a2e2270fSchristos #undef DW_FIRST_FORM
93a2e2270fSchristos #undef DW_END_FORM
94a2e2270fSchristos #undef DW_FIRST_AT
95a2e2270fSchristos #undef DW_END_AT
96a2e2270fSchristos #undef DW_FIRST_OP
97a2e2270fSchristos #undef DW_END_OP
98a2e2270fSchristos #undef DW_FIRST_ATE
99a2e2270fSchristos #undef DW_END_ATE
100a2e2270fSchristos #undef DW_FIRST_CFA
101a2e2270fSchristos #undef DW_END_CFA
1024559860eSchristos #undef DW_FIRST_IDX
1034559860eSchristos #undef DW_END_IDX
1044b169a6bSchristos #undef DW_END_UT
105a2e2270fSchristos 
106a2e2270fSchristos #undef DW_TAG
107a2e2270fSchristos #undef DW_TAG_DUP
108a2e2270fSchristos #undef DW_FORM
109a2e2270fSchristos #undef DW_AT
110a2e2270fSchristos #undef DW_AT_DUP
111a2e2270fSchristos #undef DW_OP
112a2e2270fSchristos #undef DW_OP_DUP
113a2e2270fSchristos #undef DW_ATE
114a2e2270fSchristos #undef DW_ATE_DUP
115a2e2270fSchristos #undef DW_CFA
1164559860eSchristos #undef DW_CFA_DUP
1174559860eSchristos #undef DW_IDX
1184559860eSchristos #undef DW_IDX_DUP
119