
Add a warning to TableGen for unused template arguments in classes and multiclasses, for example: multiclass Foo<int x> { def bar; } $ llvm-tblgen foo.td foo.td:1:20: warning: unused template argument: Foo::x multiclass Foo<int x> { ^ A flag '--no-warn-on-unused-template-args' is added to disable the warning. The warning is disabled for LLVM and sub-projects if 'LLVM_ENABLE_WARNINGS=OFF'. Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D109359
26 lines
741 B
TableGen
26 lines
741 B
TableGen
// RUN: llvm-tblgen %s 2>&1 | FileCheck %s
|
|
// RUN: llvm-tblgen --no-warn-on-unused-template-args %s 2>&1 | FileCheck %s --check-prefix=CHECK-DISABLED
|
|
|
|
class UnusedClassArg<int foo> {}
|
|
|
|
// CHECK: warning: unused template argument: UnusedClassArg:foo
|
|
// CHECK-NEXT: class UnusedClassArg<int foo> {}
|
|
// CHECK-NEXT: ^
|
|
|
|
multiclass UnusedMultiClassArg<int foo> {
|
|
def bar;
|
|
}
|
|
|
|
defm : UnusedMultiClassArg<1>;
|
|
|
|
// CHECK: warning: unused template argument: UnusedMultiClassArg::foo
|
|
// CHECK-NEXT: multiclass UnusedMultiClassArg<int foo> {
|
|
// CHECK-NEXT: ^
|
|
|
|
class NoWarning<int b> {
|
|
int a = b;
|
|
}
|
|
|
|
// CHECK-NOT: warning: unused template argument: NoWarning:b
|
|
// CHECK-DISABLED-NOT: warning
|