Hello Everyone, 
        Attached, please find a patch that is a fix for PR c++/60198. Is this 
OK for trunk?

Here are the changelog entries:

Cp/ChangeLog
+2015-02-19  Balaji V. Iyer  <balaji.v.i...@intel.com>
+
+       PR c++/60198
+       * pt.c (tsubst_copy_and_build): Added CILK_SPAWN_STMT case.
+

Testsuite/ChangeLog
+2015-02-20  Balaji V. Iyer  <balaji.v.i...@intel.com>
+
+       PR c++/60198
+       * g++.dg/cilk-plus/pr60198.C: New test
+

Thanks,

Balaji V. Iyer.


diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index 9a00d0d..8a95d1e 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -15708,6 +15708,10 @@ tsubst_copy_and_build (tree t,
 
     case PAREN_EXPR:
       RETURN (finish_parenthesized_expr (RECUR (TREE_OPERAND (t, 0))));
+      
+    case CILK_SPAWN_STMT:
+      cfun->calls_cilk_spawn = 1;
+      RETURN (build_cilk_spawn (EXPR_LOCATION (t), RECUR (CILK_SPAWN_FN (t))));
 
     case VEC_PERM_EXPR:
       {
diff --git a/gcc/testsuite/g++.dg/cilk-plus/pr60198.C 
b/gcc/testsuite/g++.dg/cilk-plus/pr60198.C
new file mode 100644
index 0000000..b8cf067
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cilk-plus/pr60198.C
@@ -0,0 +1,10 @@
+// { dg-do compile }
+// { dg-options "-fcilkplus -O3" } 
+
+template<typename T> int foo()
+{
+    int i = (_Cilk_spawn foo<T>()) + 0;
+      return i;
+}
+
+template int foo<int>();

Reply via email to