From b17a8b072f2c577d42e5ea4a5ca7d5ff63ec0a41 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Fri, 7 Mar 2014 09:46:13 +0100 Subject: The error_mark_node is not an OpenMP mappable type. gcc/ * langhooks.c (lhd_omp_mappable_type): The error_mark_node is not an OpenMP mappable type. gcc/c/ * c-decl.c (c_decl_attributes): Use lang_hooks.types.omp_mappable_type. * c-typeck.c (c_finish_omp_clauses): Likewise. gcc/testsuite/ * c-c++-common/gomp/map-1.c: Extend. From-SVN: r208394 --- gcc/c/ChangeLog | 6 ++++++ gcc/c/c-decl.c | 2 +- gcc/c/c-typeck.c | 8 ++++---- 3 files changed, 11 insertions(+), 5 deletions(-) (limited to 'gcc/c') diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog index e9d25d5..9d854a7 100644 --- a/gcc/c/ChangeLog +++ b/gcc/c/ChangeLog @@ -1,3 +1,9 @@ +2014-03-07 Thomas Schwinge + + * c-decl.c (c_decl_attributes): Use + lang_hooks.types.omp_mappable_type. + * c-typeck.c (c_finish_omp_clauses): Likewise. + 2014-03-06 Marek Polacek PR c/60197 diff --git a/gcc/c/c-decl.c b/gcc/c/c-decl.c index 7a7d68e..2c41bf2 100644 --- a/gcc/c/c-decl.c +++ b/gcc/c/c-decl.c @@ -4024,7 +4024,7 @@ c_decl_attributes (tree *node, tree attributes, int flags) error ("%q+D in block scope inside of declare target directive", *node); else if (TREE_CODE (*node) == VAR_DECL - && !COMPLETE_TYPE_P (TREE_TYPE (*node))) + && !lang_hooks.types.omp_mappable_type (TREE_TYPE (*node))) error ("%q+D in declare target directive does not have mappable type", *node); else diff --git a/gcc/c/c-typeck.c b/gcc/c/c-typeck.c index 7c4ba0e..524a59f 100644 --- a/gcc/c/c-typeck.c +++ b/gcc/c/c-typeck.c @@ -12032,7 +12032,7 @@ c_finish_omp_clauses (tree clauses) else { t = OMP_CLAUSE_DECL (c); - if (!COMPLETE_TYPE_P (TREE_TYPE (t))) + if (!lang_hooks.types.omp_mappable_type (TREE_TYPE (t))) { error_at (OMP_CLAUSE_LOCATION (c), "array section does not have mappable type " @@ -12061,9 +12061,9 @@ c_finish_omp_clauses (tree clauses) } else if (!c_mark_addressable (t)) remove = true; - else if (!COMPLETE_TYPE_P (TREE_TYPE (t)) - && !(OMP_CLAUSE_CODE (c) == OMP_CLAUSE_MAP - && OMP_CLAUSE_MAP_KIND (c) == OMP_CLAUSE_MAP_POINTER)) + else if (!(OMP_CLAUSE_CODE (c) == OMP_CLAUSE_MAP + && OMP_CLAUSE_MAP_KIND (c) == OMP_CLAUSE_MAP_POINTER) + && !lang_hooks.types.omp_mappable_type (TREE_TYPE (t))) { error_at (OMP_CLAUSE_LOCATION (c), "%qD does not have a mappable type in %qs clause", t, -- cgit v1.1