diff options
author | Devang Patel <dpatel@apple.com> | 2010-08-11 21:04:37 +0000 |
---|---|---|
committer | Devang Patel <dpatel@apple.com> | 2010-08-11 21:04:37 +0000 |
commit | d76c1dbe3923da0d4b3dbd0b7bc43265a845af20 (patch) | |
tree | 31c6a7bc1e3a8348409737f8dd553e8440b2ae4b /clang | |
parent | ffe4630f3d9262c82169d0b1c9451191b1757289 (diff) | |
download | bcm5719-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.cpp | 3 | ||||
-rw-r--r-- | clang/test/CodeGenCXX/debug-info-ctor.cpp | 13 |
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; +} + |