Commit 19368333 by Richard Guenther Committed by Richard Biener

tree-data-ref.c (initialize_data_dependence_relation): Handle mismatching number…

tree-data-ref.c (initialize_data_dependence_relation): Handle mismatching number of dimensions properly.

2010-07-02  Richard Guenther  <rguenther@suse.de>

	* tree-data-ref.c (initialize_data_dependence_relation): Handle
	mismatching number of dimensions properly.

	* g++.dg/torture/20100702-1.C: New testcase.

From-SVN: r161705
parent 2334baf4
2010-07-02 Richard Guenther <rguenther@suse.de>
* tree-data-ref.c (initialize_data_dependence_relation): Handle
mismatching number of dimensions properly.
2010-07-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
PR target/44707
......
2010-07-02 Richard Guenther <rguenther@suse.de>
* g++.dg/torture/20100702-1.C: New testcase.
2010-07-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
PR target/44707
......
// { dg-do compile }
// { dg-options "-fprefetch-loop-arrays -w" }
class ggPoint3 {
public:
ggPoint3();
inline double &x() {
return e[0];
}
inline double &y() {
return e[1];
}
ggPoint3(const ggPoint3 &p);
double e[3];
};
class ggBox3 {
public:
ggPoint3 min() const;
};
class ggHAffineMatrix3;
ggPoint3 operator*(const ggHAffineMatrix3 &m, const ggPoint3 &v);
void foo (ggPoint3 *);
void SetMatrix(ggHAffineMatrix3& toworld, ggBox3& box)
{
ggPoint3 p[2][2][2];
int i, j, k;
for (i = 0; i < 2; j++)
for (k = 0; k < 2; k++)
{
if (i == 0)
p[i][j][k].x() = box.min().x();
if (j == 0)
p[i][j][k].y() = box.min().y();
p[i][j][k] = toworld * p[i][j][k];
}
foo (&p[0][0][0]);
}
......@@ -1452,7 +1452,14 @@ initialize_data_dependence_relation (struct data_reference *a,
return res;
}
gcc_assert (DR_NUM_DIMENSIONS (a) == DR_NUM_DIMENSIONS (b));
/* If the number of dimensions of the access to not agree we can have
a pointer access to a component of the array element type and an
array access while the base-objects are still the same. Punt. */
if (DR_NUM_DIMENSIONS (a) != DR_NUM_DIMENSIONS (b))
{
DDR_ARE_DEPENDENT (res) = chrec_dont_know;
return res;
}
DDR_AFFINE_P (res) = true;
DDR_ARE_DEPENDENT (res) = NULL_TREE;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment