+/**
+ * emit an opaque Firm dbg_info object
+ */
+static int firm_emit_dbg(lc_appendable_t *app,
+ const lc_arg_occ_t *occ, const lc_arg_value_t *arg)
+{
+ char buf[1024];
+ ir_node *irn = arg->v_ptr;
+ dbg_info *dbg = get_irn_dbg_info(irn);
+
+ buf[0] = '\0';
+ if (dbg && __dbg_info_snprint) {
+ if (__dbg_info_snprint(buf, sizeof(buf), dbg) <= 0)
+ buf[0] = '\0';
+ }
+ return lc_arg_append(app, occ, buf, strlen(buf));
+}
+
+/**
+ * Beware: do not set the entity ld_name
+ */
+static const char *get_entity_ld_name_ex(entity *ent) {
+ if (ent->ld_name)
+ return get_entity_ld_name(ent);
+ return get_entity_name(ent);
+}
+