| 2348 | } |
| 2349 | |
| 2350 | uint64_t FnCall::getMaxAccessSize() const { |
| 2351 | uint64_t sz = attrs.has(FnAttrs::Dereferenceable) ? attrs.derefBytes : 0; |
| 2352 | if (attrs.has(FnAttrs::DereferenceableOrNull)) |
| 2353 | sz = max(sz, attrs.derefOrNullBytes); |
| 2354 | |
| 2355 | for (auto &[arg, attrs] : args) { |
| 2356 | if (attrs.has(ParamAttrs::Dereferenceable)) |
| 2357 | sz = max(sz, attrs.derefBytes); |
| 2358 | if (attrs.has(ParamAttrs::DereferenceableOrNull)) |
| 2359 | sz = max(sz, attrs.derefOrNullBytes); |
| 2360 | } |
| 2361 | return sz; |
| 2362 | } |
| 2363 | |
| 2364 | MemInstr::ByteAccessInfo FnCall::getByteAccessInfo() const { |
| 2365 | if (attrs.has(AllocKind::Uninitialized) || attrs.has(AllocKind::Free)) |
no test coverage detected