diff options
author | bviyer <bviyer@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-06-05 19:43:44 +0000 |
---|---|---|
committer | bviyer <bviyer@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-06-05 19:43:44 +0000 |
commit | 6e13bc01ad57295c17d06d8a9e16eace56c2524b (patch) | |
tree | 005efb9d7ed1ced3b6adc7e7e531abbb322c6363 /gcc/c | |
parent | 2d4871786393f22bbcb7e532542e20857a69b49b (diff) | |
download | ppe42-gcc-6e13bc01ad57295c17d06d8a9e16eace56c2524b.tar.gz ppe42-gcc-6e13bc01ad57295c17d06d8a9e16eace56c2524b.zip |
+2013-06-04 Balaji V. Iyer <balaji.v.iyer@intel.com>
+
+ * c-typeck.c (convert_arguments): Moved checking of builtin cilkplus
+ reduction functions outside the for-loop. Also, added a check if the
+ fundecl is non-NULL.
+
+2013-06-05 Balaji V. Iyer <balaji.v.iyer@intel.com>
+
+ PR C/57457
+ * c-c++-common/cilk-plus/AN/pr57457.c: New test.
+ * c-c++-common/cilk-plus/AN/pr57457-2.c: Likewise.
+
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199709 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/c')
-rw-r--r-- | gcc/c/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/c/c-typeck.c | 27 |
2 files changed, 13 insertions, 21 deletions
diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog index 48be2fd8a69..2543f5d6eb5 100644 --- a/gcc/c/ChangeLog +++ b/gcc/c/ChangeLog @@ -1,3 +1,10 @@ +2013-06-05 Balaji V. Iyer <balaji.v.iyer@intel.com> + + * c-typeck.c (convert_arguments): Moved checking of builtin cilkplus + reduction functions outside the for-loop. Added a check if the fundecl + is non-NULL. Finally, removed an unwanted if-statement, and made the + body unconditional. + 2013-06-03 Balaji V. Iyer <balaji.v.iyer@intel.com> * c-typeck.c (c_finish_if_stmt): Added a check to see if the rank of the diff --git a/gcc/c/c-typeck.c b/gcc/c/c-typeck.c index e5e1455faa1..3a923111429 100644 --- a/gcc/c/c-typeck.c +++ b/gcc/c/c-typeck.c @@ -2942,6 +2942,8 @@ convert_arguments (tree typelist, vec<tree, va_gc> *values, break; } } + if (flag_enable_cilkplus && fundecl && is_cilkplus_reduce_builtin (fundecl)) + return vec_safe_length (values); /* Scan the given expressions and types, producing individual converted arguments. */ @@ -2959,17 +2961,6 @@ convert_arguments (tree typelist, vec<tree, va_gc> *values, bool npc; tree parmval; - // FIXME: I assume this code is here to handle the overloaded - // behavior of the __sec_reduce* builtins, and avoid giving - // argument mismatch warnings/errors. We should probably handle - // this with the resolve_overloaded_builtin infrastructure. - /* If the function call is a builtin function call, then we do not - worry about it since we break them up into its equivalent later and - we do the appropriate checks there. */ - if (flag_enable_cilkplus - && is_cilkplus_reduce_builtin (fundecl)) - continue; - if (type == void_type_node) { if (selector) @@ -3207,16 +3198,10 @@ convert_arguments (tree typelist, vec<tree, va_gc> *values, if (typetail != 0 && TREE_VALUE (typetail) != void_type_node) { - /* If array notation is used and Cilk Plus is enabled, then we do not - worry about this error now. We will handle them in a later place. */ - if (!flag_enable_cilkplus - || !is_cilkplus_reduce_builtin (fundecl)) - { - error_at (input_location, - "too few arguments to function %qE", function); - inform_declaration (fundecl); - return -1; - } + error_at (input_location, + "too few arguments to function %qE", function); + inform_declaration (fundecl); + return -1; } return error_args ? -1 : (int) parmnum; |