llvm-project/clang/test/DebugInfo/Generic/global-blocks-lines.c
Michael Buch 3f3bc4853e
[clang][test][DebugInfo] Move debug-info tests from CodeGen to DebugInfo directory (#154311)
This patch works towards consolidating all Clang debug-info into the
`clang/test/DebugInfo` directory
(https://discourse.llvm.org/t/clang-test-location-of-clang-debug-info-tests/87958).

Here we move only the `clang/test/CodeGen` tests.

The list of files i came up with is:
1. searched for anything with `*debug-info*` in the filename
2. searched for occurrences of `debug-info-kind` in the tests

I created a couple of subdirectories in `clang/test/DebugInfo` where I
thought it made sense (mostly when the tests were target-specific).

There's a couple of tests in `clang/test/CodeGen` that still set
`-debug-info-kind`. They probably don't need to do that, but I'm not
changing that as part of this PR.
2025-08-19 18:25:13 +01:00

46 lines
1.2 KiB
C

// RUN: %clang_cc1 -fblocks -debug-info-kind=limited -emit-llvm %s -o - | FileCheck %s
// Make sure we do not generate line info for debugging-related frame setup.
// CHECK: define {{.*}}block_invoke
// CHECK-NOT: store {{.*}}ptr{{.*}}dbg
// CHECK: store {{.*}}ptr{{.*}}, align
// CHECK: ret
// CHECK: define {{.*}}block_invoke
// CHECK-NOT: store {{.*}}ptr{{.*}}dbg
// CHECK: store {{.*}}ptr{{.*}}, align
// CHECK: ret
// CHECK: define {{.*}}block_invoke
// CHECK-NOT: store {{.*}}ptr{{.*}}dbg
// CHECK: store {{.*}}ptr{{.*}}, align
// CHECK: ret
int printf(const char*, ...);
static void* _NSConcreteGlobalBlock;
typedef void (^ HelloBlock_t)(const char * name);
/* Breakpoint for first Block function. */
HelloBlock_t helloBlock = ^(const char * name) {
printf("Hello there, %s!\n", name);
};
/* Breakpoint for second Block function. */
static HelloBlock_t s_helloBlock = ^(const char * name) {
printf("Hello there, %s!\n", name);
};
/* Breakpoint for third Block function. */
int X = 1234;
int (^CP)(void) = ^{ X = X+1; return X; };
int
main(int argc, char * argv[])
{
helloBlock("world");
s_helloBlock("world");
CP();
printf ("X = %d\n", X);
return X - 1235;
}