libFirm
dbginfo.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved.
3  *
4  * This file is part of libFirm.
5  *
6  * This file may be distributed and/or modified under the terms of the
7  * GNU General Public License version 2 as published by the Free Software
8  * Foundation and appearing in the file LICENSE.GPL included in the
9  * packaging of this file.
10  *
11  * Licensees holding valid libFirm Professional Edition licenses may use
12  * this file in accordance with the libFirm Commercial License.
13  * Agreement provided with the Software.
14  *
15  * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
16  * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
17  * PURPOSE.
18  */
19 
26 #ifndef FIRM_DEBUG_DBGINFO_H
27 #define FIRM_DEBUG_DBGINFO_H
28 
29 #include <stdlib.h>
30 #include "firm_types.h"
31 #include "ident.h"
32 #include "begin.h"
33 
59 typedef enum {
60  dbg_error = 0,
88 } dbg_action;
89 
95 FIRM_API const char *dbg_action_2_str(dbg_action a);
96 
106 typedef void merge_pair_func(ir_node *new_node, ir_node *old_node, dbg_action action);
107 
119 typedef void merge_sets_func(ir_node **new_node_array, int new_num_entries, ir_node **old_node_array, int old_num_entries, dbg_action action);
120 
144 FIRM_API void dbg_init(merge_pair_func *dbg_info_merge_pair,
145  merge_sets_func *dbg_info_merge_sets);
146 
148 typedef struct src_loc_t {
149  char const *file;
150  unsigned line;
151  unsigned column;
152 } src_loc_t;
153 
161 typedef src_loc_t (*retrieve_dbg_func)(dbg_info const *dbg);
162 
169 
175 typedef void (*retrieve_type_dbg_func)(char *buffer, size_t buffer_size,
176  const type_dbg_info *tdbgi);
177 
182 
187 
191 FIRM_API void ir_retrieve_type_dbg_info(char *buffer, size_t buffer_size,
192  const type_dbg_info *tdbgi);
193 
196 #include "end.h"
197 
198 #endif