aboutsummaryrefslogtreecommitdiff
path: root/gcc/c
diff options
context:
space:
mode:
authorBalaji V. Iyer <balaji.v.iyer@intel.com>2013-06-05 19:43:44 +0000
committerBalaji V. Iyer <bviyer@gcc.gnu.org>2013-06-05 12:43:44 -0700
commit6d6efbb3b30874a7e3e2b66085e390f44f500ab3 (patch)
tree005efb9d7ed1ced3b6adc7e7e531abbb322c6363 /gcc/c
parent0d471c50a327e5fae65e4ab29bf48ad0f700d295 (diff)
downloadgcc-6d6efbb3b30874a7e3e2b66085e390f44f500ab3.zip
gcc-6d6efbb3b30874a7e3e2b66085e390f44f500ab3.tar.gz
gcc-6d6efbb3b30874a7e3e2b66085e390f44f500ab3.tar.bz2
+2013-06-04 Balaji V.
+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. + From-SVN: r199709
Diffstat (limited to 'gcc/c')
-rw-r--r--gcc/c/ChangeLog7
-rw-r--r--gcc/c/c-typeck.c27
2 files changed, 13 insertions, 21 deletions
diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog
index 48be2fd..2543f5d 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 e5e1455..3a92311 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;