Fixed Address Sanitizer issues

This commit is contained in:
John Wellbelove 2023-04-28 10:32:58 +01:00
parent aa1d7f0f7f
commit 801c6735cf
25 changed files with 721 additions and 497 deletions

View File

@ -236,7 +236,7 @@ namespace etl
//*************************************************************************
iterator end() ETL_NOEXCEPT
{
return &_buffer[SIZE];
return _buffer + SIZE;
}
//*************************************************************************
@ -244,7 +244,7 @@ namespace etl
//*************************************************************************
ETL_CONSTEXPR const_iterator end() const ETL_NOEXCEPT
{
return &_buffer[SIZE];
return _buffer + SIZE;
}
//*************************************************************************
@ -252,7 +252,7 @@ namespace etl
//*************************************************************************
ETL_CONSTEXPR const_iterator cend() const ETL_NOEXCEPT
{
return &_buffer[SIZE];
return _buffer + SIZE;
}
//*************************************************************************

View File

@ -636,8 +636,8 @@ namespace etl
{
size_t operator()(const etl::array_view<T>& view) const
{
return etl::private_hash::generic_hash<size_t>(reinterpret_cast<const uint8_t*>(&view[0]),
reinterpret_cast<const uint8_t*>(&view[view.size()]));
return etl::private_hash::generic_hash<size_t>(reinterpret_cast<const uint8_t*>(view.data()),
reinterpret_cast<const uint8_t*>(view.data() + view.size()));
}
};
#endif

View File

@ -394,8 +394,10 @@ namespace etl
{
size_t operator()(const etl::array_wrapper<T, SIZE, ARRAY>& aw) const
{
return etl::private_hash::generic_hash<size_t>(reinterpret_cast<const uint8_t*>(&aw[0]),
reinterpret_cast<const uint8_t*>(&aw[aw.size()]));
const uint8_t* pb = reinterpret_cast<const uint8_t*>(aw.data());
const uint8_t* pe = pb + (SIZE * sizeof(T));
return etl::private_hash::generic_hash<size_t>(pb, pe);
}
};
#endif

View File

@ -148,15 +148,8 @@ namespace etl
static ETL_CONSTANT uint_least8_t IS_TRUNCATED = etl::bit<0>::value;
static ETL_CONSTANT uint_least8_t CLEAR_AFTER_USE = etl::bit<1>::value;
#if ETL_USING_CPP11
static constexpr size_type npos = etl::integral_limits<size_type>::max;
#else
enum
{
npos = etl::integral_limits<size_type>::max
};
#endif
static ETL_CONSTANT size_type npos = etl::integral_limits<size_type>::max;
};
template <typename T>

View File

