#include "irloop_t.h"
#include "irextbb_t.h"
#include "irprog_t.h"
+#include "compound_path_t.h"
#include "tpop_t.h"
#include "strcalc.h"
#include "fltcalc.h"
#define ADD_ADR(p, off) ((void *)((char *)(p) + (off)))
/** debug output */
-static void debug(char *fmt, ...) {
+static void debug(char *fmt, ...)
+{
va_list ap;
char buf[1024];
/**
* return the size of a firm object
*/
-int get_firm_object_size(firm_kind kind) {
+int get_firm_object_size(firm_kind kind)
+{
switch (kind) {
case k_entity: /* an entity */
return sizeof(ir_entity);
/**
* Format an ident
*/
-HRESULT format_ident(DEBUGHELPER *pHelper, const void *address, char *pResult, size_t max) {
+HRESULT format_ident(DEBUGHELPER *pHelper, const void *address, char *pResult, size_t max)
+{
set_entry *data = NULL;
set_entry id;
size_t len, slen;
Y(enumeration, "enum");
Y(pointer, "ptr");
Y(primitive, "prim");
- X(id);
X(none);
X(unknown);
default:
*
* @param type the address of the type in debuggee's space
*/
-static HRESULT is_global_type(DEBUGHELPER *pHelper, const void *type, int *flag) {
+static HRESULT is_global_type(DEBUGHELPER *pHelper, const void *type, int *flag)
+{
ir_type tp;
*flag = 0;
/**
* format an entity
*/
-static HRESULT format_entity(DEBUGHELPER *pHelper, int nBase, const void *addr, char *pResult, size_t max, int top) {
+static HRESULT format_entity(DEBUGHELPER *pHelper, int nBase, const void *addr, char *pResult, size_t max, int top)
+{
ir_entity ent;
ir_type owner;
char name[256];
/**
* format a type
*/
-static HRESULT format_type(DEBUGHELPER *pHelper, int nBase, const void *addr, char *pResult, size_t max, int top) {
+static HRESULT format_type(DEBUGHELPER *pHelper, int nBase, const void *addr, char *pResult, size_t max, int top)
+{
ir_type tp;
char name[256];
_tcsncat(pResult, " ", max);
}
- if (format_ident(pHelper, tp.name, name, sizeof(name)) != S_OK)
- return E_FAIL;
+ name[0] = '\0';
+ if (tp.name) {
+ if (format_ident(pHelper, tp.name, name, sizeof(name)) != S_OK)
+ return E_FAIL;
+ } else {
+ if (format_mode(pHelper, tp.mode, name, sizeof(name)) != S_OK)
+ return E_FAIL;
+ }
_tcsncat(pResult, name, max);
switch (nBase) {
/**
* format an irg
*/
-static HRESULT format_irg(DEBUGHELPER *pHelper, int nBase, const void *addr, char *pResult, size_t max, int top) {
+static HRESULT format_irg(DEBUGHELPER *pHelper, int nBase, const void *addr, char *pResult, size_t max, int top)
+{
ir_graph irg;
char name[256];
/**
* format an ir_op
*/
-HRESULT format_op(DEBUGHELPER *pHelper, const void *addr, char *pResult, size_t max) {
+HRESULT format_op(DEBUGHELPER *pHelper, const void *addr, char *pResult, size_t max)
+{
ir_op op;
if (copy_from_debuggee(addr, pHelper, &op, sizeof(op)) != S_OK)
/**
* format an ir_mode
*/
-static HRESULT format_mode(DEBUGHELPER *pHelper, const void *addr, char *pResult, size_t max) {
+static HRESULT format_mode(DEBUGHELPER *pHelper, const void *addr, char *pResult, size_t max)
+{
ir_mode mode;
if (copy_from_debuggee(addr, pHelper, &mode, sizeof(mode)) != S_OK)
s[len] = '\0'; \
str = s; \
} \
-} while(0)
+} while (0)
/**
* format a tarval
/**
* format an ir_node
*/
-static HRESULT format_node(DEBUGHELPER *pHelper, int nBase, const void *addr, char *pResult, size_t max, int top) {
+static HRESULT format_node(DEBUGHELPER *pHelper, int nBase, const void *addr, char *pResult, size_t max, int top)
+{
ir_node n;
char name[256];
ir_op op;
return E_FAIL;
_tcsncat(pResult, name, max);
break;
- case symconst_addr_name:
- _tcsncat(pResult, "NAME:", max);
- if (format_ident(pHelper, n.attr.symc.sym.ident_p, name, sizeof(name)) != S_OK)
- return E_FAIL;
- _tcsncat(pResult, name, max);
- break;
case symconst_addr_ent:
_tcsncat(pResult, "ENT:", max);
if (format_entity(pHelper, nBase, n.attr.symc.sym.entity_p, name, sizeof(name), 0) != S_OK)
break;
case iro_Cast:
_tcsncat(pResult, "<", max);
- if (format_type(pHelper, nBase, n.attr.cast.totype, name, sizeof(name), 0) != S_OK)
+ if (format_type(pHelper, nBase, n.attr.cast.type, name, sizeof(name), 0) != S_OK)
return E_FAIL;
_tcsncat(pResult, name, max);
_tcsncat(pResult, ">", max);
break;
case iro_CopyB:
_tcsncat(pResult, "<", max);
- if (format_type(pHelper, nBase, n.attr.copyb.data_type, name, sizeof(name), 0) != S_OK)
+ if (format_type(pHelper, nBase, n.attr.copyb.type, name, sizeof(name), 0) != S_OK)
return E_FAIL;
_tcsncat(pResult, name, max);
_tcsncat(pResult, ">", max);
/**
* format an extended block
*/
-static HRESULT format_extblk(DEBUGHELPER *pHelper, int nBase, const void *addr, char *pResult, size_t max){
+static HRESULT format_extblk(DEBUGHELPER *pHelper, int nBase, const void *addr, char *pResult, size_t max)
+{
ir_extblk extbb;
ir_arr_descr blocks;
ir_node *blks = NULL;
* Find the longest chain of a pset
*/
static HRESULT find_longest_pset_chain(DEBUGHELPER *pHelper, pset *set,
- int *chains, int *lenght, size_t *size) {
+ int *chains, int *lenght, size_t *size)
+{
unsigned i, j;
pset_Segment *seg, *curr;
pset_Element elem;
* Find the longest chain of a set
*/
static HRESULT find_longest_set_chain(DEBUGHELPER *pHelper, set *set,
- int *chains, int *lenght, size_t *size) {
+ int *chains, int *lenght, size_t *size)
+{
unsigned i, j;
set_Segment *seg, *curr;
set_Element elem;
} /* format_pdeq */
/** show the first 2 units */
-static HRESULT fill_bits(DEBUGHELPER *pHelper, bitset_t *bs, char *pResult) {
+static HRESULT fill_bits(DEBUGHELPER *pHelper, bitset_t *bs, char *pResult)
+{
bitset_pos_t i, units = bs->units;
int l = 0, o = 0, breaked = 0;
unsigned j;