// Check that -asan-use-private-alias and use_odr_indicator=1 silence the false
// positive ODR violation on Darwin with LTO.

// REQUIRES: lto

// RUN: %clangxx_asan -DPART=0 -c %s -o %t-1.o -flto -mllvm -asan-use-private-alias
// RUN: %clangxx_asan -DPART=1 -c %s -o %t-2.o -flto -mllvm -asan-use-private-alias
// RUN: %clangxx_asan %t-1.o %t-2.o -o %t -flto
// RUN: %env_asan_opts=use_odr_indicator=1 %run %t 2>&1 | FileCheck %s

#include <stdio.h>
#include <stdlib.h>
void putstest();

#if PART == 1

static const char *my_global = "test\n\00abc";

int main()
{
  fputs(my_global, stderr);
  putstest();
  fprintf(stderr, "Done.\n");
  return 0;
}

#else // PART == 1

static const char *my_other_global = "test\n\00abc";

void putstest()
{
  fputs(my_other_global, stderr);
}

#endif // PART == 1

// CHECK-NOT: ERROR: AddressSanitizer: odr-violation
// CHECK: Done.
