Looks good! Do you need someone to commit it?
On Sat, Apr 26, 2014 at 11:19 AM, Dinesh Dwivedi <[email protected]>wrote: > Updated as per comment. > > Thanks for review > > http://reviews.llvm.org/D3376 > > Files: > lib/Sema/SemaDecl.cpp > test/SemaCXX/cxx11-unused.cpp > > Index: lib/Sema/SemaDecl.cpp > =================================================================== > --- lib/Sema/SemaDecl.cpp > +++ lib/Sema/SemaDecl.cpp > @@ -9919,7 +9919,9 @@ > Diag(FD->getLocation(), diag::warn_pure_function_definition); > > if (!FD->isInvalidDecl()) { > - DiagnoseUnusedParameters(FD->param_begin(), FD->param_end()); > + // Don't diagnose unused parameters of defaulted or deleted > functions. > + if (Body) > + DiagnoseUnusedParameters(FD->param_begin(), FD->param_end()); > DiagnoseSizeOfParametersAndReturnValue(FD->param_begin(), > FD->param_end(), > FD->getReturnType(), FD); > > Index: test/SemaCXX/cxx11-unused.cpp > =================================================================== > --- /dev/null > +++ test/SemaCXX/cxx11-unused.cpp > @@ -0,0 +1,33 @@ > +// RUN: %clang_cc1 -std=c++11 -verify %s -Wunused-parameter > + > +// PR19303 : Make sure we don't get a unused expression warning for > deleted and > +// defaulted functions > + > +// expected-no-diagnostics > + > +class A { > +public: > + int x; > + A() = default; > + ~A() = default; > + A(const A &other) = delete; > + > + template <typename T> > + void SetX(T x) { > + this->x = x; > + }; > + > + void SetX1(int x); > +}; > + > +template <> > +void A::SetX(A x) = delete; > + > +class B { > +public: > + B() = default; > + ~B() = default; > + B(const B &other); > +}; > + > +B::B(const B &other) = default; >
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
