monoeg_g_error_new (void * domain, gint code, const char * format)
{
  gchar * * D.5466;
  char * args.0;
  int D.5468;
  gchar * D.5471;
  struct GError * D.5472;
  char * args;
  struct GError * err;

  try
    {
      err = monoeg_malloc (24);
      err->domain = domain;
      err->code = code;
      __builtin_va_start (&args, 0);
      D.5466 = &err->message;
      args.0 = args;
      D.5468 = vasprintf (D.5466, format, args.0);
      if (D.5468 == -1) goto <D.5469>; else goto <D.5470>;
      <D.5469>:
      D.5471 = monoeg_g_strdup_printf ("internal: invalid format string %s", format);
      err->message = D.5471;
      <D.5470>:
      __builtin_va_end (&args);
      D.5472 = err;
      return D.5472;
    }
  finally
    {
      args = {CLOBBER};
    }
}


vasprintf (char * * restrict __ptr, const char * restrict __fmt, char * __ap)
{
  int D.5475;

  D.5475 = __vasprintf_chk (__ptr, 1, __fmt, __ap);
  return D.5475;
}


monoeg_g_clear_error (struct GError * * error)
{
  struct GError * D.5479;

  if (error != 0B) goto <D.5477>; else goto <D.5478>;
  <D.5477>:
  D.5479 = *error;
  if (D.5479 != 0B) goto <D.5480>; else goto <D.5481>;
  <D.5480>:
  D.5479 = *error;
  monoeg_g_error_free (D.5479);
  *error = 0B;
  <D.5481>:
  <D.5478>:
}


monoeg_g_error_free (struct GError * error)
{
  gchar * D.5484;

  if (error == 0B) goto <D.5482>; else goto <D.5483>;
  <D.5482>:
  monoeg_g_log (0B, 8, "%s:%d: assertion \'%s\' failed", "gerror.c", 76, "error != NULL");
  return;
  <D.5483>:
  D.5484 = error->message;
  free (D.5484);
  monoeg_g_free (error);
}


monoeg_g_set_error (struct GError * * err, void * domain, gint code, const gchar * format)
{
  char * args.1;
  struct GError * D.5489;
  char * args;

  try
    {
      if (err != 0B) goto <D.5486>; else goto <D.5487>;
      <D.5486>:
      __builtin_va_start (&args, 0);
      args.1 = args;
      D.5489 = monoeg_g_error_vnew (domain, code, format, args.1);
      *err = D.5489;
      __builtin_va_end (&args);
      <D.5487>:
    }
  finally
    {
      args = {CLOBBER};
    }
}


monoeg_g_error_vnew (void * domain, gint code, const char * format, char * ap)
{
  gchar * * D.5490;
  int D.5491;
  gchar * D.5494;
  struct GError * D.5495;
  struct GError * err;

  err = monoeg_malloc (24);
  err->domain = domain;
  err->code = code;
  D.5490 = &err->message;
  D.5491 = vasprintf (D.5490, format, ap);
  if (D.5491 == -1) goto <D.5492>; else goto <D.5493>;
  <D.5492>:
  D.5494 = monoeg_g_strdup_printf ("internal: invalid format string %s", format);
  err->message = D.5494;
  <D.5493>:
  D.5495 = err;
  return D.5495;
}


monoeg_g_propagate_error (struct GError * * dest, struct GError * src)
{
  if (dest == 0B) goto <D.5497>; else goto <D.5498>;
  <D.5497>:
  if (src != 0B) goto <D.5499>; else goto <D.5500>;
  <D.5499>:
  monoeg_g_error_free (src);
  <D.5500>:
  goto <D.5501>;
  <D.5498>:
  *dest = src;
  <D.5501>:
}