@ -96,7 +96,7 @@ namespace etl
//***************************************************************************
/// integral_constant
template <typename T, const T VALUE>
template <typename T, T VALUE>
struct integral_constant
{
static const T value = VALUE;
@ -118,8 +118,8 @@ namespace etl
const T integral_constant<T, VALUE>::value;
#if ETL_USING_CPP17
template <typename T>
using integral_constant_v = std::integral_constant<T>::value;
template <typename T, T VALUE>
inline constexpr T integral_constant_v = etl::integral_constant<T, VALUE>::value;
#endif
#if ETL_USING_CPP11
@ -130,6 +130,11 @@ namespace etl
struct bool_constant : etl::integral_constant<bool, B> { };
#endif
#if ETL_USING_CPP17
template <bool B>
inline constexpr bool bool_constant_v = bool_constant<B>::value;
#endif
//***************************************************************************
/// negation
template <typename T>
@ -823,7 +828,7 @@ namespace etl
//***************************************************************************
/// integral_constant
///\ingroup type_traits
template <typename T, const T VALUE>
template <typename T, T VALUE>
struct integral_constant : std::integral_constant<T, VALUE> {};
/// integral_constant specialisations
@ -831,6 +836,11 @@ namespace etl
typedef integral_constant<bool, false> false_type;
typedef integral_constant<bool, true> true_type;
#if ETL_USING_CPP17
template <typename T, T VALUE>
inline constexpr T integral_constant_v = std::integral_constant<T, VALUE>::value;
#endif
#if ETL_USING_CPP17
template <bool B>
using bool_constant = std::bool_constant<B>;
@ -839,6 +849,11 @@ namespace etl
struct bool_constant : std::integral_constant<bool, B> { };
#endif
#if ETL_USING_CPP17
template <bool B>
inline constexpr bool bool_constant_v = bool_constant<B>::value;
#endif
//***************************************************************************
/// negation
///\ingroup type_traits

View File

@ -689,7 +689,7 @@ namespace etl
//*************************************************************************
const_iterator end() const
{
return const_iterator(static_cast<const data_node_t&>(terminal_node));
return const_iterator(terminal_node);
}
//*************************************************************************
@ -705,7 +705,7 @@ namespace etl
//*************************************************************************
const_iterator cend() const
{
return const_iterator(static_cast<const data_node_t&>(terminal_node));
return const_iterator(terminal_node);
}
//*************************************************************************
@ -721,7 +721,7 @@ namespace etl
//*************************************************************************
const_reverse_iterator rbegin() const
{
return const_reverse_iterator(static_cast<const data_node_t&>(terminal_node));
return const_reverse_iterator(terminal_node);
}
//*************************************************************************
@ -745,7 +745,7 @@ namespace etl
//*************************************************************************
const_reverse_iterator crbegin() const
{
return const_reverse_iterator(static_cast<const data_node_t&>(terminal_node));
return const_reverse_iterator(terminal_node);
}
//*************************************************************************

View File

@ -1034,8 +1034,8 @@ protected:
{
size_t operator()(const etl::poly_span<TBase, Extent>& view) const
{
return etl::private_hash::generic_hash<size_t>(reinterpret_cast<const uint8_t*>(&view[0]),
reinterpret_cast<const uint8_t*>(&view[view.size()]));
return etl::private_hash::generic_hash<size_t>(reinterpret_cast<const uint8_t*>(view.data()),
reinterpret_cast<const uint8_t*>(view.data() + view.size()));
}
};
#endif

View File

@ -939,8 +939,8 @@ namespace etl
{
size_t operator()(const etl::span<T>& view) const
{
return etl::private_hash::generic_hash<size_t>(reinterpret_cast<const uint8_t*>(&view[0]),
reinterpret_cast<const uint8_t*>(&view[view.size()]));
return etl::private_hash::generic_hash<size_t>(reinterpret_cast<const uint8_t*>(view.data()),
reinterpret_cast<const uint8_t*>(view.data() + view.size()));
}
};
#endif

View File

@ -458,8 +458,8 @@ namespace etl
{
size_t operator()(const etl::istring& text) const
{
return etl::private_hash::generic_hash<size_t>(reinterpret_cast<const uint8_t*>(&text[0]),
reinterpret_cast<const uint8_t*>(&text[text.size()]));
return etl::private_hash::generic_hash<size_t>(reinterpret_cast<const uint8_t*>(text.data()),
reinterpret_cast<const uint8_t*>(text.data() + text.size()));
}
};
@ -468,8 +468,8 @@ namespace etl
{
size_t operator()(const etl::string<SIZE>& text) const
{
return etl::private_hash::generic_hash<size_t>(reinterpret_cast<const uint8_t*>(&text[0]),
reinterpret_cast<const uint8_t*>(&text[text.size()]));
return etl::private_hash::generic_hash<size_t>(reinterpret_cast<const uint8_t*>(text.data()),
reinterpret_cast<const uint8_t*>(text.data() + text.size()));
}
};
@ -478,8 +478,8 @@ namespace etl
{
size_t operator()(const etl::string_ext& text) const
{
return etl::private_hash::generic_hash<size_t>(reinterpret_cast<const uint8_t*>(&text[0]),
reinterpret_cast<const uint8_t*>(&text[text.size()]));
return etl::private_hash::generic_hash<size_t>(reinterpret_cast<const uint8_t*>(text.data()),
reinterpret_cast<const uint8_t*>(text.data() + text.size()));
}
};
#endif

View File

@ -852,8 +852,8 @@ namespace etl
{
size_t operator()(const etl::string_view& text) const
{
return etl::private_hash::generic_hash<size_t>(reinterpret_cast<const uint8_t*>(&text[0]),
reinterpret_cast<const uint8_t*>(&text[text.size()]));
return etl::private_hash::generic_hash<size_t>(reinterpret_cast<const uint8_t*>(text.data()),
reinterpret_cast<const uint8_t*>(text.data() + text.size()));
}
};
@ -862,8 +862,8 @@ namespace etl
{
size_t operator()(const etl::wstring_view& text) const
{
return etl::private_hash::generic_hash<size_t>(reinterpret_cast<const uint8_t*>(&text[0]),
reinterpret_cast<const uint8_t*>(&text[text.size()]));
return etl::private_hash::generic_hash<size_t>(reinterpret_cast<const uint8_t*>(text.data()),
reinterpret_cast<const uint8_t*>(text.data() + text.size()));
}
};
@ -872,8 +872,8 @@ namespace etl
{
size_t operator()(const etl::u16string_view& text) const
{
return etl::private_hash::generic_hash<size_t>(reinterpret_cast<const uint8_t*>(&text[0]),
reinterpret_cast<const uint8_t*>(&text[text.size()]));
return etl::private_hash::generic_hash<size_t>(reinterpret_cast<const uint8_t*>(text.data()),
reinterpret_cast<const uint8_t*>(text.data() + text.size()));
}
};
@ -882,8 +882,8 @@ namespace etl
{
size_t operator()(const etl::u32string_view& text) const
{
return etl::private_hash::generic_hash<size_t>(reinterpret_cast<const uint8_t*>(&text[0]),
reinterpret_cast<const uint8_t*>(&text[text.size()]));
return etl::private_hash::generic_hash<size_t>(reinterpret_cast<const uint8_t*>(text.data()),
reinterpret_cast<const uint8_t*>(text.data() + text.size()));
}
};
#endif

View File

@ -84,7 +84,7 @@ namespace etl
//***************************************************************************
/// integral_constant
template <typename T, const T VALUE>
template <typename T, T VALUE>
struct integral_constant
{
static const T value = VALUE;
@ -102,12 +102,12 @@ namespace etl
typedef integral_constant<bool, false> false_type;
typedef integral_constant<bool, true> true_type;
template <typename T, const T VALUE>
template <typename T, T VALUE>
const T integral_constant<T, VALUE>::value;
#if ETL_USING_CPP17
template <typename T>
using integral_constant_v = std::integral_constant<T>::value;
template <typename T, T VALUE>
inline constexpr T integral_constant_v = etl::integral_constant<T, VALUE>::value;
#endif
#if ETL_USING_CPP11
@ -118,6 +118,11 @@ namespace etl
struct bool_constant : etl::integral_constant<bool, B> { };
#endif
#if ETL_USING_CPP17
template <bool B>
inline constexpr bool bool_constant_v = bool_constant<B>::value;
#endif
//***************************************************************************
/// negation
template <typename T>
@ -811,7 +816,7 @@ namespace etl
//***************************************************************************
/// integral_constant
///\ingroup type_traits
template <typename T, const T VALUE>
template <typename T, T VALUE>
struct integral_constant : std::integral_constant<T, VALUE> {};
/// integral_constant specialisations
@ -819,6 +824,11 @@ namespace etl
typedef integral_constant<bool, false> false_type;
typedef integral_constant<bool, true> true_type;
#if ETL_USING_CPP17
template <typename T, T VALUE>
inline constexpr T integral_constant_v = std::integral_constant<T, VALUE>::value;
#endif
#if ETL_USING_CPP17
template <bool B>
using bool_constant = std::bool_constant<B>;
@ -827,14 +837,17 @@ namespace etl
struct bool_constant : std::integral_constant<bool, B> { };
#endif
#if ETL_USING_CPP17
template <bool B>
inline constexpr bool bool_constant_v = bool_constant<B>::value;
#endif
//***************************************************************************
/// negation
///\ingroup type_traits
#if ETL_USING_CPP17
template <typename T>
struct negation : std::negation<T>
{
};
using negation = std::negation<T>;
#else
template <typename T>
struct negation : etl::bool_constant<!bool(T::value)>

View File

@ -438,8 +438,8 @@ namespace etl
{
size_t operator()(const etl::iu16string& text) const
{
return etl::private_hash::generic_hash<size_t>(reinterpret_cast<const uint8_t*>(&text[0]),
reinterpret_cast<const uint8_t*>(&text[text.size()]));
return etl::private_hash::generic_hash<size_t>(reinterpret_cast<const uint8_t*>(text.data()),
reinterpret_cast<const uint8_t*>(text.data() + text.size()));
}
};
@ -448,8 +448,8 @@ namespace etl
{
size_t operator()(const etl::u16string<SIZE>& text) const
{
return etl::private_hash::generic_hash<size_t>(reinterpret_cast<const uint8_t*>(&text[0]),
reinterpret_cast<const uint8_t*>(&text[text.size()]));
return etl::private_hash::generic_hash<size_t>(reinterpret_cast<const uint8_t*>(text.data()),
reinterpret_cast<const uint8_t*>(text.data() + text.size()));
}
};
@ -458,8 +458,8 @@ namespace etl
{
size_t operator()(const etl::u16string_ext& text) const
{
return etl::private_hash::generic_hash<size_t>(reinterpret_cast<const uint8_t*>(&text[0]),
reinterpret_cast<const uint8_t*>(&text[text.size()]));
return etl::private_hash::generic_hash<size_t>(reinterpret_cast<const uint8_t*>(text.data()),
reinterpret_cast<const uint8_t*>(text.data() + text.size()));
}
};
#endif

View File

@ -438,8 +438,8 @@ namespace etl
{
size_t operator()(const etl::iu32string& text) const
{
return etl::private_hash::generic_hash<size_t>(reinterpret_cast<const uint8_t*>(&text[0]),
reinterpret_cast<const uint8_t*>(&text[text.size()]));
return etl::private_hash::generic_hash<size_t>(reinterpret_cast<const uint8_t*>(text.data()),
reinterpret_cast<const uint8_t*>(text.data() + text.size()));
}
};
@ -448,8 +448,8 @@ namespace etl
{
size_t operator()(const etl::u32string<SIZE>& text) const
{
return etl::private_hash::generic_hash<size_t>(reinterpret_cast<const uint8_t*>(&text[0]),
reinterpret_cast<const uint8_t*>(&text[text.size()]));
return etl::private_hash::generic_hash<size_t>(reinterpret_cast<const uint8_t*>(text.data()),
reinterpret_cast<const uint8_t*>(text.data() + text.size()));
}
};
@ -458,8 +458,8 @@ namespace etl
{
size_t operator()(const etl::u32string_ext& text) const
{
return etl::private_hash::generic_hash<size_t>(reinterpret_cast<const uint8_t*>(&text[0]),
reinterpret_cast<const uint8_t*>(&text[text.size()]));
return etl::private_hash::generic_hash<size_t>(reinterpret_cast<const uint8_t*>(text.data()),
reinterpret_cast<const uint8_t*>(text.data() + text.size()));
}
};
#endif

View File

@ -438,8 +438,8 @@ namespace etl
{
size_t operator()(const etl::iwstring& text) const
{
return etl::private_hash::generic_hash<size_t>(reinterpret_cast<const uint8_t*>(&text[0]),
reinterpret_cast<const uint8_t*>(&text[text.size()]));
return etl::private_hash::generic_hash<size_t>(reinterpret_cast<const uint8_t*>(text.data()),
reinterpret_cast<const uint8_t*>(text.data() + text.size()));
}
};
@ -448,8 +448,8 @@ namespace etl
{
size_t operator()(const etl::wstring<SIZE>& text) const
{
return etl::private_hash::generic_hash<size_t>(reinterpret_cast<const uint8_t*>(&text[0]),
reinterpret_cast<const uint8_t*>(&text[text.size()]));
return etl::private_hash::generic_hash<size_t>(reinterpret_cast<const uint8_t*>(text.data()),
reinterpret_cast<const uint8_t*>(text.data() + text.size()));
}
};
@ -458,8 +458,8 @@ namespace etl
{
size_t operator()(const etl::wstring_ext& text) const
{
return etl::private_hash::generic_hash<size_t>(reinterpret_cast<const uint8_t*>(&text[0]),
reinterpret_cast<const uint8_t*>(&text[text.size()]));
return etl::private_hash::generic_hash<size_t>(reinterpret_cast<const uint8_t*>(text.data()),
reinterpret_cast<const uint8_t*>(text.data() + text.size()));
}
};
#endif

View File

@ -16,10 +16,10 @@ add_executable(etl_tests
test_algorithm.cpp
test_alignment.cpp
test_array.cpp
test_array_view.cpp
test_array_view.cpp
test_array_wrapper.cpp
test_atomic.cpp
test_binary.cpp
test_binary.cpp
test_bip_buffer_spsc_atomic.cpp
test_bit.cpp
test_bitset_legacy.cpp
@ -147,7 +147,7 @@ add_executable(etl_tests
test_largest.cpp
test_limiter.cpp
test_limits.cpp
test_list.cpp
test_list.cpp
test_list_shared_pool.cpp
test_make_string.cpp
test_map.cpp
@ -156,7 +156,7 @@ add_executable(etl_tests
test_mem_cast.cpp
test_mem_cast_ptr.cpp
test_memory.cpp
test_message_broker.cpp
test_message_broker.cpp
test_message_bus.cpp
test_message_packet.cpp
test_message_router.cpp
@ -164,7 +164,7 @@ add_executable(etl_tests
test_message_timer.cpp
test_message_timer_atomic.cpp
test_message_timer_interrupt.cpp
test_message_timer_locked.cpp
test_message_timer_locked.cpp
test_multimap.cpp
test_multiset.cpp
test_multi_array.cpp
@ -288,7 +288,7 @@ if (ETL_CXX_STANDARD MATCHES "98")
message(STATUS "Compiling for C++98")
set_property(TARGET etl_tests PROPERTY CXX_STANDARD 98)
elseif (ETL_CXX_STANDARD MATCHES "03")
message(STATUS "Compiling for C++98")
message(STATUS "Compiling for C++03 (C++98)")
set_property(TARGET etl_tests PROPERTY CXX_STANDARD 98)
elseif (ETL_CXX_STANDARD MATCHES "11")
message(STATUS "Compiling for C++11")
@ -353,6 +353,7 @@ if ((CMAKE_CXX_COMPILER_ID MATCHES "GNU") OR (CMAKE_CXX_COMPILER_ID MATCHES "Cla
PRIVATE
-fsanitize=address,undefined,bounds
-fno-omit-frame-pointer
-fno-common
-Wall
-Wextra
-Werror

View File

@ -1,20 +1,77 @@
#!/bin/sh
clear
echo -e
testname="Test Name Not Set"
FailColour='\033[38;2;255;128;128m'
PassColour='\033[38;2;128;255;128m'
TitleColour='\033[38;2;100;173;254m'
NoColour='\033[0m'
SetCxxStandard()
{
cxx_standard=$1
}
SetTestName()
{
testname=$1
}
PrintHeader()
{
echo "${TitleColour}"
echo "----------------------------------------------------------------------------" | tee -a log.txt
echo " $testname" | tee -a log.txt
echo " Language standard : C++${cxx_standard}" | tee -a log.txt
echo "----------------------------------------------------------------------------" | tee -a log.txt
echo "${NoColour}"
}
PassedCompilation()
{
echo "${PassColour}"
echo "-----------------------------------------------" | tee -a log.txt
echo " Passed Compilation - $testname" | tee -a ../log.txt
echo "-----------------------------------------------" | tee -a log.txt
echo "${NoColour}"
}
FailedCompilation()
{
echo "${FailColour}"
echo "****************************************************************************" | tee -a log.txt
echo "**** Failed Compilation $testname" | tee -a log.txt
echo "****************************************************************************" | tee -a ../log.txt
echo "${NoColour}"
}
ChecksCompleted()
{
echo "${PassColour}"
echo "-----------------------------------------------" | tee -a log.txt
echo " All Checks Completed OK" | tee -a log.txt
echo "-----------------------------------------------" | tee -a log.txt
echo "${NoColour}"
}
cd sanity-check || exit 1
echo "" > log.txt
export CMAKE_BUILD_PARALLEL_LEVEL=4
echo ""
echo "Using "${CMAKE_BUILD_PARALLEL_LEVEL}" jobs"
###############################################################################
cd c++03 || exit 1
{ echo ""
echo "Using "${CMAKE_BUILD_PARALLEL_LEVEL}" jobs"
echo "-----------------------------------------------"
echo " C++03"
echo "-----------------------------------------------"
echo "GCC - STL"; } | tee -a ../log.txt
SetCxxStandard "03 (98)"
SetTestName "GCC - STL"
PrintHeader
rm -rdf bgcc
rm -rdf bclang
cmake -E make_directory bgcc bclang
@ -22,13 +79,14 @@ g++ --version | head --lines=1 | tee -a ../log.txt
CC=gcc CXX=g++ cmake -E chdir bgcc cmake -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF ..
cmake --build bgcc
if [ $? -eq 0 ]; then
echo "Passed"
PassedCompilation
else
echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt
FailedCompilation
exit $?
fi
{ echo ""; echo "GCC - No STL"; } | tee -a ../log.txt
SetTestName "GCC - No STL"
PrintHeader
rm -rdf bgcc
rm -rdf bclang
cmake -E make_directory bgcc bclang
@ -36,13 +94,14 @@ g++ --version | head --lines=1 | tee -a ../log.txt
CC=gcc CXX=g++ cmake -E chdir bgcc cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF ..
cmake --build bgcc
if [ $? -eq 0 ]; then
echo "Passed"
PassedCompilation
else
echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt
FailedCompilation
exit $?
fi
##{ echo ""; echo "GCC - No STL - User defined traits"; } | tee -a ../log.txt
##SetTestName "GCC - No STL - User defined traits"
# PrintHeader
#rm -rdf bgcc
#rm -rdf bclang
#cmake -E make_directory bgcc bclang
@ -50,13 +109,14 @@ fi
#CC=gcc CXX=g++ cmake -E chdir bgcc cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=ON -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF ..
#cmake --build bgcc
#if [ $? -eq 0 ]; then
# echo "Passed"
# PassedCompilation
#else
# echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt
# FailedCompilation
# exit $?
#fi
{ echo ""; echo "Clang - STL"; } | tee -a ../log.txt
SetTestName "Clang - STL"
PrintHeader
rm -rdf bgcc
rm -rdf bclang
cmake -E make_directory bgcc bclang
@ -64,13 +124,14 @@ clang++ --version | head --lines=1 | tee -a ../log.txt
CC=clang CXX=clang++ cmake -E chdir bclang cmake -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF ..
cmake --build bclang
if [ $? -eq 0 ]; then
echo "Passed"
PassedCompilation
else
echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt
FailedCompilation
exit $?
fi
{ echo ""; echo "Clang - No STL"; } | tee -a ../log.txt
SetTestName "Clang - No STL"
PrintHeader
rm -rdf bgcc
rm -rdf bclang
cmake -E make_directory bgcc bclang
@ -78,13 +139,14 @@ clang++ --version | head --lines=1 | tee -a ../log.txt
CC=clang CXX=clang++ cmake -E chdir bclang cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF ..
cmake --build bclang
if [ $? -eq 0 ]; then
echo "Passed"
PassedCompilation
else
echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt
FailedCompilation
exit $?
fi
##{ echo ""; echo "Clang - No STL - User defined traits"; } | tee -a ../log.txt
#SetTestName "Clang - No STL - User defined traits"
#PrintHeader
#rm -rdf bgcc
#rm -rdf bclang
#cmake -E make_directory bgcc bclang
@ -92,20 +154,19 @@ fi
#CC=clang CXX=clang++ cmake -E chdir bclang cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=ON -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF ..
#cmake --build bclang
#if [ $? -eq 0 ]; then
# echo "Passed"
# PassedCompilation
#else
# echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt
# FailedCompilation
# exit $?
#fi
###############################################################################
cd ../c++11 || exit 1
{ echo ""
echo "-----------------------------------------------"
echo " C++11"
echo "-----------------------------------------------"
echo "GCC - STL"; } | tee -a ../log.txt
SetCxxStandard "11"
SetTestName "GCC - STL"
PrintHeader
rm -rdf bgcc
rm -rdf bclang
cmake -E make_directory bgcc bclang
@ -113,13 +174,14 @@ g++ --version | head --lines=1 | tee -a ../log.txt
CC=gcc CXX=g++ cmake -E chdir bgcc cmake -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF ..
cmake --build bgcc
if [ $? -eq 0 ]; then
echo "Passed"
PassedCompilation
else
echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt
FailedCompilation
exit $?
fi
{ echo ""; echo "GCC - STL - Force C++03"; } | tee -a ../log.txt
SetTestName "GCC - STL - Force C++03"
PrintHeader
rm -rdf bgcc
rm -rdf bclang
cmake -E make_directory bgcc bclang
@ -127,13 +189,14 @@ g++ --version | head --lines=1 | tee -a ../log.txt
CC=gcc CXX=g++ cmake -E chdir bgcc cmake -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON ..
cmake --build bgcc
if [ $? -eq 0 ]; then
echo "Passed"
PassedCompilation
else
echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt
FailedCompilation
exit $?
fi
{ echo ""; echo "GCC - No STL"; } | tee -a ../log.txt
SetTestName "GCC - No STL"
PrintHeader
rm -rdf bgcc
rm -rdf bclang
cmake -E make_directory bgcc bclang
@ -141,251 +204,14 @@ g++ --version | head --lines=1 | tee -a ../log.txt
CC=gcc CXX=g++ cmake -E chdir bgcc cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF ..
cmake --build bgcc
if [ $? -eq 0 ]; then
echo "Passed"
PassedCompilation
else
echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt
FailedCompilation
exit $?
fi
##{ echo ""; echo "GCC - No STL - User defined traits"; } | tee -a ../log.txt
#rm -rdf bgcc
#rm -rdf bclang
#cmake -E make_directory bgcc bclang
#g++ --version | head --lines=1 | tee -a ../log.txt
#CC=gcc CXX=g++ cmake -E chdir bgcc cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=ON -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF ..
#cmake --build bgcc
#if [ $? -eq 0 ]; then
# echo "Passed"
#else
# echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt
# exit $?
#fi
{ echo ""; echo "Clang - STL"; } | tee -a ../log.txt
rm -rdf bgcc
rm -rdf bclang
cmake -E make_directory bgcc bclang
clang++ --version | head --lines=1 | tee -a ../log.txt
CC=clang CXX=clang++ cmake -E chdir bclang cmake -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF ..
cmake --build bclang
if [ $? -eq 0 ]; then
echo "Passed"
else
echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt
exit $?
fi
{ echo ""; echo "Clang - STL - Force C++03"; } | tee -a ../log.txt
rm -rdf bgcc
rm -rdf bclang
cmake -E make_directory bgcc bclang
clang++ --version | head --lines=1 | tee -a ../log.txt
CC=clang CXX=clang++ cmake -E chdir bclang cmake -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON ..
cmake --build bclang
if [ $? -eq 0 ]; then
echo "Passed"
else
echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt
exit $?
fi
{ echo ""; echo "Clang - No STL"; } | tee -a ../log.txt
rm -rdf bgcc
rm -rdf bclang
cmake -E make_directory bgcc bclang
clang++ --version | head --lines=1 | tee -a ../log.txt
CC=clang CXX=clang++ cmake -E chdir bclang cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF ..
cmake --build bclang
if [ $? -eq 0 ]; then
echo "Passed"
else
echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt
exit $?
fi
##{ echo ""; echo "Clang - No STL - User defined traits"; } | tee -a ../log.txt
#rm -rdf bgcc
#rm -rdf bclang
#cmake -E make_directory bgcc bclang
#clang++ --version | head --lines=1 | tee -a ../log.txt
#CC=clang CXX=clang++ cmake -E chdir bclang cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=ON -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF ..
#cmake --build bclang
#if [ $? -eq 0 ]; then
# echo "Passed"
#else
# echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt
# exit $?
#fi
###############################################################################
cd ../c++14 || exit 1
{ echo ""
echo "-----------------------------------------------"
echo " C++14"
echo "-----------------------------------------------"
echo "GCC - STL"; } | tee -a ../log.txt
rm -rdf bgcc
rm -rdf bclang
cmake -E make_directory bgcc bclang
g++ --version | head --lines=1 | tee -a ../log.txt
CC=gcc CXX=g++ cmake -E chdir bgcc cmake -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF ..
cmake --build bgcc
if [ $? -eq 0 ]; then
echo "Passed"
else
echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt
exit $?
fi
{ echo ""; echo "GCC - STL - Force C++03"; } | tee -a ../log.txt
rm -rdf bgcc
rm -rdf bclang
cmake -E make_directory bgcc bclang
g++ --version | head --lines=1 | tee -a ../log.txt
CC=gcc CXX=g++ cmake -E chdir bgcc cmake -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON ..
cmake --build bgcc
if [ $? -eq 0 ]; then
echo "Passed"
else
echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt
exit $?
fi
{ echo ""; echo "GCC - No STL"; } | tee -a ../log.txt
rm -rdf bgcc
rm -rdf bclang
cmake -E make_directory bgcc bclang
g++ --version | head --lines=1 | tee -a ../log.txt
CC=gcc CXX=g++ cmake -E chdir bgcc cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF ..
cmake --build bgcc
if [ $? -eq 0 ]; then
echo "Passed"
else
echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt
exit $?
fi
##{ echo ""; echo "GCC - No STL - User defined traits"; } | tee -a ../log.txt
#rm -rdf bgcc
#rm -rdf bclang
#cmake -E make_directory bgcc bclang
#g++ --version | head --lines=1 | tee -a ../log.txt
#CC=gcc CXX=g++ cmake -E chdir bgcc cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=ON -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF ..
#cmake --build bgcc
#if [ $? -eq 0 ]; then
# echo "Passed"
#else
# echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt
# exit $?
#fi
{ echo ""; echo "Clang - STL"; } | tee -a ../log.txt
rm -rdf bgcc
rm -rdf bclang
cmake -E make_directory bgcc bclang
clang++ --version | head --lines=1 | tee -a ../log.txt
CC=clang CXX=clang++ cmake -E chdir bclang cmake -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF ..
cmake --build bclang
if [ $? -eq 0 ]; then
echo "Passed"
else
echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt
exit $?
fi
{ echo ""; echo "Clang - STL - Force C++03"; } | tee -a ../log.txt
rm -rdf bgcc
rm -rdf bclang
cmake -E make_directory bgcc bclang
clang++ --version | head --lines=1 | tee -a ../log.txt
CC=clang CXX=clang++ cmake -E chdir bclang cmake -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON ..
cmake --build bclang
if [ $? -eq 0 ]; then
echo "Passed"
else
echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt
exit $?
fi
{ echo ""; echo "Clang - No STL"; } | tee -a ../log.txt
rm -rdf bgcc
rm -rdf bclang
cmake -E make_directory bgcc bclang
clang++ --version | head --lines=1 | tee -a ../log.txt
CC=clang CXX=clang++ cmake -E chdir bclang cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF ..
cmake --build bclang
if [ $? -eq 0 ]; then
echo "Passed"
else
echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt
exit $?
fi
##{ echo ""; echo "Clang - No STL - User defined traits"; } | tee -a ../log.txt
#rm -rdf bgcc
#rm -rdf bclang
#cmake -E make_directory bgcc bclang
#clang++ --version | head --lines=1 | tee -a ../log.txt
#CC=clang CXX=clang++ cmake -E chdir bclang cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=ON -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF ..
#cmake --build bclang
#if [ $? -eq 0 ]; then
# echo "Passed"
#else
# echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt
# exit $?
#fi
###############################################################################
cd ../c++17 || exit 1
{ echo ""
echo "-----------------------------------------------"
echo " C++17 "
echo "-----------------------------------------------"
echo "GCC - STL"; } | tee -a ../log.txt
rm -rdf bgcc
rm -rdf bclang
cmake -E make_directory bgcc bclang
g++ --version | head --lines=1 | tee -a ../log.txt
CC=gcc CXX=g++ cmake -E chdir bgcc cmake -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF ..
cmake --build bgcc
if [ $? -eq 0 ]; then
echo "Passed"
else
echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt
exit $?
fi
{ echo ""; echo "GCC - STL - Force C++03"; } | tee -a ../log.txt
rm -rdf bgcc
rm -rdf bclang
cmake -E make_directory bgcc bclang
g++ --version | head --lines=1 | tee -a ../log.txt
CC=gcc CXX=g++ cmake -E chdir bgcc cmake -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON ..
cmake --build bgcc
if [ $? -eq 0 ]; then
echo "Passed"
else
echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt
exit $?
fi
{ echo ""; echo "GCC - No STL"; } | tee -a ../log.txt
rm -rdf bgcc
rm -rdf bclang
cmake -E make_directory bgcc bclang
g++ --version | head --lines=1 | tee -a ../log.txt
CC=gcc CXX=g++ cmake -E chdir bgcc cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF ..
cmake --build bgcc
if [ $? -eq 0 ]; then
echo "Passed"
else
echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt
exit $?
fi
{ echo ""; echo "GCC - No STL - Force C++03"; } | tee -a ../log.txt
SetTestName "GCC - No STL - Force C++03"
PrintHeader
rm -rdf bgcc
rm -rdf bclang
cmake -E make_directory bgcc bclang
@ -393,13 +219,14 @@ g++ --version | head --lines=1 | tee -a ../log.txt
CC=gcc CXX=g++ cmake -E chdir bgcc cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON ..
cmake --build bgcc
if [ $? -eq 0 ]; then
echo "Passed"
PassedCompilation
else
echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt
FailedCompilation
exit $?
fi
##{ echo ""; echo "GCC - No STL - User defined traits"; } | tee -a ../log.txt
#SetTestName "GCC - No STL - User defined traits"
#PrintHeader
#rm -rdf bgcc
#rm -rdf bclang
#cmake -E make_directory bgcc bclang
@ -407,13 +234,14 @@ fi
#CC=gcc CXX=g++ cmake -E chdir bgcc cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=ON -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF ..
#cmake --build bgcc
#if [ $? -eq 0 ]; then
# echo "Passed"
# PassedCompilation
#else
# echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt
# FailedCompilation
# exit $?
#fi
{ echo ""; echo "Clang - STL"; } | tee -a ../log.txt
SetTestName "Clang - STL"
PrintHeader
rm -rdf bgcc
rm -rdf bclang
cmake -E make_directory bgcc bclang
@ -421,13 +249,14 @@ clang++ --version | head --lines=1 | tee -a ../log.txt
CC=clang CXX=clang++ cmake -E chdir bclang cmake -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF ..
cmake --build bclang
if [ $? -eq 0 ]; then
echo "Passed"
PassedCompilation
else
echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt
FailedCompilation
exit $?
fi
{ echo ""; echo "Clang - STL - Force C++03"; } | tee -a ../log.txt
SetTestName "Clang - STL - Force C++03"
PrintHeader
rm -rdf bgcc
rm -rdf bclang
cmake -E make_directory bgcc bclang
@ -435,13 +264,14 @@ clang++ --version | head --lines=1 | tee -a ../log.txt
CC=clang CXX=clang++ cmake -E chdir bclang cmake -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON ..
cmake --build bclang
if [ $? -eq 0 ]; then
echo "Passed"
PassedCompilation
else
echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt
FailedCompilation
exit $?
fi
{ echo ""; echo "Clang - No STL"; } | tee -a ../log.txt
SetTestName "Clang - No STL"
PrintHeader
rm -rdf bgcc
rm -rdf bclang
cmake -E make_directory bgcc bclang
@ -449,13 +279,29 @@ clang++ --version | head --lines=1 | tee -a ../log.txt
CC=clang CXX=clang++ cmake -E chdir bclang cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF ..
cmake --build bclang
if [ $? -eq 0 ]; then
echo "Passed"
PassedCompilation
else
echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt
FailedCompilation
exit $?
fi
##{ echo ""; echo "Clang - No STL - User defined traits"; } | tee -a ../log.txt
SetTestName "Clang - No STL - Force C++03"
PrintHeader
rm -rdf bgcc
rm -rdf bclang
cmake -E make_directory bgcc bclang
clang++ --version | head --lines=1 | tee -a ../log.txt
CC=clang CXX=clang++ cmake -E chdir bclang cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON ..
cmake --build bclang
if [ $? -eq 0 ]; then
PassedCompilation
else
FailedCompilation
exit $?
fi
#SetTestName "Clang - No STL - User defined traits"
#PrintHeader
#rm -rdf bgcc
#rm -rdf bclang
#cmake -E make_directory bgcc bclang
@ -463,13 +309,320 @@ fi
#CC=clang CXX=clang++ cmake -E chdir bclang cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=ON -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF ..
#cmake --build bclang
#if [ $? -eq 0 ]; then
# echo "Passed"
# PassedCompilation
#else
# echo "****************\n**** Failed ****\n****************" | tee -a ../log.txt
# FailedCompilation
# exit $?
#fi
{ echo ""
echo "-----------------------------------------------"
echo " All Checks Completed OK"
echo "-----------------------------------------------"; } | tee -a ../log.txt
###############################################################################
cd ../c++14 || exit 1
SetCxxStandard "14"
SetTestName "GCC - STL"
PrintHeader
rm -rdf bgcc
rm -rdf bclang
cmake -E make_directory bgcc bclang
g++ --version | head --lines=1 | tee -a ../log.txt
CC=gcc CXX=g++ cmake -E chdir bgcc cmake -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF ..
cmake --build bgcc
if [ $? -eq 0 ]; then
PassedCompilation
else
FailedCompilation
exit $?
fi
SetTestName "GCC - STL - Force C++03"
PrintHeader
rm -rdf bgcc
rm -rdf bclang
cmake -E make_directory bgcc bclang
g++ --version | head --lines=1 | tee -a ../log.txt
CC=gcc CXX=g++ cmake -E chdir bgcc cmake -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON ..
cmake --build bgcc
if [ $? -eq 0 ]; then
PassedCompilation
else
FailedCompilation
exit $?
fi
SetTestName "GCC - No STL"
PrintHeader
rm -rdf bgcc
rm -rdf bclang
cmake -E make_directory bgcc bclang
g++ --version | head --lines=1 | tee -a ../log.txt
CC=gcc CXX=g++ cmake -E chdir bgcc cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF ..
cmake --build bgcc
if [ $? -eq 0 ]; then
PassedCompilation
else
FailedCompilation
exit $?
fi
SetTestName "GCC - No STL - Force C++03"
PrintHeader
rm -rdf bgcc
rm -rdf bclang
cmake -E make_directory bgcc bclang
g++ --version | head --lines=1 | tee -a ../log.txt
CC=gcc CXX=g++ cmake -E chdir bgcc cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON ..
cmake --build bgcc
if [ $? -eq 0 ]; then
PassedCompilation
else
FailedCompilation
exit $?
fi
#SetTestName "GCC - No STL - User defined traits"
#PrintHeader
#rm -rdf bgcc
#rm -rdf bclang
#cmake -E make_directory bgcc bclang
#g++ --version | head --lines=1 | tee -a ../log.txt
#CC=gcc CXX=g++ cmake -E chdir bgcc cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=ON -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF ..
#cmake --build bgcc
#if [ $? -eq 0 ]; then
# PassedCompilation
#else
# FailedCompilation
# exit $?
#fi
SetTestName "Clang - STL"
PrintHeader
rm -rdf bgcc
rm -rdf bclang
cmake -E make_directory bgcc bclang
clang++ --version | head --lines=1 | tee -a ../log.txt
CC=clang CXX=clang++ cmake -E chdir bclang cmake -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF ..
cmake --build bclang
if [ $? -eq 0 ]; then
PassedCompilation
else
FailedCompilation
exit $?
fi
SetTestName "Clang - STL - Force C++03"
PrintHeader
rm -rdf bgcc
rm -rdf bclang
cmake -E make_directory bgcc bclang
clang++ --version | head --lines=1 | tee -a ../log.txt
CC=clang CXX=clang++ cmake -E chdir bclang cmake -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON ..
cmake --build bclang
if [ $? -eq 0 ]; then
PassedCompilation
else
FailedCompilation
exit $?
fi
SetTestName "Clang - No STL"
PrintHeader
rm -rdf bgcc
rm -rdf bclang
cmake -E make_directory bgcc bclang
clang++ --version | head --lines=1 | tee -a ../log.txt
CC=clang CXX=clang++ cmake -E chdir bclang cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF ..
cmake --build bclang
if [ $? -eq 0 ]; then
PassedCompilation
else
FailedCompilation
exit $?
fi
SetTestName "Clang - No STL - Force C++03"
PrintHeader
rm -rdf bgcc
rm -rdf bclang
cmake -E make_directory bgcc bclang
clang++ --version | head --lines=1 | tee -a ../log.txt
CC=clang CXX=clang++ cmake -E chdir bclang cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON ..
cmake --build bclang
if [ $? -eq 0 ]; then
PassedCompilation
else
FailedCompilation
exit $?
fi
#SetTestName "Clang - No STL - User defined traits"
#PrintHeader
#rm -rdf bgcc
#rm -rdf bclang
#cmake -E make_directory bgcc bclang
#clang++ --version | head --lines=1 | tee -a ../log.txt
#CC=clang CXX=clang++ cmake -E chdir bclang cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=ON -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF ..
#cmake --build bclang
#if [ $? -eq 0 ]; then
# PassedCompilation
#else
# FailedCompilation
# exit $?
#fi
###############################################################################
cd ../c++17 || exit 1
SetCxxStandard "17"
SetTestName "GCC - STL"
PrintHeader
rm -rdf bgcc
rm -rdf bclang
cmake -E make_directory bgcc bclang
g++ --version | head --lines=1 | tee -a ../log.txt
CC=gcc CXX=g++ cmake -E chdir bgcc cmake -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF ..
cmake --build bgcc
if [ $? -eq 0 ]; then
PassedCompilation
else
FailedCompilation
exit $?
fi
SetTestName "GCC - STL - Force C++03"
PrintHeader
rm -rdf bgcc
rm -rdf bclang
cmake -E make_directory bgcc bclang
g++ --version | head --lines=1 | tee -a ../log.txt
CC=gcc CXX=g++ cmake -E chdir bgcc cmake -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON ..
cmake --build bgcc
if [ $? -eq 0 ]; then
PassedCompilation
else
FailedCompilation
exit $?
fi
SetTestName "GCC - No STL"
PrintHeader
rm -rdf bgcc
rm -rdf bclang
cmake -E make_directory bgcc bclang
g++ --version | head --lines=1 | tee -a ../log.txt
CC=gcc CXX=g++ cmake -E chdir bgcc cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF ..
cmake --build bgcc
if [ $? -eq 0 ]; then
PassedCompilation
else
FailedCompilation
exit $?
fi
SetTestName "GCC - No STL - Force C++03"
PrintHeader
rm -rdf bgcc
rm -rdf bclang
cmake -E make_directory bgcc bclang
g++ --version | head --lines=1 | tee -a ../log.txt
CC=gcc CXX=g++ cmake -E chdir bgcc cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON ..
cmake --build bgcc
if [ $? -eq 0 ]; then
PassedCompilation
else
FailedCompilation
exit $?
fi
#SetTestName "GCC - No STL - User defined traits"
#PrintHeader
#rm -rdf bgcc
#rm -rdf bclang
#cmake -E make_directory bgcc bclang
#g++ --version | head --lines=1 | tee -a ../log.txt
#CC=gcc CXX=g++ cmake -E chdir bgcc cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=ON -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF ..
#cmake --build bgcc
#if [ $? -eq 0 ]; then
# PassedCompilation
#else
# FailedCompilation
# exit $?
#fi
SetTestName "Clang - STL"
PrintHeader
rm -rdf bgcc
rm -rdf bclang
cmake -E make_directory bgcc bclang
clang++ --version | head --lines=1 | tee -a ../log.txt
CC=clang CXX=clang++ cmake -E chdir bclang cmake -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF ..
cmake --build bclang
if [ $? -eq 0 ]; then
PassedCompilation
else
FailedCompilation
exit $?
fi
SetTestName "Clang - STL - Force C++03"
PrintHeader
rm -rdf bgcc
rm -rdf bclang
cmake -E make_directory bgcc bclang
clang++ --version | head --lines=1 | tee -a ../log.txt
CC=clang CXX=clang++ cmake -E chdir bclang cmake -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON ..
cmake --build bclang
if [ $? -eq 0 ]; then
PassedCompilation
else
FailedCompilation
exit $?
fi
SetTestName "Clang - No STL"
PrintHeader
rm -rdf bgcc
rm -rdf bclang
cmake -E make_directory bgcc bclang
clang++ --version | head --lines=1 | tee -a ../log.txt
CC=clang CXX=clang++ cmake -E chdir bclang cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF ..
cmake --build bclang
if [ $? -eq 0 ]; then
PassedCompilation
else
FailedCompilation
exit $?
fi
SetTestName "Clang - No STL - Force C++03"
PrintHeader
rm -rdf bgcc
rm -rdf bclang
cmake -E make_directory bgcc bclang
clang++ --version | head --lines=1 | tee -a ../log.txt
CC=clang CXX=clang++ cmake -E chdir bclang cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON ..
cmake --build bclang
if [ $? -eq 0 ]; then
PassedCompilation
else
FailedCompilation
exit $?
fi
#SetTestName "Clang - No STL - User defined traits"
#PrintHeader
#rm -rdf bgcc
#rm -rdf bclang
#cmake -E make_directory bgcc bclang
#clang++ --version | head --lines=1 | tee -a ../log.txt
#CC=clang CXX=clang++ cmake -E chdir bclang cmake -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=ON -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF ..
#cmake --build bclang
#if [ $? -eq 0 ]; then
# PassedCompilation
#else
# FailedCompilation
# exit $?
#fi
ChecksCompleted

View File

@ -28,6 +28,11 @@ else
opt="-O0"
fi
export ASAN_OPTIONS=symbol_line=1
export ASAN_SYMBOLIZER_PATH=/usr/lib/llvm-14/bin//llvm-symbolizer
echo -e
testname="Test Name Not Set"
FailColour='\033[38;2;255;128;128m'
@ -35,9 +40,7 @@ PassColour='\033[38;2;128;255;128m'
TitleColour='\033[38;2;100;173;254m'
NoColour='\033[0m'
echo -e
TestName()
SetTestName()
{
testname=$1
}
@ -47,8 +50,8 @@ PrintHeader()
echo "${TitleColour}"
echo "----------------------------------------------------------------------------" | tee -a log.txt
echo " $testname" | tee -a log.txt
echo " Language standard : C++${cxx_standard}"
echo " Optimisation : ${opt}"
echo " Language standard : C++${cxx_standard}" | tee -a log.txt
echo " Optimisation : ${opt}" | tee -a log.txt
echo "----------------------------------------------------------------------------" | tee -a log.txt
echo "${NoColour}"
}
@ -56,14 +59,18 @@ PrintHeader()
PassedCompilation()
{
echo "${PassColour}"
echo "<<<< Passed Compilation - $testname >>>>" | tee -a ../log.txt
echo "-----------------------------------------------" | tee -a log.txt
echo " Passed Compilation - $testname" | tee -a ../log.txt
echo "-----------------------------------------------" | tee -a log.txt
echo "${NoColour}"
}
PassedTests()
{
echo "${PassColour}"
echo "<<<< Passed Tests - $testname >>>>" | tee -a ../log.txt
echo "-----------------------------------------------" | tee -a log.txt
echo " Passed Tests - $testname" | tee -a ../log.txt
echo "-----------------------------------------------" | tee -a log.txt
echo "${NoColour}"
}
@ -97,72 +104,93 @@ TestsCompleted()
#******************************************************************************
# GCC
#******************************************************************************
#TestName "GCC - STL"
#PrintHeader
#rm * -rf
#gcc --version | grep gcc | tee -a log.txt
#cmake -DCMAKE_CXX_COMPILER="g++" -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_OPTIMISATION=$opt -DETL_CXX_STANDARD=$cxx_standard ..
#make -j4
#if [ $? -eq 0 ]; then
# PassedCompilation
#else
# FailedCompilation
# exit $?
#fi
#./etl_tests
#if [ $? -eq 0 ]; then
# PassedTests
#else
# FailedTests
# exit $?
#fi
SetTestName "GCC - STL"
PrintHeader
rm * -rf
gcc --version | grep gcc | tee -a log.txt
cmake -DCMAKE_CXX_COMPILER="g++" -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_OPTIMISATION=$opt -DETL_CXX_STANDARD=$cxx_standard ..
make -j4
if [ $? -eq 0 ]; then
PassedCompilation
else
FailedCompilation
exit $?
fi
./etl_tests
if [ $? -eq 0 ]; then
PassedTests
else
FailedTests
exit $?
fi
#******************************************************************************
#TestName "GCC - STL - Force C++03"
#PrintHeader
#rm * -rf
#gcc --version | grep gcc | tee -a log.txt
#cmake -DCMAKE_CXX_COMPILER="g++" -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_OPTIMISATION=$opt -DETL_CXX_STANDARD=$cxx_standard ..
#make -j4
#if [ $? -eq 0 ]; then
# PassedCompilation
#else
# FailedCompilation
# exit $?
#fi
#./etl_tests
#if [ $? -eq 0 ]; then
# PassedTests
#else
# FailedTests
# exit $?
#fi
SetTestName "GCC - STL - Force C++03"
PrintHeader
rm * -rf
gcc --version | grep gcc | tee -a log.txt
cmake -DCMAKE_CXX_COMPILER="g++" -DNO_STL=OFF -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_OPTIMISATION=$opt -DETL_CXX_STANDARD=$cxx_standard ..
make -j4
if [ $? -eq 0 ]; then
PassedCompilation
else
FailedCompilation
exit $?
fi
./etl_tests
if [ $? -eq 0 ]; then
PassedTests
else
FailedTests
exit $?
fi
#******************************************************************************
#TestName "GCC - No STL"
#PrintHeader
#rm * -rf
#gcc --version | grep gcc | tee -a log.txt
#cmake -DCMAKE_CXX_COMPILER="g++" -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_OPTIMISATION=$opt -DETL_CXX_STANDARD=$cxx_standard ..
#make -j4
#if [ $? -eq 0 ]; then
# PassedCompilation
#else
# FailedCompilation
# exit $?
#fi
#./etl_tests
#if [ $? -eq 0 ]; then
# PassedTests
#else
# FailedTests
# exit $?
#fi
SetTestName "GCC - No STL"
PrintHeader
rm * -rf
gcc --version | grep gcc | tee -a log.txt
cmake -DCMAKE_CXX_COMPILER="g++" -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=OFF -DETL_OPTIMISATION=$opt -DETL_CXX_STANDARD=$cxx_standard ..
make -j4
if [ $? -eq 0 ]; then
PassedCompilation
else
FailedCompilation
exit $?
fi
./etl_tests
if [ $? -eq 0 ]; then
PassedTests
else
FailedTests
exit $?
fi
#******************************************************************************
SetTestName "GCC - No STL - Force C++03"
PrintHeader
rm * -rf
gcc --version | grep gcc | tee -a log.txt
cmake -DCMAKE_CXX_COMPILER="g++" -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_OPTIMISATION=$opt -DETL_CXX_STANDARD=$cxx_standard ..
make -j4
if [ $? -eq 0 ]; then
PassedCompilation
else
FailedCompilation
exit $?
fi
./etl_tests
if [ $? -eq 0 ]; then
PassedTests
else
FailedTests
exit $?
fi
#******************************************************************************
# CLANG
#******************************************************************************
TestName "Clang - STL"
SetTestName "Clang - STL"
PrintHeader
rm * -rf
clang --version | grep clang | tee -a log.txt
@ -183,7 +211,7 @@ else
fi
#******************************************************************************
TestName "Clang - STL - Force C++03"
SetTestName "Clang - STL - Force C++03"
PrintHeader
rm * -rf
clang --version | grep clang | tee -a log.txt
@ -204,7 +232,7 @@ else
fi
#******************************************************************************
TestName "Clang - No STL"
SetTestName "Clang - No STL"
PrintHeader
rm * -rf
clang --version | grep clang | tee -a log.txt
@ -225,7 +253,28 @@ else
fi
#******************************************************************************
TestName "GCC - Initializer list test"
SetTestName "Clang - No STL - Force C++03"
PrintHeader
rm * -rf
clang --version | grep clang | tee -a log.txt
cmake -DCMAKE_CXX_COMPILER="clang++" -DNO_STL=ON -DETL_USE_TYPE_TRAITS_BUILTINS=OFF -DETL_USER_DEFINED_TYPE_TRAITS=OFF -DETL_FORCE_TEST_CPP03_IMPLEMENTATION=ON -DETL_OPTIMISATION=$opt -DETL_CXX_STANDARD=$cxx_standard ..
make -j4
if [ $? -eq 0 ]; then
PassedCompilation
else
FailedCompilation
exit $?
fi
./etl_tests
if [ $? -eq 0 ]; then
PassedTests
else
FailedTests
exit $?
fi
#******************************************************************************
SetTestName "GCC - Initializer list test"
PrintHeader
cd ../etl_initializer_list/
mkdir -p build-make || exit 1
@ -249,7 +298,7 @@ else
fi
#******************************************************************************
TestName "Clang - Initializer list test"
SetTestName "Clang - Initializer list test"
PrintHeader
rm * -rf
clang --version | grep clang | tee -a log.txt
@ -270,7 +319,7 @@ else
fi
#******************************************************************************
TestName "GCC - Error macros 'log_errors' test"
SetTestName "GCC - Error macros 'log_errors' test"
PrintHeader
cd ../../etl_error_handler/log_errors
mkdir -p build-make || exit 1
@ -294,7 +343,7 @@ else
fi
#******************************************************************************
TestName "GCC - Error macros 'exceptions' test"
SetTestName "GCC - Error macros 'exceptions' test"
PrintHeader
cd ../../../etl_error_handler/exceptions
mkdir -p build-make || exit 1
@ -318,7 +367,7 @@ else
fi
#******************************************************************************
TestName "GCC - Error macros 'log_errors and exceptions' test"
SetTestName "GCC - Error macros 'log_errors and exceptions' test"
PrintHeader
cd ../../../etl_error_handler/log_errors_and_exceptions
mkdir -p build-make || exit 1
@ -342,7 +391,7 @@ else
fi
#******************************************************************************
TestName "Clang - Error macros 'log_errors' test"
SetTestName "Clang - Error macros 'log_errors' test"
PrintHeader
cd ../../../etl_error_handler/log_errors
mkdir -p build-make || exit 1
@ -366,7 +415,7 @@ else
fi
#******************************************************************************
TestName "Clang - Error macros 'exceptions' test"
SetTestName "Clang - Error macros 'exceptions' test"
PrintHeader
cd ../../../etl_error_handler/exceptions
mkdir -p build-make || exit 1
@ -390,7 +439,7 @@ else
fi
#******************************************************************************
TestName "Clang - Error macros 'log_errors and exceptions' test"
SetTestName "Clang - Error macros 'log_errors and exceptions' test"
PrintHeader
cd ../../../etl_error_handler/log_errors_and_exceptions
mkdir -p build-make || exit 1

View File

@ -722,8 +722,8 @@ namespace
View view(etldata.begin(), etldata.end());
CView cview(etldata.begin(), etldata.end());
size_t hashdata = etl::private_hash::generic_hash<size_t>(reinterpret_cast<const uint8_t*>(&etldata[0]),
reinterpret_cast<const uint8_t*>(&etldata[etldata.size()]));
size_t hashdata = etl::private_hash::generic_hash<size_t>(reinterpret_cast<const uint8_t*>(etldata.data()),
reinterpret_cast<const uint8_t*>(etldata.data() + etldata.size()));
size_t hashview = etl::hash<View>()(view);
size_t hashcview = etl::hash<CView>()(cview);

View File

@ -563,10 +563,8 @@ namespace
Data5 aw5;
size_t hash = etl::hash<Data5>()(aw5);
size_t compare_hash = etl::private_hash::generic_hash<size_t>(reinterpret_cast<const uint8_t*>(data5), reinterpret_cast<const uint8_t*>(data5 + 5U));
CHECK_EQUAL(compare_hash, hash);
}
};

View File

@ -74,7 +74,7 @@ namespace
CHECK(&data[0] == iBegin);
int* iEnd = etl::end(data);
CHECK(&data[SIZE] == iEnd);
CHECK((data + SIZE) == iEnd);
}
//*************************************************************************
@ -87,7 +87,7 @@ namespace
CHECK(&data[0] == iBegin);
const int* const iEnd = etl::end(data);
CHECK(&data[SIZE] == iEnd);
CHECK((data + SIZE) == iEnd);
}

View File

@ -79,7 +79,7 @@ namespace
//*************************************************************************
TEST(distance_non_random)
{
ptrdiff_t d = etl::distance(non_random_iterator<int>(&dataA[0]), non_random_iterator<int>(&dataA[SIZE]));
ptrdiff_t d = etl::distance(non_random_iterator<int>(&dataA[0]), non_random_iterator<int>(dataA + SIZE));
CHECK_EQUAL(SIZE, d);
}
@ -87,7 +87,7 @@ namespace
//*************************************************************************
TEST(distance_random)
{
ptrdiff_t d = etl::distance(random_iterator<int>(&dataA[0]), random_iterator<int>(&dataA[SIZE]));
ptrdiff_t d = etl::distance(random_iterator<int>(&dataA[0]), random_iterator<int>(dataA + SIZE));
CHECK_EQUAL(SIZE, d);
}

View File

@ -208,11 +208,11 @@ namespace
{
Data data = { { { 0, 1, 2 }, { 3, 4, 5 }, { 6, 7, 8 }, { 9, 10, 11 } } };
CHECK(data.end() == &data[SIZE1]);
CHECK(data[0].end() == &data[0][SIZE2]);
CHECK(data[1].end() == &data[1][SIZE2]);
CHECK(data[2].end() == &data[2][SIZE2]);
CHECK(data[3].end() == &data[3][SIZE2]);
CHECK(data.end() == &data[0] + SIZE1);
CHECK(data[0].end() == &data[0][0] + SIZE2);
CHECK(data[1].end() == &data[1][0] + SIZE2);
CHECK(data[2].end() == &data[2][0] + SIZE2);
CHECK(data[3].end() == &data[3][0] + SIZE2);
}
//*************************************************************************
@ -232,11 +232,11 @@ namespace
{
const Data data = { { { 0, 1, 2 }, { 3, 4, 5 }, { 6, 7, 8 }, { 9, 10, 11 } } };
CHECK(data.cend() == &data[SIZE1]);
CHECK(data[0].cend() == &data[0][SIZE2]);
CHECK(data[1].cend() == &data[1][SIZE2]);
CHECK(data[2].cend() == &data[2][SIZE2]);
CHECK(data[3].cend() == &data[3][SIZE2]);
CHECK(data.cend() == &data[0] + SIZE1);
CHECK(data[0].cend() == &data[0][0] + SIZE2);
CHECK(data[1].cend() == &data[1][0] + SIZE2);
CHECK(data[2].cend() == &data[2][0] + SIZE2);
CHECK(data[3].cend() == &data[3][0] + SIZE2);
}
//*************************************************************************
@ -246,11 +246,11 @@ namespace
typedef etl::multi_array<int, SIZE2> Inner;
CHECK(data.rbegin() == Data::reverse_iterator(&data[SIZE1]));
CHECK(data[0].rbegin() == Inner::reverse_iterator(&data[0][SIZE2]));
CHECK(data[1].rbegin() == Inner::reverse_iterator(&data[1][SIZE2]));
CHECK(data[2].rbegin() == Inner::reverse_iterator(&data[2][SIZE2]));
CHECK(data[3].rbegin() == Inner::reverse_iterator(&data[3][SIZE2]));
CHECK(data.rbegin() == Data::reverse_iterator(&data[0] + SIZE1));
CHECK(data[0].rbegin() == Inner::reverse_iterator(&data[0][0] + SIZE2));
CHECK(data[1].rbegin() == Inner::reverse_iterator(&data[1][0] + SIZE2));
CHECK(data[2].rbegin() == Inner::reverse_iterator(&data[2][0] + SIZE2));
CHECK(data[3].rbegin() == Inner::reverse_iterator(&data[3][0] + SIZE2));
}
//*************************************************************************
@ -274,11 +274,11 @@ namespace
typedef etl::multi_array<int, SIZE2> Inner;
CHECK(data.rbegin() == Data::const_reverse_iterator(&data[SIZE1]));
CHECK(data[0].rbegin() == Inner::const_reverse_iterator(&data[0][SIZE2]));
CHECK(data[1].rbegin() == Inner::const_reverse_iterator(&data[1][SIZE2]));
CHECK(data[2].rbegin() == Inner::const_reverse_iterator(&data[2][SIZE2]));
CHECK(data[3].rbegin() == Inner::const_reverse_iterator(&data[3][SIZE2]));
CHECK(data.rbegin() == Data::const_reverse_iterator(data.data() + data.size()));
CHECK(data[0].rbegin() == Inner::const_reverse_iterator(&data[0][0] + SIZE2));
CHECK(data[1].rbegin() == Inner::const_reverse_iterator(&data[1][0] + SIZE2));
CHECK(data[2].rbegin() == Inner::const_reverse_iterator(&data[2][0] + SIZE2));
CHECK(data[3].rbegin() == Inner::const_reverse_iterator(&data[3][0] + SIZE2));
}
//*************************************************************************

View File

@ -253,11 +253,11 @@ namespace
Data data;
Copy(initial, data);
CHECK(data.end() == &data[SIZE1]);
CHECK(data[0].end() == &data[0][SIZE2]);
CHECK(data[1].end() == &data[1][SIZE2]);
CHECK(data[2].end() == &data[2][SIZE2]);
CHECK(data[3].end() == &data[3][SIZE2]);
CHECK(data.end() == &data[0] + SIZE1);
CHECK(data[0].end() == &data[0][0] + SIZE2);
CHECK(data[1].end() == &data[1][0] + SIZE2);
CHECK(data[2].end() == &data[2][0] + SIZE2);
CHECK(data[3].end() == &data[3][0] + SIZE2);
}
//*************************************************************************
@ -281,11 +281,11 @@ namespace
Data data;
Copy(initial, data);
CHECK(data.cend() == &data[SIZE1]);
CHECK(data[0].cend() == &data[0][SIZE2]);
CHECK(data[1].cend() == &data[1][SIZE2]);
CHECK(data[2].cend() == &data[2][SIZE2]);
CHECK(data[3].cend() == &data[3][SIZE2]);
CHECK(data.cend() == &data[0] + SIZE1);
CHECK(data[0].cend() == &data[0][0] + SIZE2);
CHECK(data[1].cend() == &data[1][0] + SIZE2);
CHECK(data[2].cend() == &data[2][0] + SIZE2);
CHECK(data[3].cend() == &data[3][0] + SIZE2);
}
//*************************************************************************
@ -297,11 +297,11 @@ namespace
typedef etl::multi_vector<int, SIZE2> Inner;
CHECK(data.rbegin() == Data::reverse_iterator(&data[SIZE1]));
CHECK(data[0].rbegin() == Inner::reverse_iterator(&data[0][SIZE2]));
CHECK(data[1].rbegin() == Inner::reverse_iterator(&data[1][SIZE2]));
CHECK(data[2].rbegin() == Inner::reverse_iterator(&data[2][SIZE2]));
CHECK(data[3].rbegin() == Inner::reverse_iterator(&data[3][SIZE2]));
CHECK(data.rbegin() == Data::reverse_iterator(&data[0] + SIZE1));
CHECK(data[0].rbegin() == Inner::reverse_iterator(&data[0][0] + SIZE2));
CHECK(data[1].rbegin() == Inner::reverse_iterator(&data[1][0] + SIZE2));
CHECK(data[2].rbegin() == Inner::reverse_iterator(&data[2][0] + SIZE2));
CHECK(data[3].rbegin() == Inner::reverse_iterator(&data[3][0] + SIZE2));
}
//*************************************************************************
@ -329,11 +329,11 @@ namespace
typedef etl::multi_vector<int, SIZE2> Inner;
CHECK(data.rbegin() == Data::const_reverse_iterator(&data[SIZE1]));
CHECK(data[0].rbegin() == Inner::const_reverse_iterator(&data[0][SIZE2]));
CHECK(data[1].rbegin() == Inner::const_reverse_iterator(&data[1][SIZE2]));
CHECK(data[2].rbegin() == Inner::const_reverse_iterator(&data[2][SIZE2]));
CHECK(data[3].rbegin() == Inner::const_reverse_iterator(&data[3][SIZE2]));
CHECK(data.rbegin() == Data::const_reverse_iterator(&data[0] + SIZE1));
CHECK(data[0].rbegin() == Inner::const_reverse_iterator(&data[0][0] + SIZE2));
CHECK(data[1].rbegin() == Inner::const_reverse_iterator(&data[1][0] + SIZE2));
CHECK(data[2].rbegin() == Inner::const_reverse_iterator(&data[2][0] + SIZE2));
CHECK(data[3].rbegin() == Inner::const_reverse_iterator(&data[3][0] + SIZE2));
}
//*************************************************************************

