diff --git a/.bazelrc b/.bazelrc index c8be26b6430..a37a042fdf7 100644 --- a/.bazelrc +++ b/.bazelrc @@ -60,8 +60,6 @@ build --per_file_copt=^external/@-w # cache # * it allows for selective overrides on individual targets since the # macro-level opts will come earlier than target level overrides -build --per_file_copt='^//.*\.(cpp|cc)$'@-Werror=type-limits -build --per_file_copt='^//.*\.(cpp|cc)$'@-Werror=unused-but-set-variable build --per_file_copt='^//.*\.(cpp|cc)$'@-Werror=all # The following warnings come from -Wall. We downgrade them from error @@ -74,6 +72,30 @@ build --per_file_copt='^//.*\.(cpp|cc)$'@-Wno-sign-compare # We intentionally use #pragma unroll, which is compiler specific. build --per_file_copt='^//.*\.(cpp|cc)$'@-Wno-error=unknown-pragmas +build --per_file_copt='^//.*\.(cpp|cc)$'@-Werror=extra +# The following warnings come from -Wextra. We downgrade them from error +# to warnings here. +# +# unused-parameter-compare has a tremendous amount of violations in the +# codebase. It will be a lot of work to fix them, just disable it for +# now. +build --per_file_copt='^//.*\.(cpp|cc)$'@-Wno-unused-parameter +# missing-field-parameters has both a large number of violations in +# the codebase, but it also is used pervasively in the Python C +# API. There are a couple of catches though: +# * we use multiple versions of the Python API and hence have +# potentially multiple different versions of each relevant +# struct. They may have different numbers of fields. It will be +# unwieldy to support multiple versions in the same source file. +# * Python itself for many of these structs recommends only +# initializing a subset of the fields. We should respect the API +# usage conventions of our dependencies. +# +# Hence, we just disable this warning altogether. We may want to clean +# up some of the clear-cut cases that could be risky, but we still +# likely want to have this disabled for the most part. +build --per_file_copt='^//.*\.(cpp|cc)$'@-Wno-missing-field-initializers + build --per_file_copt='//:aten/src/ATen/RegisterCompositeExplicitAutograd\.cpp$'@-Wno-error=unused-function build --per_file_copt='//:aten/src/ATen/RegisterCompositeImplicitAutograd\.cpp$'@-Wno-error=unused-function build --per_file_copt='//:aten/src/ATen/RegisterMkldnnCPU\.cpp$'@-Wno-error=unused-function diff --git a/tools/rules/cu.bzl b/tools/rules/cu.bzl index 903586bcb5d..4ba53910a4c 100644 --- a/tools/rules/cu.bzl +++ b/tools/rules/cu.bzl @@ -3,8 +3,6 @@ load("@rules_cuda//cuda:defs.bzl", "cuda_library") NVCC_COPTS = [ "--expt-relaxed-constexpr", "--expt-extended-lambda", - "--compiler-options=-Werror=type-limits", - "--compiler-options=-Werror=unused-but-set-variable", "--compiler-options=-Werror=all", # The following warnings come from -Wall. We downgrade them from @@ -16,6 +14,30 @@ NVCC_COPTS = [ "--compiler-options=-Wno-sign-compare", # We intentionally use #pragma unroll, which is compiler specific. "--compiler-options=-Wno-error=unknown-pragmas", + + "--compiler-options=-Werror=extra", + # The following warnings come from -Wextra. We downgrade them from + # error to warnings here. + # + # unused-parameter-compare has a tremendous amount of violations + # in the codebase. It will be a lot of work to fix them, just + # disable it for now. + "--compiler-options=-Wno-unused-parameter", + # missing-field-parameters has both a large number of violations + # in the codebase, but it also is used pervasively in the Python C + # API. There are a couple of catches though: + # * we use multiple versions of the Python API and hence have + # potentially multiple different versions of each relevant + # struct. They may have different numbers of fields. It will be + # unwieldy to support multiple versions in the same source file. + # * Python itself for many of these structs recommends only + # initializing a subset of the fields. We should respect the API + # usage conventions of our dependencies. + # + # Hence, we just disable this warning altogether. We may want to + # clean up some of the clear-cut cases that could be risky, but we + # still likely want to have this disabled for the most part. + "-Wno-missing-field-initializers", ] def cu_library(name, srcs, copts = [], **kwargs):