summaryrefslogtreecommitdiff
path: root/gcc/lto
diff options
context:
space:
mode:
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2013-11-29 10:36:10 +0000
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2013-11-29 10:36:10 +0000
commitfe3e33698a0ed665ec87da4d2b744f62b7002d82 (patch)
tree03e83d5dac4b9d1257c9b47f47f7a4c745098503 /gcc/lto
parent253e1cae6a3e370e02e85268096247084556d79f (diff)
downloadgcc-fe3e33698a0ed665ec87da4d2b744f62b7002d82.tar.gz
PR lto/59326
* tree-core.h (enum omp_clause_schedule_kind): Add OMP_CLAUSE_SCHEDULE_LAST. (enum omp_clause_default_kind): Add OMP_CLAUSE_DEFAULT_LAST. (enum omp_clause_depend_kind): Add OMP_CLAUSE_DEPEND_LAST. (enum omp_clause_map_kind): Add OMP_CLAUSE_MAP_LAST. (enum omp_clause_proc_bind_kind): Add OMP_CLAUSE_PROC_BIND_LAST. * lto-streamer-out.c (lto_is_streamable): Allow streaming OMP_CLAUSE. (DFS_write_tree_body): Handle OMP_CLAUSE. * tree-streamer-out.c (pack_ts_omp_clause_value_fields): New function. (streamer_pack_tree_bitfields): Call it for OMP_CLAUSE. (write_ts_omp_clause_tree_pointers): New function. (streamer_write_tree_body): Call it for OMP_CLAUSE. (streamer_write_tree_header): For OMP_CLAUSE stream OMP_CLAUSE_CODE. * tree-streamer-in.c (unpack_ts_omp_clause_value_fields): New function. (unpack_value_fields): Call it for OMP_CLAUSE. (streamer_alloc_tree): Handle OMP_CLAUSE. (lto_input_ts_omp_clause_tree_pointers): New function. (streamer_read_tree_body): Call it for OMP_CLAUSE. lto/ * lto.c (mentions_vars_p_omp_clause): New function. (mentions_vars_p): Call it for OMP_CLAUSE. Remove break; after return stmts. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205512 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/lto')
-rw-r--r--gcc/lto/ChangeLog7
-rw-r--r--gcc/lto/lto.c24
2 files changed, 23 insertions, 8 deletions
diff --git a/gcc/lto/ChangeLog b/gcc/lto/ChangeLog
index 5beccad89aa..3ce3a32c164 100644
--- a/gcc/lto/ChangeLog
+++ b/gcc/lto/ChangeLog
@@ -1,3 +1,10 @@
+2013-11-29 Jakub Jelinek <jakub@redhat.com>
+
+ PR lto/59326
+ * lto.c (mentions_vars_p_omp_clause): New function.
+ (mentions_vars_p): Call it for OMP_CLAUSE. Remove break;
+ after return stmts.
+
2013-11-22 Andrew MacLeod <amacleod@redhat.com>
* lto.c: Add required include files from gimple.h.
diff --git a/gcc/lto/lto.c b/gcc/lto/lto.c
index 8f2f1b0f0c8..26084bf7d41 100644
--- a/gcc/lto/lto.c
+++ b/gcc/lto/lto.c
@@ -904,6 +904,19 @@ mentions_vars_p_expr (tree t)
return false;
}
+/* Check presence of pointers to decls in fields of an OMP_CLAUSE T. */
+
+static bool
+mentions_vars_p_omp_clause (tree t)
+{
+ int i;
+ if (mentions_vars_p_common (t))
+ return true;
+ for (i = omp_clause_num_ops[OMP_CLAUSE_CODE (t)] - 1; i >= 0; --i)
+ CHECK_VAR (OMP_CLAUSE_OPERAND (t, i));
+ return false;
+}
+
/* Check presence of pointers to decls that needs later fixup in T. */
static bool
@@ -922,7 +935,6 @@ mentions_vars_p (tree t)
case FIELD_DECL:
return mentions_vars_p_field_decl (t);
- break;
case LABEL_DECL:
case CONST_DECL:
@@ -931,27 +943,21 @@ mentions_vars_p (tree t)
case IMPORTED_DECL:
case NAMESPACE_DECL:
return mentions_vars_p_decl_common (t);
- break;
case VAR_DECL:
return mentions_vars_p_decl_with_vis (t);
- break;
case TYPE_DECL:
return mentions_vars_p_decl_non_common (t);
- break;
case FUNCTION_DECL:
return mentions_vars_p_function (t);
- break;
case TREE_BINFO:
return mentions_vars_p_binfo (t);
- break;
case PLACEHOLDER_EXPR:
return mentions_vars_p_common (t);
- break;
case BLOCK:
case TRANSLATION_UNIT_DECL:
@@ -961,7 +967,9 @@ mentions_vars_p (tree t)
case CONSTRUCTOR:
return mentions_vars_p_constructor (t);
- break;
+
+ case OMP_CLAUSE:
+ return mentions_vars_p_omp_clause (t);
default:
if (TYPE_P (t))