// PR c++/83796 // { dg-do compile { target c++11 } } struct MyAbstractClass { virtual int foo() const = 0; }; struct TestClass { TestClass(const MyAbstractClass& m = {}) // { dg-error "abstract type" } : value_(m.foo()) {} int value_; }; int TestFunction(const MyAbstractClass& m = {}) // { dg-error "abstract type" } { return m.foo(); } int main() { TestClass testInstance; // { dg-error "abstract type" } TestFunction(); // { dg-error "abstract type" } }