Commit 784b508c by Andi Kleen Committed by Andi Kleen

Add test cases for all the new cilk errors

gcc/testsuite/:

2014-11-10  Andi Kleen  <ak@linux.intel.com>

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

From-SVN: r217334
parent e64b984d
2014-11-10 Andi Kleen <ak@linux.intel.com>
* c-c++-common/cilk-plus/CK/errors.c: New test.
2014-11-11 Uros Bizjak <ubizjak@gmail.com> 2014-11-11 Uros Bizjak <ubizjak@gmail.com>
Ilya Enkovich <ilya.enkovich@intel.com> Ilya Enkovich <ilya.enkovich@intel.com>
......
/* { 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" } */
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment