On Linux/x86-64, revision 160243 failed to build 447.dealII in SPEC CPU 2006 at -O2 and -O3:
g++ -c -o block_vector.o -DSPEC_CPU -DNDEBUG -Iinclude -DBOOST_DISABLE_THREADS -Ddeal_II_dimension=3 -O3 -ffast-math -funroll-loops -DSPEC_CPU_LP64 block_vector.cc In file included from include/lac/block_vector.templates.h:19:0, from block_vector.cc:14: include/lac/block_vector.h:227:17: error: 'ptrdiff_t' does not name a type include/lac/block_vector.h:333:38: error: 'difference_type' does not name a type include/lac/block_vector.h:333:38: note: (perhaps 'typename std::iterator<std::random_access_iterator_tag, typename internal::BlockVectorIterators::Types<number, constness>::NumberType>::difference_type' was intended) include/lac/block_vector.h:333:54: error: ISO C++ forbids declaration of 'd' with no type [-fpermissive] include/lac/block_vector.h:469:9: error: 'difference_type' does not name a type include/lac/block_vector.h:469:9: note: (perhaps 'typename std::iterator<std::random_access_iterator_tag, typename internal::BlockVectorIterators::Types<number, constness>::NumberType>::difference_type' was intended) include/lac/block_vector.h:475:9: error: 'difference_type' does not name a type include/lac/block_vector.h:475:9: note: (perhaps 'typename std::iterator<std::random_access_iterator_tag, typename internal::BlockVectorIterators::Types<number, constness>::NumberType>::difference_type' was intended) include/lac/block_vector.h:482:36: error: 'difference_type' does not name a type include/lac/block_vector.h:482:36: note: (perhaps 'typename std::iterator<std::random_access_iterator_tag, typename internal::BlockVectorIterators::Types<number, constness>::NumberType>::difference_type' was intended) include/lac/block_vector.h:482:53: error: ISO C++ forbids declaration of 'd' with no type [-fpermissive] include/lac/block_vector.h:489:36: error: 'difference_type' does not name a type include/lac/block_vector.h:489:36: note: (perhaps 'typename std::iterator<std::random_access_iterator_tag, typename internal::BlockVectorIterators::Types<number, constness>::NumberType>::difference_type' was intended) include/lac/block_vector.h:489:53: error: ISO C++ forbids declaration of 'd' with no type [-fpermissive] include/lac/block_vector.h:496:39: error: 'difference_type' does not name a type include/lac/block_vector.h:496:39: note: (perhaps 'typename std::iterator<std::random_access_iterator_tag, typename internal::BlockVectorIterators::Types<number, constness>::NumberType>::difference_type' was intended) include/lac/block_vector.h:496:56: error: ISO C++ forbids declaration of 'd' with no type [-fpermissive] include/lac/block_vector.h:503:39: error: 'difference_type' does not name a type include/lac/block_vector.h:503:39: note: (perhaps 'typename std::iterator<std::random_access_iterator_tag, typename internal::BlockVectorIterators::Types<number, constness>::NumberType>::difference_type' was intended) include/lac/block_vector.h:503:56: error: ISO C++ forbids declaration of 'd' with no type [-fpermissive] include/lac/block_vector.h:1494:52: error: 'difference_type' does not name a type include/lac/block_vector.h:1494:52: note: (perhaps 'typename std::iterator<std::random_access_iterator_tag, typename internal::BlockVectorIterators::Types<number, constness>::NumberType>::difference_type' was intended) include/lac/block_vector.h:1494:68: error: ISO C++ forbids declaration of 'd' with no type [-fpermissive] include/lac/block_vector.h:1727:5: error: prototype for 'typename internal::BlockVectorIterators::Iterator<number, constness>::difference_type internal::BlockVectorIterators::Iterator<number, constness>::operator-(const internal::BlockVectorIterators::Iterator<number, constness>&) const' does not match any in class 'internal::BlockVectorIterators::Iterator<number, constness>' include/lac/block_vector.h:489:18: error: candidate is: internal::BlockVectorIterators::Iterator<number, constness> internal::BlockVectorIterators::Iterator<number, constness>::operator-(const int&) const include/lac/block_vector.h:1741:5: error: prototype for 'typename internal::BlockVectorIterators::Iterator<number, constness>::difference_type internal::BlockVectorIterators::Iterator<number, constness>::operator-(const InverseConstnessIterator&) const' does not match any in class 'internal::BlockVectorIterators::Iterator<number, constness>' include/lac/block_vector.h:489:18: error: candidate is: internal::BlockVectorIterators::Iterator<number, constness> internal::BlockVectorIterators::Iterator<number, constness>::operator-(const int&) const include/lac/block_vector.h:1756:23: error: 'difference_type' does not name a type include/lac/block_vector.h:1756:23: note: (perhaps 'typename std::iterator<std::random_access_iterator_tag, typename internal::BlockVectorIterators::Types<number, constness>::NumberType>::difference_type' was intended) include/lac/block_vector.h:1756:40: error: ISO C++ forbids declaration of 'd' with no type [-fpermissive] include/lac/block_vector.h:1781:23: error: 'difference_type' does not name a type include/lac/block_vector.h:1781:23: note: (perhaps 'typename std::iterator<std::random_access_iterator_tag, typename internal::BlockVectorIterators::Types<number, constness>::NumberType>::difference_type' was intended) include/lac/block_vector.h:1781:40: error: ISO C++ forbids declaration of 'd' with no type [-fpermissive] include/lac/block_vector.h:1806:24: error: 'difference_type' does not name a type include/lac/block_vector.h:1806:24: note: (perhaps 'typename std::iterator<std::random_access_iterator_tag, typename internal::BlockVectorIterators::Types<number, constness>::NumberType>::difference_type' was intended) include/lac/block_vector.h:1806:41: error: ISO C++ forbids declaration of 'd' with no type [-fpermissive] include/lac/block_vector.h:1834:24: error: 'difference_type' does not name a type include/lac/block_vector.h:1834:24: note: (perhaps 'typename std::iterator<std::random_access_iterator_tag, typename internal::BlockVectorIterators::Types<number, constness>::NumberType>::difference_type' was intended) include/lac/block_vector.h:1834:41: error: ISO C++ forbids declaration of 'd' with no type [-fpermissive] specmake[3]: *** [block_vector.o] Error 1 specmake[3]: *** Waiting for unfinished jobs.... Revision 160217 is OK. -- Summary: [4.6 regression] Failed to build 447.dealII in SPEC CPU 2006 Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: hjl dot tools at gmail dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44416