blob: 1c937be77e60d4e58106f1b1c9a42f5a7483e3a8 [file] [log] [blame]
// PERMUTE_ARGS:
// COMDAT folding increases runtime by > 80x
// REQUIRED_ARGS(windows): -L/OPT:NOICF
// Apparently omf or optlink does not support more than 32767 symbols.
// DISABLED: win32
// Generate \sum_{i=0}^{14} 2^i = 32767 template instantiations
// (each with 3 sections) to use more than 64Ki sections in total.
size_t foo(size_t i, size_t mask)()
{
static if (i == 14)
return mask;
else
return foo!(i + 1, mask) + foo!(i + 1, mask | (1UL << i));
}
void main()
{
assert(foo!(0, 0) != 0);
}