This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/34036] New: ICE with control flow in the middle of basic block for -fnon-call-exceptions
- From: "janis at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 8 Nov 2007 22:00:49 -0000
- Subject: [Bug tree-optimization/34036] New: ICE with control flow in the middle of basic block for -fnon-call-exceptions
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
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