// Regression test for https://code.google.com/p/address-sanitizer/issues/detail?id=368.

// RUN: %clang_asan %s -Wno-deprecated-declarations -flat_namespace -bundle -undefined suppress -o %t.bundle
// RUN: %clang_asan %s -Wno-deprecated-declarations -o %t -framework Foundation && not %run %t 2>&1 | FileCheck %s

#import <Foundation/Foundation.h>
#import <mach-o/dyld.h>

#include <string>

int main(int argc, char *argv[]) {
  for (int i = 0; i < 10; i++) {
    NSObjectFileImage im;

	std::string path = std::string(argv[0]) + ".bundle";
    NSObjectFileImageReturnCode rc =
        NSCreateObjectFileImageFromFile(path.c_str(), &im);
    if (rc != NSObjectFileImageSuccess) {
      fprintf(stderr, "Could not load bundle.\n");
      exit(-1);
    }

    NSModule handle = NSLinkModule(im, "a.bundle", 0);
    if (handle == 0) {
      fprintf(stderr, "Could not load bundle.\n");
      exit(-1);
    }
    printf("h: %p\n", handle);
  }

  char *ptr = (char *)malloc(10);
  ptr[10] = 'x';  // BOOM
}

// CHECK: AddressSanitizer: heap-buffer-overflow
// CHECK: WRITE of size 1
// CHECK: {{#0 .* in main}}
// CHECK: is located 0 bytes to the right of 10-byte region
