This patch fixes an issue with failing to properly capture a variably modified type alias of an already mapped flat array. The test showcases a minimal example of the failing scenario.
Details
Diff Detail
Event Timeline
| clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp | ||
|---|---|---|
| 243–244 | Is it for pointers only? Or for other types too? | |
| clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp | ||
|---|---|---|
| 243–244 | I am not sure about that distinction; it allows for the same types as before except that when the directive is not a combined parallel for directive it returns immediately because the variable will then have to be captured and shared. | |
| clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp | ||
|---|---|---|
| 243–244 | Correction: it allows for VMTs to pass through in cases in which you don't use a combined parallel for directive. | |
| clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp | ||
|---|---|---|
| 243–244 | IsVMTTy? | |
| 243–244 | How can it be captured by value? Why does it happen? My first question relates to the assertion you changed. I assume, it applies only to the pointers. Otherwise, please add more context how we can capture mariably modifiable type by value. | |
| clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp | ||
|---|---|---|
| 243–244 | Yes it should be called IsVMTTy | |
| clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp | ||
|---|---|---|
| 243–244 | Still naming, IsVMTTy. | |
| clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp | ||
|---|---|---|
| 243–244 | It only applies to pointers, it's the pointer that needs to be used correctly. | |
Is it for pointers only? Or for other types too?