summaryrefslogtreecommitdiffhomepage
path: root/CompilerDriver/cc2/regression-tests/pure2-break-continue.cpp2
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2023-12-30 23:39:37 +0100
committerAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2023-12-30 23:39:37 +0100
commit263915832993dd12beee10e204f9ebcc6c786ed2 (patch)
tree862e51208a99c35746e574a76564a4532b3a4a49 /CompilerDriver/cc2/regression-tests/pure2-break-continue.cpp2
Meta: initial commit of WestCo optimized toolchain.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'CompilerDriver/cc2/regression-tests/pure2-break-continue.cpp2')
-rw-r--r--CompilerDriver/cc2/regression-tests/pure2-break-continue.cpp2226
1 files changed, 226 insertions, 0 deletions
diff --git a/CompilerDriver/cc2/regression-tests/pure2-break-continue.cpp2 b/CompilerDriver/cc2/regression-tests/pure2-break-continue.cpp2
new file mode 100644
index 0000000..fef40f4
--- /dev/null
+++ b/CompilerDriver/cc2/regression-tests/pure2-break-continue.cpp2
@@ -0,0 +1,226 @@
+
+main: () -> int =
+{
+ std::cout << "while_continue_inner:\n "; while_continue_inner();
+ std::cout << "\nwhile_continue_outer:\n "; while_continue_outer();
+ std::cout << "\nwhile_break_inner:\n "; while_break_inner();
+ std::cout << "\nwhile_break_outer:\n "; while_break_outer();
+
+ std::cout << "\n\ndo_continue_inner:\n "; do_continue_inner();
+ std::cout << "\ndo_continue_outer:\n "; do_continue_outer();
+ std::cout << "\ndo_break_inner:\n "; do_break_inner();
+ std::cout << "\ndo_break_outer:\n "; do_break_outer();
+
+ std::cout << "\n\nfor_continue_inner:\n "; for_continue_inner();
+ std::cout << "\nfor_continue_outer:\n "; for_continue_outer();
+ std::cout << "\nfor_break_inner:\n "; for_break_inner();
+ std::cout << "\nfor_break_outer:\n "; for_break_outer();
+}
+
+while_continue_inner: () =
+{
+ i := 0;
+ while i<3 next i++ {
+ j := 0;
+ inner: while j<3 next j++ {
+ std::cout << i << j << " ";
+ if j == 1 {
+ continue inner;
+ }
+ std::cout << "inner ";
+ }
+ std::cout << "outer ";
+ }
+}
+
+while_continue_outer: () =
+{
+ i := 0;
+ outer: while i<3 next i++ {
+ j := 0;
+ while j<3 next j++ {
+ std::cout << i << j << " ";
+ if j == 1 {
+ continue outer;
+ }
+ std::cout << "inner ";
+ }
+ std::cout << "outer ";
+ }
+}
+
+while_break_inner: () =
+{
+ i := 0;
+ while i<3 next i++ {
+ j := 0;
+ inner: while j<3 next j++ {
+ std::cout << i << j << " ";
+ if j == 1 {
+ break inner;
+ }
+ std::cout << "inner ";
+ }
+ std::cout << "outer ";
+ }
+}
+
+while_break_outer: () =
+{
+ i := 0;
+ outer: while i<3 next i++ {
+ j := 0;
+ while j<3 next j++ {
+ std::cout << i << j << " ";
+ if j == 1 {
+ break outer;
+ }
+ std::cout << "inner ";
+ }
+ std::cout << "outer ";
+ }
+}
+
+do_continue_inner: () =
+{
+ i := 0;
+ do {
+ j := 0;
+ inner: do {
+ std::cout << i << j << " ";
+ if j == 1 {
+ continue inner;
+ }
+ std::cout << "inner ";
+ }
+ next j++ while j<3;
+
+ std::cout << "outer ";
+ }
+ next i++ while i<3;
+}
+
+do_continue_outer: () =
+{
+ i := 0;
+ outer: do {
+ j := 0;
+ do {
+ std::cout << i << j << " ";
+ if j == 1 {
+ continue outer;
+ }
+ std::cout << "inner ";
+ }
+ next j++ while j<3;
+
+ std::cout << "outer ";
+ }
+ next i++ while i<3;
+}
+
+do_break_inner: () =
+{
+ i := 0;
+ do {
+ j := 0;
+ inner: do {
+ std::cout << i << j << " ";
+ if j == 1 {
+ break inner;
+ }
+ std::cout << "inner ";
+ }
+ next j++ while j<3;
+
+ std::cout << "outer ";
+ }
+ next i++ while i<3;
+}
+
+do_break_outer: () =
+{
+ i := 0;
+ outer: do {
+ j := 0;
+ do {
+ std::cout << i << j << " ";
+ if j == 1 {
+ break outer;
+ }
+ std::cout << "inner ";
+ }
+ next j++ while j<3;
+
+ std::cout << "outer ";
+ }
+ next i++ while i<3;
+}
+
+for_continue_inner: () =
+{
+ vi: std::vector = ( 0, 1, 2 );
+ for vi do (i) {
+ vj: std::vector = ( 0, 1, 2 );
+ inner: for vj do (j) {
+ std::cout << i << j << " ";
+ if j == 1 {
+ continue inner;
+ }
+ std::cout << "inner ";
+ }
+
+ std::cout << "outer ";
+ }
+}
+
+for_continue_outer: () =
+{
+ vi: std::vector = ( 0, 1, 2 );
+ outer: for vi do (i) {
+ vj: std::vector = ( 0, 1, 2 );
+ for vj do (j) {
+ std::cout << i << j << " ";
+ if j == 1 {
+ continue outer;
+ }
+ std::cout << "inner ";
+ }
+
+ std::cout << "outer ";
+ }
+}
+
+for_break_inner: () =
+{
+ vi: std::vector = ( 0, 1, 2 );
+ for vi do (i) {
+ vj: std::vector = ( 0, 1, 2 );
+ inner: for vj do (j) {
+ std::cout << i << j << " ";
+ if j == 1 {
+ break inner;
+ }
+ std::cout << "inner ";
+ }
+
+ std::cout << "outer ";
+ }
+}
+
+for_break_outer: () =
+{
+ vi: std::vector = ( 0, 1, 2 );
+ outer: for vi do (i) {
+ vj: std::vector = ( 0, 1, 2 );
+ for vj do (j) {
+ std::cout << i << j << " ";
+ if j == 1 {
+ break outer;
+ }
+ std::cout << "inner ";
+ }
+
+ std::cout << "outer ";
+ }
+}