diff options
author | Zachary Turner <zturner@google.com> | 2017-11-17 00:41:18 +0000 |
---|---|---|
committer | Zachary Turner <zturner@google.com> | 2017-11-17 00:41:18 +0000 |
commit | b5c237ec3d5f708e7118913923f3d50359dff40a (patch) | |
tree | b438760cb6dcd11f4a68498b270b55af373a95b4 /debuginfo-tests/blocks.m | |
parent | 2f2ace985de421f9a4ff793ae2520ae91ecd4f0a (diff) | |
download | bcm5719-llvm-b5c237ec3d5f708e7118913923f3d50359dff40a.tar.gz bcm5719-llvm-b5c237ec3d5f708e7118913923f3d50359dff40a.zip |
Re-revert "Refactor debuginfo-tests"
This is still broken because it causes certain tests to be
run twice with slightly different configurations, which is
wrong in some cases.
You can observe this by running:
ninja -nv check-all | grep debuginfo-tests
And seeing that it passes clang/test and clang/test/debuginfo-tests
to lit, which causes it to run debuginfo-tests twice. The fix is
going to involve either:
a) figuring out that we're running in this "deprecated" configuration,
and then deleting the clang/test/debuginfo-tests path, which should
cause it to behave identically to before, or:
b) make lit smart enough that it doesn't descend into a sub-suite if
that sub-suite already has a lit.cfg file.
llvm-svn: 318486
Diffstat (limited to 'debuginfo-tests/blocks.m')
-rw-r--r-- | debuginfo-tests/blocks.m | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/debuginfo-tests/blocks.m b/debuginfo-tests/blocks.m new file mode 100644 index 00000000000..8e5a2121320 --- /dev/null +++ b/debuginfo-tests/blocks.m @@ -0,0 +1,43 @@ +// RUN: %clang %target_itanium_abi_host_triple -O0 -g %s -c -o %t.o +// RUN: %clang %target_itanium_abi_host_triple %t.o -o %t.out -framework Foundation +// RUN: %test_debuginfo %s %t.out + +// REQUIRES: system-darwin +// Radar 9279956 + +// DEBUGGER: break 31 +// DEBUGGER: r +// DEBUGGER: p m2 +// CHECK: ${{[0-9]}} = 1 +// DEBUGGER: p dbTransaction +// CHECK: ${{[0-9]}} = 0 +// DEBUGGER: p master +// CHECK: ${{[0-9]}} = 0 + +#include <Cocoa/Cocoa.h> + +extern void foo(void(^)(void)); + +@interface A:NSObject @end +@implementation A +- (void) helper { + int master = 0; + __block int m2 = 0; + __block int dbTransaction = 0; + int (^x)(void) = ^(void) { (void) self; + (void) master; + (void) dbTransaction; + m2++; + return m2; + }; + master = x(); +} +@end + +void foo(void(^x)(void)) {} + +int main() { + A *a = [A alloc]; + [a helper]; + return 0; +} |