54 lines
1.8 KiB
YAML
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;
|