// RUN: %clang_cl -LD %s -Fe%t.dll -DHEAP_LIBRARY -MD // RUN: %clang_cl %s %t.lib -Fe%t -fsanitize=address -MT // RUN: %run %t 2>&1 | FileCheck %s // Check that ASan does not fail when releasing allocations that occurred within // an uninstrumented DLL. #ifdef HEAP_LIBRARY #include #include std::unique_ptr __declspec(dllexport) myglobal(new int(42)); BOOL WINAPI DllMain(PVOID h, DWORD reason, PVOID reserved) { return TRUE; } #else #include extern std::unique_ptr __declspec(dllimport) myglobal; int main(int argc, char **argv) { printf("myglobal: %d\n", *myglobal); return 0; } #endif // CHECK: myglobal: 42 // CHECK-NOT: ERROR: AddressSanitizer: attempting free on address which was not malloc()-ed