[PATCH] [PATCH] Disabling warnings on unused parameters if function is deleted/ defaulted (cxx11) [PR19303]

Reid Kleckner rnk at google.com
Tue Apr 29 17:38:23 PDT 2014


Looks good!  Do you need someone to commit it?


On Sat, Apr 26, 2014 at 11:19 AM, Dinesh Dwivedi <dinesh.d at samsung.com>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;
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20140429/f0913166/attachment.html>


More information about the cfe-commits mailing list