]> granicus.if.org Git - clang/commitdiff
[OPENMP] Fix debug info for 'atomic' construct.
authorAlexey Bataev <a.bataev@hotmail.com>
Mon, 14 Dec 2015 09:26:19 +0000 (09:26 +0000)
committerAlexey Bataev <a.bataev@hotmail.com>
Mon, 14 Dec 2015 09:26:19 +0000 (09:26 +0000)
Debug info for statement under 'atomic' construct must point exactly to that statement, not the directive itself.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@255487 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/CGStmtOpenMP.cpp
test/OpenMP/atomic_codegen.cpp

index bd3c71afb2874d28392796d4543e9c877573e338..eec476bc6b83e1f65b37e2323fe7df99eedd2212 100644 (file)
@@ -2514,7 +2514,8 @@ void CodeGenFunction::EmitOMPAtomicDirective(const OMPAtomicDirective &S) {
   }
 
   LexicalScope Scope(*this, S.getSourceRange());
-  auto &&CodeGen = [&S, Kind, IsSeqCst](CodeGenFunction &CGF) {
+  auto &&CodeGen = [&S, Kind, IsSeqCst, CS](CodeGenFunction &CGF) {
+    CGF.EmitStopPoint(CS);
     EmitOMPAtomicExpr(CGF, Kind, IsSeqCst, S.isPostfixUpdate(), S.getX(),
                       S.getV(), S.getExpr(), S.getUpdateExpr(),
                       S.isXLHSInRHSPart(), S.getLocStart());
index cab9df7c02f28a703ba84bf68939988b35fdb35a..536f2cdffafbc8b8bafcfebd238a6dd874f5f27d 100644 (file)
@@ -112,7 +112,7 @@ void parallel_atomic() {
   // TERM_DEBUG:     call void @__clang_call_terminate
   // TERM_DEBUG:     unreachable
 }
-// TERM_DEBUG-DAG: [[READ_LOC]] = !DILocation(line: [[@LINE-33]],
-// TERM_DEBUG-DAG: [[WRITE_LOC]] = !DILocation(line: [[@LINE-28]],
-// TERM_DEBUG-DAG: [[UPDATE_LOC]] = !DILocation(line: [[@LINE-22]],
-// TERM_DEBUG-DAG: [[CAPTURE_LOC]] = !DILocation(line: [[@LINE-16]],
+// TERM_DEBUG-DAG: [[READ_LOC]] = !DILocation(line: [[@LINE-28]],
+// TERM_DEBUG-DAG: [[WRITE_LOC]] = !DILocation(line: [[@LINE-22]],
+// TERM_DEBUG-DAG: [[UPDATE_LOC]] = !DILocation(line: [[@LINE-16]],
+// TERM_DEBUG-DAG: [[CAPTURE_LOC]] = !DILocation(line: [[@LINE-9]],