[libcxx-commits] [libcxx] 3fc0d94 - [libc++][test] Make macro detection more friendly to MSVC (#113633)

via libcxx-commits libcxx-commits at lists.llvm.org
Fri Oct 25 22:47:02 PDT 2024


Author: A. Jiang
Date: 2024-10-26T13:46:59+08:00
New Revision: 3fc0d94ce57de2d0841e77c8fda7feef2923c4e0

URL: https://github.com/llvm/llvm-project/commit/3fc0d94ce57de2d0841e77c8fda7feef2923c4e0
DIFF: https://github.com/llvm/llvm-project/commit/3fc0d94ce57de2d0841e77c8fda7feef2923c4e0.diff

LOG: [libc++][test] Make macro detection more friendly to MSVC (#113633)

MSVC STL's test suite is a bit nervous about replacing non-macro-defined
identifiers with `0` (see also
https://learn.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-4-c4668?view=msvc-170).

On MSVC (and MS-compatible mode of other compilers), `long double` has
the same format (IEEE-754 binary64) as `double`, so it should be OK to
define `TEST_LONG_DOUBLE_IS_DOUBLE` when `_MSC_VER` is defined. Such
detection should be performed first.

Added: 
    

Modified: 
    libcxx/test/support/test_macros.h

Removed: 
    


################################################################################
diff  --git a/libcxx/test/support/test_macros.h b/libcxx/test/support/test_macros.h
index 5ef14e54dae237..1b6473b623c53b 100644
--- a/libcxx/test/support/test_macros.h
+++ b/libcxx/test/support/test_macros.h
@@ -511,7 +511,7 @@ inline Tp const& DoNotOptimize(Tp const& value) {
 #  define TEST_CONSTEXPR_OPERATOR_NEW
 #endif
 
-#if __SIZEOF_LONG_DOUBLE__ == __SIZEOF_DOUBLE__
+#if defined(_MSC_VER) || __SIZEOF_LONG_DOUBLE__ == __SIZEOF_DOUBLE__
 #  define TEST_LONG_DOUBLE_IS_DOUBLE
 #endif
 


        


More information about the libcxx-commits mailing list