monoeg_g_error_new (void * domain, gint code, const char * format)
{
  gchar * * D.4622;
  void * args.0;
  int D.4624;
  gchar * D.4627;
  struct GError * D.4628;
  void * args;
  struct GError * err;

  try
    {
      err = monoeg_malloc (12);
      err->domain = domain;
      err->code = code;
      __builtin_va_start (&args, 0);
      D.4622 = &err->message;
      args.0 = args;
      D.4624 = vasprintf (D.4622, format, args.0);
      if (D.4624 == -1) goto <D.4625>; else goto <D.4626>;
      <D.4625>:
      D.4627 = monoeg_g_strdup_printf ("internal: invalid format string %s", format);
      err->message = D.4627;
      <D.4626>:
      __builtin_va_end (&args);
      D.4628 = err;
      return D.4628;
    }
  finally
    {
      args = {CLOBBER};
    }
}


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

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


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

  if (error != 0B) goto <D.4633>; else goto <D.4634>;
  <D.4633>:
  D.4635 = *error;
  if (D.4635 != 0B) goto <D.4636>; else goto <D.4637>;
  <D.4636>:
  D.4635 = *error;
  monoeg_g_error_free (D.4635);
  *error = 0B;
  <D.4637>:
  <D.4634>:
}


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

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


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

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


monoeg_g_error_vnew (void * domain, gint code, const char * format, void * ap)
{
  gchar * * D.4646;
  int D.4647;
  gchar * D.4650;
  struct GError * D.4651;
  struct GError * err;

  err = monoeg_malloc (12);
  err->domain = domain;
  err->code = code;
  D.4646 = &err->message;
  D.4647 = vasprintf (D.4646, format, ap);
  if (D.4647 == -1) goto <D.4648>; else goto <D.4649>;
  <D.4648>:
  D.4650 = monoeg_g_strdup_printf ("internal: invalid format string %s", format);
  err->message = D.4650;
  <D.4649>:
  D.4651 = err;
  return D.4651;
}


monoeg_g_propagate_error (struct GError * * dest, struct GError * src)
{
  if (dest == 0B) goto <D.4653>; else goto <D.4654>;
  <D.4653>:
  if (src != 0B) goto <D.4655>; else goto <D.4656>;
  <D.4655>:
  monoeg_g_error_free (src);
  <D.4656>:
  goto <D.4657>;
  <D.4654>:
  *dest = src;
  <D.4657>:
}


