Add foreach_unique iteration construct.
Idea via Ingo Wald / IVL compiler.
This commit is contained in:
12
tests_errors/foreach-unique-1.ispc
Normal file
12
tests_errors/foreach-unique-1.ispc
Normal file
@@ -0,0 +1,12 @@
|
||||
// Iteration domain type in "foreach_tiled" loop must be an atomic, pointer, or enum type
|
||||
|
||||
struct Point { float x, y; };
|
||||
|
||||
uniform int foo(Point p) {
|
||||
uniform int count = 0;
|
||||
foreach_unique (pt in p)
|
||||
++count;
|
||||
return count;
|
||||
}
|
||||
|
||||
|
||||
8
tests_errors/foreach-unique-2.ispc
Normal file
8
tests_errors/foreach-unique-2.ispc
Normal file
@@ -0,0 +1,8 @@
|
||||
// Can't assign to type "const uniform int32"
|
||||
|
||||
void foo(int x) {
|
||||
foreach_unique (u in x)
|
||||
++u;
|
||||
}
|
||||
|
||||
|
||||
10
tests_errors/foreach-unique-3.ispc
Normal file
10
tests_errors/foreach-unique-3.ispc
Normal file
@@ -0,0 +1,10 @@
|
||||
// Error: "break" statement is illegal outside of for/while/do loops
|
||||
|
||||
void foo(int x) {
|
||||
foreach_unique (u in x) {
|
||||
if (u == 0)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
10
tests_errors/foreach-unique-4.ispc
Normal file
10
tests_errors/foreach-unique-4.ispc
Normal file
@@ -0,0 +1,10 @@
|
||||
// Error: "return" statement is illegal inside a "foreach" loop
|
||||
|
||||
void foo(int x) {
|
||||
foreach_unique (u in x) {
|
||||
if (u == 0)
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user