[Bug c++/59659] large zero-initialized std::array compile time excessive
jakub at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Jan 9 16:18:00 GMT 2014
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59659
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jakub at gcc dot gnu.org,
| |jason at gcc dot gnu.org
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
I think this is somewhat related to e.g.:
struct A { A (); A (int); ~A (); };
void bar (A *);
#define T10(N) N, N, N, N, N, N, N, N, N, N
#define T100(N) T10(N), T10(N), T10(N), T10(N), T10(N), \
T10(N), T10(N), T10(N), T10(N), T10(N)
#define T1000(N) T100(N), T100(N), T100(N), T100(N), T100(N), \
T100(N), T100(N), T100(N), T100(N), T100(N)
#define T10000(N) T1000(N), T1000(N), T1000(N), T1000(N), T1000(N), \
T1000(N), T1000(N), T1000(N), T1000(N), T1000(N)
#define T100000(N) T10000(N), T10000(N), T10000(N), T10000(N), T10000(N), \
T10000(N), T10000(N), T10000(N), T10000(N), T10000(N)
void
foo ()
{
A a[] = { 1, 2, T1000 (3), T10000 (4), T1000 (3), 2, 1 };
bar (a);
}
also taking long time to compile and generating enormous amount of code (and
when replacing T10000 (4) with T100000 (4) it is even much worse).
More information about the Gcc-bugs
mailing list