[prev in list] [next in list] [prev in thread] [next in thread]
List: gcc-bugs
Subject: [Bug tree-optimization/84152] [7 Regression] Internal compiler error when compiling a cxx file
From: "dmalcolm at gcc dot gnu.org" <gcc-bugzilla () gcc ! gnu ! org>
Date: 2018-01-31 20:22:08
Message-ID: bug-84152-4-IGhBhiFH2H () http ! gcc ! gnu ! org/bugzilla/
[Download RAW message or body]
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84152
David Malcolm <dmalcolm at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2018-01-31
Component|c++ |tree-optimization
Summary|Internal compiler error |[7 Regression] Internal
|when compiling a cxx file |compiler error when
| |compiling a cxx file
Ever confirmed|0 |1
--- Comment #3 from David Malcolm <dmalcolm at gcc dot gnu.org> ---
I can only reproduce it with gcc 7, not with gcc 6 or trunk.
Here's a more minimal reproducer (ICEs with both C/C++):
float fZNCTDC[4];
float fZPCTDC[4];
struct foo {
unsigned int fBits;
int fZDCTDCData[32][4];
float fZDCTDCCorrected[32];
int fZDCTDCChannels;
};
float GetZDCTDCCorrected(const struct foo *a, int i, int j) {
if (a->fBits & (1ULL << 14) && (a->fZDCTDCData[i][j] != 0))
return a->fZDCTDCCorrected[i];
return 0.f;
}
int GetZNCTDCChannel(struct foo *a) {
if (a->fBits & (1ULL << 16))
return a->fZDCTDCChannels;
return 10;
}
void UserExec(struct foo *a) {
for (int itdc = 0; itdc < 4; itdc++) {
fZNCTDC[itdc] =
GetZDCTDCCorrected(a, GetZNCTDCChannel(a), itdc);
fZPCTDC[itdc] =
GetZDCTDCCorrected(a, GetZNCTDCChannel(a), itdc);
}
}=
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic