https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68476
Arnout Vandecappelle <arnout at mind dot be> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |arnout at mind dot be
Version|5.2.1 |6.2.0
--- Comment #3 from Arnout Vandecappelle <arnout at mind dot be> ---
I just tried again with gcc 6.2 and the problem persists.
I've simplified the code to a minimal reproduction - it's so simple that it's
not worth attaching:
void foo (void* ptr);
struct Node
{
int m_v[16];
int m_leaf;
};
void setVolumeMass()
{
extern struct Node* m_n[4];
extern struct Node* m_nodes;
int *ranks;
int j;
for(j=0;j<4;++j)
{
ranks[(int)(m_n[j]-m_nodes)]=1;
}
foo ((void*)( ranks ));
}
Removing one line from the code above makes it pass.
The last file that is generated when run with -da is now
btSoftBody.i.281r.vartrack. It looks to me like it's much larger than it should
be. I'll attach it, as well as the preceding btSoftBody.i.280r.alignments. When
a line is removed from the code above, the compilation continues with
btSoftBody.i.282r.mach.