View File

@ -620,8 +620,8 @@ namespace
View view(etldata.begin(), etldata.end());
CView cview(etldata.begin(), etldata.end());
size_t hashdata = etl::private_hash::generic_hash<size_t>(reinterpret_cast<const uint8_t*>(&etldata[0]),
reinterpret_cast<const uint8_t*>(&etldata[etldata.size()]));
size_t hashdata = etl::private_hash::generic_hash<size_t>(reinterpret_cast<const uint8_t*>(etldata.data()),
reinterpret_cast<const uint8_t*>(etldata.data() + etldata.size()));
size_t hashview = etl::hash<View>()(view);
size_t hashcview = etl::hash<CView>()(cview);

View File

@ -610,8 +610,8 @@ namespace
View view(etldata.begin(), etldata.end());
CView cview(etldata.begin(), etldata.end());
size_t hashdata = etl::private_hash::generic_hash<size_t>(reinterpret_cast<const uint8_t*>(&etldata[0]),
reinterpret_cast<const uint8_t*>(&etldata[etldata.size()]));
size_t hashdata = etl::private_hash::generic_hash<size_t>(reinterpret_cast<const uint8_t*>(etldata.data()),
reinterpret_cast<const uint8_t*>(etldata.data() + etldata.size()));
size_t hashview = etl::hash<View>()(view);
size_t hashcview = etl::hash<CView>()(cview);