File tree Expand file tree Collapse file tree 2 files changed +35
-0
lines changed Expand file tree Collapse file tree 2 files changed +35
-0
lines changed Original file line number Diff line number Diff line change @@ -813,6 +813,8 @@ Bug Fixes in This Version
813
813
814
814
- Fixed `static_cast ` to array of unknown bound. Fixes (#GH62863).
815
815
816
+ - Fixed Clang crashing when failing to perform some C++ Initialization Sequences. (#GH98102)
817
+
816
818
Bug Fixes to Compiler Builtins
817
819
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
818
820
Original file line number Diff line number Diff line change
1
+ // RUN: %clang_cc1 -fsyntax-only -verify -std=c++20 %s
2
+ // expected-no-diagnostics
3
+
4
+ template <bool v>
5
+ struct BC {
6
+ static constexpr bool value = v;
7
+ };
8
+
9
+ template <typename T, typename Arg>
10
+ struct Constructible : BC<__is_constructible(T, Arg)> {};
11
+
12
+ template <typename T>
13
+ using Requires = T::value;
14
+
15
+ template <typename T>
16
+ struct optional {
17
+ template <typename U, Requires<Constructible<T, U>> = true >
18
+ optional (U) {}
19
+ };
20
+
21
+ struct MO {};
22
+ struct S : MO {};
23
+ struct TB {
24
+ TB (optional<S>) {}
25
+ };
26
+
27
+ class TD : TB, MO {
28
+ using TB::TB;
29
+ };
30
+
31
+ void foo () {
32
+ static_assert (Constructible<TD, TD>::value);
33
+ }
You can’t perform that action at this time.
0 commit comments