Commit 22a10c8
authored
[OpenMP][Flang] Fix atomic operations on complex types (#165366)
Fixes #165184
In OMPIRBuilder::createAtomicRead() and createAtomicWrite(), the size
parameter for __atomic_load/__atomic_store was incorrectly computed
from the pointer type instead of the pointee (element) type.
On 64-bit systems, this resulted in only 8 bytes being transferred
regardless of the actual struct size.
Changed both functions to use XElemTy (element type) instead of the
pointer type when computing LoadSize. This ensures the full struct
is transferred.1 parent ff23ddc commit 22a10c8
File tree
4 files changed
+155
-10
lines changed- flang/test/Lower/OpenMP
- llvm
- lib/Frontend/OpenMP
- unittests/Frontend
4 files changed
+155
-10
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5473 | 5473 | | |
5474 | 5474 | | |
5475 | 5475 | | |
5476 | | - | |
| 5476 | + | |
| 5477 | + | |
5477 | 5478 | | |
5478 | 5479 | | |
5479 | 5480 | | |
| |||
9338 | 9339 | | |
9339 | 9340 | | |
9340 | 9341 | | |
9341 | | - | |
9342 | | - | |
9343 | | - | |
| 9342 | + | |
| 9343 | + | |
9344 | 9344 | | |
9345 | 9345 | | |
9346 | 9346 | | |
| |||
9384 | 9384 | | |
9385 | 9385 | | |
9386 | 9386 | | |
9387 | | - | |
9388 | | - | |
9389 | | - | |
| 9387 | + | |
| 9388 | + | |
9390 | 9389 | | |
9391 | 9390 | | |
9392 | 9391 | | |
| |||
9581 | 9580 | | |
9582 | 9581 | | |
9583 | 9582 | | |
9584 | | - | |
| 9583 | + | |
9585 | 9584 | | |
9586 | 9585 | | |
9587 | 9586 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4534 | 4534 | | |
4535 | 4535 | | |
4536 | 4536 | | |
| 4537 | + | |
| 4538 | + | |
| 4539 | + | |
| 4540 | + | |
| 4541 | + | |
| 4542 | + | |
| 4543 | + | |
| 4544 | + | |
| 4545 | + | |
| 4546 | + | |
| 4547 | + | |
| 4548 | + | |
| 4549 | + | |
| 4550 | + | |
| 4551 | + | |
| 4552 | + | |
| 4553 | + | |
| 4554 | + | |
| 4555 | + | |
| 4556 | + | |
| 4557 | + | |
| 4558 | + | |
| 4559 | + | |
| 4560 | + | |
| 4561 | + | |
| 4562 | + | |
| 4563 | + | |
| 4564 | + | |
| 4565 | + | |
| 4566 | + | |
| 4567 | + | |
| 4568 | + | |
| 4569 | + | |
| 4570 | + | |
| 4571 | + | |
| 4572 | + | |
| 4573 | + | |
| 4574 | + | |
| 4575 | + | |
| 4576 | + | |
| 4577 | + | |
| 4578 | + | |
| 4579 | + | |
| 4580 | + | |
| 4581 | + | |
| 4582 | + | |
| 4583 | + | |
| 4584 | + | |
| 4585 | + | |
| 4586 | + | |
| 4587 | + | |
| 4588 | + | |
| 4589 | + | |
| 4590 | + | |
| 4591 | + | |
| 4592 | + | |
| 4593 | + | |
| 4594 | + | |
| 4595 | + | |
| 4596 | + | |
| 4597 | + | |
| 4598 | + | |
| 4599 | + | |
| 4600 | + | |
| 4601 | + | |
| 4602 | + | |
| 4603 | + | |
| 4604 | + | |
| 4605 | + | |
| 4606 | + | |
| 4607 | + | |
| 4608 | + | |
| 4609 | + | |
| 4610 | + | |
| 4611 | + | |
| 4612 | + | |
| 4613 | + | |
| 4614 | + | |
| 4615 | + | |
4537 | 4616 | | |
4538 | 4617 | | |
4539 | 4618 | | |
| |||
7576 | 7655 | | |
7577 | 7656 | | |
7578 | 7657 | | |
7579 | | - | |
7580 | | - | |
| 7658 | + | |
7581 | 7659 | | |
7582 | 7660 | | |
7583 | 7661 | | |
| |||
0 commit comments