* function.c (dump_stack_clash_frame_info): New function.
[official-gcc.git] / libsanitizer / sanitizer_common / sanitizer_mac.h
blob4bea069189f94d41418a6741031e62ce635b63cc
1 //===-- sanitizer_mac.h -----------------------------------------*- C++ -*-===//
2 //
3 // This file is distributed under the University of Illinois Open Source
4 // License. See LICENSE.TXT for details.
5 //
6 //===----------------------------------------------------------------------===//
7 //
8 // This file is shared between various sanitizers' runtime libraries and
9 // provides definitions for OSX-specific functions.
10 //===----------------------------------------------------------------------===//
11 #ifndef SANITIZER_MAC_H
12 #define SANITIZER_MAC_H
14 #include "sanitizer_common.h"
15 #include "sanitizer_platform.h"
16 #if SANITIZER_MAC
17 #include "sanitizer_posix.h"
19 namespace __sanitizer {
21 enum MacosVersion {
22 MACOS_VERSION_UNINITIALIZED = 0,
23 MACOS_VERSION_UNKNOWN,
24 MACOS_VERSION_LEOPARD,
25 MACOS_VERSION_SNOW_LEOPARD,
26 MACOS_VERSION_LION,
27 MACOS_VERSION_MOUNTAIN_LION,
28 MACOS_VERSION_MAVERICKS,
29 MACOS_VERSION_YOSEMITE,
30 MACOS_VERSION_UNKNOWN_NEWER
33 MacosVersion GetMacosVersion();
35 char **GetEnviron();
37 } // namespace __sanitizer
39 extern "C" {
40 static char __crashreporter_info_buff__[__sanitizer::kErrorMessageBufferSize] =
41 {};
42 static const char *__crashreporter_info__ __attribute__((__used__)) =
43 &__crashreporter_info_buff__[0];
44 asm(".desc ___crashreporter_info__, 0x10");
45 } // extern "C"
47 namespace __sanitizer {
48 static BlockingMutex crashreporter_info_mutex(LINKER_INITIALIZED);
50 INLINE void CRAppendCrashLogMessage(const char *msg) {
51 BlockingMutexLock l(&crashreporter_info_mutex);
52 internal_strlcat(__crashreporter_info_buff__, msg,
53 sizeof(__crashreporter_info_buff__)); }
54 } // namespace __sanitizer
56 #endif // SANITIZER_MAC
57 #endif // SANITIZER_MAC_H