1ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// Header for PCH test blocks.c 2ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 3ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaoint call_block(int (^bl)(int x, int y), int a, int b) { 4ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao return bl(a, b); 5ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao} 6ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 7ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaoint add(int a, int b) { 8ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao return call_block(^(int x, int y) { return x + y; }, a, b); 9ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao} 10ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 11ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaoint scaled_add(int a, int b, int s) { 12ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao __block int scale = s; 13ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao return call_block(^(int x, int y) { return x*scale + y; }, a, b); 14ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao} 15