mirror of git://gcc.gnu.org/git/gcc.git
re PR c/47963 (ICE: tree check: expected tree that contains 'decl common' structure, have 'integer_cst' in is_global_var, at tree-flow-inline.h:599 on invalid code with -fopenmp)
PR c/47963 * gimplify.c (omp_add_variable): Only call omp_notice_variable on TYPE_SIZE_UNIT if it is a DECL. * gcc.dg/gomp/pr47963.c: New test. * g++.dg/gomp/pr47963.C: New test. From-SVN: r170655
This commit is contained in:
parent
71f3a3f517
commit
423ed4163b
|
@ -1,5 +1,9 @@
|
||||||
2011-03-03 Jakub Jelinek <jakub@redhat.com>
|
2011-03-03 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
PR c/47963
|
||||||
|
* gimplify.c (omp_add_variable): Only call omp_notice_variable
|
||||||
|
on TYPE_SIZE_UNIT if it is a DECL.
|
||||||
|
|
||||||
PR debug/47283
|
PR debug/47283
|
||||||
* cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
|
* cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
|
||||||
first operand is not is_gimple_mem_ref_addr, try to fold it.
|
first operand is not is_gimple_mem_ref_addr, try to fold it.
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* Tree lowering pass. This pass converts the GENERIC functions-as-trees
|
/* Tree lowering pass. This pass converts the GENERIC functions-as-trees
|
||||||
tree representation into the GIMPLE form.
|
tree representation into the GIMPLE form.
|
||||||
Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
|
Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
|
||||||
Free Software Foundation, Inc.
|
Free Software Foundation, Inc.
|
||||||
Major work done by Sebastian Pop <s.pop@laposte.net>,
|
Major work done by Sebastian Pop <s.pop@laposte.net>,
|
||||||
Diego Novillo <dnovillo@redhat.com> and Jason Merrill <jason@redhat.com>.
|
Diego Novillo <dnovillo@redhat.com> and Jason Merrill <jason@redhat.com>.
|
||||||
|
@ -5511,7 +5511,8 @@ omp_add_variable (struct gimplify_omp_ctx *ctx, tree decl, unsigned int flags)
|
||||||
For local variables TYPE_SIZE_UNIT might not be gimplified yet,
|
For local variables TYPE_SIZE_UNIT might not be gimplified yet,
|
||||||
in this case omp_notice_variable will be called later
|
in this case omp_notice_variable will be called later
|
||||||
on when it is gimplified. */
|
on when it is gimplified. */
|
||||||
else if (! (flags & GOVD_LOCAL))
|
else if (! (flags & GOVD_LOCAL)
|
||||||
|
&& DECL_P (TYPE_SIZE_UNIT (TREE_TYPE (decl))))
|
||||||
omp_notice_variable (ctx, TYPE_SIZE_UNIT (TREE_TYPE (decl)), true);
|
omp_notice_variable (ctx, TYPE_SIZE_UNIT (TREE_TYPE (decl)), true);
|
||||||
}
|
}
|
||||||
else if (lang_hooks.decls.omp_privatize_by_reference (decl))
|
else if (lang_hooks.decls.omp_privatize_by_reference (decl))
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
2011-03-03 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
PR c/47963
|
||||||
|
* gcc.dg/gomp/pr47963.c: New test.
|
||||||
|
* g++.dg/gomp/pr47963.C: New test.
|
||||||
|
|
||||||
2011-03-02 Jason Merrill <jason@redhat.com>
|
2011-03-02 Jason Merrill <jason@redhat.com>
|
||||||
|
|
||||||
* g++.dg/cpp0x/regress/condition1.C: New.
|
* g++.dg/cpp0x/regress/condition1.C: New.
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
// PR c/47963
|
||||||
|
// { dg-do compile }
|
||||||
|
// { dg-options "-fopenmp" }
|
||||||
|
|
||||||
|
void
|
||||||
|
foo (float n)
|
||||||
|
{
|
||||||
|
int A[n][n]; // { dg-error "has non-integral type" }
|
||||||
|
#pragma omp parallel private(A)
|
||||||
|
;
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
/* PR c/47963 */
|
||||||
|
/* { dg-do compile } */
|
||||||
|
/* { dg-options "-fopenmp" } */
|
||||||
|
|
||||||
|
void
|
||||||
|
foo (float n)
|
||||||
|
{
|
||||||
|
int A[n][n]; /* { dg-error "has non-integer type" } */
|
||||||
|
#pragma omp parallel private(A)
|
||||||
|
;
|
||||||
|
}
|
Loading…
Reference in New Issue