소스 검색

Merge branch 'work2' into working

Sean Barrett 5 년 전
부모
커밋
f792c3b982
1개의 변경된 파일21개의 추가작업 그리고 8개의 파일을 삭제
  1. 21 8
      stb_sprintf.h

+ 21 - 8
stb_sprintf.h

@@ -18,6 +18,7 @@
 //    Leonard Ritter
 //    Leonard Ritter
 //    Stefano Zanotti
 //    Stefano Zanotti
 //    Adam Allison
 //    Adam Allison
+//    Kevin Schmidt
 //
 //
 // LICENSE:
 // LICENSE:
 //
 //
@@ -139,25 +140,37 @@ PERFORMANCE vs MSVC 2008 32-/64-bit (GCC is even slower than MSVC):
 "...512 char string..." ( 35.0x/32.5x faster!)
 "...512 char string..." ( 35.0x/32.5x faster!)
 */
 */
 
 
-#if defined(__has_feature)
-   #if __has_feature(address_sanitizer)
-      #define STBI__ASAN __attribute__((no_sanitize("address")))
+#if defined(__clang__)
+ #if defined(__has_feature) && defined(__has_attribute)
+  #if __has_feature(address_sanitizer)
+   #if __has_attribute(__no_sanitize__)
+    #define STBSP__ASAN __attribute__((__no_sanitize__("address")))
+   #elif __has_attribute(__no_sanitize_address__)
+    #define STBSP__ASAN __attribute__((__no_sanitize_address__))
+   #elif __has_attribute(__no_address_safety_analysis__)
+    #define STBSP__ASAN __attribute__((__no_address_safety_analysis__))
    #endif
    #endif
+  #endif
+ #endif
+#elif __GNUC__ >= 5 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)
+ #if __SANITIZE_ADDRESS__
+  #define STBSP__ASAN __attribute__((__no_sanitize_address__))
+ #endif
 #endif
 #endif
-#ifndef STBI__ASAN
-#define STBI__ASAN
+#ifndef STBSP__ASAN
+#define STBSP__ASAN
 #endif
 #endif
 
 
 #ifdef STB_SPRINTF_STATIC
 #ifdef STB_SPRINTF_STATIC
 #define STBSP__PUBLICDEC static
 #define STBSP__PUBLICDEC static
-#define STBSP__PUBLICDEF static STBI__ASAN
+#define STBSP__PUBLICDEF static STBSP__ASAN
 #else
 #else
 #ifdef __cplusplus
 #ifdef __cplusplus
 #define STBSP__PUBLICDEC extern "C"
 #define STBSP__PUBLICDEC extern "C"
-#define STBSP__PUBLICDEF extern "C" STBI__ASAN
+#define STBSP__PUBLICDEF extern "C" STBSP__ASAN
 #else
 #else
 #define STBSP__PUBLICDEC extern
 #define STBSP__PUBLICDEC extern
-#define STBSP__PUBLICDEF STBI__ASAN
+#define STBSP__PUBLICDEF STBSP__ASAN
 #endif
 #endif
 #endif
 #endif