1*28328c37SReid Kleckner // RUN: %clang_cc1 -fno-rtti-data -triple x86_64-windows-msvc -emit-llvm-only %s -verify 2*28328c37SReid Kleckner 3*28328c37SReid Kleckner // Verify that we error out on this return adjusting thunk that we can't emit. 4*28328c37SReid Kleckner 5*28328c37SReid Kleckner struct A { 6*28328c37SReid Kleckner virtual A *clone(const char *f, ...) = 0; 7*28328c37SReid Kleckner }; 8*28328c37SReid Kleckner struct B : virtual A { 9*28328c37SReid Kleckner // expected-error@+1 2 {{cannot compile this return-adjusting thunk with variadic arguments yet}} 10*28328c37SReid Kleckner B *clone(const char *f, ...) override; 11*28328c37SReid Kleckner }; 12*28328c37SReid Kleckner struct C : B { int c; }; 13*28328c37SReid Kleckner C c; 14