brintos

brintos / llvm-project-archived public Read only

0
0
Text · 783 B · de30eed Raw
27 lines · plain
1// RUN: %clang_cc1 -emit-llvm -dwarf-version=2 -debug-info-kind=limited -fblocks -o - -x objective-c %s| FileCheck %s2// This code triggered a bug where a dbg.declare intrinsic ended up with the3// wrong parent and subsequently failed the Verifier.4void baz(id b);5void fub(id block);6int foo(void);7void bar(void) {8  fub(^() {9      id a;10      id b = [a bar:^(int e){}];11      if (b) {12        ^() {13            if ((0 && foo()) ? 1 : 0) {14              baz([a aMessage]);15            }16        };17      }18  });19}20 21// Verify that debug info for BlockPointerDbgLoc is emitted for the22// innermost block.23//24// CHECK: define {{.*}}void @__bar_block_invoke_3(ptr noundef %.block_descriptor)25// CHECK: %[[BLOCKADDR:.*]] = alloca ptr, align26// CHECK: #dbg_declare({{.*}}%[[BLOCKADDR]]27