From 784b508c3046bdf7ae23ce8bad7c03e15ec63312 Mon Sep 17 00:00:00 2001 From: Andi Kleen Date: Tue, 11 Nov 2014 05:10:35 +0000 Subject: [PATCH] Add test cases for all the new cilk errors gcc/testsuite/: 2014-11-10 Andi Kleen * c-c++-common/cilk-plus/CK/errors.c: New test. From-SVN: r217334 --- gcc/testsuite/ChangeLog | 4 ++ .../c-c++-common/cilk-plus/CK/errors.c | 56 +++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 gcc/testsuite/c-c++-common/cilk-plus/CK/errors.c diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 5a9d4dedd75..56214a19858 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2014-11-10 Andi Kleen + + * c-c++-common/cilk-plus/CK/errors.c: New test. + 2014-11-11 Uros Bizjak Ilya Enkovich 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 00000000000..ca2032c7c9a --- /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.30.2