diff options
author | Paul Robinson <paul.robinson@sony.com> | 2016-06-16 00:42:36 +0000 |
---|---|---|
committer | Paul Robinson <paul.robinson@sony.com> | 2016-06-16 00:42:36 +0000 |
commit | afd2dde2fdf23658cd0cbe55175953e735fcb62a (patch) | |
tree | ed9901b2430749e12ded8fce7ab96fd98298f2e7 /clang/test/CodeGenObjC/debug-info-nodebug.m | |
parent | d01720d46d9456fce63f58497f56e106d2311efc (diff) | |
download | llvm-afd2dde2fdf23658cd0cbe55175953e735fcb62a.zip llvm-afd2dde2fdf23658cd0cbe55175953e735fcb62a.tar.gz llvm-afd2dde2fdf23658cd0cbe55175953e735fcb62a.tar.bz2 |
Allow 'nodebug' on local variables.
Parameters and non-static members of aggregates are still excluded,
and probably should remain that way.
Differential Revision: http://reviews.llvm.org/D19754
llvm-svn: 272859
Diffstat (limited to 'clang/test/CodeGenObjC/debug-info-nodebug.m')
-rw-r--r-- | clang/test/CodeGenObjC/debug-info-nodebug.m | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/clang/test/CodeGenObjC/debug-info-nodebug.m b/clang/test/CodeGenObjC/debug-info-nodebug.m new file mode 100644 index 0000000..42d630b --- /dev/null +++ b/clang/test/CodeGenObjC/debug-info-nodebug.m @@ -0,0 +1,26 @@ +// RUN: %clang_cc1 -triple arm-apple-ios -emit-llvm -debug-info-kind=limited -fblocks %s -o - | FileCheck %s +// Objective-C code cargo-culted from debug-info-lifetime-crash.m. +@protocol NSObject +- (id)copy; +@end +@class W; +@interface View1 +@end +@implementation Controller { + void (^Block)(void); +} +- (void)View:(View1 *)View foo:(W *)W +{ + // The reference from inside the block implicitly creates another + // local variable for the referenced member. That is what gets + // suppressed by the attribute. It still gets debug info as a + // member, though. + // CHECK-NOT: !DILocalVariable(name: "weakSelf" + // CHECK: !DIDerivedType({{.*}} name: "weakSelf" + // CHECK-NOT: !DILocalVariable(name: "weakSelf" + __attribute__((nodebug)) __typeof(self) weakSelf = self; + Block = [^{ + __typeof(self) strongSelf = weakSelf; + } copy]; +} +@end |