Files
paddlepaddle--paddle/ci/rules/no-int32-type-dims.yml
T
2026-07-13 12:40:42 +08:00

54 lines
1.8 KiB
YAML

id: no-int32-type-dims
language: cpp
files:
- paddle/**
ignores:
- paddle/phi/kernels/legacy/**
- paddle/phi/kernels/xpu/**
- paddle/phi/kernels/custom/**
severity: error
message: |
Use int64_t instead of int/int32_t for dims/shape/strides/numel/offset (large tensor support).
If it is a false positive, please contact zrr1999 (Recommend), wanghuancoder for more information.
note: dims/shape/strides/numel/offset may be >= INT32_MAX; dims()/numel() return int64_t
rule:
any:
- pattern: int $VAR = $RIGHT
- pattern: int32_t $VAR = $RIGHT
- pattern: const int $VAR = $RIGHT
- pattern: const int32_t $VAR = $RIGHT
- pattern: int $VAR($RIGHT)
- pattern: int32_t $VAR($RIGHT)
- pattern: const int $VAR($RIGHT)
- pattern: const int32_t $VAR($RIGHT)
constraints:
RIGHT:
any:
# dims[...] / expr.dims()[...] / expr->dims()[...]
- pattern: $E.dims[$INDEX]
- pattern: $E.dims()[$INDEX]
- pattern: $E.dims($INDEX)
- pattern: $E->dims[$INDEX]
- pattern: $E->dims()[$INDEX]
- pattern: $E->dims($INDEX)
# shape[...] / expr.shape()[...] / expr->shape()[...]
- pattern: $E.shape[$INDEX]
- pattern: $E.shape()[$INDEX]
- pattern: $E->shape[$INDEX]
- pattern: $E->shape()[$INDEX]
# strides[...] / expr.strides()[...] / expr->strides()[...]
- pattern: $E.strides[$INDEX]
- pattern: $E.strides()[$INDEX]
- pattern: $E->strides[$INDEX]
- pattern: $E->strides()[$INDEX]
# numel / numel()
- pattern: $E.numel()
- pattern: $E->numel()
# offset / offset()
# unsafe
# - pattern: $E.offset
# - pattern: $E.offset()
fix: |
// TODO(large-tensor): downstream functors may still use int; guard until upgraded.
int64_t $VAR = $RIGHT;