res[0] = attr->data.offs_sign ? '-' : '+';
memcpy(&res[1], obstack_base(attr->am_offs), size);
res[size + 1] = '\0';
- res = obstack_finish(attr->plain_offs);
}
return res;
*/
void set_ia32_Const_attr(ir_node *ia32_cnst, ir_node *cnst) {
ia32_attr_t *attr = get_ia32_attr(ia32_cnst);
+ ir_mode *mode;
assert(is_ia32_Cnst(ia32_cnst) && "Need ia32_Const to set Const attr");
case iro_Const:
attr->data.tp = ia32_Const;
attr->cnst_val.tv = get_Const_tarval(cnst);
+ mode = get_tarval_mode(attr->cnst_val.tv);
+ if (mode_is_reference(mode) &&
+ get_mode_null(mode) == attr->cnst_val.tv)
+ attr->cnst_val.tv = get_mode_null(mode_Is);
attr->cnst = get_ident_for_tv(attr->cnst_val.tv);
break;
case iro_SymConst: