#include "include/native.h" #include #include #include struct Imported_Handle { int value; }; static struct Imported_Handle handle = {7}; int child_value(int value) { return value; } int imported_add(imported_int left, int right) { return left + right; } unsigned long imported_scalar(unsigned char value, unsigned long extra) { return value + extra; } Imported_Handle *imported_handle(void) { return &handle; } int imported_read(const Imported_Handle *value) { return value->value; } int imported_string(const char *value) { if (strcmp(value, "hello") != 0) { abort(); } return 0; } int imported_variadic(int marker, ...) { va_list args; va_start(args, marker); int narrow_signed = va_arg(args, int); int narrow_unsigned = va_arg(args, int); double float_value = va_arg(args, double); double c_float_value = va_arg(args, double); const unsigned char *pointer = va_arg(args, const unsigned char *); const unsigned char *nullable = va_arg(args, const unsigned char *); va_end(args); if (!(marker == 7 && narrow_signed == -2 && narrow_unsigned == 3 && float_value == 4.0 && c_float_value == 5.0 && pointer[0] == 'o' && nullable == pointer)) { abort(); } return 0; } #ifdef BROLANG_FEATURE int configured_value(int value) { return value; } #endif