| Summary: | ICE in vectorizable_assignment, at tree-vect-stmts.c:1956 | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Ben Webb <ben> | ||||
| Component: | gcc | Assignee: | Jakub Jelinek <jakub> | ||||
| Status: | CLOSED ERRATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||
| Severity: | high | Docs Contact: | |||||
| Priority: | unspecified | ||||||
| Version: | 16 | CC: | aravindvijayan224185, jakub | ||||
| Target Milestone: | --- | Keywords: | Patch | ||||
| Target Release: | --- | ||||||
| Hardware: | x86_64 | ||||||
| OS: | Linux | ||||||
| Whiteboard: | |||||||
| Fixed In Version: | Doc Type: | Bug Fix | |||||
| Doc Text: | Story Points: | --- | |||||
| Clone Of: | Environment: | ||||||
| Last Closed: | 2012-01-09 11:49:43 UTC | Type: | --- | ||||
| Regression: | --- | Mount Type: | --- | ||||
| Documentation: | --- | CRM: | |||||
| Verified Versions: | Category: | --- | |||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||
| Attachments: |
|
||||||
|
Description
Ben Webb
2011-11-30 23:19:40 UTC
I think this may be a URL to the file: BallMover.cpp http://svn.salilab.org/imp/trunk/modules/core/src/BallMover.cpp -- Fedora Bugzappers volunteer triage team https://fedoraproject.org/wiki/BugZappers Of course I am happy to provide additional information if requested - I said as much in the original report. This includes the file itself (rather than a guess as to the URL!) if the preprocessed source is not sufficient to reproduce the problem.
That URL points to our SVN server, so you'll get the latest revision of that one file, not necessarily the revision that actually triggers the bug, of course. And compiling that file by itself does not trigger the bug - it has to be batch compiled with a bunch of other files and (as far as I can tell) a specific set of compiler flags.
Of course if the compiler guys can figure out the problem from that one file in isolation, that's great. But to me it looks like a pretty standard assignment-in-a-for-loop:
for (int j = 0; j < get_number_of_keys(); ++j) {
center[j] = get_value(i, j);
}
For now I have avoided the ICE by running the loop backwards (which is what you'll see if you check out that URL), i.e.
for (int j = get_number_of_keys() - 1; j >= 0; --j) {
center[j] = get_value(i, j);
}
Reduced testcase at -O3:
struct A { A (); unsigned int a; };
double bar (A a) throw () __attribute__((pure));
void
foo (unsigned int x, double *y, A *z)
{
unsigned int i;
for (i = 0; i < x; i++)
y[i] = bar (z[i]);
}
Unlike the original this one ICEs reliably in all of upstream trunk, 4.6 and 4.6-RH.
Hi Ben,
I think the patch worked for you.Let me close this bug feel free to open this at any time still you have difficulties on this issue.
--
Fedora Bugzappers volunteer triage team
https://fedoraproject.org/wiki/BugZappers
|