jtb20 wrote:
I had a quick look because I was looking into this briefly too -- it still
crashes for me, like so:
```
Thread 1 "test_target_upd" received signal SIGSEGV, Segmentation fault.
0x00007ffff7aec887 in targetDataUpdate (Loc=0x55555555b5c8, Device=...,
ArgNum=2, ArgsBase=0x7fffffffd880, Args=0x7fffffffd870,
ArgSizes=0x7fffffffd860, ArgTypes=0x5555555582d0, ArgNames=0x55555555b5b8,
ArgMappers=0x0, AsyncInfo=..., AttachInfo=0x0, FromMapper=false) at
/work1/julbrown/code/mainline+amd-staging/src/llvm-project-main/offload/libomptarget/omptarget.cpp:1297
1297 NonContig[DimSize - 1].Count * NonContig[DimSize - 1].Stride;
```
The strange thing about the surrounding loop (in
`generateInfoForComponentList`) is that it *appears* like it was written to
handle this case at some point, see e.g. the comment:
```
// If ElementType is null, then it means the base is a pointer
// (neither CAT nor VAT) and we'll attempt to get ElementType again
// for next iteration.
```
But, that can't ever happen because of the if stmt further up:
```
if (!OASE)
continue;
```
So it might be worth doing some archaeology to figure out why/when this was
broken.
JFYI!
https://github.com/llvm/llvm-project/pull/157443
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits