The following input crashes "clang -m32" built from the Intrepid clang-upc source.
However, it also crashes an unmodified clang-3.5 (/opt/clang-latest/ on gcc110 in the GCC CFarm).
Meanwhile, Hal Finkel's current clang-3.7 builds accept this source.
So, this is an upstream bug that was fixed eventually and this issue is just for my reference in a KnownFailure entry for the BUPC test harness.
The code which passes a 64-bit struct (by value) via var args:
#include <stdarg.h>
struct xyz {
int a;
int b;
};
double foo(va_list ap) {
int x = va_arg(ap, int);
double y = *va_arg(ap, double *);
struct xyz q = va_arg(ap, struct xyz);
return x + y + q.b;
}
The following input crashes "clang -m32" built from the Intrepid clang-upc source. However, it also crashes an unmodified clang-3.5 (/opt/clang-latest/ on gcc110 in the GCC CFarm).
Meanwhile, Hal Finkel's current clang-3.7 builds accept this source. So, this is an upstream bug that was fixed eventually and this issue is just for my reference in a KnownFailure entry for the BUPC test harness.
The code which passes a 64-bit struct (by value) via var args:
The ICE: