mirror of git://gcc.gnu.org/git/gcc.git
re PR tree-optimization/70602 (wrong code at -O1 and above on x86_64-linux-gnu in 32-bit mode (and at -Os only in 64-bit mode))
PR tree-optimization/70602 * tree-sra.c (generate_subtree_copies): Don't write anything into constant pool decls. * gcc.c-torture/execute/pr70602.c: New test. From-SVN: r234895
This commit is contained in:
parent
21f3a2369b
commit
4e0eea7560
|
|
@ -1,5 +1,9 @@
|
||||||
2016-04-12 Jakub Jelinek <jakub@redhat.com>
|
2016-04-12 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
PR tree-optimization/70602
|
||||||
|
* tree-sra.c (generate_subtree_copies): Don't write anything into
|
||||||
|
constant pool decls.
|
||||||
|
|
||||||
* omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
|
* omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
|
||||||
regardless whether there are depend clauses or not.
|
regardless whether there are depend clauses or not.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,8 @@
|
||||||
|
2016-04-12 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
PR tree-optimization/70602
|
||||||
|
* gcc.c-torture/execute/pr70602.c: New test.
|
||||||
|
|
||||||
2016-04-11 Michael Meissner <meissner@linux.vnet.ibm.com>
|
2016-04-11 Michael Meissner <meissner@linux.vnet.ibm.com>
|
||||||
|
|
||||||
PR target/70381
|
PR target/70381
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
/* PR tree-optimization/70602 */
|
||||||
|
|
||||||
|
struct __attribute__((packed)) S
|
||||||
|
{
|
||||||
|
int s : 1;
|
||||||
|
int t : 20;
|
||||||
|
};
|
||||||
|
|
||||||
|
int a, b, c;
|
||||||
|
|
||||||
|
int
|
||||||
|
main ()
|
||||||
|
{
|
||||||
|
for (; a < 1; a++)
|
||||||
|
{
|
||||||
|
struct S e[] = { {0, 9}, {0, 9}, {0, 9}, {0, 0}, {0, 9}, {0, 9}, {0, 9},
|
||||||
|
{0, 0}, {0, 9}, {0, 9}, {0, 9}, {0, 0}, {0, 9}, {0, 9},
|
||||||
|
{0, 9}, {0, 0}, {0, 9}, {0, 9}, {0, 9}, {0, 0}, {0, 9} };
|
||||||
|
b = b || e[0].s;
|
||||||
|
c = e[0].t;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
@ -2743,6 +2743,9 @@ generate_subtree_copies (struct access *access, tree agg,
|
||||||
gimple_stmt_iterator *gsi, bool write,
|
gimple_stmt_iterator *gsi, bool write,
|
||||||
bool insert_after, location_t loc)
|
bool insert_after, location_t loc)
|
||||||
{
|
{
|
||||||
|
/* Never write anything into constant pool decls. See PR70602. */
|
||||||
|
if (!write && constant_decl_p (agg))
|
||||||
|
return;
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
if (chunk_size && access->offset >= start_offset + chunk_size)
|
if (chunk_size && access->offset >= start_offset + chunk_size)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue