[PATCH] D19708: [CGDebugInfo] Generate debug info for member calls in the context of the callee expression

Hal Finkel via cfe-commits cfe-commits at lists.llvm.org
Wed May 25 15:14:51 PDT 2016


This revision was automatically updated to reflect the committed changes.
Closed by commit rL270775: [CGDebugInfo] Modify the preferred expression location for member calls. (authored by hfinkel).

Changed prior to commit:
  http://reviews.llvm.org/D19708?vs=55610&id=58521#toc

Repository:
  rL LLVM

http://reviews.llvm.org/D19708

Files:
  cfe/trunk/include/clang/AST/ExprCXX.h
  cfe/trunk/test/CodeGenCXX/debug-info-member-call.cpp

Index: cfe/trunk/include/clang/AST/ExprCXX.h
===================================================================
--- cfe/trunk/include/clang/AST/ExprCXX.h
+++ cfe/trunk/include/clang/AST/ExprCXX.h
@@ -143,6 +143,14 @@
   /// FIXME: Returns 0 for member pointer call exprs.
   CXXRecordDecl *getRecordDecl() const;
 
+  SourceLocation getExprLoc() const LLVM_READONLY {
+    SourceLocation CLoc = getCallee()->getExprLoc();
+    if (CLoc.isValid())
+      return CLoc;
+
+    return getLocStart();
+  }
+
   static bool classof(const Stmt *T) {
     return T->getStmtClass() == CXXMemberCallExprClass;
   }
Index: cfe/trunk/test/CodeGenCXX/debug-info-member-call.cpp
===================================================================
--- cfe/trunk/test/CodeGenCXX/debug-info-member-call.cpp
+++ cfe/trunk/test/CodeGenCXX/debug-info-member-call.cpp
@@ -0,0 +1,24 @@
+// RUN: %clang_cc1 -triple x86_64-unknown_unknown -emit-llvm -debug-info-kind=standalone -dwarf-column-info %s -o - | FileCheck %s
+void ext();
+
+struct Bar {
+  void bar() { ext(); }
+};
+
+struct Foo {
+  Bar *b;
+
+  Bar *foo() { return b; }
+};
+
+void test(Foo *f) {
+  f->foo()->bar();
+}
+
+// CHECK-LABEL: @_Z4testP3Foo
+// CHECK: call {{.*}} @_ZN3Foo3fooEv{{.*}}, !dbg ![[CALL1LOC:.*]]
+// CHECK: call void @_ZN3Bar3barEv{{.*}}, !dbg ![[CALL2LOC:.*]]
+
+// CHECK: ![[CALL1LOC]] = !DILocation(line: [[LINE:[0-9]+]], column: 6,
+// CHECK: ![[CALL2LOC]] = !DILocation(line: [[LINE]], column: 13,
+


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D19708.58521.patch
Type: text/x-patch
Size: 1471 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20160525/721a233c/attachment-0001.bin>


More information about the cfe-commits mailing list