Index: lib/Sema/SemaDeclCXX.cpp =================================================================== --- lib/Sema/SemaDeclCXX.cpp +++ lib/Sema/SemaDeclCXX.cpp @@ -7187,8 +7187,9 @@ if (getLangOpts().CUDA) { // We should delete the special member in CUDA mode if target inference // failed. - return inferCUDATargetForImplicitSpecialMember(RD, CSM, MD, SMI.ConstArg, - Diagnose); + return inferCUDATargetForImplicitSpecialMember( + RD, CSM, MD, CSM == CXXDefaultConstructor ? false : SMI.ConstArg, + Diagnose); } return false; Index: test/SemaCUDA/inherited-ctor.cu =================================================================== --- /dev/null +++ test/SemaCUDA/inherited-ctor.cu @@ -0,0 +1,20 @@ +// RUN: %clang_cc1 -std=c++11 -fsyntax-only -verify %s +// expected-no-diagnostics + +struct A { + A(const int &x) {} +}; + +struct B : A { + using A::A; +}; + +struct C { + struct B b; + C() : b(0) {} +}; + +void test() { + B b(0); + C c; +}