becopyopt: Inline the thin wrapper nodes_interfere(), so we do not need to fetch...
[libfirm] / include / libfirm / dbginfo.h
index 785fb6e..0ca40e2 100644 (file)
@@ -1,20 +1,6 @@
 /*
- * Copyright (C) 1995-2008 University of Karlsruhe.  All right reserved.
- *
  * This file is part of libFirm.
- *
- * This file may be distributed and/or modified under the terms of the
- * GNU General Public License version 2 as published by the Free Software
- * Foundation and appearing in the file LICENSE.GPL included in the
- * packaging of this file.
- *
- * Licensees holding valid libFirm Professional Edition licenses may use
- * this file in accordance with the libFirm Commercial License.
- * Agreement provided with the Software.
- *
- * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
- * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE.
+ * Copyright (C) 2012 University of Karlsruhe.
  */
 
 /**
@@ -144,13 +130,21 @@ typedef void merge_sets_func(ir_node **new_node_array, int new_num_entries, ir_n
 FIRM_API void dbg_init(merge_pair_func *dbg_info_merge_pair,
                        merge_sets_func *dbg_info_merge_sets);
 
+/** A sourcecode location */
+typedef struct src_loc_t {
+       char const *file;    /**< the name of the source (usually a file) */
+       unsigned    line;    /**< line number (starting at 1; 0 if unknown) */
+       unsigned    column;  /**< column number (starting at 1; 0 if unknown) */
+} src_loc_t;
+
 /**
  * The type of the debug info retriever function.
- *  When given a dbg_info returns the name (usually the filename) of the
- *  compilation unit defining it. @p line is set to the line number of the
- *  definition.
+ *  When given a dbg_info returns the name (usually the filename), line number
+ *  and column number of the definition.
+ *  Any part of the returned information may be NULL/0, which means it is not
+ *  available.
  */
-typedef const char *(*retrieve_dbg_func)(const dbg_info *dbg, unsigned *line);
+typedef src_loc_t (*retrieve_dbg_func)(dbg_info const *dbg);
 
 /**
  * Sets a debug info retriever.
@@ -175,7 +169,7 @@ FIRM_API void ir_set_type_debug_retrieve(retrieve_type_dbg_func func);
 /**
  * Retrieve the debug info.
  */
-FIRM_API const char *ir_retrieve_dbg_info(const dbg_info *dbg, unsigned *line);
+FIRM_API src_loc_t ir_retrieve_dbg_info(dbg_info const *dbg);
 
 /**
  * Retrieve type debug info