82 Commits

Author SHA1 Message Date
Peter Dimov
155ed414ab Disable variant_issue_55.cpp on clang-cl 32 bit 2026-01-02 12:29:11 +02:00
Peter Dimov
fc786d39b3 Rename variant_gcc_false_positive.cpp 2026-01-01 22:21:34 +02:00
Vinnie Falco
382cf33824 Add test for GCC 12+ -Wmaybe-uninitialized false positive
Add variant_gcc_false_positive.cpp to reproduce GCC 12+ spurious
-Wmaybe-uninitialized warnings when copying/moving variant containing
non-trivially-copyable types like std::exception_ptr and std::string.

Tests use boost::system::result which internally uses variant2, and
include coroutine-based tests when C++20 coroutine support is available.

The test uses -O3 optimization to trigger the aggressive inlining that
exposes the false positive where GCC's dataflow analysis cannot prove
the discriminator ensures only initialized alternatives are accessed.

See https://github.com/boostorg/variant2/issues/33
2026-01-01 22:16:48 +02:00
Peter Dimov
540354878c Disable Boost.JSON tests on gcc-4.9 2026-01-01 17:28:41 +02:00
Peter Dimov
a63b03286e Add test/variant_value_construct_cx_2, 3, 4. Refs #53. 2025-10-18 08:24:39 +03:00
Peter Dimov
43377dcada Add test/variant_default_construct_cx_5. Refs #53. 2025-10-18 02:49:29 +03:00
Peter Dimov
2af2d02fce Add test/variant_default_construct_cx_4. Refs #53. 2025-10-18 02:41:28 +03:00
Peter Dimov
b2109dee2a Add test/variant_default_construct_cx_3. Refs #53. 2025-10-18 02:37:21 +03:00
Peter Dimov
df001efb54 Add test/variant_default_construct_cx_2. Refs #53. 2025-10-18 02:29:52 +03:00
Peter Dimov
6669e07071 Work around GCC 5, 6 failures 2024-12-22 20:12:08 +02:00
Peter Dimov
010c78598e Split variant_index_type into separate runs for each variant size 2024-12-22 06:03:10 +02:00
Peter Dimov
183aea23a9 Only use -ftemplate-depth for Clang on Linux, because clang-cl doesn't like it (and Mac doesn't need it) 2024-12-22 03:20:39 +02:00
Peter Dimov
7b8e8c33bb Disable variant_index_type.cpp for msvc-14.0, because GHA fails with 'out of heap space' 2024-12-22 03:09:28 +02:00
Peter Dimov
639bd0232b Add -ftemplate-depth=1024 for Clang (3.x needs it) 2024-12-22 03:03:35 +02:00
Peter Dimov
94749d088d Disable variant_index_type.cpp for MSVC 32 bit 2024-12-22 02:44:02 +02:00
Peter Dimov
e2fc107ac7 Add test/variant_index_type.cpp. Refs #50. 2024-12-21 20:15:45 +02:00
Peter Dimov
19b75fffe4 Add test/variant_visit_cx_2.cpp. Refs #47. 2024-11-23 04:11:30 +02:00
Peter Dimov
bdc1098c80 Add test/variant_visit_r_cx.cpp. Refs #47. 2024-11-23 03:38:27 +02:00
Peter Dimov
9061e427c2 Add test/variant_visit_cx.cpp. Refs #47. 2024-11-23 03:13:28 +02:00
Peter Dimov
acf24454d8 Update build.jam, test/Jamfile 2024-08-28 20:28:59 +03:00
Rene Rivera
fc088e7273 Change all <source> references to <library>. 2024-07-20 21:27:52 -05:00
Rene Rivera
429a82a52e Sync from upstream. 2024-05-19 23:15:27 -05:00
Peter Dimov
f9bdafd3ca Remove C++11 requirements from test/Jamfile 2024-05-18 03:18:56 +03:00
Rene Rivera
1324e32b33 Add missing import-search for cconfig/predef checks. 2024-05-04 23:33:36 -05:00
Rene Rivera
02303d662e Sync from upstream. 2024-04-10 07:58:16 -05:00
Peter Dimov
a936eae01b Add test/variant_derived_construct2. Refs #43. 2024-03-24 18:41:49 +02:00
Rene Rivera
5c34125b14 Make the library modular usable. 2024-03-11 08:38:17 -05:00
Peter Dimov
30afb9e183 Update test/Jamfile to fix Drone issues 2023-06-29 09:54:49 +03:00
Peter Dimov
26595285d3 Add variant<>::uses_double_storage(). Refs #37. 2023-06-28 22:14:56 +03:00
Peter Dimov
67a12199e6 Add JSON support (refs #28) 2022-10-18 06:08:18 +03:00
Peter Dimov
3fc7540733 Only define operator<< when all contained types are streamable (refs #31) 2021-12-09 18:39:03 +02:00
Peter Dimov
e668c099ce Add operator<< for variant 2021-09-15 02:51:11 +03:00
Peter Dimov
ad06c9b923 Add visit_by_index 2021-09-14 21:06:01 +03:00
Peter Dimov
f586dc8848 Add test for inherited constructors (refs #26) 2021-03-12 20:15:09 +02:00
Peter Dimov
84a2c175d0 Use variant=release for variant_visit_r under g++/windows 2021-01-13 04:44:56 +02:00
Peter Dimov
5586ebaa64 Add support for visit<R> 2020-06-03 17:00:13 +03:00
Peter Dimov
93204676f5 Add test/variant_many_types 2020-05-08 22:22:49 +03:00
Peter Dimov
772ef0d312 Support derived types in visit 2020-05-06 20:11:03 +03:00
Peter Dimov
76c67c9b21 Use <warnings>extra instead of all 2020-01-31 23:59:00 +02:00
Peter Dimov
57ab36bd95 Add test/variant_special 2020-01-23 15:24:32 +02:00
Peter Dimov
fac5992e45 Add test/variant_trivial 2020-01-23 03:53:05 +02:00
Peter Dimov
17bc06b090 Apply msvc-14.0 workarounds 2020-01-22 17:38:45 +02:00
Peter Dimov
fece11142c Add hashing support 2020-01-11 04:51:30 +02:00
Peter Dimov
58b4a21deb Add CMake tests 2020-01-09 17:43:54 +02:00
Peter Dimov
f5d9662946 Support -fno-exceptions 2019-06-03 02:46:59 +03:00
Peter Dimov
f1b1e7cade Enable warnings-as-errors in test/Jamfile 2019-03-25 17:40:20 +02:00
Peter Dimov
1c3526b3bb Add test/variant_lt_gt_cx 2019-03-06 01:09:40 +02:00
Peter Dimov
204bcce9df Make relational operators constexpr; add test/variant_eq_ne_cx.cpp 2019-03-06 00:26:55 +02:00
Peter Dimov
fdfe9df167 Do not trivially copy/move assign when not trivially copy/move constructible 2019-03-03 05:14:51 +02:00
Peter Dimov
2f376da1c2 Add throwing copy/move/convert tests 2019-02-26 14:26:59 +02:00