Compiler projects using llvm
// 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;