29#define DART_EXPORT extern "C" __declspec(dllexport)
32 extern "C" __attribute__((visibility("default"))) __attribute((used))
39 fprintf(stderr, "%s\n", "Check failed: " #X); \
43#define CHECK_EQ(X, Y) CHECK((X) == (Y))
72 std::cout <<
"SumPlus42(" <<
a <<
", " <<
b <<
")\n";
73 const int32_t retval = 42 +
a +
b;
74 std::cout <<
"returning " << retval <<
"\n";
105 uint64_t v = 0xabcff;
112 uint64_t v = 0xabcffff;
117 uint64_t v = 0xabcffffffff;
122 int64_t v = 0x8abc80;
127 int64_t v = 0x8abc8000;
132 int64_t v = 0x8abc80000000;
138 std::cout <<
"TakeMaxUint8(" <<
static_cast<int>(
x) <<
")\n";
139 return x == 0xff ? 1 : 0;
143 std::cout <<
"TakeMaxUint16(" <<
x <<
")\n";
144 return x == 0xffff ? 1 : 0;
148 std::cout <<
"TakeMaxUint32(" <<
x <<
")\n";
149 return x == 0xffffffff ? 1 : 0;
153 std::cout <<
"TakeMinInt8(" <<
static_cast<int>(
x) <<
")\n";
154 const int64_t expected = -0x80;
155 const int64_t received =
x;
156 return expected == received ? 1 : 0;
160 std::cout <<
"TakeMinInt16(" <<
x <<
")\n";
161 const int64_t expected = -0x8000;
162 const int64_t received =
x;
163 return expected == received ? 1 : 0;
167 std::cout <<
"TakeMinInt32(" <<
x <<
")\n";
168 const int64_t expected = INT32_MIN;
169 const int64_t received =
x;
170 return expected == received ? 1 : 0;
184 std::cout <<
"TakeMaxUint8x10(" <<
static_cast<int>(
a) <<
", "
185 <<
static_cast<int>(
b) <<
", " <<
static_cast<int>(c) <<
", "
186 <<
static_cast<int>(
d) <<
", " <<
static_cast<int>(e) <<
", "
187 <<
static_cast<int>(f) <<
", " <<
static_cast<int>(g) <<
", "
188 <<
static_cast<int>(
h) <<
", " <<
static_cast<int>(i) <<
", "
189 <<
static_cast<int>(j) <<
")\n";
190 return (
a == 0xff &&
b == 0xff && c == 0xff &&
d == 0xff && e == 0xff &&
191 f == 0xff && g == 0xff &&
h == 0xff && i == 0xff && j == 0xff)
199 std::cout <<
"IntComputation(" <<
static_cast<int>(
a) <<
", " <<
b <<
", "
200 << c <<
", " <<
d <<
")\n";
201 const int64_t retval =
d - c +
b -
a;
202 std::cout <<
"returning " << retval <<
"\n";
208 std::cout <<
"Regress39044(" <<
a <<
", " <<
static_cast<int>(
b) <<
")\n";
209 const int64_t retval =
a -
b;
210 std::cout <<
"returning " << retval <<
"\n";
215 std::cout <<
"Regress40537(" <<
static_cast<int>(
x) <<
")\n";
216 return x == 249 ? 1 : 0;
220 std::cout <<
"Regress40537Variant2(" <<
static_cast<int>(
x) <<
")\n";
225 std::cout <<
"Regress40537Variant3(" <<
static_cast<int>(
x) <<
")\n";
235 std::cout <<
"UintComputation(" <<
static_cast<int>(
a) <<
", " <<
b <<
", "
236 << c <<
", " <<
d <<
")\n";
237 const uint64_t retval =
d - c +
b -
a;
238 std::cout <<
"returning " << retval <<
"\n";
245 std::cout <<
"Times3(" <<
a <<
")\n";
246 const intptr_t retval =
a * 3;
247 std::cout <<
"returning " << retval <<
"\n";
256 std::cout <<
"Times1_337Double(" <<
a <<
")\n";
257 const double retval =
a * 1.337;
258 std::cout <<
"returning " << retval <<
"\n";
265 std::cout <<
"Times1_337Float(" <<
a <<
")\n";
266 const float retval =
a * 1.337f;
267 std::cout <<
"returning " << retval <<
"\n";
284 std::cout <<
"SumManyInts(" <<
a <<
", " <<
b <<
", " << c <<
", " <<
d
285 <<
", " << e <<
", " << f <<
", " << g <<
", " <<
h <<
", " << i
286 <<
", " << j <<
")\n";
287 const intptr_t retval =
a +
b + c +
d + e + f + g +
h + i + j;
288 std::cout <<
"returning " << retval <<
"\n";
305 std::cout <<
"SumManySmallInts(" <<
static_cast<int>(
a) <<
", " <<
b <<
", "
306 <<
static_cast<int>(c) <<
", " <<
d <<
", " <<
static_cast<int>(e)
307 <<
", " << f <<
", " <<
static_cast<int>(g) <<
", " <<
h <<
", "
308 <<
static_cast<int>(i) <<
", " << j <<
")\n";
309 const int16_t retval =
a +
b + c +
d + e + f + g +
h + i + j;
310 std::cout <<
"returning " << retval <<
"\n";
316 std::cout <<
"SumFloatsAndDoubles(" <<
a <<
", " <<
b <<
", " << c <<
")\n";
317 const double retval =
a +
b + c;
318 std::cout <<
"returning " << retval <<
"\n";
363 std::cout <<
"SumVeryManySmallInts(" <<
static_cast<int>(a01) <<
", " << a02
364 <<
", " <<
static_cast<int>(a03) <<
", " << a04 <<
", "
365 <<
static_cast<int>(a05) <<
", " << a06 <<
", "
366 <<
static_cast<int>(a07) <<
", " << a08 <<
", "
367 <<
static_cast<int>(a09) <<
", " << a10 <<
", "
368 <<
static_cast<int>(a11) <<
", " << a12 <<
", "
369 <<
static_cast<int>(a13) <<
", " << a14 <<
", "
370 <<
static_cast<int>(a15) <<
", " << a16 <<
", "
371 <<
static_cast<int>(a17) <<
", " << a18 <<
", "
372 <<
static_cast<int>(a19) <<
", " << a20 <<
", "
373 <<
static_cast<int>(a21) <<
", " << a22 <<
", "
374 <<
static_cast<int>(a23) <<
", " << a24 <<
", "
375 <<
static_cast<int>(a25) <<
", " << a26 <<
", "
376 <<
static_cast<int>(a27) <<
", " << a28 <<
", "
377 <<
static_cast<int>(a29) <<
", " << a30 <<
", "
378 <<
static_cast<int>(a31) <<
", " << a32 <<
", "
379 <<
static_cast<int>(a33) <<
", " << a34 <<
", "
380 <<
static_cast<int>(a35) <<
", " << a36 <<
", "
381 <<
static_cast<int>(a37) <<
", " << a38 <<
", "
382 <<
static_cast<int>(a39) <<
", " << a40 <<
")\n";
383 const int16_t retval = a01 + a02 + a03 + a04 + a05 + a06 + a07 + a08 + a09 +
384 a10 + a11 + a12 + a13 + a14 + a15 + a16 + a17 + a18 +
385 a19 + a20 + a21 + a22 + a23 + a24 + a25 + a26 + a27 +
386 a28 + a29 + a30 + a31 + a32 + a33 + a34 + a35 + a36 +
387 a37 + a38 + a39 + a40;
388 std::cout <<
"returning " << retval <<
"\n";
434 std::cout <<
"SumVeryManyFloatsDoubles(" << a01 <<
", " << a02 <<
", " << a03
435 <<
", " << a04 <<
", " << a05 <<
", " << a06 <<
", " << a07 <<
", "
436 << a08 <<
", " << a09 <<
", " << a10 <<
", " << a11 <<
", " << a12
437 <<
", " << a13 <<
", " << a14 <<
", " << a15 <<
", " << a16 <<
", "
438 << a17 <<
", " << a18 <<
", " << a19 <<
", " << a20 <<
", " << a21
439 <<
", " << a22 <<
", " << a23 <<
", " << a24 <<
", " << a25 <<
", "
440 << a26 <<
", " << a27 <<
", " << a28 <<
", " << a29 <<
", " << a30
441 <<
", " << a31 <<
", " << a32 <<
", " << a33 <<
", " << a34 <<
", "
442 << a35 <<
", " << a36 <<
", " << a37 <<
", " << a38 <<
", " << a39
443 <<
", " << a40 <<
")\n";
444 const double retval = a01 + a02 + a03 + a04 + a05 + a06 + a07 + a08 + a09 +
445 a10 + a11 + a12 + a13 + a14 + a15 + a16 + a17 + a18 +
446 a19 + a20 + a21 + a22 + a23 + a24 + a25 + a26 + a27 +
447 a28 + a29 + a30 + a31 + a32 + a33 + a34 + a35 + a36 +
448 a37 + a38 + a39 + a40;
449 std::cout <<
"returning " << retval <<
"\n";
467 std::cout <<
"SumManyInts(" <<
a <<
", " <<
b <<
", " << c <<
", " <<
d
468 <<
", " << e <<
", " << f <<
", " << g <<
", " <<
h <<
", " << i
469 <<
", " << j <<
", " << k <<
")\n";
470 const intptr_t retval =
471 static_cast<uintptr_t
>(
a) +
static_cast<uintptr_t
>(
b) +
472 static_cast<uintptr_t
>(c) +
static_cast<uintptr_t
>(
d) +
473 static_cast<uintptr_t
>(e) +
static_cast<uintptr_t
>(f) +
474 static_cast<uintptr_t
>(g) +
static_cast<uintptr_t
>(
h) +
475 static_cast<uintptr_t
>(i) +
static_cast<uintptr_t
>(j) +
476 static_cast<uintptr_t
>(k);
477 std::cout <<
"returning " << retval <<
"\n";
494 std::cout <<
"SumManyDoubles(" <<
a <<
", " <<
b <<
", " << c <<
", " <<
d
495 <<
", " << e <<
", " << f <<
", " << g <<
", " <<
h <<
", " << i
496 <<
", " << j <<
")\n";
497 const double retval =
a +
b + c +
d + e + f + g +
h + i + j;
498 std::cout <<
"returning " << retval <<
"\n";
525 std::cout <<
"SumManyNumbers(" <<
a <<
", " <<
b <<
", " << c <<
", " <<
d
526 <<
", " << e <<
", " << f <<
", " << g <<
", " <<
h <<
", " << i
527 <<
", " << j <<
", " << k <<
", " << l <<
", " << m <<
", " << n
528 <<
", " << o <<
", " << p <<
", " << q <<
", " << r <<
", " <<
s
529 <<
", " << t <<
")\n";
530 const double retval =
a +
b + c +
d + e + f + g +
h + i + j + k + l + m + n +
531 o + p + q + r +
s + t;
532 std::cout <<
"returning " << retval <<
"\n";
539 std::cout <<
"Assign1337Index1(" <<
a <<
")\n";
540 std::cout <<
"val[0] = " <<
a[0] <<
"\n";
541 std::cout <<
"val[1] = " <<
a[1] <<
"\n";
543 std::cout <<
"val[1] = " <<
a[1] <<
"\n";
544 int64_t* retval =
a + 1;
545 std::cout <<
"returning " << retval <<
"\n";
553 std::cout <<
"TransposeCoordinate(" << coord <<
" {" << coord->
x <<
", "
554 << coord->
y <<
", " << coord->
next <<
"})\n";
555 coord->
x = coord->
x + 10.0;
556 coord->
y = coord->
y + 10.0;
557 std::cout <<
"returning " << coord->
next <<
"\n";
565 std::cout <<
"CoordinateElemAt1(" << coord <<
")\n";
566 std::cout <<
"sizeof(Coord): " <<
sizeof(
Coord) <<
"\n";
567 std::cout <<
"coord[0] = {" << coord[0].
x <<
", " << coord[0].
y <<
", "
568 << coord[0].
next <<
"}\n";
569 std::cout <<
"coord[1] = {" << coord[1].
x <<
", " << coord[1].
y <<
", "
570 << coord[1].
next <<
"}\n";
571 Coord* retval = coord + 1;
572 std::cout <<
"returning " << retval <<
"\n";
582 std::cout <<
"CoordinateUnOpTrice(" << &unop <<
", " << coord <<
")\n";
583 Coord* retval = unop(unop(unop(coord)));
584 std::cout <<
"returning " << retval <<
"\n";
594 std::cout <<
"IntptrAdditionClosure()\n";
596 std::cout <<
"returning " << &retval <<
"\n";
603 std::cout <<
"ApplyTo42And74()\n";
604 intptr_t retval = binop(42, 74);
605 std::cout <<
"returning " << retval <<
"\n";
613 std::cout <<
"NullableInt64ElemAt1(" <<
a <<
")\n";
616 std::cout <<
"not null pointer, address: " <<
a <<
"\n";
619 std::cout <<
"null pointer, address: " <<
a <<
"\n";
622 std::cout <<
"returning " << retval <<
"\n";
654 std::cout <<
"SumVeryLargeStruct(" << vls <<
")\n";
668 std::cout <<
"offsetof(numChildren): "
670 std::cout <<
"offsetof(children): " << offsetof(
VeryLargeStruct, children)
672 std::cout <<
"offsetof(smallLastField): "
674 std::cout <<
"sizeof(VeryLargeStruct): " <<
sizeof(
VeryLargeStruct) <<
"\n";
676 std::cout <<
"vls->a: " <<
static_cast<int>(vls->
a) <<
"\n";
677 std::cout <<
"vls->b: " << vls->
b <<
"\n";
678 std::cout <<
"vls->c: " << vls->
c <<
"\n";
679 std::cout <<
"vls->d: " << vls->
d <<
"\n";
680 std::cout <<
"vls->e: " <<
static_cast<int>(vls->
e) <<
"\n";
681 std::cout <<
"vls->f: " << vls->
f <<
"\n";
682 std::cout <<
"vls->g: " << vls->
g <<
"\n";
683 std::cout <<
"vls->h: " << vls->
h <<
"\n";
684 std::cout <<
"vls->i: " << vls->
i <<
"\n";
685 std::cout <<
"vls->j: " << vls->
j <<
"\n";
686 std::cout <<
"vls->k: " << vls->
k <<
"\n";
687 std::cout <<
"vls->parent: " << vls->
parent <<
"\n";
688 std::cout <<
"vls->numChildren: " << vls->
numChildren <<
"\n";
689 std::cout <<
"vls->children: " << vls->
children <<
"\n";
690 std::cout <<
"vls->smallLastField: " <<
static_cast<int>(vls->
smallLastField)
694 retval += 0x0L + vls->
a;
706 std::cout << retval <<
"\n";
707 if (vls->
parent !=
nullptr) {
708 std::cout <<
"has parent\n";
711 std::cout <<
"has " << vls->
numChildren <<
" children\n";
715 std::cout <<
"returning " << retval <<
"\n";
738 std::cout <<
"SumReturnStruct9Uint8 in (" << in->
a0 <<
", " << in->
a1 <<
", "
739 << in->
a2 <<
", " << in->
a3 <<
", " << in->
a4 <<
", " << in->
a5
740 <<
", " << in->
a6 <<
", " << in->
a7 <<
", " << in->
a8 <<
")\n";
744 std::cout <<
"SumReturnStruct9Uint8 out (" << out.a0 <<
", " << out.a1 <<
", "
745 << out.a2 <<
", " << out.a3 <<
", " << out.a4 <<
", " << out.a5
746 <<
", " << out.a6 <<
", " << out.a7 <<
", " << out.a8 <<
")\n";
748 return out.a0 + out.a1 + out.a2 + out.a3 + out.a4 + out.a5 + out.a6 + out.a7 +
760 VirtualAlloc(
nullptr, size * 2, MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE);
762 reinterpret_cast<void*
>(
reinterpret_cast<uintptr_t
>(
result) + size);
764 if (VirtualProtect(guard_page, size, PAGE_NOACCESS, &old_prot) == 0) {
765 fprintf(stderr,
"VirtualProtect failed\n");
769 void*
result = mmap(
nullptr, size * 2, PROT_READ | PROT_WRITE,
770 MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
772 reinterpret_cast<void*
>(
reinterpret_cast<uintptr_t
>(
result) + size);
773 if (mprotect(guard_page, size, PROT_NONE) != 0) {
774 fprintf(stderr,
"mprotect failed\n");
783 VirtualFree(address, 0, MEM_RELEASE);
786 munmap(address, size * 2);
798 std::cout <<
"SumSmallNumbers(" <<
static_cast<int>(
a) <<
", " <<
b <<
", "
799 << c <<
", " <<
static_cast<int>(
d) <<
", " << e <<
", " << f
808 std::cout <<
"returning " << retval <<
"\n";
815 std::cout <<
"IsRoughly1337(" <<
a[0] <<
")\n";
816 uint8_t retval = (1336.0f <
a[0] &&
a[0] < 1338.0f) ? 1 : 0;
817 std::cout <<
"returning " <<
static_cast<int>(retval) <<
"\n";
824 std::cout <<
"DevNullFloat(" <<
a <<
")\n";
825 std::cout <<
"returning nothing\n";
831 std::cout <<
"InventFloatValue()\n";
832 const float retval = 1337.0f;
833 std::cout <<
"returning " << retval <<
"\n";
847 int64_t recursionCounter,
851 std::cout <<
"PassStruct20BytesHomogeneousInt32x10" <<
"(" << recursionCounter
852 <<
", (" << a0.
a0 <<
", " << a0.
a1 <<
", " << a0.
a2 <<
", " << a0.
a3
853 <<
", " << a0.
a4 <<
"), " <<
reinterpret_cast<void*
>(f) <<
")\n";
855 const int32_t a0_a0_saved = a0.
a0;
857 if (recursionCounter <= 0) {
863 if (a0_a0_saved != a0.
a0) {
883 std::cout <<
"CallbackWithStruct" <<
"(" <<
reinterpret_cast<void*
>(f)
900 const intptr_t
result = add(10, 20);
901 std::cout <<
"result " <<
result <<
"\n";
911 const int64_t
result = fn(125, 250, 500, 1000);
912 std::cout <<
"result " <<
result <<
"\n";
914 CHECK_EQ(0x7FFFFFFFFFFFFFFFLL, fn(0, 0, 0, 0x7FFFFFFFFFFFFFFFLL));
915 CHECK_EQ(((int64_t)0x8000000000000000LL), fn(0, 0, 0, 0x8000000000000000LL));
921 CHECK_EQ(0x7FFFFFFFFFFFFFFFLL, fn(0, 0, 0, 0x7FFFFFFFFFFFFFFFLL));
922 CHECK_EQ(0x8000000000000000LL, fn(0, 0, 0, 0x8000000000000000LL));
923 CHECK_EQ(-1, (int64_t)fn(0, 0, 0, -1));
933 CHECK(::std::abs(fn(2.0) - 2.0 * 1.337) < 0.001);
947 CHECK_EQ(55, fn(1, 2, 3, 4, 5, 6, 7, 8, 9, 10));
961 CHECK_EQ(55, fn(1, 2, 3, 4, 5, 6, 7, 8, 9, 10));
985 CHECK(210.0 == fn(1, 2.0, 3, 4.0, 5, 6.0, 7, 8.0, 9, 10.0, 11, 12.0, 13, 14.0,
986 15, 16.0, 17, 18.0, 19, 20.0));
1039 CHECK_EQ(40 * 41 / 2, fn(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
1040 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
1041 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40));
1088 fn(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0,
1089 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0,
1090 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0,
1091 35.0, 36.0, 37.0, 38.0, 39.0, 40.0));
1096 int64_t p[2] = {42, 1000};
1110 CHECK_EQ(fn(
nullptr),
reinterpret_cast<void*
>(
sizeof(int64_t)));
1146 CHECK_EQ(1, fn(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF));
1148 uint64_t v = 0xabcFF;
1149 CHECK_EQ(1, fn(v, v, v, v, v, v, v, v, v, v));
1154 std::cout <<
"TestReturnMaxUint8(fn): " <<
static_cast<int>(fn()) <<
"\n";
1161 uint8_t* p2 =
reinterpret_cast<uint8_t*
>(p);
1167 uint64_t bogus_address = 0x13370000;
1168 return reinterpret_cast<void*
>(bogus_address);
1173 void* pointer =
malloc(
sizeof(int64_t));
1182 uint8_t* p2 =
reinterpret_cast<uint8_t*
>(p);
1209#pragma pack(push, 1)
1222typedef intptr_t ssize_t;
1225#define DEFINE_SIZE_OF_AND_SIGN_OF(type_modifier, type, type2) \
1226 DART_EXPORT uint64_t FfiSizeOf_##type_modifier##_##type##_##type2() { \
1227 return sizeof(type_modifier type type2); \
1230 DART_EXPORT uint64_t FfiSignOf_##type_modifier##_##type##_##type2() { \
1231 return std::numeric_limits<type_modifier type type2>::is_signed; \
1237 F(unsigned, char, ) \
1239 F(unsigned, short, ) \
1241 F(unsigned, int, ) \
1243 F(unsigned, long, ) \
1245 F(unsigned, long, long) \
1253#undef DEFINE_SIZE_OF_AND_SIGN_OF
1269 va_start(var_args, a0);
1273 std::cout <<
"VariadicStructVarArgs" <<
"(" << a0.
a <<
", " << a1.
a <<
")"
1281 std::cout <<
"result = " <<
result <<
"\n";
1290 void (*fn)(int64_t, int32_t)) {
1291 fn(response_id, 123);
1295 void (*fn)(int64_t, int32_t)) {
1296 std::thread thread(fn, response_id, 123);
1303 std::thread thread(fn, response_id, 123);
1335 std::cout <<
"TakeString(" << my_string <<
")\n";
1336 return my_string[4];
VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE auto & d
DART_EXPORT_FIELD struct Coord globalStruct
DART_EXPORT_FIELD int32_t globalInt
#define DEFINE_SIZE_OF_AND_SIGN_OF(type_modifier, type, type2)
FlKeyEvent uint64_t FlKeyResponderAsyncCallback callback
DART_EXPORT int32_t SumPlus42(int32_t a, int32_t b)
DART_EXPORT void NativeTypePointerParam(void *p)
DART_EXPORT double SumVeryManyFloatsDoubles(float a01, double a02, float a03, double a04, float a05, double a06, float a07, double a08, float a09, double a10, float a11, double a12, float a13, double a14, float a15, double a16, float a17, double a18, float a19, double a20, float a21, double a22, float a23, double a24, float a25, double a26, float a27, double a28, float a29, double a30, float a31, double a32, float a33, double a34, float a35, double a36, float a37, double a38, float a39, double a40)
DART_EXPORT int32_t ReturnMinInt32v2()
DART_EXPORT int64_t WCharMaxValue()
DART_EXPORT intptr_t TestReturnVoid(intptr_t(*return_void)())
DART_EXPORT int32_t ReturnMinInt32()
DART_EXPORT intptr_t TestManyDoubles(double(*fn)(double, double, double, double, double, double, double, double, double, double))
DART_EXPORT int64_t * NullableInt64ElemAt1(int64_t *a)
DART_EXPORT int32_t PassStruct(void *)
DART_EXPORT void CallbackNativeTypePointerParam(void(*f)(void *))
DART_EXPORT intptr_t TestUintComputation(uint64_t(*fn)(uint8_t, uint16_t, uint32_t, uint64_t))
DART_EXPORT uint32_t ReturnMaxUint32v2()
DART_EXPORT uint8_t IsRoughly1337(float *a)
DART_EXPORT intptr_t TakeMinInt8(int8_t x)
DART_EXPORT char TakeString(char *my_string)
DART_EXPORT int16_t SumManySmallInts(int8_t a, int16_t b, int8_t c, int16_t d, int8_t e, int16_t f, int8_t g, int16_t h, int8_t i, int16_t j)
DART_EXPORT int64_t Regress39044(int64_t a, int8_t b)
DART_EXPORT int32_t GetGlobalVar()
DART_EXPORT uint8_t ReturnMaxUint8()
DART_EXPORT intptr_t TestThrowExceptionDouble(double(*fn)())
DART_EXPORT intptr_t TestReturnMaxUint8(uint8_t(*fn)())
DART_EXPORT intptr_t TestManyArgs(double(*fn)(intptr_t a, float b, intptr_t c, double d, intptr_t e, float f, intptr_t g, double h, intptr_t i, float j, intptr_t k, double l, intptr_t m, float n, intptr_t o, double p, intptr_t q, float r, intptr_t s, double t))
DART_EXPORT int16_t ReturnMinInt16()
DART_EXPORT double Times1_337Double(double a)
DART_EXPORT intptr_t TestThrowExceptionPointer(void *(*fn)())
DART_EXPORT void * NativeTypePointerReturn()
DART_EXPORT int32_t CallTwoIntFunction(int32_t(*fn)(int32_t, int32_t), int32_t a, int32_t b)
void * malloc(size_t size)
DART_EXPORT void CallTwoIntVoidFunction(void(*fn)(int32_t, int32_t), int32_t a, int32_t b)
DART_EXPORT Struct20BytesHomogeneousInt32Copy PassStructRecursive(int64_t recursionCounter, Struct20BytesHomogeneousInt32Copy a0, Struct20BytesHomogeneousInt32Copy(*f)(int64_t, Struct20BytesHomogeneousInt32Copy))
DART_EXPORT uint64_t SizeOfStruct3BytesPackedInt()
DART_EXPORT void FreeStruct9Uint8(Struct9Uint8 *address)
DART_EXPORT int64_t SumVeryLargeStruct(VeryLargeStruct *vls)
DART_EXPORT intptr_t TestSimpleMultiplyFloat(float(*fn)(float))
DART_EXPORT intptr_t TakeMaxUint8x10(uint8_t a, uint8_t b, uint8_t c, uint8_t d, uint8_t e, uint8_t f, uint8_t g, uint8_t h, uint8_t i, uint8_t j)
DART_EXPORT uint64_t Regress43693(Struct43693 *my_struct)
DART_EXPORT intptr_t ApplyTo42And74(IntptrBinOp binop)
DART_EXPORT intptr_t Regress40537Variant2(uint8_t x)
DART_EXPORT double SumFloatsAndDoubles(float a, double b, float c)
DART_EXPORT intptr_t TakeMinInt16(int16_t x)
DART_EXPORT uint32_t ReturnMaxUint32()
DART_EXPORT Struct46127 Regress46127()
DART_EXPORT intptr_t TakeMaxUint8(uint8_t x)
DART_EXPORT int64_t * Assign1337Index1(int64_t *a)
DART_EXPORT intptr_t TestSimpleAddition(intptr_t(*add)(int, int))
DART_EXPORT void CallFunctionOnSameThread(int64_t response_id, void(*fn)(int64_t, int32_t))
DART_EXPORT intptr_t Times3(intptr_t a)
DART_EXPORT uint16_t ReturnMaxUint16()
DART_EXPORT void DevNullFloat(float a)
DART_EXPORT intptr_t TestTakeMaxUint8x10(intptr_t(*fn)(uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t))
DART_EXPORT uint16_t ReturnMaxUint16v2()
DART_EXPORT intptr_t TestSumVeryManySmallInts(int16_t(*fn)(int8_t, int16_t, int8_t, int16_t, int8_t, int16_t, int8_t, int16_t, int8_t, int16_t, int8_t, int16_t, int8_t, int16_t, int8_t, int16_t, int8_t, int16_t, int8_t, int16_t, int8_t, int16_t, int8_t, int16_t, int8_t, int16_t, int8_t, int16_t, int8_t, int16_t, int8_t, int16_t, int8_t, int16_t, int8_t, int16_t, int8_t, int16_t, int8_t, int16_t))
DART_EXPORT int16_t SumVeryManySmallInts(int8_t a01, int16_t a02, int8_t a03, int16_t a04, int8_t a05, int16_t a06, int8_t a07, int16_t a08, int8_t a09, int16_t a10, int8_t a11, int16_t a12, int8_t a13, int16_t a14, int8_t a15, int16_t a16, int8_t a17, int16_t a18, int8_t a19, int16_t a20, int8_t a21, int16_t a22, int8_t a23, int16_t a24, int8_t a25, int16_t a26, int8_t a27, int16_t a28, int8_t a29, int16_t a30, int8_t a31, int16_t a32, int8_t a33, int16_t a34, int8_t a35, int16_t a36, int8_t a37, int16_t a38, int8_t a39, int16_t a40)
DART_EXPORT void CallFunctionOnNewThreadNonBlocking(int64_t response_id, void(*fn)(int64_t, int32_t))
DART_EXPORT int8_t ReturnMinInt8()
DART_EXPORT intptr_t TestManyInts(intptr_t(*fn)(intptr_t, intptr_t, intptr_t, intptr_t, intptr_t, intptr_t, intptr_t, intptr_t, intptr_t, intptr_t))
DART_EXPORT intptr_t TestSimpleMultiply(double(*fn)(double))
DART_EXPORT intptr_t TestSumVeryManyFloatsDoubles(double(*fn)(float, double, float, double, float, double, float, double, float, double, float, double, float, double, float, double, float, double, float, double, float, double, float, double, float, double, float, double, float, double, float, double, float, double, float, double, float, double, float, double))
DART_EXPORT void CallbackNativeTypePointerReturn(void *(*f)())
DART_EXPORT Coord * CoordinateElemAt1(Coord *coord)
DART_EXPORT float InventFloatValue()
DART_EXPORT intptr_t TestThrowException(intptr_t(*fn)())
DART_EXPORT intptr_t TakeMinInt32(int32_t x)
DART_EXPORT intptr_t TestStore(int64_t *(*fn)(int64_t *a))
Coord *(* CoordUnOp)(Coord *coord)
DART_EXPORT Struct9Uint8 * AllocStruct9Uint8()
DART_EXPORT double SumManyDoubles(double a, double b, double c, double d, double e, double f, double g, double h, double i, double j)
DART_EXPORT intptr_t TestIntComputation(int64_t(*fn)(int8_t, int16_t, int32_t, int64_t))
DART_EXPORT int64_t SumSmallNumbers(int8_t a, int16_t b, int32_t c, uint8_t d, uint16_t e, uint32_t f)
DART_EXPORT float Times1_337Float(float a)
DART_EXPORT void CallFunctionOnNewThreadBlocking(int64_t response_id, void(*fn)(int64_t, int32_t))
DART_EXPORT intptr_t Regress40537(uint8_t x)
DART_EXPORT int64_t UintComputation(uint8_t a, uint16_t b, uint32_t c, uint64_t d)
DART_EXPORT intptr_t SumManyInts(intptr_t a, intptr_t b, intptr_t c, intptr_t d, intptr_t e, intptr_t f, intptr_t g, intptr_t h, intptr_t i, intptr_t j)
DART_EXPORT Coord GetGlobalStruct()
DART_EXPORT int64_t WCharMinValue()
DART_EXPORT uint8_t Regress40537Variant3(intptr_t x)
DART_EXPORT int64_t VariadicStructVarArgs(VarArgs a0,...)
DART_EXPORT int64_t SumReturnStruct9Uint8(Struct9Uint8(*callback)(Struct9Uint8 *), Struct9Uint8 *in)
DART_EXPORT void * CallTwoIntPointerFunction(void *(*fn)(int32_t, int32_t), int32_t a, int32_t b)
DART_EXPORT intptr_t SumManyIntsOdd(intptr_t a, intptr_t b, intptr_t c, intptr_t d, intptr_t e, intptr_t f, intptr_t g, intptr_t h, intptr_t i, intptr_t j, intptr_t k)
DART_EXPORT void InduceACrash()
DART_EXPORT int32_t CallTwoPointerIntFunction(int32_t(*fn)(void *, void *), void *a, void *b)
DART_EXPORT intptr_t TakeMaxUint32(uint32_t x)
DART_EXPORT double SumManyNumbers(intptr_t a, float b, intptr_t c, double d, intptr_t e, float f, intptr_t g, double h, intptr_t i, float j, intptr_t k, double l, intptr_t m, float n, intptr_t o, double p, intptr_t q, float r, intptr_t s, double t)
DART_EXPORT intptr_t TestNullPointers(int64_t *(*fn)(int64_t *ptr))
DART_EXPORT intptr_t TestReturnNull(int32_t(*fn)())
DART_EXPORT IntptrBinOp IntptrAdditionClosure()
DART_EXPORT int8_t ReturnMinInt8v2()
DART_EXPORT uint8_t ReturnMaxUint8v2()
DART_EXPORT int16_t ReturnMinInt16v2()
DART_EXPORT Coord * CoordinateUnOpTrice(CoordUnOp unop, Coord *coord)
DART_EXPORT int64_t SumStruct9Uint8(Struct9Uint8 s9)
DART_EXPORT int64_t IntComputation(int8_t a, int16_t b, int32_t c, int64_t d)
DART_EXPORT intptr_t TakeMaxUint16(uint16_t x)
DART_EXPORT intptr_t TestSumFloatsAndDoubles(double(*fn)(float, double, float))
DART_EXPORT void CallbackWithStruct(void(*f)(Struct8BytesNestedIntCopy))
intptr_t(* IntptrBinOp)(intptr_t a, intptr_t b)
DART_EXPORT void SetGlobalVar(int32_t v)
DART_EXPORT Coord * TransposeCoordinate(Coord *coord)
Struct4BytesHomogeneousInt16Copy a1
Struct4BytesHomogeneousInt16Copy a0
VeryLargeStruct * children