[clang][OpenMP][DebugInfo] Debug support for variables in shared clause of OpenMP...
authorAlok Kumar Sharma <AlokKumar.Sharma@amd.com>
Wed, 22 Dec 2021 14:26:37 +0000 (19:56 +0530)
committerAlok Kumar Sharma <AlokKumar.Sharma@amd.com>
Wed, 22 Dec 2021 14:34:21 +0000 (20:04 +0530)
commit5eb271880c8fc59835797806ac44f736eaf3ddbd
tree7c6369e908151abac5f1718acf702b02e04adcba
parenta9bb97e8410b09446c8d6da3b7bb493f79a4aaea
[clang][OpenMP][DebugInfo] Debug support for variables in shared clause of OpenMP task construct

Currently variables appearing inside shared clause of OpenMP task construct
are not visible inside lldb debugger.

After the current patch, lldb is able to show the variable

```
* thread #1, name = 'a.out', stop reason = breakpoint 1.1
    frame #0: 0x0000000000400934 a.out`.omp_task_entry. [inlined] .omp_outlined.(.global_tid.=0, .part_id.=0x000000000071f0d0, .privates.=0x000000000071f0e8, .copy_fn.=(a.out`.omp_task_privates_map. at testshared.cxx:8), .task_t.=0x000000000071f0c0, __context=0x000000000071f0f0) at testshared.cxx:10:34
   7      else {
   8    #pragma omp task shared(svar) firstprivate(n)
   9        {
-> 10         printf("Task svar = %d\n", svar);
   11         printf("Task n = %d\n", n);
   12         svar = fib(n - 1);
   13       }
(lldb) p svar
(int) $0 = 9
```

Reviewed By: djtodoro

Differential Revision: https://reviews.llvm.org/D115510
clang/lib/CodeGen/CGStmtOpenMP.cpp
clang/lib/CodeGen/CodeGenFunction.h
clang/test/OpenMP/debug_task_shared.c [new file with mode: 0644]