[clang] [clang] Add tests for DRs about inheriting constructors (PR #79981)
via cfe-commits
cfe-commits at lists.llvm.org
Tue Jan 30 06:11:56 PST 2024
================
@@ -154,6 +154,47 @@ const D &d3(c); // FIXME ill-formed
#endif
}
+namespace dr2273 { // dr2273: 3.3
+#if __cplusplus >= 201103L
+struct A {
+ A(int = 0) = delete; // #dr2273-A
+};
+
+struct B : A { // #dr2273-B
+ using A::A;
+};
+
+B b;
+// since-cxx11-error at -1 {{call to implicitly-deleted default constructor of 'B'}}
+// since-cxx11-note@#dr2273-B {{default constructor of 'B' is implicitly deleted because base class 'A' has a deleted default constructor}}
+// since-cxx11-note@#dr2273-A {{'A' has been explicitly marked deleted here}}
+#endif
+}
+
+namespace dr2277 { // dr2277: partial
+#if __cplusplus >= 201103L
+struct A {
+ A(int, int = 0);
+ void f(int, int = 0); // #dr2277-A-f
+};
+struct B : A {
+ B(int);
+ using A::A;
+
+ void f(int); // #dr2277-B-f
+ using A::f;
+};
+
+void g() {
+ B b{0};
+ b.f(0); // FIXME: this is well-formed for the same reason as initialization of 'b' above
----------------
cor3ntin wrote:
This in particular looks something we should fix, can you write an issue?
https://github.com/llvm/llvm-project/pull/79981
More information about the cfe-commits
mailing list