mirror of git://gcc.gnu.org/git/gcc.git
re PR middle-end/58809 (ICE with complex variable in OpenMP reduction clause)
PR middle-end/58809 * fold-const.c (fold_range_test): Return 0 if the type is not an integral type. testsuite/ * gcc.dg/gomp/pr58809.c: New test. From-SVN: r203907
This commit is contained in:
parent
67b5215c76
commit
1e08df0e05
|
|
@ -1,3 +1,9 @@
|
||||||
|
2013-10-21 Marek Polacek <polacek@redhat.com>
|
||||||
|
|
||||||
|
PR middle-end/58809
|
||||||
|
* fold-const.c (fold_range_test): Return 0 if the type is not
|
||||||
|
an integral type.
|
||||||
|
|
||||||
2013-10-21 Richard Sandiford <rdsandiford@googlemail.com>
|
2013-10-21 Richard Sandiford <rdsandiford@googlemail.com>
|
||||||
|
|
||||||
* system.h: Move hwint.h include further down.
|
* system.h: Move hwint.h include further down.
|
||||||
|
|
|
||||||
|
|
@ -4970,12 +4970,16 @@ fold_range_test (location_t loc, enum tree_code code, tree type,
|
||||||
int in0_p, in1_p, in_p;
|
int in0_p, in1_p, in_p;
|
||||||
tree low0, low1, low, high0, high1, high;
|
tree low0, low1, low, high0, high1, high;
|
||||||
bool strict_overflow_p = false;
|
bool strict_overflow_p = false;
|
||||||
tree lhs = make_range (op0, &in0_p, &low0, &high0, &strict_overflow_p);
|
tree tem, lhs, rhs;
|
||||||
tree rhs = make_range (op1, &in1_p, &low1, &high1, &strict_overflow_p);
|
|
||||||
tree tem;
|
|
||||||
const char * const warnmsg = G_("assuming signed overflow does not occur "
|
const char * const warnmsg = G_("assuming signed overflow does not occur "
|
||||||
"when simplifying range test");
|
"when simplifying range test");
|
||||||
|
|
||||||
|
if (!INTEGRAL_TYPE_P (type))
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
lhs = make_range (op0, &in0_p, &low0, &high0, &strict_overflow_p);
|
||||||
|
rhs = make_range (op1, &in1_p, &low1, &high1, &strict_overflow_p);
|
||||||
|
|
||||||
/* If this is an OR operation, invert both sides; we will invert
|
/* If this is an OR operation, invert both sides; we will invert
|
||||||
again at the end. */
|
again at the end. */
|
||||||
if (or_op)
|
if (or_op)
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,8 @@
|
||||||
|
2013-10-21 Marek Polacek <polacek@redhat.com>
|
||||||
|
|
||||||
|
PR middle-end/58809
|
||||||
|
* gcc.dg/gomp/pr58809.c: New test.
|
||||||
|
|
||||||
2013-10-21 Vidya Praveen <vidyapraveen@arm.com>
|
2013-10-21 Vidya Praveen <vidyapraveen@arm.com>
|
||||||
|
|
||||||
* gcc.dg/20050922-1.c: Remove stdlib.h and declare abort().
|
* gcc.dg/20050922-1.c: Remove stdlib.h and declare abort().
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
/* PR middle-end/58809 */
|
||||||
|
/* { dg-do compile } */
|
||||||
|
/* { dg-options "-fopenmp -O" } */
|
||||||
|
|
||||||
|
int i;
|
||||||
|
#pragma omp threadprivate (i)
|
||||||
|
|
||||||
|
void foo()
|
||||||
|
{
|
||||||
|
_Complex int j;
|
||||||
|
#pragma omp parallel copyin (i) reduction (&&:j)
|
||||||
|
;
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue