diff options
author | Alok Kumar Sharma <AlokKumar.Sharma@amd.com> | 2021-12-22 19:56:37 +0530 |
---|---|---|
committer | Alok Kumar Sharma <AlokKumar.Sharma@amd.com> | 2021-12-22 20:04:21 +0530 |
commit | 5eb271880c8fc59835797806ac44f736eaf3ddbd (patch) | |
tree | 7c6369e908151abac5f1718acf702b02e04adcba /clang/lib/CodeGen/CodeGenFunction.h | |
parent | a9bb97e8410b09446c8d6da3b7bb493f79a4aaea (diff) | |
download | llvm-5eb271880c8fc59835797806ac44f736eaf3ddbd.zip llvm-5eb271880c8fc59835797806ac44f736eaf3ddbd.tar.gz llvm-5eb271880c8fc59835797806ac44f736eaf3ddbd.tar.bz2 |
[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
Diffstat (limited to 'clang/lib/CodeGen/CodeGenFunction.h')
-rw-r--r-- | clang/lib/CodeGen/CodeGenFunction.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/CodeGenFunction.h b/clang/lib/CodeGen/CodeGenFunction.h index 481ec2d..f76ce8a 100644 --- a/clang/lib/CodeGen/CodeGenFunction.h +++ b/clang/lib/CodeGen/CodeGenFunction.h @@ -459,6 +459,11 @@ public: /// Get the name of the capture helper. virtual StringRef getHelperName() const { return "__captured_stmt"; } + /// Get the CaptureFields + llvm::SmallDenseMap<const VarDecl *, FieldDecl *> getCaptureFields() { + return CaptureFields; + } + private: /// The kind of captured statement being generated. CapturedRegionKind Kind; |