summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorDevang Patel <dpatel@apple.com>2010-08-11 21:04:37 +0000
committerDevang Patel <dpatel@apple.com>2010-08-11 21:04:37 +0000
commitd76c1dbe3923da0d4b3dbd0b7bc43265a845af20 (patch)
tree31c6a7bc1e3a8348409737f8dd553e8440b2ae4b /clang
parentffe4630f3d9262c82169d0b1c9451191b1757289 (diff)
downloadbcm5719-llvm-d76c1dbe3923da0d4b3dbd0b7bc43265a845af20.tar.gz
bcm5719-llvm-d76c1dbe3923da0d4b3dbd0b7bc43265a845af20.zip
Emit a stop point for delegate constructor call. This gives user a chance to step into constructor body.
llvm-svn: 110853
Diffstat (limited to 'clang')
-rw-r--r--clang/lib/CodeGen/CGClass.cpp3
-rw-r--r--clang/test/CodeGenCXX/debug-info-ctor.cpp13
2 files changed, 16 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/CGClass.cpp b/clang/lib/CodeGen/CGClass.cpp
index 9ae9b3a8003..453bae2940b 100644
--- a/clang/lib/CodeGen/CGClass.cpp
+++ b/clang/lib/CodeGen/CGClass.cpp
@@ -11,6 +11,7 @@
//
//===----------------------------------------------------------------------===//
+#include "CGDebugInfo.h"
#include "CodeGenFunction.h"
#include "clang/AST/CXXInheritance.h"
#include "clang/AST/RecordLayout.h"
@@ -630,6 +631,8 @@ void CodeGenFunction::EmitConstructorBody(FunctionArgList &Args) {
// Before we go any further, try the complete->base constructor
// delegation optimization.
if (CtorType == Ctor_Complete && IsConstructorDelegationValid(Ctor)) {
+ if (CGDebugInfo *DI = getDebugInfo())
+ DI->EmitStopPoint(Builder);
EmitDelegateCXXConstructorCall(Ctor, Ctor_Base, Args);
return;
}
diff --git a/clang/test/CodeGenCXX/debug-info-ctor.cpp b/clang/test/CodeGenCXX/debug-info-ctor.cpp
new file mode 100644
index 00000000000..07aa5dad600
--- /dev/null
+++ b/clang/test/CodeGenCXX/debug-info-ctor.cpp
@@ -0,0 +1,13 @@
+// RUN: %clang -emit-llvm -g -S %s -o - | FileCheck %s
+
+struct X {
+ X(int v);
+
+ int value;
+};
+
+X::X(int v) {
+ // CHECK: call void @_ZN1XC2Ei(%struct.X* %this1, i32 %tmp), !dbg
+ value = v;
+}
+
OpenPOWER on IntegriCloud