diff options
| author | Arseniy Zaostrovnykh <necto.ne@gmail.com> | 2024-08-28 11:30:18 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-08-28 11:30:18 +0200 |
| commit | 82e314e3664d2c8768212e74f751187d51950b87 (patch) | |
| tree | 291b7f56b37ac7107397fd5a95cd721f24b1ae3f /llvm/lib/IR/Core.cpp | |
| parent | 07514fa9b607fd80a72a80270d714e22d842fa39 (diff) | |
[analyzer] Fix false positive for mutexes inheriting mutex_base (#106240)
If a mutex interface is split in inheritance chain, e.g. struct mutex
has `unlock` and inherits `lock` from __mutex_base then calls m.lock()
and m.unlock() have different "this" targets: m and the __mutex_base of
m, which used to confuse the `ActiveCritSections` list.
Taking base region canonicalizes the region used to identify a critical
section and enables search in ActiveCritSections list regardless of
which class the callee is the member of.
This likely fixes #104241
CPP-5541
Diffstat (limited to 'llvm/lib/IR/Core.cpp')
0 files changed, 0 insertions, 0 deletions
