http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50388
Bug #: 50388 Summary: Segmentation fault Classification: Unclassified Product: gcc Version: 4.5.3 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: pipp...@exherbo.org Created attachment 25263 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=25263 Original dump (xz-compressed) I'm attaching a preprocessor dump of C++ code that manages to make g++ segfault for me. This happens with g++ 4.5.3 but not with 4.4.6 or 4.6.1. The original dump is contained in the file test-edges0-memGKN.ii. % g++ -c test-edges0-memGKN.ii In file included from /home/cocktail/pipping/dune-git-svn/dune-grid/dune/grid/common/genericreferenceelements.hh:10:0, from /home/cocktail/pipping/dune-git-svn/dune-grid/dune/grid/common/geometry.hh:13, from /home/cocktail/pipping/dune-git-svn/dune-grid/dune/grid/genericgeometry/geometry.hh:10, from /home/cocktail/pipping/dune-git-svn/dune-grid/dune/grid/utility/mockgeometry.hh:12, from /home/cocktail/pipping/dune-git-svn/dune-localfunctions/dune/localfunctions/test/test-edges0.5.cc:17, from /home/cocktail/pipping/dune-git-svn/dune-localfunctions/dune/localfunctions/test/test-edges0.5.cc:1: /home/cocktail/pipping/dune-git-svn/dune-grid/dune/grid/genericgeometry/subtopologies.hh: In instantiation of ‘Dune::GenericGeometry::SizeImpl<Dune::GenericGeometry::Pyramid<Dune::GenericGeometry::Point>, 1u, 0u>’: /home/cocktail/pipping/dune-git-svn/dune-grid/dune/grid/genericgeometry/subtopologies.hh:130:7: instantiated from ‘Dune::GenericGeometry::Size<Dune::GenericGeometry::Pyramid<Dune::GenericGeometry::Point>, 0u>’ /home/cocktail/pipping/dune-git-svn/dune-grid/dune/grid/genericgeometry/subtopologies.hh:97:7: instantiated from ‘Dune::GenericGeometry::SizeImpl<Dune::GenericGeometry::Pyramid<Dune::GenericGeometry::Pyramid<Dune::GenericGeometry::Point> >, 2u, 1u>’ /home/cocktail/pipping/dune-git-svn/dune-grid/dune/grid/genericgeometry/subtopologies.hh:130:7: instantiated from ‘Dune::GenericGeometry::Size<Dune::GenericGeometry::Pyramid<Dune::GenericGeometry::Pyramid<Dune::GenericGeometry::Point> >, 1u>’ /home/cocktail/pipping/dune-git-svn/dune-grid/dune/grid/genericgeometry/referencedomain.hh:138:67: instantiated from ‘const unsigned int Dune::GenericGeometry::ReferenceDomainBase<Dune::GenericGeometry::Pyramid<Dune::GenericGeometry::Pyramid<Dune::GenericGeometry::Point> > >::numNormals’ /home/cocktail/pipping/dune-git-svn/dune-grid/dune/grid/genericgeometry/referencedomain.hh:235:44: instantiated from ‘const unsigned int Dune::GenericGeometry::ReferenceDomain<Dune::GenericGeometry::Pyramid<Dune::GenericGeometry::Pyramid<Dune::GenericGeometry::Point> > >::numNormals’ /home/cocktail/pipping/dune-git-svn/dune-grid/dune/grid/common/genericreferenceelements.hh:354:7: [ skipping 3 instantiation contexts ] /home/cocktail/pipping/dune-git-svn/dune-grid/dune/grid/common/genericreferenceelements.hh:620:7: instantiated from ‘Dune::GenericReferenceElementContainer<ctype, dim>::GenericReferenceElementContainer() [with ctype = double, int dim = 2]’ /home/cocktail/pipping/dune-git-svn/dune-grid/dune/grid/common/genericreferenceelements.hh:603:47: instantiated from ‘static const Dune::GenericReferenceElementContainer<ctype, dim>& Dune::GenericReferenceElementContainer<ctype, dim>::instance() [with ctype = double, int dim = 2, Dune::GenericReferenceElementContainer<ctype, dim> = Dune::GenericReferenceElementContainer<double, 2>]’ /home/cocktail/pipping/dune-git-svn/dune-grid/dune/grid/common/genericreferenceelements.hh:645:79: instantiated from ‘static const Dune::GenericReferenceElement<ctype, dim>& Dune::GenericReferenceElements<ctype, dim>::general(const Dune::GeometryType&) [with ctype = double, int dim = 2]’ /home/cocktail/pipping/dune-git-svn/dune-grid/dune/grid/utility/vertexorder.hh:100:36: instantiated from ‘Dune::GeneralVertexOrder<dim, Index_>::GeneralVertexOrder(const Dune::GeometryType&, const InIterator&, const InIterator&) [with InIterator = long unsigned int*, long unsigned int dim = 2ul, Index_ = long unsigned int]’ /home/cocktail/pipping/dune-git-svn/dune-localfunctions/dune/localfunctions/test/test-edges0.5.cc:47:40: instantiated from ‘void testEdgeS0_5(int&) [with long unsigned int dim = 2ul]’ /home/cocktail/pipping/dune-git-svn/dune-localfunctions/dune/localfunctions/test/test-edges0.5.cc:62:27: instantiated from here /home/cocktail/pipping/dune-git-svn/dune-grid/dune/grid/genericgeometry/subtopologies.hh:108:110: internal compiler error: Segmentation fault Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. % Delta allowed me to reduce the size of the input from 2.1M to 20K but not further. The name of the reduced file is test-edges0-memGKN-segfault-bcpp.ii. % g++ -c test-edges0-memGKN-segfault-bcpp.ii test-edges0-memGKN-segfault-bcpp.ii:150:36: warning: variadic templates only available with -std=c++0x or -std=gnu++0x test-edges0-memGKN-segfault-bcpp.ii:154:52: warning: variadic templates only available with -std=c++0x or -std=gnu++0x test-edges0-memGKN-segfault-bcpp.ii:158:26: warning: variadic templates only available with -std=c++0x or -std=gnu++0x test-edges0-memGKN-segfault-bcpp.ii: In instantiation of ‘Dune::GenericGeometry::SizeImpl<Dune::GenericGeometry::Prism<Dune::GenericGeometry::Prism<Dune::GenericGeometry::Point> >, 2u, 0u>’: test-edges0-memGKN-segfault-bcpp.ii:197:13: instantiated from ‘Dune::GenericGeometry::Size<Dune::GenericGeometry::Prism<Dune::GenericGeometry::Prism<Dune::GenericGeometry::Point> >, 0u>’ test-edges0-memGKN-segfault-bcpp.ii:210:13: instantiated from ‘Dune::GenericGeometry::ReferenceElement<Dune::GenericGeometry::Prism<Dune::GenericGeometry::Prism<Dune::GenericGeometry::Point> >, double>::BaryCenterArray<0>’ test-edges0-memGKN-segfault-bcpp.ii:156:19: instantiated from ‘std::tr1::_Tuple_impl<0, Dune::GenericGeometry::ReferenceElement<Dune::GenericGeometry::Prism<Dune::GenericGeometry::Prism<Dune::GenericGeometry::Point> >, double>::BaryCenterArray<0> >’ test-edges0-memGKN-segfault-bcpp.ii:159:9: instantiated from ‘std::tr1::tuple<Dune::GenericGeometry::ReferenceElement<Dune::GenericGeometry::Prism<Dune::GenericGeometry::Prism<Dune::GenericGeometry::Point> >, double>::BaryCenterArray<0> >’ test-edges0-memGKN-segfault-bcpp.ii:177:26: instantiated from ‘Dune::GenericGeometry::CodimTable<Dune::GenericGeometry::ReferenceElement<Dune::GenericGeometry::Prism<Dune::GenericGeometry::Prism<Dune::GenericGeometry::Point> >, double>::BaryCenterArray, 0>’ test-edges0-memGKN-segfault-bcpp.ii:176:137: [ skipping 11 instantiation contexts ] test-edges0-memGKN-segfault-bcpp.ii:390:79: instantiated from ‘static Dune::GenericGeometry::MappingProvider<Dune::GenericGeometry::HybridMapping<dim, GeometryTraits>, codim>::Mapping* Dune::GenericGeometry::MappingProvider<Dune::GenericGeometry::HybridMapping<dim, GeometryTraits>, codim>::construct(unsigned int, const CoordVector&, char*) [with CoordVector = std::vector<Dune::FieldVector<double, 2>, std::allocator<Dune::FieldVector<double, 2> > >, unsigned int dim = 2u, GeometryTraits = Dune::GenericGeometry::DefaultGeometryTraits<double, 2, 2, false>, unsigned int codim = 0u, Dune::GenericGeometry::MappingProvider<Dune::GenericGeometry::HybridMapping<dim, GeometryTraits>, codim>::Mapping = Dune::GenericGeometry::HybridMapping<2u, Dune::GenericGeometry::DefaultGeometryTraits<double, 2, 2, false> >]’ test-edges0-memGKN-segfault-bcpp.ii:410:17: instantiated from ‘Dune::GenericGeometry::BasicGeometry<mydim, Traits>::BasicGeometry(const Dune::GeometryType&, const CoordVector&) [with CoordVector = std::vector<Dune::FieldVector<double, 2>, std::allocator<Dune::FieldVector<double, 2> > >, int mydim = 2, Traits = Dune::GenericGeometry::DefaultGeometryTraits<double, 2, 2, false>]’ test-edges0-memGKN-segfault-bcpp.ii:421:132: instantiated from ‘Dune::MockGeometry<ctype, mydim, coorddim>::MockGeometry(const Dune::GeometryType&, const CoordVector&) [with CoordVector = std::vector<Dune::FieldVector<double, 2>, std::allocator<Dune::FieldVector<double, 2> > >, ctype = double, long unsigned int mydim = 2ul, long unsigned int coorddim = 2ul]’ test-edges0-memGKN-segfault-bcpp.ii:437:9: instantiated from ‘TestGeometries<ctype, 2ul>::TestGeometries() [with ctype = double]’ test-edges0-memGKN-segfault-bcpp.ii:443:27: instantiated from ‘void testEdgeS0_5(int&) [with long unsigned int dim = 2ul]’ test-edges0-memGKN-segfault-bcpp.ii:452:31: instantiated from here test-edges0-memGKN-segfault-bcpp.ii:193:116: internal compiler error: Segmentation fault Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. % % uname -a Linux bogus 3.0.3 #1 SMP Fri Aug 19 13:50:54 CEST 2011 x86_64 GNU/Linux % g++ -dumpmachine x86_64-pc-linux-gnu %