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

Reply via email to