11623659165bb24d733a40124e929cfd42aa917e3David Gross// -Wall 265f23ed862e1a1e16477ba740f295ff4a83ac822David Gross#pragma version(1) 365f23ed862e1a1e16477ba740f295ff4a83ac822David Gross#pragma rs java_package_name(voidptr) 465f23ed862e1a1e16477ba740f295ff4a83ac822David Gross 565f23ed862e1a1e16477ba740f295ff4a83ac822David Gross// void is not a suitable accumulator data type or result type; and 665f23ed862e1a1e16477ba740f295ff4a83ac822David Gross// note that an input cannot be a pointer 765f23ed862e1a1e16477ba740f295ff4a83ac822David Gross 865f23ed862e1a1e16477ba740f295ff4a83ac822David Gross// accumulator must not be void 965f23ed862e1a1e16477ba740f295ff4a83ac822David Gross#pragma rs reduce(voidA) initializer(voidA_init) accumulator(voidA_accum) combiner(voidA_comb) 1065f23ed862e1a1e16477ba740f295ff4a83ac822David Grossstatic void voidA_init(void *accum) { } 1165f23ed862e1a1e16477ba740f295ff4a83ac822David Grossstatic void voidA_accum(void *accum, int val) { } 1265f23ed862e1a1e16477ba740f295ff4a83ac822David Grossstatic void voidA_comb(void *accum, const void *other) { } 1365f23ed862e1a1e16477ba740f295ff4a83ac822David Gross 1465f23ed862e1a1e16477ba740f295ff4a83ac822David Gross// input must not be void* 1565f23ed862e1a1e16477ba740f295ff4a83ac822David Gross#pragma rs reduce(voidI) accumulator(voidI_accum) combiner(voidI_comb) 1665f23ed862e1a1e16477ba740f295ff4a83ac822David Grossstatic void voidI_accum(int *accum, void *val) { } 1765f23ed862e1a1e16477ba740f295ff4a83ac822David Grossstatic void voidI_comb(int *accum, const int *other) { } 1865f23ed862e1a1e16477ba740f295ff4a83ac822David Gross 1965f23ed862e1a1e16477ba740f295ff4a83ac822David Gross// result type must not be void 2065f23ed862e1a1e16477ba740f295ff4a83ac822David Gross#pragma rs reduce(voidO) accumulator(voidO_accum) outconverter(voidO_out) 2165f23ed862e1a1e16477ba740f295ff4a83ac822David Grossstatic void voidO_accum(int *accum, int val) { } 2265f23ed862e1a1e16477ba740f295ff4a83ac822David Grossstatic void voidO_out(void *out, const int *val) { } 23