mirror of
https://github.com/pytorch/pytorch.git
synced 2025-10-20 21:14:14 +08:00
Because Clang-tidy 19 has more powerful clang-analyzer checks to detect subtle bugs. New checks such as misc-use-internal-linkage can help identify potential static variables or functions, thus reducing binary sizes. Some new checks are disabled temporarily for later enabling. Additional warnings have been fixed or suppressed. Pull Request resolved: https://github.com/pytorch/pytorch/pull/148648 Approved by: https://github.com/Skylion007
44 lines
1.2 KiB
C++
44 lines
1.2 KiB
C++
#include <c10/core/WrapDimMinimal.h>
|
|
|
|
namespace c10::detail {
|
|
|
|
template <typename T>
|
|
// NOLINTNEXTLINE(performance-unnecessary-value-param)
|
|
T maybe_wrap_dim_slow(T dim, T dim_post_expr, bool wrap_scalar) {
|
|
TORCH_CHECK_INDEX(
|
|
dim_post_expr >= 0, "Rank cannot be negative but got ", dim_post_expr);
|
|
|
|
if (dim_post_expr == 0) {
|
|
TORCH_CHECK_INDEX(
|
|
wrap_scalar,
|
|
"Dimension specified as ",
|
|
dim,
|
|
" but tensor has no dimensions");
|
|
return c10::maybe_wrap_dim(
|
|
std::move(dim), /*dim_post_expr=*/1, /*wrap_scalar=*/false);
|
|
}
|
|
|
|
T min = dim_post_expr * -1;
|
|
T max = dim_post_expr - 1;
|
|
TORCH_CHECK_INDEX(
|
|
min <= dim && dim <= max,
|
|
"Dimension out of range (expected to be in range of [",
|
|
min,
|
|
", ",
|
|
max,
|
|
"], but got ",
|
|
dim,
|
|
")");
|
|
|
|
TORCH_INTERNAL_ASSERT(
|
|
false, "should never reach here as dim should be out-of-bounds");
|
|
}
|
|
|
|
// Explicitly instantiate the template at the two types it will be used
|
|
template C10_API int64_t
|
|
maybe_wrap_dim_slow(int64_t dim, int64_t dim_post_expr, bool wrap_scalar);
|
|
template C10_API SymInt
|
|
maybe_wrap_dim_slow(SymInt dim, SymInt dim_post_expr, bool wrap_scalar);
|
|
|
|
} // namespace c10::detail
|