[Bug middle-end/60682] New: [4.9 Regression][OpenMP] ICE on an assignment of local variable inside SIMD loop
izamyatin at gmail dot com
gcc-bugzilla@gcc.gnu.org
Thu Mar 27 10:08:00 GMT 2014
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60682
Bug ID: 60682
Summary: [4.9 Regression][OpenMP] ICE on an assignment of local
variable inside SIMD loop
Product: gcc
Version: 4.9.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: izamyatin at gmail dot com
Seems r207629 (fix for PR59984) introduces given issue.
Test is
class V3
{
public:
float v[1];
V3() {}
V3(const V3 &x)
{
v[0] = x.v[0];
}
};
struct CCC
{
V3 a[16];
};
void foo(int num, CCC &cc)
{
#pragma omp simd
for(int i = 0; i < num; ++i)
{
V3 v3;
cc.a[i] = v3;
}
}
compilation flags: -O1 -fopenmp
ICE:
internal compiler error: in create_tmp_var, at gimple-expr.c:506
cc.a[i] = v3;
^
0x97ab03 create_tmp_var(tree_node*, char const*)
Note that v3's privatization makes ICE disappear.
More information about the Gcc-bugs
mailing list