<div dir="ltr">Looks good! Â Do you need someone to commit it?</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sat, Apr 26, 2014 at 11:19 AM, Dinesh Dwivedi <span dir="ltr"><<a href="mailto:dinesh.d@samsung.com" target="_blank">dinesh.d@samsung.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Updated as per comment.<br>
<br>
Thanks for review<br>
<div class=""><br>
<a href="http://reviews.llvm.org/D3376" target="_blank">http://reviews.llvm.org/D3376</a><br>
<br>
Files:<br>
  lib/Sema/SemaDecl.cpp<br>
  test/SemaCXX/cxx11-unused.cpp<br>
<br>
Index: lib/Sema/SemaDecl.cpp<br>
===================================================================<br>
--- lib/Sema/SemaDecl.cpp<br>
+++ lib/Sema/SemaDecl.cpp<br>
</div>@@ -9919,7 +9919,9 @@<br>
<div class="">  Â  Â  Â Diag(FD->getLocation(), diag::warn_pure_function_definition);<br>
<br>
  Â  Â if (!FD->isInvalidDecl()) {<br>
- Â  Â  Â DiagnoseUnusedParameters(FD->param_begin(), FD->param_end());<br>
</div>+ Â  Â  Â // Don't diagnose unused parameters of defaulted or deleted functions.<br>
<div class="">+ Â  Â  Â if (Body)<br>
+ Â  Â  Â  Â DiagnoseUnusedParameters(FD->param_begin(), FD->param_end());<br>
</div>  Â  Â  Â DiagnoseSizeOfParametersAndReturnValue(FD->param_begin(), FD->param_end(),<br>
  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  Â  FD->getReturnType(), FD);<br>
<br>
<div class="HOEnZb"><div class="h5">Index: test/SemaCXX/cxx11-unused.cpp<br>
===================================================================<br>
--- /dev/null<br>
+++ test/SemaCXX/cxx11-unused.cpp<br>
@@ -0,0 +1,33 @@<br>
+// RUN: %clang_cc1 -std=c++11 -verify %s -Wunused-parameter<br>
+<br>
+// PR19303 : Make sure we don't get a unused expression warning for deleted and<br>
+// defaulted functions<br>
+<br>
+// expected-no-diagnostics<br>
+<br>
+class A {<br>
+public:<br>
+ Â int x;<br>
+ Â A() = default;<br>
+ Â ~A() = default;<br>
+ Â A(const A &other) = delete;<br>
+<br>
+ Â template <typename T><br>
+ Â void SetX(T x) {<br>
+ Â  Â this->x = x;<br>
+ Â };<br>
+<br>
+ Â void SetX1(int x);<br>
+};<br>
+<br>
+template <><br>
+void A::SetX(A x) = delete;<br>
+<br>
+class B {<br>
+public:<br>
+ Â B() = default;<br>
+ Â ~B() = default;<br>
+ Â B(const B &other);<br>
+};<br>
+<br>
+B::B(const B &other) = default;<br>
</div></div></blockquote></div><br></div>