Re: [PATCH 3/5] Add test cases for all the new cilk errors

2014-10-02 Thread Jeff Law

On 10/01/14 22:26, Andi Kleen wrote:

From: Andi Kleen a...@linux.intel.com

gcc/testsuite/:

2014-09-30  Andi Kleen  a...@linux.intel.com

* c-c++-common/cilk-plus/CK/errors.c: New test.

OK.
Jeff



[PATCH 3/5] Add test cases for all the new cilk errors

2014-10-01 Thread Andi Kleen
From: Andi Kleen a...@linux.intel.com

gcc/testsuite/:

2014-09-30  Andi Kleen  a...@linux.intel.com

* c-c++-common/cilk-plus/CK/errors.c: New test.
---
 gcc/testsuite/c-c++-common/cilk-plus/CK/errors.c | 56 
 1 file changed, 56 insertions(+)
 create mode 100644 gcc/testsuite/c-c++-common/cilk-plus/CK/errors.c

diff --git a/gcc/testsuite/c-c++-common/cilk-plus/CK/errors.c 
b/gcc/testsuite/c-c++-common/cilk-plus/CK/errors.c
new file mode 100644
index 000..ca2032c
--- /dev/null
+++ b/gcc/testsuite/c-c++-common/cilk-plus/CK/errors.c
@@ -0,0 +1,56 @@
+/* { dg-do compile } */
+/* { dg-options -fcilkplus } */
+
+int func_2(void);
+
+int check_spawn(int v)
+{
+  if (_Cilk_spawn func_2()) /* { dg-error cannot contain  { target c } } */
+  /* XXX: no error in C++ */
+;
+  if (v + _Cilk_spawn func_2())  /* { dg-error cannot contain  { target c 
} } */
+  /* { dg-error invalid use  { target c++ } 11 } */
+;
+  if (v, _Cilk_spawn func_2()) /* { dg-error spawned function call cannot be 
part } */
+;
+  v, _Cilk_spawn func_2(); /* { dg-error spawned function call cannot be 
part } */
+  while (_Cilk_spawn func_2())  /* { dg-error a condition for while 
statement } */
+;
+  while (v + _Cilk_spawn func_2())  /* { dg-error a condition for while 
statement } */
+;
+  for (; _Cilk_spawn func_2() ;)  /* { dg-error cannot be used } */
+;
+  for (; v + _Cilk_spawn func_2() ;)  /* { dg-error cannot be used } */
+;
+  v + _Cilk_spawn func_2(); /* { dg-error } */
+  for (_Cilk_spawn func_2() ;;)
+;
+  for (;; _Cilk_spawn func_2())
+;
+  do {} while(_Cilk_spawn func_2());  /* { dg-error cannot be used } */
+  do {} while(v + _Cilk_spawn func_2());  /* { dg-error cannot be used } */
+  switch (_Cilk_spawn func_2())   /* { dg-error cannot be used } */
+{
+default: break;
+}
+  goto *(_Cilk_spawn func_2()); /* { dg-error cannot be used } */
+
+  return _Cilk_spawn func_2(); /* { dg-error is not allowed } */
+}
+
+int check_array_notation(int x[100], int y[100])
+{
+  x[0:100] = y[0:100];
+  for (; x[0:100] = y[0:100]; )  /* { dg-error cannot be used } */
+;
+  while (x[0:100] = y[0:100])  /* { dg-error cannot be used } */
+;
+  switch (x[0:100] = y[0:100])  /* { dg-error cannot be used } */
+{
+  default: break;
+}
+  do {} while (x[0:100] = y[0:100]);  /* { dg-error cannot be used } */
+  if (x[0:100] = y[0:100]) /* allowed */
+;
+  return x[0:100] = y[0:100]; /* { dg-error cannot be used } */
+}
-- 
2.1.1