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?