mirror of
https://github.com/ETLCPP/etl.git
synced 2026-10-28 18:07:10 +08:00
Added ETL_DISABLE_BUILTIN_FUNCTIONS to allow tests to to be run without using builtins
This commit is contained in:
parent
c6b8c99f8e
commit
14aae8c717
@ -881,7 +881,6 @@ namespace etl
|
||||
{
|
||||
public:
|
||||
|
||||
ETL_STATIC_ASSERT((etl::is_trivially_copyable<T>::value), "atomic<T> requires that T is trivially copyable");
|
||||
ETL_STATIC_ASSERT((etl::is_copy_constructible<T>::value), "atomic<T> requires that T is copy constructible");
|
||||
ETL_STATIC_ASSERT((etl::is_copy_assignable<T>::value), "atomic<T> requires that T is copy assignable");
|
||||
ETL_STATIC_ASSERT((etl::is_move_constructible<T>::value), "atomic<T> requires that T is move constructible");
|
||||
@ -963,14 +962,15 @@ namespace etl
|
||||
|
||||
(void)order;
|
||||
ETL_BUILTIN_LOCK;
|
||||
if (memcmp(&value, &expected, sizeof(T)) == 0)
|
||||
if (value == expected)
|
||||
{
|
||||
value = desired;
|
||||
result = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
result = false;
|
||||
expected = value;
|
||||
result = false;
|
||||
}
|
||||
ETL_BUILTIN_UNLOCK;
|
||||
|
||||
@ -2062,7 +2062,6 @@ namespace etl
|
||||
{
|
||||
public:
|
||||
|
||||
ETL_STATIC_ASSERT((etl::is_trivially_copyable<T>::value), "atomic<T> requires that T is trivially copyable");
|
||||
ETL_STATIC_ASSERT((etl::is_copy_constructible<T>::value), "atomic<T> requires that T is copy constructible");
|
||||
ETL_STATIC_ASSERT((etl::is_copy_assignable<T>::value), "atomic<T> requires that T is copy assignable");
|
||||
ETL_STATIC_ASSERT((etl::is_move_constructible<T>::value), "atomic<T> requires that T is move constructible");
|
||||
@ -2139,15 +2138,17 @@ namespace etl
|
||||
{
|
||||
bool result;
|
||||
|
||||
(void)order;
|
||||
ETL_BUILTIN_LOCK;
|
||||
if (memcmp(&value, &expected, sizeof(T)) == 0)
|
||||
if (value == expected)
|
||||
{
|
||||
value = desired;
|
||||
result = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
result = false;
|
||||
expected = value;
|
||||
result = false;
|
||||
}
|
||||
ETL_BUILTIN_UNLOCK;
|
||||
|
||||
|
||||
@ -46,9 +46,9 @@ SOFTWARE.
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(__has_builtin) && !defined(ETL_COMPILER_MICROSOFT) // Use __has_builtin to check for
|
||||
// existence of builtin functions?
|
||||
// Fix VS2022 intellisense issue.
|
||||
#if defined(__has_builtin) && !defined(ETL_DISABLE_BUILTIN_FUNCTIONS) && !defined(ETL_COMPILER_MICROSOFT) // Use __has_builtin to check for
|
||||
// existence of builtin functions?
|
||||
// Fix VS2022 intellisense issue.
|
||||
#if !defined(ETL_USING_BUILTIN_IS_ASSIGNABLE)
|
||||
#define ETL_USING_BUILTIN_IS_ASSIGNABLE __has_builtin(__is_assignable)
|
||||
#endif
|
||||
|
||||
@ -4946,7 +4946,7 @@ namespace etl
|
||||
{
|
||||
return false;
|
||||
}
|
||||
#elif ETL_USING_BUILTIN_IS_CONSTANT_EVALUATED == 1
|
||||
#elif ETL_USING_BUILTIN_IS_CONSTANT_EVALUATED
|
||||
// Fallback for C++20 on supported compilers
|
||||
return __builtin_is_constant_evaluated();
|
||||
#else
|
||||
|
||||
@ -447,6 +447,11 @@ if (ETL_USER_DEFINED_TYPE_TRAITS)
|
||||
target_compile_definitions(etl_tests PRIVATE -DETL_USER_DEFINED_TYPE_TRAITS)
|
||||
endif()
|
||||
|
||||
if (ETL_DISABLE_BUILTIN_FUNCTIONS)
|
||||
message(STATUS "Compiling with builtin functions disabled")
|
||||
target_compile_definitions(etl_tests PRIVATE -DETL_DISABLE_BUILTIN_FUNCTIONS)
|
||||
endif()
|
||||
|
||||
if (ETL_MESSAGES_ARE_NOT_VIRTUAL)
|
||||
message(STATUS "Compiling for non-virtual messages")
|
||||
target_compile_definitions(etl_tests PRIVATE -DETL_MESSAGES_ARE_NOT_VIRTUAL)
|
||||
|
||||
@ -59,8 +59,7 @@ for CXXSTD in 11 14 17 20 23 26; do
|
||||
-DETL_OPTIMISATION=-O0 \
|
||||
-DETL_CXX_STANDARD=$CXXSTD \
|
||||
-DETL_ENABLE_SANITIZER=OFF \
|
||||
-DETL_MESSAGES_ARE_NOT_VIRTUAL=OFF \
|
||||
-DETL_USE_BUILTIN_MEM_FUNCTIONS=ON ..
|
||||
-DETL_MESSAGES_ARE_NOT_VIRTUAL=OFF ..
|
||||
cmake --build .
|
||||
./etl_tests
|
||||
lcov --gcov-tool "$GCOV" $GCOV_ADD --capture --directory CMakeFiles/etl_tests.dir \
|
||||
|
||||
@ -148,7 +148,8 @@ RunCheck()
|
||||
local msg=$2
|
||||
local no_stl=$3
|
||||
local force_03=$4
|
||||
local build_dir=$5
|
||||
local disable_builtins=$5
|
||||
local build_dir=$6
|
||||
|
||||
if [ "$compiler_enabled" != "$cc_name" ] && [ "$compiler_enabled" != "All compilers" ]; then
|
||||
return
|
||||
@ -169,7 +170,7 @@ RunCheck()
|
||||
rm -rdf bgcc
|
||||
rm -rdf bclang
|
||||
cmake -E make_directory bgcc bclang
|
||||
CC=$cc CXX=$cxx cmake -E chdir $build_dir cmake -DNO_STL=$no_stl -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=$force_03 -DETL_CXX_STANDARD=$cxx_standard ..
|
||||
CC=$cc CXX=$cxx cmake -E chdir $build_dir cmake -DNO_STL=$no_stl -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=$force_03 -DETL_DISABLE_BUILTIN_FUNCTIONS=$disable_builtins -DETL_CXX_STANDARD=$cxx_standard ..
|
||||
cmake --build $build_dir
|
||||
if [ $? -eq 0 ]; then
|
||||
PassedCompilation
|
||||
@ -191,21 +192,27 @@ RunStandard()
|
||||
cxx_standard=$std
|
||||
|
||||
# GCC configurations
|
||||
RunCheck gcc "STL" OFF OFF bgcc
|
||||
RunCheck gcc "No STL" ON OFF bgcc
|
||||
RunCheck gcc "STL" OFF OFF OFF bgcc
|
||||
RunCheck gcc "No STL" ON OFF OFF bgcc
|
||||
|
||||
RunCheck gcc "STL - Disable builtins" OFF ON ON bgcc
|
||||
RunCheck gcc "No STL - Disable builtins" ON ON ON bgcc
|
||||
|
||||
if [ "$has_force_03" = "1" ]; then
|
||||
RunCheck gcc "STL - Force C++03" OFF ON bgcc
|
||||
RunCheck gcc "No STL - Force C++03" ON ON bgcc
|
||||
RunCheck gcc "STL - Force C++03" OFF ON OFF bgcc
|
||||
RunCheck gcc "No STL - Force C++03" ON ON OFF bgcc
|
||||
fi
|
||||
|
||||
# Clang configurations
|
||||
RunCheck clang "STL" OFF OFF bclang
|
||||
RunCheck clang "No STL" ON OFF bclang
|
||||
RunCheck clang "STL" OFF OFF OFF bclang
|
||||
RunCheck clang "No STL" ON OFF OFF bclang
|
||||
|
||||
RunCheck clang "STL - Disable builtins" OFF ON ON bclang
|
||||
RunCheck clang "No STL - Disable builtins" ON ON ON bclang
|
||||
|
||||
if [ "$has_force_03" = "1" ]; then
|
||||
RunCheck clang "STL - Force C++03" OFF ON bclang
|
||||
RunCheck clang "No STL - Force C++03" ON ON bclang
|
||||
RunCheck clang "STL - Force C++03" OFF ON OFF bclang
|
||||
RunCheck clang "No STL - Force C++03" ON ON OFF bclang
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
@ -17,7 +17,7 @@ TitleColour='\033[38;2;107;210;255m'
|
||||
HelpColour='\033[38;2;250;180;250m'
|
||||
NoColour='\033[0m'
|
||||
|
||||
ParseGitBranch()
|
||||
ParseGitBranch()
|
||||
{
|
||||
git rev-parse --abbrev-ref HEAD
|
||||
}
|
||||
@ -145,7 +145,7 @@ elif [ "$2" = "1" ]; then
|
||||
elif [ "$2" = "2" ]; then
|
||||
opt="-O2"
|
||||
elif [ "$2" = "3" ]; then
|
||||
opt="-O3"
|
||||
opt="-O3"
|
||||
else
|
||||
opt="-O0"
|
||||
fi
|
||||
@ -245,12 +245,12 @@ gcc ,STL - Non-virtual messages,.,cmake -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMP
|
||||
gcc ,STL - Force C++03 ,.,cmake -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_OPTIMISATION=$opt -DETL_CXX_STANDARD=$cxx_standard -DETL_ENABLE_SANITIZER=$sanitize -DETL_MESSAGES_ARE_NOT_VIRTUAL=OFF $verbose_cmake_flag ..
|
||||
gcc ,No STL ,.,cmake -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_OPTIMISATION=$opt -DETL_CXX_STANDARD=$cxx_standard -DETL_ENABLE_SANITIZER=$sanitize -DETL_MESSAGES_ARE_NOT_VIRTUAL=OFF $verbose_cmake_flag ..
|
||||
gcc ,No STL - Force C++03 ,.,cmake -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_OPTIMISATION=$opt -DETL_CXX_STANDARD=$cxx_standard -DETL_ENABLE_SANITIZER=$sanitize -DETL_MESSAGES_ARE_NOT_VIRTUAL=OFF $verbose_cmake_flag ..
|
||||
gcc ,No STL - Builtin mem functions ,.,cmake -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_OPTIMISATION=$opt -DETL_CXX_STANDARD=$cxx_standard -DETL_ENABLE_SANITIZER=$sanitize -DETL_MESSAGES_ARE_NOT_VIRTUAL=OFF -DETL_USE_BUILTIN_MEM_FUNCTIONS=ON $verbose_cmake_flag ..
|
||||
gcc ,No STL - Disable builtins ,.,cmake -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_OPTIMISATION=$opt -DETL_CXX_STANDARD=$cxx_standard -DETL_ENABLE_SANITIZER=$sanitize -DETL_MESSAGES_ARE_NOT_VIRTUAL=OFF -DETL_DISABLE_BUILTIN_FUNCTIONS=ON $verbose_cmake_flag ..
|
||||
clang,STL ,.,cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_OPTIMISATION=$opt -DETL_CXX_STANDARD=$cxx_standard -DETL_ENABLE_SANITIZER=$sanitize -DETL_MESSAGES_ARE_NOT_VIRTUAL=OFF $verbose_cmake_flag ..
|
||||
clang,STL - Force C++03 ,.,cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DNO_STL=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_OPTIMISATION=$opt -DETL_CXX_STANDARD=$cxx_standard -DETL_ENABLE_SANITIZER=$sanitize -DETL_MESSAGES_ARE_NOT_VIRTUAL=OFF $verbose_cmake_flag ..
|
||||
clang,No STL ,.,cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_OPTIMISATION=$opt -DETL_CXX_STANDARD=$cxx_standard -DETL_ENABLE_SANITIZER=$sanitize -DETL_MESSAGES_ARE_NOT_VIRTUAL=OFF $verbose_cmake_flag ..
|
||||
clang,No STL - Force C++03 ,.,cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_OPTIMISATION=$opt -DETL_CXX_STANDARD=$cxx_standard -DETL_ENABLE_SANITIZER=$sanitize -DETL_MESSAGES_ARE_NOT_VIRTUAL=OFF $verbose_cmake_flag ..
|
||||
clang,No STL - Builtin mem functions ,.,cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_OPTIMISATION=$opt -DETL_CXX_STANDARD=$cxx_standard -DETL_ENABLE_SANITIZER=$sanitize -DETL_MESSAGES_ARE_NOT_VIRTUAL=OFF -DETL_USE_BUILTIN_MEM_FUNCTIONS=ON $verbose_cmake_flag ..
|
||||
clang,No STL - Disable builtins ,.,cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DNO_STL=ON -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_OPTIMISATION=$opt -DETL_CXX_STANDARD=$cxx_standard -DETL_ENABLE_SANITIZER=$sanitize -DETL_MESSAGES_ARE_NOT_VIRTUAL=OFF -DETL_DISABLE_BUILTIN_FUNCTIONS=ON $verbose_cmake_flag ..
|
||||
gcc ,Initializer list test ,etl_initializer_list,cmake -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DETL_OPTIMISATION=$opt -DETL_CXX_STANDARD=$cxx_standard -DETL_ENABLE_SANITIZER=$sanitize $verbose_cmake_flag ..
|
||||
clang,Initializer list test ,etl_initializer_list,cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DETL_OPTIMISATION=$opt -DETL_CXX_STANDARD=$cxx_standard -DETL_ENABLE_SANITIZER=$sanitize $verbose_cmake_flag ..
|
||||
gcc ,Error macros 'log_errors' test,etl_error_handler/log_errors ,cmake -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DETL_OPTIMISATION=$opt -DETL_CXX_STANDARD=$cxx_standard -DETL_ENABLE_SANITIZER=$sanitize $verbose_cmake_flag ..
|
||||
|
||||
@ -17,6 +17,11 @@ if (ETL_USER_DEFINED_TYPE_TRAITS)
|
||||
add_definitions(-DETL_USER_DEFINED_TYPE_TRAITS)
|
||||
endif()
|
||||
|
||||
if (ETL_DISABLE_BUILTIN_FUNCTIONS)
|
||||
message(STATUS "Compiling with builtin functions disabled")
|
||||
add_definitions(-DETL_DISABLE_BUILTIN_FUNCTIONS)
|
||||
endif()
|
||||
|
||||
if (ETL_FORCE_TEST_CPP03_IMPLEMENTATION)
|
||||
message(STATUS "Force C++03 implementations")
|
||||
add_definitions(-DETL_FORCE_TEST_CPP03_IMPLEMENTATION)
|
||||
|
||||
@ -1943,6 +1943,7 @@ namespace
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
#if (ETL_USING_STL && ETL_CPP11_TYPE_TRAITS_IS_TRIVIAL_SUPPORTED) || ETL_USING_BUILTIN_IS_TRIVIALLY_COPYABLE
|
||||
TEST(test_start_lifetime_as)
|
||||
{
|
||||
struct quad_t
|
||||
@ -1968,6 +1969,7 @@ namespace
|
||||
CHECK_EQUAL(1, cp->a);
|
||||
CHECK_EQUAL(4, cp->d);
|
||||
}
|
||||
#endif
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_start_lifetime_as_array)
|
||||
|
||||
@ -792,6 +792,7 @@ namespace
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
#if ETL_USING_CPP17 && ETL_USING_STL || ETL_USING_BUILTIN_IS_STANDARD_LAYOUT
|
||||
TEST(test_is_standard_layout)
|
||||
{
|
||||
struct StandardLayout
|
||||
@ -818,8 +819,10 @@ namespace
|
||||
CHECK(!etl::is_standard_layout_v<NonStandardLayout>);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
//*************************************************************************
|
||||
#if (ETL_USING_CPP17 && ETL_USING_STL) || ETL_USING_BUILTIN_IS_TRIVIAL
|
||||
TEST(test_is_trivial)
|
||||
{
|
||||
struct Trivial
|
||||
@ -869,6 +872,7 @@ namespace
|
||||
CHECK(!etl::is_trivial_v<NonTrivialConstructor>);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
//*************************************************************************
|
||||
#if ETL_USING_BUILTIN_IS_LAYOUT_COMPATIBLE || (ETL_USING_STL && ETL_USING_CPP20 && defined(__cpp_lib_is_layout_compatible))
|
||||
@ -1265,6 +1269,7 @@ namespace
|
||||
#endif
|
||||
|
||||
//*************************************************************************
|
||||
#if ETL_USING_STL || ETL_USING_BUILTIN_IS_UNION
|
||||
TEST(test_is_union)
|
||||
{
|
||||
union Union
|
||||
@ -1292,8 +1297,10 @@ namespace
|
||||
CHECK(!etl::is_union_v<NonUnion>);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
//*************************************************************************
|
||||
#if ETL_USING_STL || ETL_USING_BUILTIN_IS_EMPTY
|
||||
TEST(test_is_empty)
|
||||
{
|
||||
struct Empty
|
||||
@ -1332,8 +1339,10 @@ namespace
|
||||
CHECK(!etl::is_empty_v<NotEmpty>);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
//*************************************************************************
|
||||
#if ETL_USING_STL || ETL_USING_BUILTIN_IS_POLYMORPHIC
|
||||
TEST(test_is_polymorphic)
|
||||
{
|
||||
struct NonPolymorphic
|
||||
@ -1373,8 +1382,10 @@ namespace
|
||||
CHECK(!etl::is_polymorphic_v<NonPolymorphic>);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
//*************************************************************************
|
||||
#if ETL_USING_STL || ETL_USING_BUILTIN_IS_ABSTRACT
|
||||
TEST(test_is_abstract)
|
||||
{
|
||||
struct NonAbstract
|
||||
@ -1422,9 +1433,10 @@ namespace
|
||||
CHECK(!etl::is_abstract_v<ConcreteDerived>);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
//*************************************************************************
|
||||
#if ETL_USING_CPP14
|
||||
#if ETL_USING_CPP14 && (ETL_USING_STL || ETL_USING_BUILTIN_IS_FINAL)
|
||||
TEST(test_is_final)
|
||||
{
|
||||
struct NonFinal
|
||||
@ -1481,7 +1493,7 @@ namespace
|
||||
#endif
|
||||
|
||||
//*************************************************************************
|
||||
#if ETL_USING_CPP17
|
||||
#if ETL_USING_CPP17 && (ETL_USING_STL || ETL_USING_BUILTIN_IS_AGGREGATE)
|
||||
TEST(test_is_aggregate)
|
||||
{
|
||||
struct Aggregate
|
||||
@ -1542,6 +1554,7 @@ namespace
|
||||
#endif
|
||||
|
||||
//*************************************************************************
|
||||
#if ETL_USING_STL || ETL_USING_BUILTIN_HAS_VIRTUAL_DESTRUCTOR
|
||||
TEST(test_has_virtual_destructor)
|
||||
{
|
||||
struct NonVirtualDestructor
|
||||
@ -1588,9 +1601,10 @@ namespace
|
||||
CHECK(!etl::has_virtual_destructor_v<NonVirtualDestructor>);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
//*************************************************************************
|
||||
#if ETL_USING_CPP17
|
||||
#if ETL_USING_CPP17 && (ETL_USING_STL || ETL_USING_BUILTIN_HAS_UNIQUE_OBJECT_REPRESENTATIONS)
|
||||
TEST(test_has_unique_object_representations)
|
||||
{
|
||||
struct NoPadding
|
||||
@ -2969,6 +2983,10 @@ namespace
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
#if ETL_CPP11_TYPE_TRAITS_IS_TRIVIAL_SUPPORTED || ETL_USING_BUILTIN_IS_TRIVIALLY_ASSIGNABLE
|
||||
template <typename T1, typename T2>
|
||||
using is_trivially_assignable = std::is_trivially_assignable<T1, T2>;
|
||||
#elif ETL_USING_BUILTIN_IS_TRIVIALLY_ASSIGNABLE
|
||||
TEST(test_is_trivially_assignable)
|
||||
{
|
||||
#if ETL_USING_CPP11 && !defined(ETL_USER_DEFINED_TYPE_TRAITS) \
|
||||
@ -2986,6 +3004,7 @@ namespace
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_is_trivially_copy_assignable)
|
||||
@ -3343,11 +3362,12 @@ namespace
|
||||
TEST(test_is_constant_evaluated)
|
||||
{
|
||||
constexpr bool c0 = etl::is_constant_evaluated();
|
||||
#if !ETL_USING_CPP23 && defined(ETL_COMPILER_MICROSOFT)
|
||||
#if (!ETL_USING_CPP23 && (defined(ETL_COMPILER_MICROSOFT) || !ETL_USING_BUILTIN_IS_CONSTANT_EVALUATED))
|
||||
// Not supported on MSVC via __has_builtin, see
|
||||
// determine_builtin_support.h
|
||||
CHECK_FALSE(c0);
|
||||
#else
|
||||
|
||||
CHECK_TRUE(c0);
|
||||
#endif
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user