[geos-devel] Re: [GEOS] #397: Valgrind reported errors with -O0 (was: Conditional jump or move depends on uninitialised value(s))

GEOS geos-trac at osgeo.org
Tue Mar 1 11:26:07 EST 2011


#397: Valgrind reported errors with -O0
------------------------+---------------------------------------------------
 Reporter:  strk        |       Owner:  geos-devel@…              
     Type:  defect      |      Status:  new                       
 Priority:  major       |   Milestone:                            
Component:  Default     |     Version:  svn-trunk                 
 Severity:  Unassigned  |    Keywords:                            
------------------------+---------------------------------------------------
Changes (by strk):

  * version:  3.0.3 => svn-trunk


Comment:

 Seems to only happen when building with -O0.
 The previous report was on a 64bit system, on a 32bit (with -O0) it's even
 worst:
 {{{

 ==21569== Invalid read of size 4
 ==21569==    at 0x41544F6:
 geos::algorithm::LineIntersector::intersection(geos::geom::Coordinate
 const&, geos::geom::Coordinate const&, geos::geom::Coordinate const&,
 geos::geom::Coordinate const&, geos::geom::Coordinate&) const (in
 /usr/src/geos/build-O0/src/.libs/libgeos-3.3.0.so)
 ==21569==    by 0x4153831:
 geos::algorithm::LineIntersector::computeIntersect(geos::geom::Coordinate
 const&, geos::geom::Coordinate const&, geos::geom::Coordinate const&,
 geos::geom::Coordinate const&) (in
 /usr/src/geos/build-O0/src/.libs/libgeos-3.3.0.so)
 ==21569==    by 0x41526F6:
 geos::algorithm::LineIntersector::computeIntersection(geos::geom::Coordinate
 const&, geos::geom::Coordinate const&, geos::geom::Coordinate const&,
 geos::geom::Coordinate const&) (in
 /usr/src/geos/build-O0/src/.libs/libgeos-3.3.0.so)
 ==21569==    by 0x41A7FA8:
 geos::geomgraph::index::SegmentIntersector::addIntersections(geos::geomgraph::Edge*,
 int, geos::geomgraph::Edge*, int) (in
 /usr/src/geos/build-O0/src/.libs/libgeos-3.3.0.so)
 ==21569==    by 0x41AC9B6:
 geos::geomgraph::index::MonotoneChainEdge::computeIntersectsForChain(int,
 int, geos::geomgraph::index::MonotoneChainEdge const&, int, int,
 geos::geomgraph::index::SegmentIntersector&) (in
 /usr/src/geos/build-O0/src/.libs/libgeos-3.3.0.so)
 ==21569==    by 0x41ACB4C:
 geos::geomgraph::index::MonotoneChainEdge::computeIntersectsForChain(int,
 int, geos::geomgraph::index::MonotoneChainEdge const&, int, int,
 geos::geomgraph::index::SegmentIntersector&) (in
 /usr/src/geos/build-O0/src/.libs/libgeos-3.3.0.so)
 ==21569==    by 0x41ACB4C:
 geos::geomgraph::index::MonotoneChainEdge::computeIntersectsForChain(int,
 int, geos::geomgraph::index::MonotoneChainEdge const&, int, int,
 geos::geomgraph::index::SegmentIntersector&) (in
 /usr/src/geos/build-O0/src/.libs/libgeos-3.3.0.so)
 ==21569==    by 0x41AC94E:
 geos::geomgraph::index::MonotoneChainEdge::computeIntersectsForChain(int,
 geos::geomgraph::index::MonotoneChainEdge const&, int,
 geos::geomgraph::index::SegmentIntersector&) (in
 /usr/src/geos/build-O0/src/.libs/libgeos-3.3.0.so)
 ==21569==    by 0x41ABD88:
 geos::geomgraph::index::MonotoneChain::computeIntersections(geos::geomgraph::index::MonotoneChain*,
 geos::geomgraph::index::SegmentIntersector*) (in
 /usr/src/geos/build-O0/src/.libs/libgeos-3.3.0.so)
 ==21569==    by 0x41ABB7B:
 geos::geomgraph::index::SimpleMCSweepLineIntersector::processOverlaps(int,
 int, geos::geomgraph::index::SweepLineEvent*,
 geos::geomgraph::index::SegmentIntersector*) (in
 /usr/src/geos/build-O0/src/.libs/libgeos-3.3.0.so)
 ==21569==    by 0x41ABAC7:
 geos::geomgraph::index::SimpleMCSweepLineIntersector::computeIntersections(geos::geomgraph::index::SegmentIntersector*)
 (in /usr/src/geos/build-O0/src/.libs/libgeos-3.3.0.so)
 ==21569==    by 0x41AB6C9:
 geos::geomgraph::index::SimpleMCSweepLineIntersector::computeIntersections(std::vector<geos::geomgraph::Edge*,
 std::allocator<geos::geomgraph::Edge*> >*,
 std::vector<geos::geomgraph::Edge*, std::allocator<geos::geomgraph::Edge*>
 >*, geos::geomgraph::index::SegmentIntersector*) (in
 /usr/src/geos/build-O0/src/.libs/libgeos-3.3.0.so)
 ==21569==  Address 0xbec49f68 is just below the stack ptr.  To suppress,
 use: --workaround-gcc296-bugs=yes
 ==21569==
 }}}

-- 
Ticket URL: <http://trac.osgeo.org/geos/ticket/397#comment:1>
GEOS <http://geos.refractions.net/>
GEOS (Geometry Engine - Open Source) is a C++ port of the Java Topology Suite (JTS).


More information about the geos-devel mailing list