// RUN: %clang_scudo %s -o %t
// RUN: %run %t 2>&1

// Verifies that calling malloc in a preinit_array function succeeds, and that
// the resulting pointer can be freed at program termination.

#include <stdlib.h>
#include <string.h>

static void *global_p = nullptr;

void __init(void) {
  global_p = malloc(1);
  if (!global_p)
    exit(1);
}

void __fini(void) {
  if (global_p)
    free(global_p);
}

int main(int argc, char **argv)
{
  void *p = malloc(1);
  if (!p)
    return 1;
  free(p);

  return 0;
}

__attribute__((section(".preinit_array"), used))
  void (*__local_preinit)(void) = __init;
__attribute__((section(".fini_array"), used))
  void (*__local_fini)(void) = __fini;

