Compiling with GCC 6 fails with "error: constructor required before non-static data member for ‘llvm::ValueEnumerator::MDRange::First’ has been parsed". The patch Replace MDRange's declaration of default constructor with a definition.
Details
Diff Detail
- Repository
- rL LLVM
Event Timeline
I'm using
$ g++ --version
g++ (GCC) 6.0.0 20160331 (Red Hat 6.0.0-0.19)
Copyright (C) 2016 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
and
$ g++ --version
g++ (Debian 6-20160313-1) 6.0.0 20160313 (experimental) [trunk revision 234167]
Copyright (C) 2016 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Both fail.
GCC 4.9 on Debian, 5 on Fedora 23 work fine. Can't really judge if this is a compiler bug or not, my knowledge of arcane C++11 wizardry is apprentice-level.
(Edit: correct information about GCC 6 on Debian.)
GCC 6.1 (GCC 6 final release in GCC's funky release numbering scheme) does not have this issue anymore: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70528
Actually, the gcc maintainers reverted this change again, see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70528 and https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=235171
So can we please apply this anyway? It is a minor change for such a fix.