Index: lib/Sema/SemaExprCXX.cpp =================================================================== --- lib/Sema/SemaExprCXX.cpp +++ lib/Sema/SemaExprCXX.cpp @@ -4418,7 +4418,17 @@ // resolution point. if (isa(ND)) continue; - const CXXConstructorDecl *Constructor = cast(ND); + const CXXConstructorDecl *Constructor; + // handle inherited constructors + if (isa(ND)) + { + const auto *UD = cast(ND); + assert(UD->shadow_size() == 1); + Constructor = + cast(UD->shadow_begin()->getTargetDecl()); + } + else + Constructor = cast(ND); if (Constructor->isCopyConstructor(FoundTQs)) { FoundConstructor = true; const FunctionProtoType *CPT Index: test/CXX/special/class.copy/p34-cxx11.cpp =================================================================== --- /dev/null +++ test/CXX/special/class.copy/p34-cxx11.cpp @@ -0,0 +1,12 @@ +// RUN: %clang_cc1 -fsyntax-only -std=c++11 -verify %s +// expected-no-diagnostics + +struct A { + A(A const &) noexcept(false) {} +}; + +struct B : public A { + using A::A; +}; + +static_assert(!__has_nothrow_copy(B), "has_nothrow_copy fails");