[Bug tree-optimization/34036] New: ICE with control flow in the middle of basic block for -fnon-call-exceptions

janis at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Thu Nov 8 22:01:00 GMT 2007


Test eon from SPEC CPU2000 fails to build with "-O2 -fnon-call-exceptions
-ffast-math -fsignaling-nans" due to an ICE for control flow in the middle of a
basic block.  Two minimized tests show different warnings on both powerpc-linux
and i686-linux:

elm3b145% /opt/gcc-nightly/trunk/bin/g++ -O2 -fnon-call-exceptions -ffast-math
-fsignaling-nans -c bug13.cc
bug13.cc: In constructor ‘mrGrid::mrGrid()’:
bug13.cc:22: error: control flow in the middle of basic block 4
bug13.cc:22: internal compiler error: verify_flow_info failed
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.

elm3b145% /opt/gcc-nightly/trunk/bin/g++ -O2 -fnon-call-exceptions -ffast-math
-fsignaling-nans -c bug14.cc
bug14.cc: In function ‘int main()’:
bug14.cc:27: error: BB 11 can not throw but has EH edges
bug14.cc:27: error: BB 12 can not throw but has EH edges
bug14.cc:27: error: control flow in the middle of basic block 13
bug14.cc:27: error: control flow in the middle of basic block 13
bug14.cc:27: internal compiler error: verify_flow_info failed
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.

Here's bug13.cc; I'll attach the other which is slightly larger.

template <class T>
class ggStaticArray {
public:
  ~ggStaticArray();
};

template <class T>
class ggGrid {
public:
  ggGrid() : grid() { }
  ggStaticArray<T> grid;
};

class mrGrid {
public:
  mrGrid(void);
protected:
  ggGrid<int*> grid;
  double multiplier;
};

mrGrid::mrGrid(void)
{
  double xMeasure, yMeasure, zMeasure;
  double cellDimension;

  cellDimension = multiplier * (xMeasure * yMeasure * zMeasure);
}

Regression hunts for both identified this patch:

    http://gcc.gnu.org/viewcvs?view=rev&rev=108425

    r108425 | law | 2005-12-12 19:59:16 +0000 (Mon, 12 Dec 2005)


-- 
           Summary: ICE  with control flow in the middle of basic block for
                    -fnon-call-exceptions
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: janis at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34036



More information about the Gcc-bugs mailing list