Compare commits

..

4 Commits

Author SHA1 Message Date
Carson Radtke efaafc26d4 suppress build error in gtest w/ clangcl 2026-07-15 10:56:11 -06:00
Carson Radtke 835e39e3e4 fix -Wnrvo instance in dyn_array 2026-07-13 15:23:50 -06:00
Carson Radtke 9899e0e325 ci: macos -> use xcode 26.6
For more info: https://github.com/actions/runner-images/issues/13345
2026-07-13 15:14:21 -06:00
Carson Radtke 8b56e20958 ci: windows-2025 image -> use VS2026
For more info: https://github.com/actions/runner-images/issues/14017
2026-07-13 15:04:32 -06:00
6 changed files with 37 additions and 8 deletions
+7 -3
View File
@@ -61,7 +61,7 @@ jobs:
xcode:
strategy:
matrix:
xcode_version: [ '16.4' ]
xcode_version: [ '26.6' ]
build_type: [ Debug, Release ]
cxx_version: [ 14, 17, 20, 23 ]
runs-on: macos-latest
@@ -88,9 +88,13 @@ jobs:
# Regular MSVC builds use Ninja (from preset)
- toolset: 'msvc'
generator_override: ''
# ClangCL builds require Visual Studio generator
- toolset: 'ClangCL'
# ClangCL builds require Visual Studio generator; version depends on image
- image: windows-2022
toolset: 'ClangCL'
generator_override: '-G "Visual Studio 17 2022" -T ClangCL'
- image: windows-2025
toolset: 'ClangCL'
generator_override: '-G "Visual Studio 18 2026" -T ClangCL'
runs-on: ${{ matrix.image }}
steps:
- uses: actions/checkout@v6
+3
View File
@@ -31,6 +31,9 @@
#if defined(__clang__)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Winvalid-noreturn"
#if __clang_major__ >= 22
#pragma clang diagnostic ignored "-Wunique-object-duplication"
#endif // __clang_major >= 22
#endif // defined(__clang__)
#else // defined(_MSC_VER) && (defined(_KERNEL_MODE) || (defined(_HAS_EXCEPTIONS) &&
+2 -4
View File
@@ -216,9 +216,8 @@ namespace details
constexpr auto operator++(int)
{
auto rv = *this;
++(*this);
return rv;
return dyn_array_iterator{_ptr, _pos - 1, _end_pos};
}
constexpr auto operator--() -> dyn_array_iterator&
@@ -230,9 +229,8 @@ namespace details
constexpr auto operator--(int)
{
auto rv = *this;
--(*this);
return rv;
return dyn_array_iterator{_ptr, _pos + 1, _end_pos};
}
constexpr auto operator+=(difference_type diff) -> dyn_array_iterator&
+9
View File
@@ -133,6 +133,12 @@ namespace details
} // namespace details
// final_action allows you to ensure something gets run at the end of a scope
// The bool member causes trailing padding when F has alignment > 1; suppress
// -Wpadded since the padding is unavoidable for a generic callable wrapper.
#if defined(__clang__)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wpadded"
#endif // defined(__clang__)
template <class F>
class final_action
{
@@ -157,6 +163,9 @@ private:
F f;
bool invoke = true;
};
#if defined(__clang__)
#pragma clang diagnostic pop
#endif // defined(__clang__)
// finally() - convenience function to generate a final_action
template <class F>
+9 -1
View File
@@ -54,6 +54,14 @@ if (NOT GTestMain_FOUND)
${CMAKE_CURRENT_BINARY_DIR}/googletest-build
EXCLUDE_FROM_ALL
)
# googletest is built as its own target, so apply this workaround there.
if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang"
AND CMAKE_CXX_SIMULATE_ID STREQUAL "MSVC"
AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 22)
target_compile_options(gtest PRIVATE -Wno-character-conversion)
target_compile_options(gtest_main PRIVATE -Wno-character-conversion)
endif()
endif()
if (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR)
@@ -111,7 +119,7 @@ if(MSVC) # MSVC or simulating MSVC
-Wno-undef # GTest
-Wno-used-but-marked-unused # GTest EXPECT_DEATH
-Wno-switch-default # GTest EXPECT_DEATH
$<$<EQUAL:${GSL_CXX_STANDARD},14>: # no support for [[maybe_unused]]
$<$<EQUAL:${GSL_CXX_STANDARD},14>: # no support for [[maybe_unused]]
-Wno-unused-member-function
-Wno-unused-variable
$<$<VERSION_EQUAL:$<CXX_COMPILER_VERSION>,15.0.1>:
+7
View File
@@ -189,6 +189,10 @@ TEST(dyn_array_tests, ranges)
#endif /* __cpp_lib_ranges >= 201911L */
#if defined(__cpp_lib_constexpr_dynamic_alloc) && (__cpp_lib_constexpr_dynamic_alloc >= 201907L)
#if defined(__clang__)
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wpadded"
#endif // defined(__clang__)
template <typename T, unsigned N>
struct ConstexprAllocator
{
@@ -218,6 +222,9 @@ struct ConstexprAllocator
constexpr void deallocate(value_type*, std::size_t) noexcept {}
};
#if defined(__clang__)
#pragma clang diagnostic pop
#endif // defined(__clang__)
template <typename T1, unsigned N1, typename T2, unsigned N2>
constexpr auto operator==(const ConstexprAllocator<T1, N1>& lhs,