// FIXME: https://code.google.com/p/address-sanitizer/issues/detail?id=316
// XFAIL: android
//
// RUN: %clangxx_asan -DSHARED %s -shared -o %T/stack_trace_dlclose.so -fPIC
// RUN: %clangxx_asan -DSO_DIR=\"%T\" %s %libdl -o %t
// RUN: %env_asan_opts=exitcode=0 %run %t 2>&1 | FileCheck %s
// XFAIL: arm-linux-gnueabi
// XFAIL: armv7l-unknown-linux-gnueabihf

#include <assert.h>
#include <dlfcn.h>
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>

#include <sanitizer/common_interface_defs.h>

#ifdef SHARED
extern "C" {
void *foo() {
  return malloc(1);
}
}
#else
void *handle;

int main(int argc, char **argv) {
  void *handle = dlopen(SO_DIR "/stack_trace_dlclose.so", RTLD_LAZY);
  assert(handle);
  void *(*foo)() = (void *(*)())dlsym(handle, "foo");
  assert(foo);
  void *p = foo();
  assert(p);
  dlclose(handle);

  free(p);
  free(p);  // double-free

  return 0;
}
#endif

// CHECK: {{    #0 0x.* in (__interceptor_)?malloc}}
// CHECK: {{    #1 0x.* \(<unknown module>\)}}
// CHECK: {{    #2 0x.* in main}}
