llvm/clang-tools-extra/test/clang-tidy/checkers/misc/unused-parameters-strict.cpp

// RUN: %check_clang_tidy %s misc-unused-parameters %t -- \
// RUN:   -config="{CheckOptions: {StrictMode: true}}" --

// Warn on empty function bodies in StrictMode.
namespace strict_mode {
void f(int foo) {}
// CHECK-MESSAGES: :[[@LINE-1]]:12: warning: parameter 'foo' is unused [misc-unused-parameters]
// CHECK-FIXES: {{^}}void f(int  /*foo*/) {}{{$}}
class E {
  int i;

public:
  E(int j) {}
// CHECK-MESSAGES: :[[@LINE-1]]:9: warning: parameter 'j' is unused
// CHECK-FIXES: {{^}}  E(int  /*j*/) {}{{$}}
};
class F {
  int i;

public:
  F(int j) : i() {}
// CHECK-MESSAGES: :[[@LINE-1]]:9: warning: parameter 'j' is unused
// CHECK-FIXES: {{^}}  F(int  /*j*/) : i() {}{{$}}
};

// Do not warn on naked functions.
[[gnu::naked]] int nakedFunction(int a, float b, const char *c) { ; }
__attribute__((naked)) void nakedFunction(int a, int b) { ; }
}