Hi, this patch fixes the fnspec strings of the goacc builtins.
The first position in an fnspec string is for the function result, even if it's a void function. This first entry is missing in the goacc fnspecs, attached patch fixes this.
Committed to gomp-4_0-branch. Thanks, - Tom
Fix goacc builtins fnspecs 2015-06-01 Tom de Vries <t...@codesourcery.com> * builtin-attrs.def (DOT_DOT_r_r_r): Remove DEF_ATTR_FOR_STRING. (DOT_DOT_DOT_DOT_r_r_r): Add DEF_ATTR_FOR_STRING. (ATTR_FNSPEC_DOT_DOT_r_r_r_NOTHROW_LIST): Remove DEF_ATTR_TREE_LIST. (ATTR_FNSPEC_DOT_DOT_DOT_DOT_r_r_r_NOTHROW_LIST): Add DEF_ATTR_TREE_LIST. * omp-builtins.def (BUILT_IN_GOACC_DATA_START) (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_KERNELS_INTERNAL) (BUILT_IN_GOACC_UPDATE): Fix fnspec. --- gcc/builtin-attrs.def | 7 ++++--- gcc/omp-builtins.def | 18 +++++++++--------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/gcc/builtin-attrs.def b/gcc/builtin-attrs.def index 2897c19d..da3ae80 100644 --- a/gcc/builtin-attrs.def +++ b/gcc/builtin-attrs.def @@ -65,7 +65,7 @@ DEF_ATTR_FOR_INT (6) ATTR_##ENUM, ATTR_NULL) DEF_ATTR_FOR_STRING (STR1, "1") DEF_ATTR_FOR_STRING (DOT_DOT_DOT_r_r_r, "...rrr") -DEF_ATTR_FOR_STRING (DOT_DOT_r_r_r, "..rrr") +DEF_ATTR_FOR_STRING (DOT_DOT_DOT_DOT_r_r_r, "....rrr") #undef DEF_ATTR_FOR_STRING /* Construct a tree for a list of two integers. */ @@ -132,8 +132,9 @@ DEF_ATTR_TREE_LIST (ATTR_PURE_NOTHROW_LEAF_LIST, ATTR_PURE, \ DEF_ATTR_TREE_LIST (ATTR_FNSPEC_DOT_DOT_DOT_r_r_r_NOTHROW_LIST, \ ATTR_FNSPEC, ATTR_LIST_DOT_DOT_DOT_r_r_r, \ ATTR_NOTHROW_LIST) -DEF_ATTR_TREE_LIST (ATTR_FNSPEC_DOT_DOT_r_r_r_NOTHROW_LIST, \ - ATTR_FNSPEC, ATTR_LIST_DOT_DOT_r_r_r, ATTR_NOTHROW_LIST) +DEF_ATTR_TREE_LIST (ATTR_FNSPEC_DOT_DOT_DOT_DOT_r_r_r_NOTHROW_LIST, \ + ATTR_FNSPEC, ATTR_LIST_DOT_DOT_DOT_DOT_r_r_r, \ + ATTR_NOTHROW_LIST) DEF_ATTR_TREE_LIST (ATTR_NORETURN_NOTHROW_LIST, ATTR_NORETURN, \ ATTR_NULL, ATTR_NOTHROW_LIST) DEF_ATTR_TREE_LIST (ATTR_NORETURN_NOTHROW_LEAF_LIST, ATTR_NORETURN,\ diff --git a/gcc/omp-builtins.def b/gcc/omp-builtins.def index dad9665..6e70d0b 100644 --- a/gcc/omp-builtins.def +++ b/gcc/omp-builtins.def @@ -33,21 +33,21 @@ along with GCC; see the file COPYING3. If not see DEF_GOACC_BUILTIN (BUILT_IN_ACC_GET_DEVICE_TYPE, "acc_get_device_type", BT_FN_INT, ATTR_NOTHROW_LIST) DEF_GOACC_BUILTIN_FNSPEC (BUILT_IN_GOACC_DATA_START, "GOACC_data_start", - BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, - ATTR_FNSPEC_DOT_DOT_r_r_r_NOTHROW_LIST, - ATTR_NOTHROW_LIST, "..rrr") + BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, + ATTR_FNSPEC_DOT_DOT_DOT_r_r_r_NOTHROW_LIST, + ATTR_NOTHROW_LIST, "...rrr") DEF_GOACC_BUILTIN (BUILT_IN_GOACC_DATA_END, "GOACC_data_end", BT_FN_VOID, ATTR_NOTHROW_LIST) DEF_GOACC_BUILTIN_FNSPEC (BUILT_IN_GOACC_ENTER_EXIT_DATA, "GOACC_enter_exit_data", BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR, - ATTR_FNSPEC_DOT_DOT_r_r_r_NOTHROW_LIST, - ATTR_NOTHROW_LIST, "..rrr") + ATTR_FNSPEC_DOT_DOT_DOT_r_r_r_NOTHROW_LIST, + ATTR_NOTHROW_LIST, "...rrr") DEF_GOACC_BUILTIN_FNSPEC (BUILT_IN_GOACC_KERNELS_INTERNAL, "GOACC_kernels_internal", BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_SIZE_INT_INT_VAR, - ATTR_FNSPEC_DOT_DOT_DOT_r_r_r_NOTHROW_LIST, - ATTR_NOTHROW_LIST, "...rrr") + ATTR_FNSPEC_DOT_DOT_DOT_DOT_r_r_r_NOTHROW_LIST, + ATTR_NOTHROW_LIST, "....rrr") DEF_GOACC_BUILTIN (BUILT_IN_GOACC_KERNELS, "GOACC_kernels", BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_SIZE_INT_INT_VAR, ATTR_NOTHROW_LIST) @@ -56,8 +56,8 @@ DEF_GOACC_BUILTIN (BUILT_IN_GOACC_PARALLEL, "GOACC_parallel", ATTR_NOTHROW_LIST) DEF_GOACC_BUILTIN_FNSPEC (BUILT_IN_GOACC_UPDATE, "GOACC_update", BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR, - ATTR_FNSPEC_DOT_DOT_r_r_r_NOTHROW_LIST, - ATTR_NOTHROW_LIST, "..rrr") + ATTR_FNSPEC_DOT_DOT_DOT_r_r_r_NOTHROW_LIST, + ATTR_NOTHROW_LIST, "...rrr") DEF_GOACC_BUILTIN (BUILT_IN_GOACC_WAIT, "GOACC_wait", BT_FN_VOID_INT_INT_VAR, ATTR_NOTHROW_LIST) -- 1.9.1