blob: 4203fce051deba44f343ea7f01de1ed3ce572783 [file] [log] [blame]
Daniel Dunbar5b90ae12009-04-17 00:48:04 +00001// RUN: clang-cc -triple i386-unknown-unknown %s -emit-llvm -o %t -fblocks &&
Anders Carlsson6cf64be2009-03-01 01:09:12 +00002void (^f)(void) = ^{};
Anders Carlssonea92a922009-04-08 02:55:55 +00003
4// rdar://6768379
5int f0(int (^a0)()) {
6 return a0(1, 2, 3);
7}
Daniel Dunbar5b90ae12009-04-17 00:48:04 +00008
9// Verify that attributes on blocks are set correctly.
10typedef struct s0 T;
11struct s0 {
12 int a[64];
13};
14
15// RUN: grep 'internal void @__f2_block_invoke_(.struct.s0\* noalias sret .*, .*, .* byval .*)' %t &&
16struct s0 f2(struct s0 a0) {
17 return ^(struct s0 a1){ return a1; }(a0);
18}
19
20// RUN: true