> Or we could simply require the user to use C99/C++11 for generated > reproducers. That's probably simplest. I think that is fine. It's a debugging and test tool anyway. I added the following include guards for long long (in the first patch of the series): +#ifdef __GNUC__ + +/* Include entrypoints with long long parameter types. */ +# define LIBGCCJIT_INCLUDE_LONGLONGS + +#else + +# if __STDC_VERSION__ >= 199901L +# define LIBGCCJIT_INCLUDE_LONGLONGS +# elif __cplusplus >= 201103L +# define LIBGCCJIT_INCLUDE_LONGLONGS +# endif + +#endif + > "arr" should probably be const, and "len" be a size_t. +reproducer_write_arr (reproducer &r, const unsigned char *arr, size_t len) > FWIW "LIBGCCJIT_HAVE_LONGLONG_CONSTANTS" doesn't seem quite like the > right name here, but I wasn't able to come up with a better one. I changed it to LIBGCCJIT_HAVE_LOONG_CONSTANTS. I think it better conveys it is long long, _Complex long double and long double. > Is this a typo for "typepunning"... +/* For typepunning NaNs. */ make check-jit runs fine.