// RUN: %clang_cc1 -std=c++1z -verify %s
// no objects of an abstract class can be created except as subobjects of a
// class derived from it
structA{A(){}A(int):A(){}// ok
virtualvoidf()=0;// expected-note 1+{{unimplemented}}
};voidf(A &&a);voidg(){f({});// expected-error {{abstract class}}
f({0});// expected-error {{abstract class}}
f(0);// expected-error {{abstract class}}
}structB:A{B():A(){}// ok
};