Commit b31a3f8
committed
[clang] Fix nondeterminism in MemberPointerType
This commit fixes the nondeterminism issue in C++ header module enabled
builds which were observed after
#132401.
The issue was related to the fact that the hash set operation in
MemberPointerType::Profile() was triggering getMostRecentDecl(). The
root cause seems to be that the latter was leading to the reentrant
modification of the hash set, with some probability (likely depending
on the actual values of hashes).
We haven't been able to come up with a deterministic regression test for
this fix.1 parent d775b91 commit b31a3f8
2 files changed
+9
-4
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3602 | 3602 | | |
3603 | 3603 | | |
3604 | 3604 | | |
| 3605 | + | |
3605 | 3606 | | |
3606 | 3607 | | |
3607 | 3608 | | |
| |||
3610 | 3611 | | |
3611 | 3612 | | |
3612 | 3613 | | |
3613 | | - | |
| 3614 | + | |
3614 | 3615 | | |
3615 | 3616 | | |
3616 | 3617 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5275 | 5275 | | |
5276 | 5276 | | |
5277 | 5277 | | |
| 5278 | + | |
| 5279 | + | |
| 5280 | + | |
| 5281 | + | |
| 5282 | + | |
| 5283 | + | |
5278 | 5284 | | |
5279 | | - | |
5280 | | - | |
5281 | | - | |
| 5285 | + | |
5282 | 5286 | | |
5283 | 5287 | | |
5284 | 5288 | | |
| |||
0 commit comments