Open Quuxplusone opened 7 years ago
Bugzilla Link | PR33736 |
Status | NEW |
Importance | P normal |
Reported by | Joe Sylve (joe.sylve@gmail.com) |
Reported on | 2017-07-10 12:57:51 -0700 |
Last modified on | 2020-12-19 04:55:01 -0800 |
Version | 4.0 |
Hardware | All All |
CC | 6yearold@gmail.com, d25fe0be@outlook.com, dgregor@apple.com, heavenandhell171@gmail.com, llvm-bugs@lists.llvm.org, richard-llvm@metafoo.co.uk |
Fixed by commit(s) | |
Attachments | |
Blocks | |
Blocked by | |
See also |
Reduced to remove stdlib dependency:
template<typename T> struct B { using type = bool; };
template<typename T> struct S {
S() noexcept;
template<typename U, typename B<U>::type = true>
S(const S<U>&) noexcept;
};
struct A {
A() noexcept = default;
A(const A&) noexcept = default;
S<int> _a {};
};
Looks like we somehow believe that the default member initializer of A::_a is
needed when instantiating B<int>.
Can't reproduce the problem with Clang 9, 10, 11.