Explain why this is happening, shouldn't it have given a compiler error?
clang++ -std=c++23 -x c++ - -o /tmp/test << 'EOF' && /tmp/test
#include <cstdlib>
template <typename T> static constexpr inline T max(T a, T b) { return a > b ? a : b; }
int main() {
char *p = (char *)__builtin_alloca_with_align(1, max<unsigned long>(1, 16) * 8);
p[0] = 1;
return 0;
}
EOF
Segmentation fault /tmp/test