This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/59659] large zero-initialized std::array compile time excessive
- From: "jakub at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 09 Jan 2014 16:18:13 +0000
- Subject: [Bug c++/59659] large zero-initialized std::array compile time excessive
- Auto-submitted: auto-generated
- References: <bug-59659-4 at http dot gcc dot gnu dot org/bugzilla/>
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).