[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