Skip to content

Commit 4353200

Browse files
authored
Merge pull request #1391 from boostorg/msvc
Add MSVC 14.5 runner
2 parents 713f015 + ca62dce commit 4353200

4 files changed

Lines changed: 21 additions & 0 deletions

File tree

.drone.jsonnet

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -433,4 +433,10 @@ local windows_pipeline(name, image, environment, arch = "amd64") =
433433
"cppalliance/dronevs2022:1",
434434
{ TOOLSET: 'msvc-14.3', CXXSTD: '14,17,20,latest' },
435435
),
436+
437+
windows_pipeline(
438+
"Windows VS2026 msvc-14.5",
439+
"cppalliance/dronevs2026:1",
440+
{ TOOLSET: 'msvc-14.5', CXXSTD: '14,17,20,latest', ADDRMD: '32,64' },
441+
),
436442
]

include/boost/decimal/decimal_fast128_t.hpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,12 @@ constexpr auto write_payload(typename TargetDecimalType::significand_type payloa
8787
# pragma warning(disable : 4324) // Structure was padded due to alignment specifier
8888
#endif
8989

90+
// 32-bit MSVC mis-codegens reads of bool members in over-aligned structs; use natural alignment there.
91+
#if defined(_MSC_VER) && !defined(_M_X64) && !defined(_M_ARM64)
92+
BOOST_DECIMAL_EXPORT class decimal_fast128_t final
93+
#else
9094
BOOST_DECIMAL_EXPORT class alignas(16) decimal_fast128_t final
95+
#endif
9196
{
9297
public:
9398
using significand_type = int128::uint128_t;

include/boost/decimal/decimal_fast64_t.hpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,12 @@ constexpr auto write_payload(typename TargetDecimalType::significand_type payloa
8787
# pragma warning(disable : 4324) // Structure was padded due to alignment specifier
8888
#endif
8989

90+
// 32-bit MSVC mis-codegens reads of bool members in over-aligned structs; use natural alignment there.
91+
#if defined(_MSC_VER) && !defined(_M_X64) && !defined(_M_ARM64)
92+
BOOST_DECIMAL_EXPORT class decimal_fast64_t final
93+
#else
9094
BOOST_DECIMAL_EXPORT class alignas(8) decimal_fast64_t final
95+
#endif
9196
{
9297
public:
9398
using significand_type = std::uint64_t;

include/boost/decimal/detail/u256.hpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,12 @@ namespace boost {
2020
namespace decimal {
2121
namespace detail {
2222

23+
// 32-bit MSVC 14.5 mis-codegens reads of bool members in over-aligned structs; use natural alignment there.
24+
#if defined(_MSC_VER) && !defined(_M_X64) && !defined(_M_ARM64)
25+
struct
26+
#else
2327
struct alignas(sizeof(std::uint64_t) * 4)
28+
#endif
2429
u256
2530
{
2631
std::uint64_t bytes[4] {};

0 commit comments

Comments
 (0)