Commit f4c222c0 by Tom de Vries Committed by Tom de Vries

Fix diff_type in expand_oacc_for char iter_type

2017-08-07  Tom de Vries  <tom@codesourcery.com>

	PR middle-end/78266
	* omp-expand.c (expand_oacc_for): Ensure diff_type is large enough.

	* testsuite/libgomp.oacc-c-c++-common/vprop-2.c: New test.
	* testsuite/libgomp.oacc-c-c++-common/vprop.c: Remove xfail.

From-SVN: r250925
parent 58fccd6c
2017-08-07 Tom de Vries <tom@codesourcery.com>
PR middle-end/78266
* omp-expand.c (expand_oacc_for): Ensure diff_type is large enough.
2017-08-07 Martin Liska <mliska@suse.cz>
* config/mips/mips.c: Include attribs.h.
......
......@@ -5328,6 +5328,8 @@ expand_oacc_for (struct omp_region *region, struct omp_for_data *fd)
}
if (POINTER_TYPE_P (diff_type) || TYPE_UNSIGNED (diff_type))
diff_type = signed_type_for (diff_type);
if (TYPE_PRECISION (diff_type) < TYPE_PRECISION (integer_type_node))
diff_type = integer_type_node;
basic_block entry_bb = region->entry; /* BB ending in OMP_FOR */
basic_block exit_bb = region->exit; /* BB ending in OMP_RETURN */
......
2017-08-07 Tom de Vries <tom@codesourcery.com>
PR middle-end/78266
* testsuite/libgomp.oacc-c-c++-common/vprop-2.c: New test.
* testsuite/libgomp.oacc-c-c++-common/vprop.c: Remove xfail.
2017-07-27 Jakub Jelinek <jakub@redhat.com>
PR c/45784
......
/* { dg-do run } */
#include <assert.h>
#define DO_PRAGMA(x) _Pragma (#x)
#define test(idx,type,ngangs) \
void \
test_##idx () \
{ \
int b[100]; \
\
for (unsigned int i = 0; i < 100; i++) \
b[i] = 0; \
\
DO_PRAGMA(acc parallel num_gangs (ngangs) copy (b)) \
{ \
_Pragma("acc loop gang") \
for (type j = 0; j < 5; j++) \
{ \
_Pragma("acc loop vector") \
for (unsigned int i = 0; i < 20; i++) \
b[j * 20 + i] = -2; \
} \
} \
\
for (unsigned int i = 0; i < 100; i++) \
assert (b[i] == -2); \
}
test (0, signed char, 256)
test (1, unsigned char, 256)
test (2, signed short, 65535)
test (3, unsigned short, 65535)
int
main ()
{
test_0 ();
test_1 ();
test_2 ();
test_3 ();
return 0;
}
/* { dg-do run } */
/* { dg-xfail-run-if "PR78266" { openacc_nvidia_accel_selected } } */
#include <assert.h>
......
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