diff --git a/test/compiler/efArray.st b/test/compiler/efArray.st new file mode 100644 index 0000000000000000000000000000000000000000..f8842de31f374ef0381b50b6ae360b01d735b701 --- /dev/null +++ b/test/compiler/efArray.st @@ -0,0 +1,5 @@ +program efArrayTest + +evflag efa[3]; /* error: array of event flags */ + +#include "simple.st" diff --git a/test/compiler/efGlobal.st b/test/compiler/efGlobal.st new file mode 100644 index 0000000000000000000000000000000000000000..704e70d83c5a660cc36ffb6d9f050d58755b5e4c --- /dev/null +++ b/test/compiler/efGlobal.st @@ -0,0 +1,11 @@ +program efGlobalTest + +ss x { + evflag a; + state y { + evflag b; + when () { + evflag c; + } exit + } +} diff --git a/test/compiler/efPointer.st b/test/compiler/efPointer.st new file mode 100644 index 0000000000000000000000000000000000000000..6916cc929d9f0264213f9c9be9bd69103d95ae7f --- /dev/null +++ b/test/compiler/efPointer.st @@ -0,0 +1,5 @@ +program efPointerTest + +evflag *efp; /* error: pointer to event flag */ + +#include "simple.st" diff --git a/test/compiler/foreignGlobal.st b/test/compiler/foreignGlobal.st new file mode 100644 index 0000000000000000000000000000000000000000..465f2bf7f4adc1a83b3ae76b0a5e5eca627c7dfd --- /dev/null +++ b/test/compiler/foreignGlobal.st @@ -0,0 +1,11 @@ +program foreignGlobalTest + +ss x { + foreign a; + state y { + foreign b; + when () { + foreign c; + } exit + } +} diff --git a/test/compiler/pvNotAssigned.st b/test/compiler/pvNotAssigned.st new file mode 100644 index 0000000000000000000000000000000000000000..35209257020198b63848c8ef6e2165ad75a3749b --- /dev/null +++ b/test/compiler/pvNotAssigned.st @@ -0,0 +1,38 @@ +program pvNotAssigned + +int a; + +entry { + pvGet(a); + pvPut(a); + pvAssign(a, ""); + pvMonitor(a); +} +ss x { + state y { + entry { + pvAssign(a, ""); + pvMonitor(a); + pvGet(a); + pvPut(a); + } + when () { + pvAssign(a, ""); + pvMonitor(a); + pvGet(a); + pvPut(a); + } exit + exit { + pvAssign(a, ""); + pvMonitor(a); + pvGet(a); + pvPut(a); + } + } +} +exit { + pvAssign(a, ""); + pvMonitor(a); + pvGet(a); + pvPut(a); +} diff --git a/test/compiler/test.plt b/test/compiler/test.plt index 48b38f75e5cf1933634ee2466258b6109c02b467..a10709910f2c9ad8fef4deeb2e80aa2f18fd0bf6 100644 --- a/test/compiler/test.plt +++ b/test/compiler/test.plt @@ -23,6 +23,11 @@ my @error = qw( syncq_size_out_of_range varinit varinitOptr + efArray + efPointer + efGlobal + foreignGlobal + pvNotAssigned ); if ($host_arch =~ /64/) { diff --git a/test/validate/decl.st b/test/validate/decl.st index d01a29bc6dcbb268c5a9dc4d6d5d6719b735b25b..58d6ac480a9d873fc9dee9fe17ed2c1c12d30d7c 100644 --- a/test/validate/decl.st +++ b/test/validate/decl.st @@ -10,11 +10,6 @@ int *(*(*complicated)[2][3])[1] = 0; evflag ef; -#if 0 -evflag efa[3]; /* error: array of event flags */ -evflag *efp; /* error: pointer to event flag */ -#endif - /* struct member access */ %%struct r { int x; } rv; @@ -53,10 +48,7 @@ ss one { sync c to ef; string s = "s"; assign s; - /* evflag ef; */ /* error: event flag must be global */ - /* foreign z; */ /* error: foreign must be global */ entry { - /* pvPut(a); */ /* error: not assigned */ pvPut(b); pvPut(c); pvPut(s);