#include "driver.h"
#if __BLOCKS__
int parameters_example_real(int verbose) {
int desiredValue = 100;
void (^myClosure)(int);
myClosure = ^ (int param) {
setGlobalInt(param);
};
myClosure(desiredValue);
int globalValue = getGlobalInt();
if (error_found("parameters_real", globalValue, desiredValue, verbose)) return 1;
return 0;
}
#endif __BLOCKS__
struct parameters_example_struct {
struct Block_basic base;
};
void invoke_parameters_example(struct parameters_example_struct *aBlock, int param) {
{
setGlobalInt(param);
}
}
int parameters_example(int verbose) {
int desiredValue = 100;
struct parameters_example_struct literal = {
{ 0, 0, sizeof(struct parameters_example_struct),
(void (*)(void *))invoke_parameters_example,
},
};
struct parameters_example_struct *myClosure = &literal;
void (*correct)(struct parameters_example_struct *, int);
correct = (void (*)(struct parameters_example_struct *, int))myClosure->base.Block_invoke;
correct(myClosure, desiredValue);
int globalValue = getGlobalInt();
if (error_found("parameters_real", globalValue, desiredValue, verbose)) return 1;
return 0;
}