19570 lines · cpp
1void bar();2 3template <class T>4void foo() {5 T a = T();6// PARALLEL DIRECTIVE7#pragma omp parallel8#pragma omp for9 for (int i = 0; i < 10; ++i)10 ;11#pragma omp parallel12#pragma omp simd13 for (int i = 0; i < 10; ++i)14 ;15#pragma omp parallel16#pragma omp for simd17 for (int i = 0; i < 10; ++i)18 ;19#pragma omp parallel20#pragma omp sections21 {22 bar();23 }24#pragma omp parallel25#pragma omp section // expected-error {{'omp section' directive must be closely nested to a sections region, not a parallel region}}26 {27 bar();28 }29#pragma omp parallel30#pragma omp single31 bar();32 33#pragma omp parallel34#pragma omp master35 {36 bar();37 }38#pragma omp parallel39#pragma omp critical40 {41 bar();42 }43#pragma omp parallel44#pragma omp parallel for45 for (int i = 0; i < 10; ++i)46 ;47#pragma omp parallel48#pragma omp parallel for simd49 for (int i = 0; i < 10; ++i)50 ;51#pragma omp parallel52#pragma omp parallel sections53 {54 bar();55 }56#pragma omp parallel57#pragma omp parallel master58 {59 bar();60 }61#pragma omp parallel62#pragma omp parallel masked63 {64 bar();65 }66#pragma omp parallel67#pragma omp task68 {69 bar();70 }71#pragma omp parallel72 {73#pragma omp taskyield74 bar();75 }76#pragma omp parallel77 {78#pragma omp barrier79 bar();80 }81#pragma omp parallel82 {83#pragma omp scan // expected-error {{region cannot be closely nested inside 'parallel' region; perhaps you forget to enclose 'omp scan' directive into a for, simd, for simd, parallel for, or parallel for simd region?}}84 bar();85 }86#pragma omp parallel87 {88#pragma omp taskwait89 bar();90 }91#pragma omp parallel92 {93#pragma omp flush94 bar();95 }96#pragma omp parallel97 {98#pragma omp ordered // expected-error {{region cannot be closely nested inside 'parallel' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}99 bar();100 }101#pragma omp parallel102 {103#pragma omp atomic104 ++a;105 }106#pragma omp parallel107 {108#pragma omp target109 ++a;110 }111#pragma omp parallel112 {113#pragma omp target parallel114 ++a;115 }116#pragma omp parallel117 {118#pragma omp target parallel for119 for (int i = 0; i < 10; ++i)120 ;121 }122#pragma omp parallel123 {124#pragma omp target enter data map(to: a)125 ++a;126 }127#pragma omp parallel128 {129#pragma omp target exit data map(from: a)130 ++a;131 }132#pragma omp parallel133 {134#pragma omp teams // expected-error {{region cannot be closely nested inside 'parallel' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}135 ++a;136 }137#pragma omp parallel138 {139#pragma omp taskloop140 for (int i = 0; i < 10; ++i)141 ++a;142 }143#pragma omp parallel144 {145#pragma omp distribute // expected-error {{region cannot be closely nested inside 'parallel' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}146 for (int i = 0; i < 10; ++i)147 ;148 }149#pragma omp parallel150 {151#pragma omp target update to(a)152 }153#pragma omp parallel154 {155#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'parallel' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}156 for (int i = 0; i < 10; ++i)157 ;158 }159#pragma omp parallel160 {161#pragma omp distribute parallel for simd // expected-error {{region cannot be closely nested inside 'parallel' region; perhaps you forget to enclose 'omp distribute parallel for simd' directive into a teams region?}}162 for (int i = 0; i < 10; ++i)163 ;164 }165#pragma omp parallel166 {167#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'parallel' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}168 for (int i = 0; i < 10; ++i)169 ;170 }171#pragma omp parallel172 {173#pragma omp target simd // OK174 for (int i = 0; i < 10; ++i)175 ;176 }177#pragma omp parallel178 {179#pragma omp teams distribute // expected-error {{region cannot be closely nested inside 'parallel' region; perhaps you forget to enclose 'omp teams distribute' directive into a target region?}}180 for (int i = 0; i < 10; ++i)181 ;182 }183#pragma omp parallel184 {185#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'parallel' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}186 for (int i = 0; i < 10; ++i)187 ;188 }189#pragma omp parallel190 {191#pragma omp teams distribute parallel for simd // expected-error {{region cannot be closely nested inside 'parallel' region; perhaps you forget to enclose 'omp teams distribute parallel for simd' directive into a target region?}}192 for (int i = 0; i < 10; ++i)193 ;194 }195#pragma omp parallel196 {197#pragma omp teams distribute parallel for // expected-error {{region cannot be closely nested inside 'parallel' region; perhaps you forget to enclose 'omp teams distribute parallel for' directive into a target region?}}198 for (int i = 0; i < 10; ++i)199 ;200 }201#pragma omp parallel202 {203#pragma omp target teams // OK204 ++a;205 }206#pragma omp parallel207 {208#pragma omp target teams distribute // OK209 for (int i = 0; i < 10; ++i)210 ;211 }212#pragma omp parallel213 {214#pragma omp target teams distribute parallel for // OK215 for (int i = 0; i < 10; ++i)216 ;217 }218#pragma omp parallel219 {220#pragma omp target teams distribute parallel for simd // OK221 for (int i = 0; i < 10; ++i)222 ;223 }224#pragma omp parallel225 {226#pragma omp target teams distribute simd // OK227 for (int i = 0; i < 10; ++i)228 ;229 }230 231// SIMD DIRECTIVE232#pragma omp simd233 for (int i = 0; i < 10; ++i) {234#pragma omp for // omp45-error {{OpenMP constructs may not be nested inside a simd region}} omp50-error {{OpenMP constructs may not be nested inside a simd region except for ordered simd, simd, scan, or atomic directive}} omp51-error {{OpenMP constructs may not be nested inside a simd region except for ordered simd, simd, scan, or atomic directive}}235 for (int i = 0; i < 10; ++i)236 ;237 }238#pragma omp simd239 for (int i = 0; i < 10; ++i) {240#pragma omp simd // omp45warn-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}241 for (int i = 0; i < 10; ++i)242 ;243 }244#pragma omp simd245 for (int i = 0; i < 10; ++i) {246#pragma omp for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}247 for (int i = 0; i < 10; ++i)248 ;249 }250#pragma omp simd251 for (int i = 0; i < 10; ++i) {252#pragma omp parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}253 for (int i = 0; i < 10; ++i)254 ;255 }256#pragma omp simd257 for (int i = 0; i < 10; ++i) {258#pragma omp sections // expected-error {{OpenMP constructs may not be nested inside a simd region}}259 {260 bar();261 }262 }263#pragma omp simd264 for (int i = 0; i < 10; ++i) {265#pragma omp section // expected-error {{OpenMP constructs may not be nested inside a simd region}}266 {267 bar();268 }269 }270#pragma omp simd271 for (int i = 0; i < 10; ++i) {272#pragma omp single // expected-error {{OpenMP constructs may not be nested inside a simd region}}273 {274 bar();275 }276 }277#pragma omp simd278 for (int i = 0; i < 10; ++i) {279#pragma omp master // expected-error {{OpenMP constructs may not be nested inside a simd region}}280 {281 bar();282 }283 }284#pragma omp simd285 for (int i = 0; i < 10; ++i) {286#pragma omp critical // expected-error {{OpenMP constructs may not be nested inside a simd region}}287 {288 bar();289 }290 }291#pragma omp simd292 for (int i = 0; i < 10; ++i) {293#pragma omp parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}294 for (int i = 0; i < 10; ++i)295 ;296 }297#pragma omp simd298 for (int i = 0; i < 10; ++i) {299#pragma omp parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}300 for (int i = 0; i < 10; ++i)301 ;302 }303#pragma omp simd304 for (int i = 0; i < 10; ++i) {305#pragma omp parallel sections // expected-error {{OpenMP constructs may not be nested inside a simd region}}306 {307 bar();308 }309 }310#pragma omp simd311 for (int i = 0; i < 10; ++i) {312#pragma omp parallel master // expected-error {{OpenMP constructs may not be nested inside a simd region}}313 {314 bar();315 }316 }317#pragma omp simd318 for (int i = 0; i < 10; ++i) {319#pragma omp parallel masked // expected-error {{OpenMP constructs may not be nested inside a simd region}}320 {321 bar();322 }323 }324#pragma omp simd325 for (int i = 0; i < 10; ++i) {326#pragma omp task // expected-error {{OpenMP constructs may not be nested inside a simd region}}327 {328 bar();329 }330 }331#pragma omp simd332 for (int i = 0; i < 10; ++i) {333#pragma omp taskyield // expected-error {{OpenMP constructs may not be nested inside a simd region}}334 bar();335 }336#pragma omp simd337 for (int i = 0; i < 10; ++i) {338#pragma omp barrier // expected-error {{OpenMP constructs may not be nested inside a simd region}}339 bar();340 }341#pragma omp simd342 for (int i = 0; i < 10; ++i) {343#pragma omp scan // omp45-error {{OpenMP constructs may not be nested inside a simd region}} omp50-error {{exactly one of 'inclusive' or 'exclusive' clauses is expected}} omp51-error {{exactly one of 'inclusive' or 'exclusive' clauses is expected}}344 bar();345 }346#pragma omp simd347 for (int i = 0; i < 10; ++i) {348#pragma omp taskwait // expected-error {{OpenMP constructs may not be nested inside a simd region}}349 bar();350 }351#pragma omp simd352 for (int i = 0; i < 10; ++i) {353#pragma omp flush // expected-error {{OpenMP constructs may not be nested inside a simd region}}354 bar();355 }356#pragma omp simd357 for (int i = 0; i < 10; ++i) {358#pragma omp ordered // expected-error {{OpenMP constructs may not be nested inside a simd region}}359 bar();360 }361#pragma omp simd362 for (int i = 0; i < 10; ++i) {363#pragma omp ordered simd // OK364 bar();365 }366#pragma omp simd367 for (int i = 0; i < 10; ++i) {368#pragma omp ordered threads // expected-error {{OpenMP constructs may not be nested inside a simd region}}369 bar();370 }371#pragma omp simd372 for (int i = 0; i < 10; ++i) {373#pragma omp atomic // omp45-error {{OpenMP constructs may not be nested inside a simd region}}374 ++a;375 }376#pragma omp simd377 for (int i = 0; i < 10; ++i) {378#pragma omp target // expected-error {{OpenMP constructs may not be nested inside a simd region}}379 ++a;380 }381#pragma omp simd382 for (int i = 0; i < 10; ++i) {383#pragma omp target parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}384 ++a;385 }386#pragma omp simd387 for (int i = 0; i < 10; ++i) {388#pragma omp target parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}389 for (int i = 0; i < 10; ++i)390 ;391 }392#pragma omp simd393 for (int i = 0; i < 10; ++i) {394#pragma omp target enter data map(to: a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}395 ++a;396 }397#pragma omp simd398 for (int i = 0; i < 10; ++i) {399#pragma omp target exit data map(from: a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}400 ++a;401 }402#pragma omp simd403 for (int i = 0; i < 10; ++i) {404#pragma omp teams // expected-error {{OpenMP constructs may not be nested inside a simd region}}405 ++a;406 }407#pragma omp simd408 for (int i = 0; i < 10; ++i) {409#pragma omp taskloop // expected-error {{OpenMP constructs may not be nested inside a simd region}}410 for (int i = 0; i < 10; ++i)411 ++a;412 }413#pragma omp simd414 for (int i = 0; i < 10; ++i) {415#pragma omp distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}416 for (int j = 0; j < 10; ++j)417 ;418 }419#pragma omp simd420 for (int i = 0; i < 10; ++i) {421#pragma omp target update to(a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}422 }423#pragma omp simd424 for (int i = 0; i < 10; ++i) {425#pragma omp distribute parallel for// expected-error {{OpenMP constructs may not be nested inside a simd region}}426 for (int j = 0; j < 10; ++j)427 ;428 }429#pragma omp simd430 for (int i = 0; i < 10; ++i) {431#pragma omp distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}432 for (int j = 0; j < 10; ++j)433 ;434 }435#pragma omp simd436 for (int i = 0; i < 10; ++i) {437#pragma omp distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}438 for (int j = 0; j < 10; ++j)439 ;440 }441#pragma omp simd442 for (int i = 0; i < 10; ++i) {443#pragma omp target simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}444 for (int j = 0; j < 10; ++j)445 ;446 }447#pragma omp simd448 for (int i = 0; i < 10; ++i) {449#pragma omp teams distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}450 for (int j = 0; j < 10; ++j)451 ;452 }453#pragma omp simd454 for (int i = 0; i < 10; ++i) {455#pragma omp teams distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}456 for (int j = 0; j < 10; ++j)457 ;458 }459#pragma omp simd460 for (int i = 0; i < 10; ++i) {461#pragma omp teams distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}462 for (int j = 0; j < 10; ++j)463 ;464 }465#pragma omp simd466 for (int i = 0; i < 10; ++i) {467#pragma omp teams distribute parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}468 for (int j = 0; j < 10; ++j)469 ;470 }471#pragma omp simd472 for (int i = 0; i < 10; ++i) {473#pragma omp target teams // expected-error {{OpenMP constructs may not be nested inside a simd region}}474 ++a;475 }476#pragma omp simd477 for (int i = 0; i < 10; ++i) {478#pragma omp target teams distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}479 for (int j = 0; j < 10; ++j)480 ;481 }482#pragma omp simd483 for (int i = 0; i < 10; ++i) {484#pragma omp target teams distribute parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}485 for (int j = 0; j < 10; ++j)486 ;487 }488#pragma omp simd489 for (int i = 0; i < 10; ++i) {490#pragma omp target teams distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}491 for (int j = 0; j < 10; ++j)492 ;493 }494#pragma omp simd495 for (int i = 0; i < 10; ++i) {496#pragma omp target teams distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}497 for (int j = 0; j < 10; ++j)498 ;499 }500 501// FOR DIRECTIVE502#pragma omp for503 for (int i = 0; i < 10; ++i) {504#pragma omp for // expected-error {{region cannot be closely nested inside 'for' region; perhaps you forget to enclose 'omp for' directive into a parallel region?}}505 for (int i = 0; i < 10; ++i)506 ;507 }508#pragma omp for509 for (int i = 0; i < 10; ++i) {510#pragma omp simd511 for (int i = 0; i < 10; ++i)512 ;513 }514#pragma omp for515 for (int i = 0; i < 10; ++i) {516#pragma omp for simd // expected-error {{region cannot be closely nested inside 'for' region; perhaps you forget to enclose 'omp for simd' directive into a parallel region?}}517 for (int i = 0; i < 10; ++i)518 ;519 }520#pragma omp for521 for (int i = 0; i < 10; ++i) {522#pragma omp parallel523 for (int i = 0; i < 10; ++i)524 ;525 }526#pragma omp for527 for (int i = 0; i < 10; ++i) {528#pragma omp sections // expected-error {{region cannot be closely nested inside 'for' region; perhaps you forget to enclose 'omp sections' directive into a parallel region?}}529 {530 bar();531 }532 }533#pragma omp for534 for (int i = 0; i < 10; ++i) {535#pragma omp section // expected-error {{'omp section' directive must be closely nested to a sections region, not a for region}}536 {537 bar();538 }539 }540#pragma omp for541 for (int i = 0; i < 10; ++i) {542#pragma omp single // expected-error {{region cannot be closely nested inside 'for' region; perhaps you forget to enclose 'omp single' directive into a parallel region?}}543 {544 bar();545 }546 }547 548#pragma omp for549 for (int i = 0; i < 10; ++i) {550#pragma omp master // expected-error {{region cannot be closely nested inside 'for' region}}551 {552 bar();553 }554 }555#pragma omp for556 for (int i = 0; i < 10; ++i) {557#pragma omp critical558 {559 bar();560 }561 }562#pragma omp for563 for (int i = 0; i < 10; ++i) {564#pragma omp parallel565 {566#pragma omp single // OK567 {568 bar();569 }570#pragma omp for // OK571 for (int i = 0; i < 10; ++i)572 ;573#pragma omp sections // OK574 {575 bar();576 }577 }578 }579#pragma omp for580 for (int i = 0; i < 10; ++i) {581#pragma omp parallel for582 for (int i = 0; i < 10; ++i)583 ;584 }585#pragma omp for586 for (int i = 0; i < 10; ++i) {587#pragma omp parallel for simd588 for (int i = 0; i < 10; ++i)589 ;590 }591#pragma omp for592 for (int i = 0; i < 10; ++i) {593#pragma omp parallel master594 {595 bar();596 }597 }598#pragma omp for599 for (int i = 0; i < 10; ++i) {600#pragma omp parallel masked601 {602 bar();603 }604 }605#pragma omp for606 for (int i = 0; i < 10; ++i) {607#pragma omp parallel sections608 {609 bar();610 }611 }612#pragma omp for613 for (int i = 0; i < 10; ++i) {614#pragma omp task615 {616 bar();617 }618 }619#pragma omp for620 for (int i = 0; i < 10; ++i) {621#pragma omp taskyield622 bar();623 }624#pragma omp for625 for (int i = 0; i < 10; ++i) {626#pragma omp barrier // expected-error {{region cannot be closely nested inside 'for' region}}627 bar();628 }629#pragma omp for630 for (int i = 0; i < 10; ++i) {631#pragma omp scan // omp45-error {{region cannot be closely nested inside 'for' region; perhaps you forget to enclose 'omp scan' directive into a for, simd, for simd, parallel for, or parallel for simd region?}} omp50-error {{exactly one of 'inclusive' or 'exclusive' clauses is expected}} omp51-error {{exactly one of 'inclusive' or 'exclusive' clauses is expected}}632 bar();633 }634#pragma omp for635 for (int i = 0; i < 10; ++i) {636#pragma omp taskwait637 bar();638 }639#pragma omp for640 for (int i = 0; i < 10; ++i) {641#pragma omp flush642 bar();643 }644#pragma omp for645 for (int i = 0; i < 10; ++i) {646#pragma omp ordered // expected-error {{region cannot be closely nested inside 'for' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}647 bar();648 }649#pragma omp for ordered650 for (int i = 0; i < 10; ++i) {651#pragma omp ordered // OK652 bar();653 }654#pragma omp for655 for (int i = 0; i < 10; ++i) {656#pragma omp atomic657 ++a;658 }659#pragma omp for660 for (int i = 0; i < 10; ++i) {661#pragma omp target662 ++a;663 }664#pragma omp for665 for (int i = 0; i < 10; ++i) {666#pragma omp target parallel667 ++a;668 }669#pragma omp for670 for (int i = 0; i < 10; ++i) {671#pragma omp target parallel for672 for (int i = 0; i < 10; ++i)673 ;674 }675#pragma omp for676 for (int i = 0; i < 10; ++i) {677#pragma omp target enter data map(to: a)678 ++a;679 }680#pragma omp for681 for (int i = 0; i < 10; ++i) {682#pragma omp target exit data map(from: a)683 ++a;684 }685#pragma omp for686 for (int i = 0; i < 10; ++i) {687#pragma omp teams // expected-error {{region cannot be closely nested inside 'for' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}688 ++a;689 }690#pragma omp for691 for (int i = 0; i < 10; ++i) {692#pragma omp taskloop693 for (int i = 0; i < 10; ++i)694 ++a;695 }696#pragma omp for697 for (int i = 0; i < 10; ++i) {698#pragma omp distribute // expected-error {{region cannot be closely nested inside 'for' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}699 for (int j = 0; j < 10; ++j)700 ;701 }702#pragma omp for703 for (int i = 0; i < 10; ++i) {704#pragma omp target update to(a)705 }706#pragma omp for707 for (int i = 0; i < 10; ++i) {708#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'for' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}709 for (int j = 0; j < 10; ++j)710 ;711 }712#pragma omp for713 for (int i = 0; i < 10; ++i) {714#pragma omp distribute parallel for simd // expected-error {{region cannot be closely nested inside 'for' region; perhaps you forget to enclose 'omp distribute parallel for simd' directive into a teams region?}}715 for (int j = 0; j < 10; ++j)716 ;717 }718#pragma omp for719 for (int i = 0; i < 10; ++i) {720#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'for' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}721 for (int j = 0; j < 10; ++j)722 ;723 }724#pragma omp for725 for (int i = 0; i < 10; ++i) {726#pragma omp target simd // OK727 for (int j = 0; j < 10; ++j)728 ;729 }730#pragma omp for731 for (int i = 0; i < 10; ++i) {732#pragma omp teams distribute // expected-error {{region cannot be closely nested inside 'for' region; perhaps you forget to enclose 'omp teams distribute' directive into a target region?}}733 for (int j = 0; j < 10; ++j)734 ;735 }736#pragma omp for737 for (int i = 0; i < 10; ++i) {738#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'for' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}739 for (int j = 0; j < 10; ++j)740 ;741 }742#pragma omp for743 for (int i = 0; i < 10; ++i) {744#pragma omp teams distribute parallel for simd // expected-error {{region cannot be closely nested inside 'for' region; perhaps you forget to enclose 'omp teams distribute parallel for simd' directive into a target region?}}745 for (int j = 0; j < 10; ++j)746 ;747 }748#pragma omp for749 for (int i = 0; i < 10; ++i) {750#pragma omp teams distribute parallel for // expected-error {{region cannot be closely nested inside 'for' region; perhaps you forget to enclose 'omp teams distribute parallel for' directive into a target region?}}751 for (int j = 0; j < 10; ++j)752 ;753 }754#pragma omp for755 for (int i = 0; i < 10; ++i) {756#pragma omp target teams // OK757 ++a;758 }759#pragma omp for760 for (int i = 0; i < 10; ++i) {761#pragma omp target teams distribute // OK762 for (int j = 0; j < 10; ++j)763 ;764 }765#pragma omp for766 for (int i = 0; i < 10; ++i) {767#pragma omp target teams distribute parallel for // OK768 for (int j = 0; j < 10; ++j)769 ;770 }771#pragma omp for772 for (int i = 0; i < 10; ++i) {773#pragma omp target teams distribute parallel for simd // OK774 for (int j = 0; j < 10; ++j)775 ;776 }777#pragma omp for778 for (int i = 0; i < 10; ++i) {779#pragma omp target teams distribute simd // OK780 for (int j = 0; j < 10; ++j)781 ;782 }783 784// FOR SIMD DIRECTIVE785#pragma omp for simd786 for (int i = 0; i < 10; ++i) {787#pragma omp for // expected-error {{OpenMP constructs may not be nested inside a simd region}}788 for (int i = 0; i < 10; ++i)789 ;790 }791#pragma omp for simd792 for (int i = 0; i < 10; ++i) {793#pragma omp simd // omp45warn-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}794 for (int i = 0; i < 10; ++i)795 ;796 }797#pragma omp for simd798 for (int i = 0; i < 10; ++i) {799#pragma omp for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}800 for (int i = 0; i < 10; ++i)801 ;802 }803#pragma omp for simd804 for (int i = 0; i < 10; ++i) {805#pragma omp parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}806 for (int i = 0; i < 10; ++i)807 ;808 }809#pragma omp for simd810 for (int i = 0; i < 10; ++i) {811#pragma omp sections // expected-error {{OpenMP constructs may not be nested inside a simd region}}812 {813 bar();814 }815 }816#pragma omp for simd817 for (int i = 0; i < 10; ++i) {818#pragma omp section // expected-error {{OpenMP constructs may not be nested inside a simd region}}819 {820 bar();821 }822 }823#pragma omp for simd824 for (int i = 0; i < 10; ++i) {825#pragma omp single // expected-error {{OpenMP constructs may not be nested inside a simd region}}826 {827 bar();828 }829 }830#pragma omp for simd831 for (int i = 0; i < 10; ++i) {832#pragma omp master // expected-error {{OpenMP constructs may not be nested inside a simd region}}833 {834 bar();835 }836 }837#pragma omp for simd838 for (int i = 0; i < 10; ++i) {839#pragma omp critical // expected-error {{OpenMP constructs may not be nested inside a simd region}}840 {841 bar();842 }843 }844#pragma omp for simd845 for (int i = 0; i < 10; ++i) {846#pragma omp parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}847 for (int i = 0; i < 10; ++i)848 ;849 }850#pragma omp for simd851 for (int i = 0; i < 10; ++i) {852#pragma omp parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}853 for (int i = 0; i < 10; ++i)854 ;855 }856#pragma omp for simd857 for (int i = 0; i < 10; ++i) {858#pragma omp parallel master // expected-error {{OpenMP constructs may not be nested inside a simd region}}859 {860 bar();861 }862 }863#pragma omp for simd864 for (int i = 0; i < 10; ++i) {865#pragma omp parallel masked // expected-error {{OpenMP constructs may not be nested inside a simd region}}866 {867 bar();868 }869 }870#pragma omp for simd871 for (int i = 0; i < 10; ++i) {872#pragma omp parallel sections // expected-error {{OpenMP constructs may not be nested inside a simd region}}873 {874 bar();875 }876 }877#pragma omp for simd878 for (int i = 0; i < 10; ++i) {879#pragma omp task // expected-error {{OpenMP constructs may not be nested inside a simd region}}880 {881 bar();882 }883 }884#pragma omp for simd885 for (int i = 0; i < 10; ++i) {886#pragma omp taskyield // expected-error {{OpenMP constructs may not be nested inside a simd region}}887 bar();888 }889#pragma omp for simd890 for (int i = 0; i < 10; ++i) {891#pragma omp barrier // expected-error {{OpenMP constructs may not be nested inside a simd region}}892 bar();893 }894#pragma omp for simd895 for (int i = 0; i < 10; ++i) {896#pragma omp scan // omp45-error {{OpenMP constructs may not be nested inside a simd region}} omp50-error {{exactly one of 'inclusive' or 'exclusive' clauses is expected}} omp51-error {{exactly one of 'inclusive' or 'exclusive' clauses is expected}}897 bar();898 }899#pragma omp for simd900 for (int i = 0; i < 10; ++i) {901#pragma omp taskwait // expected-error {{OpenMP constructs may not be nested inside a simd region}}902 bar();903 }904#pragma omp for simd905 for (int i = 0; i < 10; ++i) {906#pragma omp flush // expected-error {{OpenMP constructs may not be nested inside a simd region}}907 bar();908 }909#pragma omp for simd910 for (int i = 0; i < 10; ++i) {911#pragma omp ordered // expected-error {{OpenMP constructs may not be nested inside a simd region}}912 bar();913 }914#pragma omp for simd915 for (int i = 0; i < 10; ++i) {916#pragma omp ordered simd // OK917 bar();918 }919#pragma omp for simd920 for (int i = 0; i < 10; ++i) {921#pragma omp ordered threads // expected-error {{OpenMP constructs may not be nested inside a simd region}}922 bar();923 }924#pragma omp for simd925 for (int i = 0; i < 10; ++i) {926#pragma omp atomic // omp45-error {{OpenMP constructs may not be nested inside a simd region}}927 ++a;928 }929#pragma omp for simd930 for (int i = 0; i < 10; ++i) {931#pragma omp target // expected-error {{OpenMP constructs may not be nested inside a simd region}}932 ++a;933 }934#pragma omp for simd935 for (int i = 0; i < 10; ++i) {936#pragma omp target parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}937 ++a;938 }939#pragma omp for simd940 for (int i = 0; i < 10; ++i) {941#pragma omp target parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}942 for (int i = 0; i < 10; ++i)943 ;944 }945#pragma omp for simd946 for (int i = 0; i < 10; ++i) {947#pragma omp target enter data map(to: a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}948 ++a;949 }950#pragma omp for simd951 for (int i = 0; i < 10; ++i) {952#pragma omp target exit data map(from: a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}953 ++a;954 }955#pragma omp for simd956 for (int i = 0; i < 10; ++i) {957#pragma omp teams // expected-error {{OpenMP constructs may not be nested inside a simd region}}958 ++a;959 }960#pragma omp for simd961 for (int i = 0; i < 10; ++i) {962#pragma omp taskloop // expected-error {{OpenMP constructs may not be nested inside a simd region}}963 for (int i = 0; i < 10; ++i)964 ++a;965 }966#pragma omp for simd967 for (int i = 0; i < 10; ++i) {968#pragma omp distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}969 for (int j = 0; j < 10; ++j)970 ;971 }972#pragma omp for simd973 for (int i = 0; i < 10; ++i) {974#pragma omp target update to(a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}975 bar();976 }977#pragma omp for simd978 for (int i = 0; i < 10; ++i) {979#pragma omp distribute parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}980 for (int j = 0; j < 10; ++j)981 ;982 }983#pragma omp for simd984 for (int i = 0; i < 10; ++i) {985#pragma omp distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}986 for (int j = 0; j < 10; ++j)987 ;988 }989#pragma omp for simd990 for (int i = 0; i < 10; ++i) {991#pragma omp distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}992 for (int j = 0; j < 10; ++j)993 ;994 }995#pragma omp for simd996 for (int i = 0; i < 10; ++i) {997#pragma omp target simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}998 for (int j = 0; j < 10; ++j)999 ;1000 }1001#pragma omp for simd1002 for (int i = 0; i < 10; ++i) {1003#pragma omp teams distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}1004 for (int j = 0; j < 10; ++j)1005 ;1006 }1007#pragma omp for simd1008 for (int i = 0; i < 10; ++i) {1009#pragma omp teams distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}1010 for (int j = 0; j < 10; ++j)1011 ;1012 }1013#pragma omp for simd1014 for (int i = 0; i < 10; ++i) {1015#pragma omp teams distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}1016 for (int j = 0; j < 10; ++j)1017 ;1018 }1019#pragma omp for simd1020 for (int i = 0; i < 10; ++i) {1021#pragma omp teams distribute parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}1022 for (int j = 0; j < 10; ++j)1023 ;1024 }1025#pragma omp for simd1026 for (int i = 0; i < 10; ++i) {1027#pragma omp target teams // expected-error {{OpenMP constructs may not be nested inside a simd region}}1028 a++;1029 }1030#pragma omp for simd1031 for (int i = 0; i < 10; ++i) {1032#pragma omp target teams distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}1033 for (int j = 0; j < 10; ++j)1034 ;1035 }1036#pragma omp for simd1037 for (int i = 0; i < 10; ++i) {1038#pragma omp target teams distribute parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}1039 for (int j = 0; j < 10; ++j)1040 ;1041 }1042#pragma omp for simd1043 for (int i = 0; i < 10; ++i) {1044#pragma omp target teams distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}1045 for (int j = 0; j < 10; ++j)1046 ;1047 }1048#pragma omp for simd1049 for (int i = 0; i < 10; ++i) {1050#pragma omp target teams distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}1051 for (int j = 0; j < 10; ++j)1052 ;1053 }1054 1055// SECTIONS DIRECTIVE1056#pragma omp sections1057 {1058#pragma omp for // expected-error {{region cannot be closely nested inside 'sections' region; perhaps you forget to enclose 'omp for' directive into a parallel region?}}1059 for (int i = 0; i < 10; ++i)1060 ;1061 }1062#pragma omp sections1063 {1064#pragma omp simd1065 for (int i = 0; i < 10; ++i)1066 ;1067 }1068#pragma omp sections1069 {1070#pragma omp for simd // expected-error {{region cannot be closely nested inside 'sections' region; perhaps you forget to enclose 'omp for simd' directive into a parallel region?}}1071 for (int i = 0; i < 10; ++i)1072 ;1073 }1074#pragma omp sections1075 {1076#pragma omp parallel1077 for (int i = 0; i < 10; ++i)1078 ;1079 }1080#pragma omp sections1081 {1082#pragma omp sections // expected-error {{region cannot be closely nested inside 'sections' region; perhaps you forget to enclose 'omp sections' directive into a parallel region?}}1083 {1084 bar();1085 }1086 }1087#pragma omp sections1088 {1089#pragma omp section1090 {1091 bar();1092 }1093 }1094#pragma omp sections1095 {1096#pragma omp parallel1097 {1098#pragma omp single // OK1099 {1100 bar();1101 }1102#pragma omp for // OK1103 for (int i = 0; i < 10; ++i)1104 ;1105#pragma omp sections // OK1106 {1107 bar();1108 }1109 }1110 }1111#pragma omp sections1112 {1113#pragma omp parallel master1114 {1115 bar();1116 }1117 }1118#pragma omp sections1119 {1120#pragma omp parallel masked1121 {1122 bar();1123 }1124 }1125#pragma omp sections1126 {1127#pragma omp parallel1128 {1129#pragma omp master // OK1130 {1131 bar();1132 }1133#pragma omp for // OK1134 for (int i = 0; i < 10; ++i)1135 ;1136#pragma omp master // OK1137 {1138 bar();1139 }1140 }1141#pragma omp master // expected-error {{region cannot be closely nested inside 'sections' region}}1142 bar();1143 }1144#pragma omp sections1145 {1146#pragma omp parallel1147 {1148#pragma omp critical(A) // OK1149 {1150 bar();1151 }1152#pragma omp for // OK1153 for (int i = 0; i < 10; ++i)1154 ;1155#pragma omp critical // OK1156 {1157 bar();1158 }1159 }1160#pragma omp critical(A) // expected-error {{statement in 'omp sections' directive must be enclosed into a section region}}1161 bar();1162 }1163#pragma omp sections1164 {1165#pragma omp parallel for1166 for (int i = 0; i < 10; ++i)1167 ;1168 }1169#pragma omp sections1170 {1171#pragma omp parallel for simd1172 for (int i = 0; i < 10; ++i)1173 ;1174 }1175#pragma omp sections1176 {1177#pragma omp parallel sections1178 {1179 bar();1180 }1181 }1182#pragma omp sections1183 {1184#pragma omp task1185 {1186 bar();1187 }1188 }1189#pragma omp sections1190 {1191#pragma omp taskyield1192 }1193#pragma omp sections1194 {1195#pragma omp barrier // expected-error {{region cannot be closely nested inside 'sections' region}}1196 }1197#pragma omp sections1198 {1199#pragma omp scan // expected-error {{region cannot be closely nested inside 'sections' region}}1200 }1201#pragma omp sections1202 {1203#pragma omp taskwait1204 }1205#pragma omp sections1206 {1207#pragma omp flush1208 }1209#pragma omp sections1210 {1211#pragma omp ordered // expected-error {{region cannot be closely nested inside 'sections' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}1212 bar();1213 }1214#pragma omp sections1215 {1216#pragma omp atomic1217 ++a;1218 }1219#pragma omp sections1220 {1221#pragma omp target1222 ++a;1223 }1224#pragma omp sections1225 {1226#pragma omp target parallel1227 ++a;1228 }1229#pragma omp sections1230 {1231#pragma omp target parallel for1232 for (int i = 0; i < 10; ++i)1233 ;1234 }1235#pragma omp sections1236 {1237#pragma omp target enter data map(to: a)1238 }1239#pragma omp sections1240 {1241#pragma omp target exit data map(from: a)1242 }1243#pragma omp sections1244 {1245#pragma omp teams // expected-error {{region cannot be closely nested inside 'sections' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}1246 ++a;1247 }1248#pragma omp sections1249 {1250#pragma omp taskloop1251 for (int i = 0; i < 10; ++i)1252 ++a;1253 }1254#pragma omp sections1255 {1256#pragma omp distribute // expected-error {{region cannot be closely nested inside 'sections' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}1257 for (int i = 0; i < 10; ++i)1258 ;1259 }1260#pragma omp sections1261 {1262#pragma omp target update to(a)1263 }1264#pragma omp sections1265 {1266#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'sections' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}1267 for (int i = 0; i < 10; ++i)1268 ;1269 }1270#pragma omp sections1271 {1272#pragma omp distribute parallel for simd // expected-error {{region cannot be closely nested inside 'sections' region; perhaps you forget to enclose 'omp distribute parallel for simd' directive into a teams region?}}1273 for (int i = 0; i < 10; ++i)1274 ;1275 }1276#pragma omp sections1277 {1278#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'sections' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}1279 for (int i = 0; i < 10; ++i)1280 ;1281 }1282#pragma omp sections1283 {1284#pragma omp target simd // OK1285 for (int i = 0; i < 10; ++i)1286 ;1287 }1288#pragma omp sections1289 {1290#pragma omp teams distribute // expected-error {{region cannot be closely nested inside 'sections' region; perhaps you forget to enclose 'omp teams distribute' directive into a target region?}}1291 for (int i = 0; i < 10; ++i)1292 ;1293 }1294#pragma omp sections1295 {1296#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'sections' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}1297 for (int i = 0; i < 10; ++i)1298 ;1299 }1300#pragma omp sections1301 {1302#pragma omp teams distribute parallel for simd // expected-error {{region cannot be closely nested inside 'sections' region; perhaps you forget to enclose 'omp teams distribute parallel for simd' directive into a target region?}}1303 for (int i = 0; i < 10; ++i)1304 ;1305 }1306#pragma omp sections1307 {1308#pragma omp teams distribute parallel for // expected-error {{region cannot be closely nested inside 'sections' region; perhaps you forget to enclose 'omp teams distribute parallel for' directive into a target region?}}1309 for (int i = 0; i < 10; ++i)1310 ;1311 }1312#pragma omp sections1313 {1314#pragma omp target teams // OK1315 ++a;1316 }1317#pragma omp sections1318 {1319#pragma omp target teams distribute // OK1320 for (int i = 0; i < 10; ++i)1321 ;1322 }1323#pragma omp sections1324 {1325#pragma omp target teams distribute parallel for // OK1326 for (int i = 0; i < 10; ++i)1327 ;1328 }1329#pragma omp sections1330 {1331#pragma omp target teams distribute parallel for simd // OK1332 for (int i = 0; i < 10; ++i)1333 ;1334 }1335#pragma omp sections1336 {1337#pragma omp target teams distribute simd // OK1338 for (int i = 0; i < 10; ++i)1339 ;1340 }1341 1342// SECTION DIRECTIVE1343#pragma omp section // expected-error {{orphaned 'omp section' directives are prohibited, it must be closely nested to a sections region}}1344 {1345 bar();1346 }1347#pragma omp sections1348 {1349#pragma omp section1350 {1351#pragma omp for // expected-error {{region cannot be closely nested inside 'section' region; perhaps you forget to enclose 'omp for' directive into a parallel region?}}1352 for (int i = 0; i < 10; ++i)1353 ;1354 }1355 }1356#pragma omp sections1357 {1358#pragma omp section1359 {1360#pragma omp simd1361 for (int i = 0; i < 10; ++i)1362 ;1363 }1364 }1365#pragma omp sections1366 {1367#pragma omp section1368 {1369#pragma omp for simd // expected-error {{region cannot be closely nested inside 'section' region; perhaps you forget to enclose 'omp for simd' directive into a parallel region?}}1370 for (int i = 0; i < 10; ++i)1371 ;1372 }1373 }1374#pragma omp sections1375 {1376#pragma omp section1377 {1378#pragma omp parallel1379 for (int i = 0; i < 10; ++i)1380 ;1381 }1382 }1383#pragma omp sections1384 {1385#pragma omp section1386 {1387#pragma omp sections // expected-error {{region cannot be closely nested inside 'section' region; perhaps you forget to enclose 'omp sections' directive into a parallel region?}}1388 {1389 bar();1390 }1391 }1392 }1393#pragma omp sections1394 {1395#pragma omp section1396 {1397#pragma omp section // expected-error {{'omp section' directive must be closely nested to a sections region, not a section region}}1398 {1399 bar();1400 }1401 }1402 }1403#pragma omp sections1404 {1405#pragma omp section1406 {1407#pragma omp parallel master1408 bar();1409#pragma omp critical1410 bar();1411 }1412 }1413#pragma omp sections1414 {1415#pragma omp section1416 {1417#pragma omp parallel masked1418 bar();1419#pragma omp critical1420 bar();1421 }1422 }1423#pragma omp sections1424 {1425#pragma omp section1426 {1427#pragma omp single // expected-error {{region cannot be closely nested inside 'section' region; perhaps you forget to enclose 'omp single' directive into a parallel region?}}1428 bar();1429#pragma omp master // expected-error {{region cannot be closely nested inside 'section' region}}1430 bar();1431#pragma omp critical1432 bar();1433 }1434 }1435#pragma omp sections1436 {1437#pragma omp section1438 {1439#pragma omp parallel1440 {1441#pragma omp single // OK1442 {1443 bar();1444 }1445#pragma omp for // OK1446 for (int i = 0; i < 10; ++i)1447 ;1448#pragma omp for simd // OK1449 for (int i = 0; i < 10; ++i)1450 ;1451#pragma omp sections // OK1452 {1453 bar();1454 }1455 }1456 }1457 }1458#pragma omp sections1459 {1460#pragma omp section1461 {1462#pragma omp parallel for1463 for (int i = 0; i < 10; ++i)1464 ;1465 }1466 }1467#pragma omp sections1468 {1469#pragma omp section1470 {1471#pragma omp parallel for simd1472 for (int i = 0; i < 10; ++i)1473 ;1474 }1475 }1476#pragma omp sections1477 {1478#pragma omp section1479 {1480#pragma omp parallel sections1481 {1482 bar();1483 }1484 }1485 }1486#pragma omp sections1487 {1488#pragma omp section1489 {1490#pragma omp task1491 {1492 bar();1493 }1494 }1495 }1496#pragma omp sections1497 {1498#pragma omp section1499 {1500#pragma omp taskyield1501 bar();1502 }1503 }1504#pragma omp sections1505 {1506#pragma omp section1507 {1508#pragma omp barrier // expected-error {{region cannot be closely nested inside 'section' region}}1509 bar();1510 }1511 }1512#pragma omp sections1513 {1514#pragma omp section1515 {1516#pragma omp scan // expected-error {{region cannot be closely nested inside 'section' region}}1517 bar();1518 }1519 }1520#pragma omp sections1521 {1522#pragma omp section1523 {1524#pragma omp taskwait1525 bar();1526 }1527 }1528#pragma omp sections1529 {1530#pragma omp section1531 {1532#pragma omp flush1533 bar();1534 }1535 }1536#pragma omp sections1537 {1538#pragma omp section1539 {1540#pragma omp ordered // expected-error {{region cannot be closely nested inside 'section' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}1541 bar();1542 }1543 }1544#pragma omp sections1545 {1546#pragma omp section1547#pragma omp atomic1548 ++a;1549 }1550#pragma omp sections1551 {1552#pragma omp section1553#pragma omp target1554 ++a;1555 }1556#pragma omp sections1557 {1558#pragma omp section1559#pragma omp target parallel1560 ++a;1561 }1562#pragma omp sections1563 {1564#pragma omp section1565 {1566#pragma omp target parallel for1567 for (int i = 0; i < 10; ++i)1568 ;1569 }1570 }1571#pragma omp sections1572 {1573#pragma omp section1574 {1575#pragma omp target enter data map(to: a)1576 ++a;1577 }1578 }1579#pragma omp sections1580 {1581#pragma omp section1582 {1583#pragma omp target exit data map(from: a)1584 ++a;1585 }1586 }1587#pragma omp sections1588 {1589#pragma omp section1590#pragma omp teams // expected-error {{region cannot be closely nested inside 'section' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}1591 ++a;1592 }1593#pragma omp sections1594 {1595#pragma omp section1596#pragma omp taskloop1597 for (int i = 0; i < 10; ++i)1598 ++a;1599 }1600#pragma omp sections1601 {1602#pragma omp section1603#pragma omp distribute // expected-error {{region cannot be closely nested inside 'section' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}1604 for (int i = 0; i < 10; ++i)1605 ;1606 }1607#pragma omp sections1608 {1609#pragma omp section1610 {1611 bar();1612#pragma omp target update to(a)1613 }1614 }1615#pragma omp sections1616 {1617#pragma omp section1618#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'section' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}1619 for (int i = 0; i < 10; ++i)1620 ;1621 }1622#pragma omp sections1623 {1624#pragma omp section1625#pragma omp distribute parallel for simd // expected-error {{region cannot be closely nested inside 'section' region; perhaps you forget to enclose 'omp distribute parallel for simd' directive into a teams region?}}1626 for (int i = 0; i < 10; ++i)1627 ;1628 }1629#pragma omp sections1630 {1631#pragma omp section1632#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'section' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}1633 for (int i = 0; i < 10; ++i)1634 ;1635 }1636#pragma omp sections1637 {1638#pragma omp section1639#pragma omp target simd // OK1640 for (int i = 0; i < 10; ++i)1641 ;1642 }1643#pragma omp sections1644 {1645#pragma omp section1646#pragma omp teams distribute // expected-error {{region cannot be closely nested inside 'section' region; perhaps you forget to enclose 'omp teams distribute' directive into a target region?}}1647 for (int i = 0; i < 10; ++i)1648 ;1649 }1650#pragma omp sections1651 {1652#pragma omp section1653#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'section' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}1654 for (int i = 0; i < 10; ++i)1655 ;1656 }1657#pragma omp sections1658 {1659#pragma omp section1660#pragma omp teams distribute parallel for simd // expected-error {{region cannot be closely nested inside 'section' region; perhaps you forget to enclose 'omp teams distribute parallel for simd' directive into a target region?}}1661 for (int i = 0; i < 10; ++i)1662 ;1663 }1664#pragma omp sections1665 {1666#pragma omp section1667#pragma omp teams distribute parallel for // expected-error {{region cannot be closely nested inside 'section' region; perhaps you forget to enclose 'omp teams distribute parallel for' directive into a target region?}}1668 for (int i = 0; i < 10; ++i)1669 ;1670 }1671#pragma omp sections1672 {1673#pragma omp section1674#pragma omp target teams // OK1675 ++a;1676 }1677#pragma omp sections1678 {1679#pragma omp section1680#pragma omp target teams distribute // OK1681 for (int i = 0; i < 10; ++i)1682 ;1683 }1684#pragma omp sections1685 {1686#pragma omp section1687#pragma omp target teams distribute parallel for // OK1688 for (int i = 0; i < 10; ++i)1689 ;1690 }1691#pragma omp sections1692 {1693#pragma omp section1694#pragma omp target teams distribute parallel for simd // OK1695 for (int i = 0; i < 10; ++i)1696 ;1697 }1698#pragma omp sections1699 {1700#pragma omp section1701#pragma omp target teams distribute simd // OK1702 for (int i = 0; i < 10; ++i)1703 ;1704 }1705 1706// SINGLE DIRECTIVE1707#pragma omp single1708 {1709#pragma omp for // expected-error {{region cannot be closely nested inside 'single' region; perhaps you forget to enclose 'omp for' directive into a parallel region?}}1710 for (int i = 0; i < 10; ++i)1711 ;1712 }1713#pragma omp single1714 {1715#pragma omp simd1716 for (int i = 0; i < 10; ++i)1717 ;1718 }1719#pragma omp single1720 {1721#pragma omp for simd // expected-error {{region cannot be closely nested inside 'single' region; perhaps you forget to enclose 'omp for simd' directive into a parallel region?}}1722 for (int i = 0; i < 10; ++i)1723 ;1724 }1725#pragma omp single1726 {1727#pragma omp parallel1728 for (int i = 0; i < 10; ++i)1729 ;1730 }1731#pragma omp single1732 {1733#pragma omp single // expected-error {{region cannot be closely nested inside 'single' region; perhaps you forget to enclose 'omp single' directive into a parallel region?}}1734 {1735 bar();1736 }1737 }1738#pragma omp single1739 {1740#pragma omp master // expected-error {{region cannot be closely nested inside 'single' region}}1741 {1742 bar();1743 }1744 }1745#pragma omp single1746 {1747#pragma omp parallel master1748 {1749 bar();1750 }1751 }1752#pragma omp single1753 {1754#pragma omp parallel masked1755 {1756 bar();1757 }1758 }1759#pragma omp single1760 {1761#pragma omp critical1762 {1763 bar();1764 }1765 }1766#pragma omp single1767 {1768#pragma omp sections // expected-error {{region cannot be closely nested inside 'single' region; perhaps you forget to enclose 'omp sections' directive into a parallel region?}}1769 {1770 bar();1771 }1772 }1773#pragma omp single1774 {1775#pragma omp parallel1776 {1777#pragma omp single // OK1778 {1779 bar();1780 }1781#pragma omp for // OK1782 for (int i = 0; i < 10; ++i)1783 ;1784#pragma omp for simd // OK1785 for (int i = 0; i < 10; ++i)1786 ;1787#pragma omp sections // OK1788 {1789 bar();1790 }1791 }1792 }1793#pragma omp single1794 {1795#pragma omp parallel for1796 for (int i = 0; i < 10; ++i)1797 ;1798 }1799#pragma omp single1800 {1801#pragma omp parallel for simd1802 for (int i = 0; i < 10; ++i)1803 ;1804 }1805#pragma omp single1806 {1807#pragma omp parallel sections1808 {1809 bar();1810 }1811 }1812#pragma omp single1813 {1814#pragma omp task1815 {1816 bar();1817 }1818 }1819#pragma omp single1820 {1821#pragma omp taskyield1822 bar();1823 }1824#pragma omp single1825 {1826#pragma omp barrier // expected-error {{region cannot be closely nested inside 'single' region}}1827 bar();1828 }1829#pragma omp single1830 {1831#pragma omp scan // expected-error {{region cannot be closely nested inside 'single' region}}1832 bar();1833 }1834#pragma omp single1835 {1836#pragma omp taskwait1837 bar();1838 }1839#pragma omp single1840 {1841#pragma omp flush1842 bar();1843 }1844#pragma omp single1845 {1846#pragma omp ordered // expected-error {{region cannot be closely nested inside 'single' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}1847 bar();1848 }1849#pragma omp single1850 {1851#pragma omp atomic1852 ++a;1853 }1854#pragma omp single1855 {1856#pragma omp target1857 ++a;1858 }1859#pragma omp single1860 {1861#pragma omp target parallel1862 ++a;1863 }1864#pragma omp single1865 {1866#pragma omp target parallel for1867 for (int i = 0; i < 10; ++i)1868 ;1869 }1870#pragma omp single1871 {1872#pragma omp target enter data map(to: a)1873 ++a;1874 }1875#pragma omp single1876 {1877#pragma omp target exit data map(from: a)1878 ++a;1879 }1880#pragma omp single1881 {1882#pragma omp teams // expected-error {{region cannot be closely nested inside 'single' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}1883 ++a;1884 }1885#pragma omp single1886 {1887#pragma omp taskloop1888 for (int i = 0; i < 10; ++i)1889 ++a;1890 }1891#pragma omp single1892 {1893#pragma omp distribute // expected-error {{region cannot be closely nested inside 'single' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}1894 for (int i = 0; i < 10; ++i)1895 ;1896 }1897#pragma omp single1898 {1899#pragma omp target update to(a)1900 bar();1901 }1902#pragma omp single1903 {1904#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'single' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}1905 for (int i = 0; i < 10; ++i)1906 ;1907 }1908#pragma omp single1909 {1910#pragma omp distribute parallel for simd // expected-error {{region cannot be closely nested inside 'single' region; perhaps you forget to enclose 'omp distribute parallel for simd' directive into a teams region?}}1911 for (int i = 0; i < 10; ++i)1912 ;1913 }1914#pragma omp single1915 {1916#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'single' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}1917 for (int i = 0; i < 10; ++i)1918 ;1919 }1920#pragma omp single1921 {1922#pragma omp target simd // OK1923 for (int i = 0; i < 10; ++i)1924 ;1925 }1926#pragma omp single1927 {1928#pragma omp teams distribute // expected-error {{region cannot be closely nested inside 'single' region; perhaps you forget to enclose 'omp teams distribute' directive into a target region?}}1929 for (int i = 0; i < 10; ++i)1930 ;1931 }1932#pragma omp single1933 {1934#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'single' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}1935 for (int i = 0; i < 10; ++i)1936 ;1937 }1938#pragma omp single1939 {1940#pragma omp teams distribute parallel for simd // expected-error {{region cannot be closely nested inside 'single' region; perhaps you forget to enclose 'omp teams distribute parallel for simd' directive into a target region?}}1941 for (int i = 0; i < 10; ++i)1942 ;1943 }1944#pragma omp single1945 {1946#pragma omp teams distribute parallel for // expected-error {{region cannot be closely nested inside 'single' region; perhaps you forget to enclose 'omp teams distribute parallel for' directive into a target region?}}1947 for (int i = 0; i < 10; ++i)1948 ;1949 }1950#pragma omp single1951 {1952#pragma omp target teams // OK1953 ++a;1954 }1955#pragma omp single1956 {1957#pragma omp target teams distribute // OK1958 for (int i = 0; i < 10; ++i)1959 ;1960 }1961#pragma omp single1962 {1963#pragma omp target teams distribute parallel for // OK1964 for (int i = 0; i < 10; ++i)1965 ;1966 }1967#pragma omp single1968 {1969#pragma omp target teams distribute parallel for simd // OK1970 for (int i = 0; i < 10; ++i)1971 ;1972 }1973#pragma omp single1974 {1975#pragma omp target teams distribute simd // OK1976 for (int i = 0; i < 10; ++i)1977 ;1978 }1979 1980// MASTER DIRECTIVE1981#pragma omp master1982 {1983#pragma omp for // expected-error {{region cannot be closely nested inside 'master' region; perhaps you forget to enclose 'omp for' directive into a parallel region?}}1984 for (int i = 0; i < 10; ++i)1985 ;1986 }1987#pragma omp master1988 {1989#pragma omp simd1990 for (int i = 0; i < 10; ++i)1991 ;1992 }1993#pragma omp master1994 {1995#pragma omp for simd // expected-error {{region cannot be closely nested inside 'master' region; perhaps you forget to enclose 'omp for simd' directive into a parallel region?}}1996 for (int i = 0; i < 10; ++i)1997 ;1998 }1999#pragma omp master2000 {2001#pragma omp parallel2002 for (int i = 0; i < 10; ++i)2003 ;2004 }2005#pragma omp master2006 {2007#pragma omp single // expected-error {{region cannot be closely nested inside 'master' region; perhaps you forget to enclose 'omp single' directive into a parallel region?}}2008 {2009 bar();2010 }2011 }2012#pragma omp master2013 {2014#pragma omp master // OK, though second 'master' is redundant2015 {2016 bar();2017 }2018 }2019#pragma omp master2020 {2021#pragma omp critical2022 {2023 bar();2024 }2025 }2026#pragma omp master2027 {2028#pragma omp sections // expected-error {{region cannot be closely nested inside 'master' region; perhaps you forget to enclose 'omp sections' directive into a parallel region?}}2029 {2030 bar();2031 }2032 }2033#pragma omp master2034 {2035#pragma omp parallel2036 {2037#pragma omp master // OK2038 {2039 bar();2040 }2041#pragma omp for // OK2042 for (int i = 0; i < 10; ++i)2043 ;2044#pragma omp for simd // OK2045 for (int i = 0; i < 10; ++i)2046 ;2047#pragma omp sections // OK2048 {2049 bar();2050 }2051 }2052 }2053#pragma omp master2054 {2055#pragma omp parallel master // OK2056 {2057 bar();2058 }2059#pragma omp parallel2060 {2061#pragma omp for // OK2062 for (int i = 0; i < 10; ++i)2063 ;2064#pragma omp for simd // OK2065 for (int i = 0; i < 10; ++i)2066 ;2067#pragma omp sections // OK2068 {2069 bar();2070 }2071 }2072 }2073#pragma omp master2074 {2075#pragma omp parallel for2076 for (int i = 0; i < 10; ++i)2077 ;2078 }2079#pragma omp master2080 {2081#pragma omp parallel for simd2082 for (int i = 0; i < 10; ++i)2083 ;2084 }2085#pragma omp master2086 {2087#pragma omp parallel sections2088 {2089 bar();2090 }2091 }2092#pragma omp master2093 {2094#pragma omp task2095 {2096 bar();2097 }2098 }2099#pragma omp master2100 {2101#pragma omp taskyield2102 bar();2103 }2104#pragma omp master2105 {2106#pragma omp barrier // expected-error {{region cannot be closely nested inside 'master' region}}2107 bar();2108 }2109#pragma omp master2110 {2111#pragma omp scan // expected-error {{region cannot be closely nested inside 'master' region}}2112 bar();2113 }2114#pragma omp master2115 {2116#pragma omp taskwait2117 bar();2118 }2119#pragma omp master2120 {2121#pragma omp flush2122 bar();2123 }2124#pragma omp master2125 {2126#pragma omp ordered // expected-error {{region cannot be closely nested inside 'master' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}2127 bar();2128 }2129#pragma omp master2130 {2131#pragma omp atomic2132 ++a;2133 }2134#pragma omp master2135 {2136#pragma omp target2137 ++a;2138 }2139#pragma omp master2140 {2141#pragma omp target parallel2142 ++a;2143 }2144#pragma omp master2145 {2146#pragma omp target parallel for2147 for (int i = 0; i < 10; ++i)2148 ;2149 }2150#pragma omp master2151 {2152#pragma omp target enter data map(to: a)2153 ++a;2154 }2155#pragma omp master2156 {2157#pragma omp target exit data map(from: a)2158 ++a;2159 }2160#pragma omp master2161 {2162#pragma omp teams // expected-error {{region cannot be closely nested inside 'master' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}2163 ++a;2164 }2165#pragma omp master2166 {2167#pragma omp taskloop2168 for (int i = 0; i < 10; ++i)2169 ++a;2170 }2171#pragma omp master2172 {2173#pragma omp distribute // expected-error {{region cannot be closely nested inside 'master' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}2174 for (int i = 0; i < 10; ++i)2175 ;2176 }2177#pragma omp master2178 {2179#pragma omp target update to(a)2180 bar();2181 }2182#pragma omp master2183 {2184#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'master' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}2185 for (int i = 0; i < 10; ++i)2186 ;2187 }2188#pragma omp master2189 {2190#pragma omp distribute parallel for simd // expected-error {{region cannot be closely nested inside 'master' region; perhaps you forget to enclose 'omp distribute parallel for simd' directive into a teams region?}}2191 for (int i = 0; i < 10; ++i)2192 ;2193 }2194#pragma omp master2195 {2196#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'master' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}2197 for (int i = 0; i < 10; ++i)2198 ;2199 }2200#pragma omp master2201 {2202#pragma omp target simd // OK2203 for (int i = 0; i < 10; ++i)2204 ;2205 }2206#pragma omp master2207 {2208#pragma omp teams distribute // expected-error {{region cannot be closely nested inside 'master' region; perhaps you forget to enclose 'omp teams distribute' directive into a target region?}}2209 for (int i = 0; i < 10; ++i)2210 ;2211 }2212#pragma omp master2213 {2214#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'master' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}2215 for (int i = 0; i < 10; ++i)2216 ;2217 }2218#pragma omp master2219 {2220#pragma omp teams distribute parallel for simd // expected-error {{region cannot be closely nested inside 'master' region; perhaps you forget to enclose 'omp teams distribute parallel for simd' directive into a target region?}}2221 for (int i = 0; i < 10; ++i)2222 ;2223 }2224#pragma omp master2225 {2226#pragma omp teams distribute parallel for // expected-error {{region cannot be closely nested inside 'master' region; perhaps you forget to enclose 'omp teams distribute parallel for' directive into a target region?}}2227 for (int i = 0; i < 10; ++i)2228 ;2229 }2230#pragma omp master2231 {2232#pragma omp target teams // OK2233 a++;2234 }2235#pragma omp master2236 {2237#pragma omp target teams distribute // OK2238 for (int i = 0; i < 10; ++i)2239 ;2240 }2241#pragma omp master2242 {2243#pragma omp target teams distribute parallel for // OK2244 for (int i = 0; i < 10; ++i)2245 ;2246 }2247#pragma omp master2248 {2249#pragma omp target teams distribute parallel for simd // OK2250 for (int i = 0; i < 10; ++i)2251 ;2252 }2253#pragma omp master2254 {2255#pragma omp target teams distribute simd // OK2256 for (int i = 0; i < 10; ++i)2257 ;2258 }2259 2260// CRITICAL DIRECTIVE2261#pragma omp critical2262 {2263#pragma omp for // expected-error {{region cannot be closely nested inside 'critical' region; perhaps you forget to enclose 'omp for' directive into a parallel region?}}2264 for (int i = 0; i < 10; ++i)2265 ;2266 }2267#pragma omp critical2268 {2269#pragma omp simd2270 for (int i = 0; i < 10; ++i)2271 ;2272 }2273#pragma omp critical2274 {2275#pragma omp for simd // expected-error {{region cannot be closely nested inside 'critical' region; perhaps you forget to enclose 'omp for simd' directive into a parallel region?}}2276 for (int i = 0; i < 10; ++i)2277 ;2278 }2279#pragma omp critical2280 {2281#pragma omp parallel2282 for (int i = 0; i < 10; ++i)2283 ;2284 }2285#pragma omp critical2286 {2287#pragma omp single // expected-error {{region cannot be closely nested inside 'critical' region; perhaps you forget to enclose 'omp single' directive into a parallel region?}}2288 {2289 bar();2290 }2291 }2292#pragma omp critical2293 {2294#pragma omp master // OK, though second 'master' is redundant2295 {2296 bar();2297 }2298 }2299#pragma omp critical2300 {2301#pragma omp critical2302 {2303 bar();2304 }2305 }2306#pragma omp critical2307 {2308#pragma omp sections // expected-error {{region cannot be closely nested inside 'critical' region; perhaps you forget to enclose 'omp sections' directive into a parallel region?}}2309 {2310 bar();2311 }2312 }2313#pragma omp critical2314 {2315#pragma omp parallel2316 {2317#pragma omp master // OK2318 {2319 bar();2320 }2321#pragma omp for // OK2322 for (int i = 0; i < 10; ++i)2323 ;2324#pragma omp for simd // OK2325 for (int i = 0; i < 10; ++i)2326 ;2327#pragma omp sections // OK2328 {2329 bar();2330 }2331 }2332 }2333#pragma omp critical2334 {2335#pragma omp parallel master2336 {2337 bar();2338 }2339 }2340#pragma omp critical2341 {2342#pragma omp parallel masked2343 {2344 bar();2345 }2346 }2347#pragma omp critical2348 {2349#pragma omp parallel for2350 for (int i = 0; i < 10; ++i)2351 ;2352 }2353#pragma omp critical2354 {2355#pragma omp parallel for simd2356 for (int i = 0; i < 10; ++i)2357 ;2358 }2359#pragma omp critical2360 {2361#pragma omp parallel sections2362 {2363 bar();2364 }2365 }2366#pragma omp critical2367 {2368#pragma omp task2369 {2370 bar();2371 }2372 }2373#pragma omp critical2374 {2375#pragma omp taskyield2376 bar();2377 }2378#pragma omp critical2379 {2380#pragma omp barrier // expected-error {{region cannot be closely nested inside 'critical' region}}2381 bar();2382 }2383#pragma omp critical2384 {2385#pragma omp scan // expected-error {{region cannot be closely nested inside 'critical' region}}2386 bar();2387 }2388#pragma omp critical2389 {2390#pragma omp taskwait2391 bar();2392 }2393#pragma omp critical(Tuzik)2394 {2395#pragma omp critical(grelka)2396 bar();2397 }2398#pragma omp critical(Belka) // expected-note {{previous 'critical' region starts here}}2399 {2400#pragma omp critical(Belka) // expected-error {{cannot nest 'critical' regions having the same name 'Belka'}}2401 {2402#pragma omp critical(Tuzik)2403 {2404#pragma omp parallel2405#pragma omp critical(grelka)2406 {2407 bar();2408 }2409 }2410 }2411 }2412#pragma omp critical2413 {2414#pragma omp ordered // expected-error {{region cannot be closely nested inside 'critical' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}2415 bar();2416 }2417#pragma omp critical2418 {2419#pragma omp atomic2420 ++a;2421 }2422#pragma omp critical2423 {2424#pragma omp target2425 ++a;2426 }2427#pragma omp critical2428 {2429#pragma omp target parallel2430 ++a;2431 }2432#pragma omp critical2433 {2434#pragma omp target parallel for2435 for (int i = 0; i < 10; ++i)2436 ;2437 }2438#pragma omp critical2439 {2440#pragma omp target enter data map(to: a)2441 ++a;2442 }2443#pragma omp critical2444 {2445#pragma omp target exit data map(from: a)2446 ++a;2447 }2448#pragma omp critical2449 {2450#pragma omp teams // expected-error {{region cannot be closely nested inside 'critical' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}2451 ++a;2452 }2453#pragma omp critical2454 {2455#pragma omp taskloop2456 for (int i = 0; i < 10; ++i)2457 ++a;2458 }2459#pragma omp critical2460 {2461#pragma omp distribute // expected-error {{region cannot be closely nested inside 'critical' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}2462 for (int i = 0; i < 10; ++i)2463 ;2464 }2465#pragma omp critical2466 {2467#pragma omp target update to(a)2468 bar();2469 }2470#pragma omp critical2471 {2472#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'critical' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}2473 for (int i = 0; i < 10; ++i)2474 ;2475 }2476#pragma omp critical2477 {2478#pragma omp distribute parallel for simd // expected-error {{region cannot be closely nested inside 'critical' region; perhaps you forget to enclose 'omp distribute parallel for simd' directive into a teams region?}}2479 for (int i = 0; i < 10; ++i)2480 ;2481 }2482#pragma omp critical2483 {2484#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'critical' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}2485 for (int i = 0; i < 10; ++i)2486 ;2487 }2488#pragma omp critical2489 {2490#pragma omp target simd // OK2491 for (int i = 0; i < 10; ++i)2492 ;2493 }2494#pragma omp critical2495 {2496#pragma omp teams distribute // expected-error {{region cannot be closely nested inside 'critical' region; perhaps you forget to enclose 'omp teams distribute' directive into a target region?}}2497 for (int i = 0; i < 10; ++i)2498 ;2499 }2500#pragma omp critical2501 {2502#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'critical' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}2503 for (int i = 0; i < 10; ++i)2504 ;2505 }2506#pragma omp critical2507 {2508#pragma omp teams distribute parallel for simd // expected-error {{region cannot be closely nested inside 'critical' region; perhaps you forget to enclose 'omp teams distribute parallel for simd' directive into a target region?}}2509 for (int i = 0; i < 10; ++i)2510 ;2511 }2512#pragma omp critical2513 {2514#pragma omp teams distribute parallel for // expected-error {{region cannot be closely nested inside 'critical' region; perhaps you forget to enclose 'omp teams distribute parallel for' directive into a target region?}}2515 for (int i = 0; i < 10; ++i)2516 ;2517 }2518#pragma omp critical2519 {2520#pragma omp target teams // OK2521 a++;2522 }2523#pragma omp critical2524 {2525#pragma omp target teams distribute // OK2526 for (int i = 0; i < 10; ++i)2527 ;2528 }2529#pragma omp critical2530 {2531#pragma omp target teams distribute parallel for // OK2532 for (int i = 0; i < 10; ++i)2533 ;2534 }2535#pragma omp critical2536 {2537#pragma omp target teams distribute parallel for simd // OK2538 for (int i = 0; i < 10; ++i)2539 ;2540 }2541#pragma omp critical2542 {2543#pragma omp target teams distribute simd // OK2544 for (int i = 0; i < 10; ++i)2545 ;2546 }2547 2548// PARALLEL FOR DIRECTIVE2549#pragma omp parallel for2550 for (int i = 0; i < 10; ++i) {2551#pragma omp for // expected-error {{region cannot be closely nested inside 'parallel for' region; perhaps you forget to enclose 'omp for' directive into a parallel region?}}2552 for (int i = 0; i < 10; ++i)2553 ;2554 }2555#pragma omp parallel for2556 for (int i = 0; i < 10; ++i) {2557#pragma omp simd2558 for (int i = 0; i < 10; ++i)2559 ;2560 }2561#pragma omp parallel for2562 for (int i = 0; i < 10; ++i) {2563#pragma omp for simd // expected-error {{region cannot be closely nested inside 'parallel for' region; perhaps you forget to enclose 'omp for simd' directive into a parallel region?}}2564 for (int i = 0; i < 10; ++i)2565 ;2566 }2567#pragma omp parallel for2568 for (int i = 0; i < 10; ++i) {2569#pragma omp parallel2570 for (int i = 0; i < 10; ++i)2571 ;2572 }2573#pragma omp parallel for2574 for (int i = 0; i < 10; ++i) {2575#pragma omp sections // expected-error {{region cannot be closely nested inside 'parallel for' region; perhaps you forget to enclose 'omp sections' directive into a parallel region?}}2576 {2577 bar();2578 }2579 }2580#pragma omp parallel for2581 for (int i = 0; i < 10; ++i) {2582#pragma omp section // expected-error {{'omp section' directive must be closely nested to a sections region, not a parallel for region}}2583 {2584 bar();2585 }2586 }2587#pragma omp parallel for2588 for (int i = 0; i < 10; ++i) {2589#pragma omp single // expected-error {{region cannot be closely nested inside 'parallel for' region; perhaps you forget to enclose 'omp single' directive into a parallel region?}}2590 {2591 bar();2592 }2593 }2594 2595#pragma omp parallel for2596 for (int i = 0; i < 10; ++i) {2597#pragma omp master // expected-error {{region cannot be closely nested inside 'parallel for' region}}2598 {2599 bar();2600 }2601 }2602 2603#pragma omp parallel for2604 for (int i = 0; i < 10; ++i) {2605#pragma omp critical2606 {2607 bar();2608 }2609 }2610 2611#pragma omp parallel for2612 for (int i = 0; i < 10; ++i) {2613#pragma omp parallel2614 {2615#pragma omp single // OK2616 {2617 bar();2618 }2619#pragma omp for // OK2620 for (int i = 0; i < 10; ++i)2621 ;2622#pragma omp for simd // OK2623 for (int i = 0; i < 10; ++i)2624 ;2625#pragma omp sections // OK2626 {2627 bar();2628 }2629 }2630 }2631#pragma omp parallel for2632 for (int i = 0; i < 10; ++i) {2633#pragma omp parallel for2634 for (int i = 0; i < 10; ++i)2635 ;2636 }2637#pragma omp parallel for2638 for (int i = 0; i < 10; ++i) {2639#pragma omp parallel for simd2640 for (int i = 0; i < 10; ++i)2641 ;2642 }2643#pragma omp parallel for2644 for (int i = 0; i < 10; ++i) {2645#pragma omp parallel sections2646 {2647 bar();2648 }2649 }2650#pragma omp parallel for2651 for (int i = 0; i < 10; ++i) {2652#pragma omp task2653 {2654 bar();2655 }2656 }2657#pragma omp parallel for2658 for (int i = 0; i < 10; ++i) {2659#pragma omp taskyield2660 bar();2661 }2662#pragma omp parallel for2663 for (int i = 0; i < 10; ++i) {2664#pragma omp barrier // expected-error {{region cannot be closely nested inside 'parallel for' region}}2665 bar();2666 }2667#pragma omp parallel for2668 for (int i = 0; i < 10; ++i) {2669#pragma omp scan // omp45-error {{region cannot be closely nested inside 'parallel for' region}} omp50-error {{exactly one of 'inclusive' or 'exclusive' clauses is expected}} omp51-error {{exactly one of 'inclusive' or 'exclusive' clauses is expected}}2670 bar();2671 }2672#pragma omp parallel for2673 for (int i = 0; i < 10; ++i) {2674#pragma omp taskwait2675 bar();2676 }2677#pragma omp parallel for2678 for (int i = 0; i < 10; ++i) {2679#pragma omp flush2680 bar();2681 }2682#pragma omp parallel for2683 for (int i = 0; i < 10; ++i) {2684#pragma omp ordered // expected-error {{region cannot be closely nested inside 'parallel for' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}2685 bar();2686 }2687#pragma omp parallel for ordered2688 for (int i = 0; i < 10; ++i) {2689#pragma omp ordered // OK2690 bar();2691 }2692#pragma omp parallel for2693 for (int i = 0; i < 10; ++i) {2694#pragma omp atomic2695 ++a;2696 }2697#pragma omp parallel for2698 for (int i = 0; i < 10; ++i) {2699#pragma omp target2700 ++a;2701 }2702#pragma omp parallel for2703 for (int i = 0; i < 10; ++i) {2704#pragma omp target parallel2705 ++a;2706 }2707#pragma omp parallel for2708 for (int i = 0; i < 10; ++i) {2709#pragma omp target parallel for2710 for (int i = 0; i < 10; ++i)2711 ;2712 }2713#pragma omp parallel for2714 for (int i = 0; i < 10; ++i) {2715#pragma omp target enter data map(to: a)2716 ++a;2717 }2718#pragma omp parallel for2719 for (int i = 0; i < 10; ++i) {2720#pragma omp target exit data map(from: a)2721 ++a;2722 }2723#pragma omp parallel for2724 for (int i = 0; i < 10; ++i) {2725#pragma omp teams // expected-error {{region cannot be closely nested inside 'parallel for' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}2726 ++a;2727 }2728#pragma omp parallel for2729 for (int i = 0; i < 10; ++i) {2730#pragma omp taskloop2731 for (int i = 0; i < 10; ++i)2732 ++a;2733 }2734#pragma omp parallel for2735 for (int i = 0; i < 10; ++i) {2736#pragma omp distribute // expected-error {{region cannot be closely nested inside 'parallel for' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}2737 for (int j = 0; j < 10; ++j)2738 ;2739 }2740#pragma omp parallel for2741 for (int i = 0; i < 10; ++i) {2742#pragma omp target update to(a)2743 }2744#pragma omp parallel for2745 for (int i = 0; i < 10; ++i) {2746#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'parallel for' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}2747 for (int j = 0; j < 10; ++j)2748 ;2749 }2750#pragma omp parallel for2751 for (int i = 0; i < 10; ++i) {2752#pragma omp distribute parallel for simd // expected-error {{region cannot be closely nested inside 'parallel for' region; perhaps you forget to enclose 'omp distribute parallel for simd' directive into a teams region?}}2753 for (int j = 0; j < 10; ++j)2754 ;2755 }2756#pragma omp parallel for2757 for (int i = 0; i < 10; ++i) {2758#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'parallel for' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}2759 for (int j = 0; j < 10; ++j)2760 ;2761 }2762#pragma omp parallel for2763 for (int i = 0; i < 10; ++i) {2764#pragma omp target simd // OK2765 for (int j = 0; j < 10; ++j)2766 ;2767 }2768#pragma omp parallel for2769 for (int i = 0; i < 10; ++i) {2770#pragma omp teams distribute // expected-error {{region cannot be closely nested inside 'parallel for' region; perhaps you forget to enclose 'omp teams distribute' directive into a target region?}}2771 for (int j = 0; j < 10; ++j)2772 ;2773 }2774#pragma omp parallel for2775 for (int i = 0; i < 10; ++i) {2776#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'parallel for' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}2777 for (int j = 0; j < 10; ++j)2778 ;2779 }2780#pragma omp parallel for2781 for (int i = 0; i < 10; ++i) {2782#pragma omp teams distribute parallel for simd // expected-error {{region cannot be closely nested inside 'parallel for' region; perhaps you forget to enclose 'omp teams distribute parallel for simd' directive into a target region?}}2783 for (int j = 0; j < 10; ++j)2784 ;2785 }2786#pragma omp parallel for2787 for (int i = 0; i < 10; ++i) {2788#pragma omp teams distribute parallel for // expected-error {{region cannot be closely nested inside 'parallel for' region; perhaps you forget to enclose 'omp teams distribute parallel for' directive into a target region?}}2789 for (int j = 0; j < 10; ++j)2790 ;2791 }2792#pragma omp parallel for2793 for (int i = 0; i < 10; ++i) {2794#pragma omp target teams // OK2795 a++;2796 }2797#pragma omp parallel for2798 for (int i = 0; i < 10; ++i) {2799#pragma omp target teams distribute // OK2800 for (int j = 0; j < 10; ++j)2801 ;2802 }2803#pragma omp parallel for2804 for (int i = 0; i < 10; ++i) {2805#pragma omp target teams distribute parallel for // OK2806 for (int j = 0; j < 10; ++j)2807 ;2808 }2809#pragma omp parallel for2810 for (int i = 0; i < 10; ++i) {2811#pragma omp target teams distribute parallel for simd // OK2812 for (int j = 0; j < 10; ++j)2813 ;2814 }2815#pragma omp parallel for2816 for (int i = 0; i < 10; ++i) {2817#pragma omp target teams distribute simd // OK2818 for (int j = 0; j < 10; ++j)2819 ;2820 }2821 2822// PARALLEL FOR SIMD DIRECTIVE2823#pragma omp parallel for simd2824 for (int i = 0; i < 10; ++i) {2825#pragma omp for // expected-error {{OpenMP constructs may not be nested inside a simd region}}2826 for (int i = 0; i < 10; ++i)2827 ;2828 }2829#pragma omp parallel for simd2830 for (int i = 0; i < 10; ++i) {2831#pragma omp simd // omp45warn-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}2832 for (int i = 0; i < 10; ++i)2833 ;2834 }2835#pragma omp parallel for simd2836 for (int i = 0; i < 10; ++i) {2837#pragma omp for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}2838 for (int i = 0; i < 10; ++i)2839 ;2840 }2841#pragma omp parallel for simd2842 for (int i = 0; i < 10; ++i) {2843#pragma omp parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}2844 for (int i = 0; i < 10; ++i)2845 ;2846 }2847#pragma omp parallel for simd2848 for (int i = 0; i < 10; ++i) {2849#pragma omp sections // expected-error {{OpenMP constructs may not be nested inside a simd region}}2850 {2851 bar();2852 }2853 }2854#pragma omp parallel for simd2855 for (int i = 0; i < 10; ++i) {2856#pragma omp section // expected-error {{OpenMP constructs may not be nested inside a simd region}}2857 {2858 bar();2859 }2860 }2861#pragma omp parallel for simd2862 for (int i = 0; i < 10; ++i) {2863#pragma omp single // expected-error {{OpenMP constructs may not be nested inside a simd region}}2864 {2865 bar();2866 }2867 }2868 2869#pragma omp parallel for simd2870 for (int i = 0; i < 10; ++i) {2871#pragma omp master // expected-error {{OpenMP constructs may not be nested inside a simd region}}2872 {2873 bar();2874 }2875 }2876 2877#pragma omp parallel for simd2878 for (int i = 0; i < 10; ++i) {2879#pragma omp critical // expected-error {{OpenMP constructs may not be nested inside a simd region}}2880 {2881 bar();2882 }2883 }2884 2885#pragma omp parallel for simd2886 for (int i = 0; i < 10; ++i) {2887#pragma omp parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}2888 {2889#pragma omp single2890 {2891 bar();2892 }2893#pragma omp for2894 for (int i = 0; i < 10; ++i)2895 ;2896#pragma omp for simd2897 for (int i = 0; i < 10; ++i)2898 ;2899#pragma omp sections2900 {2901 bar();2902 }2903 }2904 }2905#pragma omp parallel for simd2906 for (int i = 0; i < 10; ++i) {2907#pragma omp parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}2908 for (int i = 0; i < 10; ++i)2909 ;2910 }2911#pragma omp parallel for simd2912 for (int i = 0; i < 10; ++i) {2913#pragma omp parallel for simd// expected-error {{OpenMP constructs may not be nested inside a simd region}}2914 for (int i = 0; i < 10; ++i)2915 ;2916 }2917#pragma omp parallel for simd2918 for (int i = 0; i < 10; ++i) {2919#pragma omp parallel sections // expected-error {{OpenMP constructs may not be nested inside a simd region}}2920 {2921 bar();2922 }2923 }2924#pragma omp parallel for simd2925 for (int i = 0; i < 10; ++i) {2926#pragma omp task // expected-error {{OpenMP constructs may not be nested inside a simd region}}2927 {2928 bar();2929 }2930 }2931#pragma omp parallel for simd2932 for (int i = 0; i < 10; ++i) {2933#pragma omp taskyield // expected-error {{OpenMP constructs may not be nested inside a simd region}}2934 bar();2935 }2936#pragma omp parallel for simd2937 for (int i = 0; i < 10; ++i) {2938#pragma omp barrier // expected-error {{OpenMP constructs may not be nested inside a simd region}}2939 bar();2940 }2941#pragma omp parallel for simd2942 for (int i = 0; i < 10; ++i) {2943#pragma omp scan // omp45-error {{OpenMP constructs may not be nested inside a simd region}} omp50-error {{exactly one of 'inclusive' or 'exclusive' clauses is expected}} omp51-error {{exactly one of 'inclusive' or 'exclusive' clauses is expected}}2944 bar();2945 }2946#pragma omp parallel for simd2947 for (int i = 0; i < 10; ++i) {2948#pragma omp taskwait // expected-error {{OpenMP constructs may not be nested inside a simd region}}2949 bar();2950 }2951#pragma omp parallel for simd2952 for (int i = 0; i < 10; ++i) {2953#pragma omp flush // expected-error {{OpenMP constructs may not be nested inside a simd region}}2954 bar();2955 }2956#pragma omp parallel for simd2957 for (int i = 0; i < 10; ++i) {2958#pragma omp ordered // expected-error {{OpenMP constructs may not be nested inside a simd region}}2959 bar();2960 }2961#pragma omp parallel for simd2962 for (int i = 0; i < 10; ++i) {2963#pragma omp ordered // expected-error {{OpenMP constructs may not be nested inside a simd region}}2964 bar();2965 }2966#pragma omp parallel for simd2967 for (int i = 0; i < 10; ++i) {2968#pragma omp atomic // omp45-error {{OpenMP constructs may not be nested inside a simd region}}2969 ++a;2970 }2971#pragma omp parallel for simd2972 for (int i = 0; i < 10; ++i) {2973#pragma omp target // expected-error {{OpenMP constructs may not be nested inside a simd region}}2974 ++a;2975 }2976#pragma omp parallel for simd2977 for (int i = 0; i < 10; ++i) {2978#pragma omp target parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}2979 ++a;2980 }2981#pragma omp parallel for simd2982 for (int i = 0; i < 10; ++i) {2983#pragma omp target parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}2984 for (int i = 0; i < 10; ++i)2985 ;2986 }2987#pragma omp parallel for simd2988 for (int i = 0; i < 10; ++i) {2989#pragma omp target enter data map(to: a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}2990 ++a;2991 }2992#pragma omp parallel for simd2993 for (int i = 0; i < 10; ++i) {2994#pragma omp target exit data map(from: a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}2995 ++a;2996 }2997#pragma omp parallel for simd2998 for (int i = 0; i < 10; ++i) {2999#pragma omp teams // expected-error {{OpenMP constructs may not be nested inside a simd region}}3000 ++a;3001 }3002#pragma omp parallel for simd3003 for (int i = 0; i < 10; ++i) {3004#pragma omp taskloop // expected-error {{OpenMP constructs may not be nested inside a simd region}}3005 for (int i = 0; i < 10; ++i)3006 ++a;3007 }3008#pragma omp parallel for simd3009 for (int i = 0; i < 10; ++i) {3010#pragma omp distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}3011 for (int j = 0; j < 10; ++j)3012 ;3013 }3014#pragma omp parallel for simd3015 for (int i = 0; i < 10; ++i) {3016#pragma omp target update to(a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}3017 bar();3018 }3019#pragma omp parallel for simd3020 for (int i = 0; i < 10; ++i) {3021#pragma omp distribute parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}3022 for (int j = 0; j < 10; ++j)3023 ;3024 }3025#pragma omp parallel for simd3026 for (int i = 0; i < 10; ++i) {3027#pragma omp distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}3028 for (int j = 0; j < 10; ++j)3029 ;3030 }3031#pragma omp parallel for simd3032 for (int i = 0; i < 10; ++i) {3033#pragma omp distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}3034 for (int j = 0; j < 10; ++j)3035 ;3036 }3037#pragma omp parallel for simd3038 for (int i = 0; i < 10; ++i) {3039#pragma omp target simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}3040 for (int j = 0; j < 10; ++j)3041 ;3042 }3043#pragma omp parallel for simd3044 for (int i = 0; i < 10; ++i) {3045#pragma omp teams distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}3046 for (int j = 0; j < 10; ++j)3047 ;3048 }3049#pragma omp parallel for simd3050 for (int i = 0; i < 10; ++i) {3051#pragma omp teams distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}3052 for (int j = 0; j < 10; ++j)3053 ;3054 }3055#pragma omp parallel for simd3056 for (int i = 0; i < 10; ++i) {3057#pragma omp teams distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}3058 for (int j = 0; j < 10; ++j)3059 ;3060 }3061#pragma omp parallel for simd3062 for (int i = 0; i < 10; ++i) {3063#pragma omp teams distribute parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}3064 for (int j = 0; j < 10; ++j)3065 ;3066 }3067#pragma omp parallel for simd3068 for (int i = 0; i < 10; ++i) {3069#pragma omp target teams // expected-error {{OpenMP constructs may not be nested inside a simd region}}3070 a++;3071 }3072#pragma omp parallel for simd3073 for (int i = 0; i < 10; ++i) {3074#pragma omp target teams distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}3075 for (int j = 0; j < 10; ++j)3076 ;3077 }3078#pragma omp parallel for simd3079 for (int i = 0; i < 10; ++i) {3080#pragma omp target teams distribute parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}3081 for (int j = 0; j < 10; ++j)3082 ;3083 }3084#pragma omp parallel for simd3085 for (int i = 0; i < 10; ++i) {3086#pragma omp target teams distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}3087 for (int j = 0; j < 10; ++j)3088 ;3089 }3090#pragma omp parallel for simd3091 for (int i = 0; i < 10; ++i) {3092#pragma omp target teams distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}3093 for (int j = 0; j < 10; ++j)3094 ;3095 }3096 3097// PARALLEL MASTER DIRECTIVE3098#pragma omp parallel master3099 {3100#pragma omp for // expected-error {{region cannot be closely nested inside 'parallel master' region; perhaps you forget to enclose 'omp for' directive into a parallel region?}}3101 for (int i = 0; i < 10; ++i)3102 ;3103 }3104#pragma omp parallel master3105 {3106#pragma omp simd3107 for (int i = 0; i < 10; ++i)3108 ;3109 }3110#pragma omp parallel master3111 {3112#pragma omp for simd // expected-error {{region cannot be closely nested inside 'parallel master' region; perhaps you forget to enclose 'omp for simd' directive into a parallel region?}}3113 for (int i = 0; i < 10; ++i)3114 ;3115 }3116#pragma omp parallel master3117 {3118#pragma omp parallel3119 for (int i = 0; i < 10; ++i)3120 ;3121 }3122#pragma omp parallel master3123 {3124#pragma omp single // expected-error {{region cannot be closely nested inside 'parallel master' region; perhaps you forget to enclose 'omp single' directive into a parallel region?}}3125 {3126 bar();3127 }3128 }3129#pragma omp parallel master3130 {3131#pragma omp master // OK, though second 'master' is redundant3132 {3133 bar();3134 }3135 }3136#pragma omp parallel master3137 {3138#pragma omp critical3139 {3140 bar();3141 }3142 }3143#pragma omp parallel master3144 {3145#pragma omp sections // expected-error {{region cannot be closely nested inside 'parallel master' region; perhaps you forget to enclose 'omp sections' directive into a parallel region?}}3146 {3147 bar();3148 }3149 }3150#pragma omp parallel master3151 {3152#pragma omp parallel3153 {3154#pragma omp parallel master // OK3155 {3156 bar();3157 }3158#pragma omp for // OK3159 for (int i = 0; i < 10; ++i)3160 ;3161#pragma omp for simd // OK3162 for (int i = 0; i < 10; ++i)3163 ;3164#pragma omp sections // OK3165 {3166 bar();3167 }3168 }3169 }3170#pragma omp parallel master3171 {3172#pragma omp parallel master // OK3173 {3174 bar();3175 }3176#pragma omp parallel3177 {3178#pragma omp for // OK3179 for (int i = 0; i < 10; ++i)3180 ;3181#pragma omp for simd // OK3182 for (int i = 0; i < 10; ++i)3183 ;3184#pragma omp sections // OK3185 {3186 bar();3187 }3188 }3189 }3190#pragma omp parallel master3191 {3192#pragma omp parallel for3193 for (int i = 0; i < 10; ++i)3194 ;3195 }3196#pragma omp parallel master3197 {3198#pragma omp parallel for simd3199 for (int i = 0; i < 10; ++i)3200 ;3201 }3202#pragma omp parallel master3203 {3204#pragma omp parallel sections3205 {3206 bar();3207 }3208 }3209#pragma omp parallel master3210 {3211#pragma omp task3212 {3213 bar();3214 }3215 }3216#pragma omp parallel master3217 {3218#pragma omp taskyield3219 bar();3220 }3221#pragma omp parallel master3222 {3223#pragma omp barrier // expected-error {{region cannot be closely nested inside 'parallel master' region}}3224 bar();3225 }3226#pragma omp parallel master3227 {3228#pragma omp scan // expected-error {{region cannot be closely nested inside 'parallel master' region}}3229 bar();3230 }3231#pragma omp parallel master3232 {3233#pragma omp taskwait3234 bar();3235 }3236#pragma omp parallel master3237 {3238#pragma omp flush3239 bar();3240 }3241#pragma omp parallel master3242 {3243#pragma omp ordered // expected-error {{region cannot be closely nested inside 'parallel master' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}3244 bar();3245 }3246#pragma omp parallel master3247 {3248#pragma omp atomic3249 ++a;3250 }3251#pragma omp parallel master3252 {3253#pragma omp target3254 ++a;3255 }3256#pragma omp parallel master3257 {3258#pragma omp target parallel3259 ++a;3260 }3261#pragma omp parallel master3262 {3263#pragma omp target parallel for3264 for (int i = 0; i < 10; ++i)3265 ;3266 }3267#pragma omp parallel master3268 {3269#pragma omp target enter data map(to: a)3270 ++a;3271 }3272#pragma omp parallel master3273 {3274#pragma omp target exit data map(from: a)3275 ++a;3276 }3277#pragma omp parallel master3278 {3279#pragma omp teams // expected-error {{region cannot be closely nested inside 'parallel master' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}3280 ++a;3281 }3282#pragma omp parallel master3283 {3284#pragma omp taskloop3285 for (int i = 0; i < 10; ++i)3286 ++a;3287 }3288#pragma omp parallel master3289 {3290#pragma omp distribute // expected-error {{region cannot be closely nested inside 'parallel master' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}3291 for (int i = 0; i < 10; ++i)3292 ;3293 }3294#pragma omp parallel master3295 {3296#pragma omp target update to(a)3297 bar();3298 }3299#pragma omp parallel master3300 {3301#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'parallel master' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}3302 for (int i = 0; i < 10; ++i)3303 ;3304 }3305#pragma omp parallel master3306 {3307#pragma omp distribute parallel for simd // expected-error {{region cannot be closely nested inside 'parallel master' region; perhaps you forget to enclose 'omp distribute parallel for simd' directive into a teams region?}}3308 for (int i = 0; i < 10; ++i)3309 ;3310 }3311#pragma omp parallel master3312 {3313#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'parallel master' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}3314 for (int i = 0; i < 10; ++i)3315 ;3316 }3317#pragma omp parallel master3318 {3319#pragma omp target simd // OK3320 for (int i = 0; i < 10; ++i)3321 ;3322 }3323#pragma omp parallel master3324 {3325#pragma omp teams distribute // expected-error {{region cannot be closely nested inside 'parallel master' region; perhaps you forget to enclose 'omp teams distribute' directive into a target region?}}3326 for (int i = 0; i < 10; ++i)3327 ;3328 }3329#pragma omp parallel master3330 {3331#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'parallel master' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}3332 for (int i = 0; i < 10; ++i)3333 ;3334 }3335#pragma omp parallel master3336 {3337#pragma omp teams distribute parallel for simd // expected-error {{region cannot be closely nested inside 'parallel master' region; perhaps you forget to enclose 'omp teams distribute parallel for simd' directive into a target region?}}3338 for (int i = 0; i < 10; ++i)3339 ;3340 }3341#pragma omp parallel master3342 {3343#pragma omp teams distribute parallel for // expected-error {{region cannot be closely nested inside 'parallel master' region; perhaps you forget to enclose 'omp teams distribute parallel for' directive into a target region?}}3344 for (int i = 0; i < 10; ++i)3345 ;3346 }3347#pragma omp parallel master3348 {3349#pragma omp target teams // OK3350 a++;3351 }3352#pragma omp parallel master3353 {3354#pragma omp target teams distribute // OK3355 for (int i = 0; i < 10; ++i)3356 ;3357 }3358#pragma omp parallel master3359 {3360#pragma omp target teams distribute parallel for // OK3361 for (int i = 0; i < 10; ++i)3362 ;3363 }3364#pragma omp parallel master3365 {3366#pragma omp target teams distribute parallel for simd // OK3367 for (int i = 0; i < 10; ++i)3368 ;3369 }3370#pragma omp parallel master3371 {3372#pragma omp target teams distribute simd // OK3373 for (int i = 0; i < 10; ++i)3374 ;3375 }3376 3377// PARALLEL MASKED DIRECTIVE3378#pragma omp parallel masked3379 {3380#pragma omp for // expected-error {{region cannot be closely nested inside 'parallel masked' region; perhaps you forget to enclose 'omp for' directive into a parallel region?}}3381 for (int i = 0; i < 10; ++i)3382 ;3383 }3384#pragma omp parallel masked3385 {3386#pragma omp simd3387 for (int i = 0; i < 10; ++i)3388 ;3389 }3390#pragma omp parallel masked3391 {3392#pragma omp for simd // expected-error {{region cannot be closely nested inside 'parallel masked' region; perhaps you forget to enclose 'omp for simd' directive into a parallel region?}}3393 for (int i = 0; i < 10; ++i)3394 ;3395 }3396#pragma omp parallel masked3397 {3398#pragma omp parallel3399 for (int i = 0; i < 10; ++i)3400 ;3401 }3402#pragma omp parallel masked3403 {3404#pragma omp single // expected-error {{region cannot be closely nested inside 'parallel masked' region; perhaps you forget to enclose 'omp single' directive into a parallel region?}}3405 {3406 bar();3407 }3408 }3409#pragma omp parallel masked3410 {3411#pragma omp master // OK, though second 'master' is redundant3412 {3413 bar();3414 }3415 }3416#pragma omp parallel masked3417 {3418#pragma omp critical3419 {3420 bar();3421 }3422 }3423#pragma omp parallel masked3424 {3425#pragma omp sections // expected-error {{region cannot be closely nested inside 'parallel masked' region; perhaps you forget to enclose 'omp sections' directive into a parallel region?}}3426 {3427 bar();3428 }3429 }3430#pragma omp parallel master3431 {3432#pragma omp parallel3433 {3434#pragma omp parallel master // OK3435 {3436 bar();3437 }3438#pragma omp for // OK3439 for (int i = 0; i < 10; ++i)3440 ;3441#pragma omp for simd // OK3442 for (int i = 0; i < 10; ++i)3443 ;3444#pragma omp sections // OK3445 {3446 bar();3447 }3448 }3449 }3450#pragma omp parallel master3451 {3452#pragma omp parallel master // OK3453 {3454 bar();3455 }3456#pragma omp parallel3457 {3458#pragma omp for // OK3459 for (int i = 0; i < 10; ++i)3460 ;3461#pragma omp for simd // OK3462 for (int i = 0; i < 10; ++i)3463 ;3464#pragma omp sections // OK3465 {3466 bar();3467 }3468 }3469 }3470#pragma omp parallel master3471 {3472#pragma omp parallel for3473 for (int i = 0; i < 10; ++i)3474 ;3475 }3476#pragma omp parallel master3477 {3478#pragma omp parallel for simd3479 for (int i = 0; i < 10; ++i)3480 ;3481 }3482#pragma omp parallel master3483 {3484#pragma omp parallel sections3485 {3486 bar();3487 }3488 }3489#pragma omp parallel master3490 {3491#pragma omp task3492 {3493 bar();3494 }3495 }3496#pragma omp parallel master3497 {3498#pragma omp taskyield3499 bar();3500 }3501#pragma omp parallel master3502 {3503#pragma omp barrier // expected-error {{region cannot be closely nested inside 'parallel master' region}}3504 bar();3505 }3506#pragma omp parallel master3507 {3508#pragma omp scan // expected-error {{region cannot be closely nested inside 'parallel master' region}}3509 bar();3510 }3511#pragma omp parallel master3512 {3513#pragma omp taskwait3514 bar();3515 }3516#pragma omp parallel master3517 {3518#pragma omp flush3519 bar();3520 }3521#pragma omp parallel master3522 {3523#pragma omp ordered // expected-error {{region cannot be closely nested inside 'parallel master' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}3524 bar();3525 }3526#pragma omp parallel master3527 {3528#pragma omp atomic3529 ++a;3530 }3531#pragma omp parallel master3532 {3533#pragma omp target3534 ++a;3535 }3536#pragma omp parallel master3537 {3538#pragma omp target parallel3539 ++a;3540 }3541#pragma omp parallel master3542 {3543#pragma omp target parallel for3544 for (int i = 0; i < 10; ++i)3545 ;3546 }3547#pragma omp parallel master3548 {3549#pragma omp target enter data map(to: a)3550 ++a;3551 }3552#pragma omp parallel master3553 {3554#pragma omp target exit data map(from: a)3555 ++a;3556 }3557#pragma omp parallel master3558 {3559#pragma omp teams // expected-error {{region cannot be closely nested inside 'parallel master' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}3560 ++a;3561 }3562#pragma omp parallel master3563 {3564#pragma omp taskloop3565 for (int i = 0; i < 10; ++i)3566 ++a;3567 }3568#pragma omp parallel master3569 {3570#pragma omp distribute // expected-error {{region cannot be closely nested inside 'parallel master' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}3571 for (int i = 0; i < 10; ++i)3572 ;3573 }3574#pragma omp parallel master3575 {3576#pragma omp target update to(a)3577 bar();3578 }3579#pragma omp parallel master3580 {3581#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'parallel master' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}3582 for (int i = 0; i < 10; ++i)3583 ;3584 }3585#pragma omp parallel master3586 {3587#pragma omp distribute parallel for simd // expected-error {{region cannot be closely nested inside 'parallel master' region; perhaps you forget to enclose 'omp distribute parallel for simd' directive into a teams region?}}3588 for (int i = 0; i < 10; ++i)3589 ;3590 }3591#pragma omp parallel master3592 {3593#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'parallel master' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}3594 for (int i = 0; i < 10; ++i)3595 ;3596 }3597#pragma omp parallel master3598 {3599#pragma omp target simd // OK3600 for (int i = 0; i < 10; ++i)3601 ;3602 }3603#pragma omp parallel master3604 {3605#pragma omp teams distribute // expected-error {{region cannot be closely nested inside 'parallel master' region; perhaps you forget to enclose 'omp teams distribute' directive into a target region?}}3606 for (int i = 0; i < 10; ++i)3607 ;3608 }3609#pragma omp parallel master3610 {3611#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'parallel master' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}3612 for (int i = 0; i < 10; ++i)3613 ;3614 }3615#pragma omp parallel master3616 {3617#pragma omp teams distribute parallel for simd // expected-error {{region cannot be closely nested inside 'parallel master' region; perhaps you forget to enclose 'omp teams distribute parallel for simd' directive into a target region?}}3618 for (int i = 0; i < 10; ++i)3619 ;3620 }3621#pragma omp parallel master3622 {3623#pragma omp teams distribute parallel for // expected-error {{region cannot be closely nested inside 'parallel master' region; perhaps you forget to enclose 'omp teams distribute parallel for' directive into a target region?}}3624 for (int i = 0; i < 10; ++i)3625 ;3626 }3627#pragma omp parallel master3628 {3629#pragma omp target teams // OK3630 a++;3631 }3632#pragma omp parallel master3633 {3634#pragma omp target teams distribute // OK3635 for (int i = 0; i < 10; ++i)3636 ;3637 }3638#pragma omp parallel master3639 {3640#pragma omp target teams distribute parallel for // OK3641 for (int i = 0; i < 10; ++i)3642 ;3643 }3644#pragma omp parallel master3645 {3646#pragma omp target teams distribute parallel for simd // OK3647 for (int i = 0; i < 10; ++i)3648 ;3649 }3650#pragma omp parallel master3651 {3652#pragma omp target teams distribute simd // OK3653 for (int i = 0; i < 10; ++i)3654 ;3655 }3656// PARALLEL SECTIONS DIRECTIVE3657#pragma omp parallel sections3658 {3659#pragma omp for // expected-error {{region cannot be closely nested inside 'parallel sections' region; perhaps you forget to enclose 'omp for' directive into a parallel region?}}3660 for (int i = 0; i < 10; ++i)3661 ;3662 }3663#pragma omp parallel sections3664 {3665#pragma omp simd3666 for (int i = 0; i < 10; ++i)3667 ;3668 }3669#pragma omp parallel sections3670 {3671#pragma omp for simd // expected-error {{region cannot be closely nested inside 'parallel sections' region; perhaps you forget to enclose 'omp for simd' directive into a parallel region?}}3672 for (int i = 0; i < 10; ++i)3673 ;3674 }3675#pragma omp parallel sections3676 {3677#pragma omp parallel3678 for (int i = 0; i < 10; ++i)3679 ;3680 }3681#pragma omp parallel sections3682 {3683#pragma omp sections // expected-error {{region cannot be closely nested inside 'parallel sections' region; perhaps you forget to enclose 'omp sections' directive into a parallel region?}}3684 {3685 bar();3686 }3687 }3688#pragma omp parallel sections3689 {3690#pragma omp section3691 {3692 bar();3693 }3694 }3695#pragma omp parallel sections3696 {3697#pragma omp section3698 {3699#pragma omp single // expected-error {{region cannot be closely nested inside 'section' region; perhaps you forget to enclose 'omp single' directive into a parallel region?}}3700 bar();3701 }3702 }3703#pragma omp parallel sections3704 {3705#pragma omp section3706 {3707#pragma omp master // expected-error {{region cannot be closely nested inside 'section' region}}3708 bar();3709 }3710 }3711#pragma omp parallel sections3712 {3713#pragma omp section3714 {3715#pragma omp critical3716 bar();3717 }3718 }3719#pragma omp parallel sections3720 {3721#pragma omp parallel3722 {3723#pragma omp single // OK3724 {3725 bar();3726 }3727#pragma omp for // OK3728 for (int i = 0; i < 10; ++i)3729 ;3730#pragma omp for simd // OK3731 for (int i = 0; i < 10; ++i)3732 ;3733#pragma omp sections // OK3734 {3735 bar();3736 }3737 }3738 }3739#pragma omp parallel sections3740 {3741#pragma omp parallel for3742 for (int i = 0; i < 10; ++i)3743 ;3744 }3745#pragma omp parallel sections3746 {3747#pragma omp parallel for simd3748 for (int i = 0; i < 10; ++i)3749 ;3750 }3751#pragma omp parallel sections3752 {3753#pragma omp parallel sections3754 {3755 bar();3756 }3757 }3758#pragma omp parallel sections3759 {3760#pragma omp task3761 {3762 bar();3763 }3764 }3765#pragma omp parallel sections3766 {3767#pragma omp taskyield3768 }3769#pragma omp parallel sections3770 {3771#pragma omp barrier // expected-error {{region cannot be closely nested inside 'parallel sections' region}}3772 }3773#pragma omp parallel sections3774 {3775#pragma omp scan // expected-error {{region cannot be closely nested inside 'parallel sections' region}}3776 }3777#pragma omp parallel sections3778 {3779#pragma omp taskwait3780 }3781#pragma omp parallel sections3782 {3783#pragma omp flush3784 }3785#pragma omp parallel sections3786 {3787#pragma omp ordered // expected-error {{region cannot be closely nested inside 'parallel sections' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}3788 bar();3789 }3790#pragma omp parallel sections3791 {3792#pragma omp atomic3793 ++a;3794 }3795#pragma omp parallel sections3796 {3797#pragma omp target3798 ++a;3799 }3800#pragma omp parallel sections3801 {3802#pragma omp target parallel3803 ++a;3804 }3805#pragma omp parallel sections3806 {3807#pragma omp target parallel for3808 for (int i = 0; i < 10; ++i)3809 ;3810 }3811#pragma omp parallel sections3812 {3813#pragma omp target enter data map(to: a)3814 }3815#pragma omp parallel sections3816 {3817#pragma omp target exit data map(from: a)3818 }3819#pragma omp parallel sections3820 {3821#pragma omp teams // expected-error {{region cannot be closely nested inside 'parallel sections' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}3822 ++a;3823 }3824#pragma omp parallel sections3825 {3826#pragma omp taskloop3827 for (int i = 0; i < 10; ++i)3828 ++a;3829 }3830#pragma omp parallel sections3831 {3832#pragma omp distribute // expected-error {{region cannot be closely nested inside 'parallel sections' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}3833 for (int i = 0; i < 10; ++i)3834 ;3835 }3836#pragma omp parallel sections3837 {3838#pragma omp target update to(a)3839 }3840#pragma omp parallel sections3841 {3842#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'parallel sections' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}3843 for (int i = 0; i < 10; ++i)3844 ;3845 }3846#pragma omp parallel sections3847 {3848#pragma omp distribute parallel for simd // expected-error {{region cannot be closely nested inside 'parallel sections' region; perhaps you forget to enclose 'omp distribute parallel for simd' directive into a teams region?}}3849 for (int i = 0; i < 10; ++i)3850 ;3851 }3852#pragma omp parallel sections3853 {3854#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'parallel sections' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}3855 for (int i = 0; i < 10; ++i)3856 ;3857 }3858#pragma omp parallel sections3859 {3860#pragma omp target simd // OK3861 for (int i = 0; i < 10; ++i)3862 ;3863 }3864#pragma omp parallel sections3865 {3866#pragma omp teams distribute // expected-error {{region cannot be closely nested inside 'parallel sections' region; perhaps you forget to enclose 'omp teams distribute' directive into a target region?}}3867 for (int i = 0; i < 10; ++i)3868 ;3869 }3870#pragma omp parallel sections3871 {3872#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'parallel sections' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}3873 for (int i = 0; i < 10; ++i)3874 ;3875 }3876#pragma omp parallel sections3877 {3878#pragma omp teams distribute parallel for simd // expected-error {{region cannot be closely nested inside 'parallel sections' region; perhaps you forget to enclose 'omp teams distribute parallel for simd' directive into a target region?}}3879 for (int i = 0; i < 10; ++i)3880 ;3881 }3882#pragma omp parallel sections3883 {3884#pragma omp teams distribute parallel for // expected-error {{region cannot be closely nested inside 'parallel sections' region; perhaps you forget to enclose 'omp teams distribute parallel for' directive into a target region?}}3885 for (int i = 0; i < 10; ++i)3886 ;3887 }3888#pragma omp parallel sections3889 {3890#pragma omp target teams // OK3891 a++;3892 }3893#pragma omp parallel sections3894 {3895#pragma omp target teams distribute // OK3896 for (int i = 0; i < 10; ++i)3897 ;3898 }3899#pragma omp parallel sections3900 {3901#pragma omp target teams distribute parallel for // OK3902 for (int i = 0; i < 10; ++i)3903 ;3904 }3905#pragma omp parallel sections3906 {3907#pragma omp target teams distribute parallel for simd // OK3908 for (int i = 0; i < 10; ++i)3909 ;3910 }3911#pragma omp parallel sections3912 {3913#pragma omp target teams distribute simd // OK3914 for (int i = 0; i < 10; ++i)3915 ;3916 }3917 3918// TASK DIRECTIVE3919#pragma omp task3920#pragma omp for // expected-error {{region cannot be closely nested inside 'task' region; perhaps you forget to enclose 'omp for' directive into a parallel region?}}3921 for (int i = 0; i < 10; ++i)3922 ;3923#pragma omp task3924#pragma omp simd3925 for (int i = 0; i < 10; ++i)3926 ;3927#pragma omp task3928#pragma omp for simd // expected-error {{region cannot be closely nested inside 'task' region; perhaps you forget to enclose 'omp for simd' directive into a parallel region?}}3929 for (int i = 0; i < 10; ++i)3930 ;3931#pragma omp task3932#pragma omp sections // expected-error {{region cannot be closely nested inside 'task' region; perhaps you forget to enclose 'omp sections' directive into a parallel region?}}3933 {3934 bar();3935 }3936#pragma omp task3937#pragma omp section // expected-error {{'omp section' directive must be closely nested to a sections region, not a task region}}3938 {3939 bar();3940 }3941#pragma omp task3942#pragma omp single // expected-error {{region cannot be closely nested inside 'task' region; perhaps you forget to enclose 'omp single' directive into a parallel region?}}3943 bar();3944#pragma omp task3945#pragma omp master // expected-error {{region cannot be closely nested inside 'task' region}}3946 bar();3947#pragma omp task3948#pragma omp critical3949 bar();3950 3951#pragma omp task3952#pragma omp parallel for3953 for (int i = 0; i < 10; ++i)3954 ;3955#pragma omp task3956#pragma omp parallel for simd3957 for (int i = 0; i < 10; ++i)3958 ;3959#pragma omp task3960#pragma omp parallel sections3961 {3962 bar();3963 }3964#pragma omp task3965#pragma omp task3966 {3967 bar();3968 }3969#pragma omp task3970 {3971#pragma omp taskyield3972 bar();3973 }3974#pragma omp task3975 {3976#pragma omp barrier // expected-error {{region cannot be closely nested inside 'task' region}}3977 bar();3978 }3979#pragma omp task3980 {3981#pragma omp scan // expected-error {{region cannot be closely nested inside 'task' region}}3982 bar();3983 }3984#pragma omp task3985 {3986#pragma omp taskwait3987 bar();3988 }3989#pragma omp task3990 {3991#pragma omp flush3992 bar();3993 }3994#pragma omp task3995 {3996#pragma omp ordered // expected-error {{region cannot be closely nested inside 'task' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}3997 bar();3998 }3999#pragma omp task4000 {4001#pragma omp atomic4002 ++a;4003 }4004#pragma omp task4005 {4006#pragma omp target4007 ++a;4008 }4009#pragma omp task4010 {4011#pragma omp target parallel4012 ++a;4013 }4014#pragma omp task4015#pragma omp target parallel for4016 for (int i = 0; i < 10; ++i)4017 ;4018#pragma omp task4019 {4020#pragma omp target enter data map(to: a)4021 ++a;4022 }4023#pragma omp task4024 {4025#pragma omp target exit data map(from: a)4026 ++a;4027 }4028#pragma omp task4029 {4030#pragma omp teams // expected-error {{region cannot be closely nested inside 'task' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}4031 ++a;4032 }4033#pragma omp task4034 {4035#pragma omp taskloop4036 for (int i = 0; i < 10; ++i)4037 ++a;4038 }4039#pragma omp task4040 {4041#pragma omp distribute // expected-error {{region cannot be closely nested inside 'task' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}4042 for (int i = 0; i < 10; ++i)4043 ;4044 }4045#pragma omp task4046 {4047#pragma omp target update to(a)4048 bar();4049 }4050#pragma omp task4051 {4052#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'task' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}4053 for (int i = 0; i < 10; ++i)4054 ;4055 }4056#pragma omp task4057 {4058#pragma omp distribute parallel for simd // expected-error {{region cannot be closely nested inside 'task' region; perhaps you forget to enclose 'omp distribute parallel for simd' directive into a teams region?}}4059 for (int i = 0; i < 10; ++i)4060 ;4061 }4062#pragma omp task4063 {4064#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'task' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}4065 for (int i = 0; i < 10; ++i)4066 ;4067 }4068#pragma omp task4069 {4070#pragma omp target simd // OK4071 for (int i = 0; i < 10; ++i)4072 ;4073 }4074#pragma omp task4075 {4076#pragma omp teams distribute // expected-error {{region cannot be closely nested inside 'task' region; perhaps you forget to enclose 'omp teams distribute' directive into a target region?}}4077 for (int i = 0; i < 10; ++i)4078 ;4079 }4080#pragma omp task4081 {4082#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'task' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}4083 for (int i = 0; i < 10; ++i)4084 ;4085 }4086#pragma omp task4087 {4088#pragma omp teams distribute parallel for simd // expected-error {{region cannot be closely nested inside 'task' region; perhaps you forget to enclose 'omp teams distribute parallel for simd' directive into a target region?}}4089 for (int i = 0; i < 10; ++i)4090 ;4091 }4092#pragma omp task4093 {4094#pragma omp teams distribute parallel for // expected-error {{region cannot be closely nested inside 'task' region; perhaps you forget to enclose 'omp teams distribute parallel for' directive into a target region?}}4095 for (int i = 0; i < 10; ++i)4096 ;4097 }4098#pragma omp task4099 {4100#pragma omp target teams // OK4101 a++;4102 }4103#pragma omp task4104 {4105#pragma omp target teams distribute // OK4106 for (int i = 0; i < 10; ++i)4107 ;4108 }4109#pragma omp task4110 {4111#pragma omp target teams distribute parallel for // OK4112 for (int i = 0; i < 10; ++i)4113 ;4114 }4115#pragma omp task4116 {4117#pragma omp target teams distribute parallel for simd // OK4118 for (int i = 0; i < 10; ++i)4119 ;4120 }4121#pragma omp task4122 {4123#pragma omp target teams distribute simd // OK4124 for (int i = 0; i < 10; ++i)4125 ;4126 }4127 4128// ORDERED DIRECTIVE4129#pragma omp ordered4130 {4131#pragma omp for // expected-error {{region cannot be closely nested inside 'ordered' region; perhaps you forget to enclose 'omp for' directive into a parallel region?}}4132 for (int i = 0; i < 10; ++i)4133 ;4134 }4135#pragma omp ordered4136 {4137#pragma omp simd4138 for (int i = 0; i < 10; ++i)4139 ;4140 }4141#pragma omp ordered4142 {4143#pragma omp for simd // expected-error {{region cannot be closely nested inside 'ordered' region; perhaps you forget to enclose 'omp for simd' directive into a parallel region?}}4144 for (int i = 0; i < 10; ++i)4145 ;4146 }4147#pragma omp ordered4148 {4149#pragma omp parallel4150 for (int i = 0; i < 10; ++i)4151 ;4152 }4153#pragma omp ordered4154 {4155#pragma omp single // expected-error {{region cannot be closely nested inside 'ordered' region; perhaps you forget to enclose 'omp single' directive into a parallel region?}}4156 {4157 bar();4158 }4159 }4160#pragma omp ordered4161 {4162#pragma omp master // OK, though second 'ordered' is redundant4163 {4164 bar();4165 }4166 }4167#pragma omp ordered4168 {4169#pragma omp critical4170 {4171 bar();4172 }4173 }4174#pragma omp ordered4175 {4176#pragma omp sections // expected-error {{region cannot be closely nested inside 'ordered' region; perhaps you forget to enclose 'omp sections' directive into a parallel region?}}4177 {4178 bar();4179 }4180 }4181#pragma omp ordered4182 {4183#pragma omp parallel for ordered4184 for (int j = 0; j < 10; ++j) {4185#pragma omp ordered // OK4186 {4187 bar();4188 }4189 }4190 }4191#pragma omp ordered4192 {4193#pragma omp parallel for simd ordered4194 for (int j = 0; j < 10; ++j) {4195#pragma omp ordered // expected-error {{OpenMP constructs may not be nested inside a simd region}}4196 {4197 bar();4198 }4199 }4200 }4201#pragma omp ordered4202 {4203#pragma omp parallel for simd ordered4204 for (int j = 0; j < 10; ++j) {4205#pragma omp ordered simd4206 {4207 bar();4208 }4209 }4210 }4211#pragma omp ordered4212 {4213#pragma omp parallel for4214 for (int i = 0; i < 10; ++i)4215 ;4216 }4217#pragma omp ordered4218 {4219#pragma omp parallel for simd4220 for (int i = 0; i < 10; ++i)4221 ;4222 }4223#pragma omp ordered4224 {4225#pragma omp parallel sections4226 {4227 bar();4228 }4229 }4230#pragma omp ordered4231 {4232#pragma omp task4233 {4234 bar();4235 }4236 }4237#pragma omp ordered4238 {4239#pragma omp taskyield4240 bar();4241 }4242#pragma omp ordered4243 {4244#pragma omp barrier // expected-error {{region cannot be closely nested inside 'ordered' region}}4245 bar();4246 }4247#pragma omp ordered4248 {4249#pragma omp scan // expected-error {{region cannot be closely nested inside 'ordered' region}}4250 bar();4251 }4252#pragma omp ordered4253 {4254#pragma omp taskwait4255 bar();4256 }4257#pragma omp ordered4258 {4259#pragma omp flush4260 bar();4261 }4262#pragma omp ordered4263 {4264#pragma omp ordered // expected-error {{region cannot be closely nested inside 'ordered' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}4265 bar();4266 }4267#pragma omp ordered4268 {4269#pragma omp atomic4270 ++a;4271 }4272#pragma omp ordered4273 {4274#pragma omp target4275 ++a;4276 }4277#pragma omp ordered4278 {4279#pragma omp target parallel4280 ++a;4281 }4282#pragma omp ordered4283 {4284#pragma omp target parallel for ordered4285 for (int j = 0; j < 10; ++j) {4286#pragma omp ordered // OK4287 {4288 bar();4289 }4290 }4291 }4292#pragma omp ordered4293 {4294#pragma omp target parallel for4295 for (int i = 0; i < 10; ++i)4296 ;4297 }4298#pragma omp ordered4299 {4300#pragma omp target enter data map(to: a)4301 ++a;4302 }4303#pragma omp ordered4304 {4305#pragma omp target exit data map(from: a)4306 ++a;4307 }4308#pragma omp ordered4309 {4310#pragma omp teams // expected-error {{region cannot be closely nested inside 'ordered' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}4311 ++a;4312 }4313#pragma omp ordered4314 {4315#pragma omp taskloop4316 for (int i = 0; i < 10; ++i)4317 ++a;4318 }4319#pragma omp ordered4320 {4321#pragma omp distribute // expected-error {{region cannot be closely nested inside 'ordered' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}4322 for (int i = 0; i < 10; ++i)4323 ;4324 }4325#pragma omp ordered4326 {4327 bar();4328#pragma omp target update to(a)4329 bar();4330 }4331#pragma omp ordered4332 {4333#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'ordered' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}4334 for (int i = 0; i < 10; ++i)4335 ;4336 }4337#pragma omp ordered4338 {4339#pragma omp distribute parallel for simd // expected-error {{region cannot be closely nested inside 'ordered' region; perhaps you forget to enclose 'omp distribute parallel for simd' directive into a teams region?}}4340 for (int i = 0; i < 10; ++i)4341 ;4342 }4343#pragma omp ordered4344 {4345#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'ordered' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}4346 for (int i = 0; i < 10; ++i)4347 ;4348 }4349#pragma omp ordered4350 {4351#pragma omp target simd // OK4352 for (int i = 0; i < 10; ++i)4353 ;4354 }4355#pragma omp ordered4356 {4357#pragma omp teams distribute // expected-error {{region cannot be closely nested inside 'ordered' region; perhaps you forget to enclose 'omp teams distribute' directive into a target region?}}4358 for (int i = 0; i < 10; ++i)4359 ;4360 }4361#pragma omp ordered4362 {4363#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'ordered' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}4364 for (int i = 0; i < 10; ++i)4365 ;4366 }4367#pragma omp ordered4368 {4369#pragma omp teams distribute parallel for simd // expected-error {{region cannot be closely nested inside 'ordered' region; perhaps you forget to enclose 'omp teams distribute parallel for simd' directive into a target region?}}4370 for (int i = 0; i < 10; ++i)4371 ;4372 }4373#pragma omp ordered4374 {4375#pragma omp teams distribute parallel for // expected-error {{region cannot be closely nested inside 'ordered' region; perhaps you forget to enclose 'omp teams distribute parallel for' directive into a target region?}}4376 for (int i = 0; i < 10; ++i)4377 ;4378 }4379#pragma omp ordered4380 {4381#pragma omp target teams // OK4382 a++;4383 }4384#pragma omp ordered4385 {4386#pragma omp target teams distribute // OK4387 for (int i = 0; i < 10; ++i)4388 ;4389 }4390#pragma omp ordered4391 {4392#pragma omp target teams distribute parallel for // OK4393 for (int i = 0; i < 10; ++i)4394 ;4395 }4396#pragma omp ordered4397 {4398#pragma omp target teams distribute parallel for simd // OK4399 for (int i = 0; i < 10; ++i)4400 ;4401 }4402#pragma omp ordered4403 {4404#pragma omp target teams distribute simd // OK4405 for (int i = 0; i < 10; ++i)4406 ;4407 }4408 4409// ATOMIC DIRECTIVE4410#pragma omp atomic4411 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}4412 // expected-note@+1 {{expected an expression statement}}4413 {4414#pragma omp for // expected-error {{OpenMP constructs may not be nested inside an atomic region}}4415 for (int i = 0; i < 10; ++i)4416 ;4417 }4418#pragma omp atomic4419 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}4420 // expected-note@+1 {{expected an expression statement}}4421 {4422#pragma omp simd // expected-error {{OpenMP constructs may not be nested inside an atomic region}}4423 for (int i = 0; i < 10; ++i)4424 ;4425 }4426#pragma omp atomic4427 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}4428 // expected-note@+1 {{expected an expression statement}}4429 {4430#pragma omp for simd // expected-error {{OpenMP constructs may not be nested inside an atomic region}}4431 for (int i = 0; i < 10; ++i)4432 ;4433 }4434#pragma omp atomic4435 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}4436 // expected-note@+1 {{expected an expression statement}}4437 {4438#pragma omp parallel // expected-error {{OpenMP constructs may not be nested inside an atomic region}}4439 for (int i = 0; i < 10; ++i)4440 ;4441 }4442#pragma omp atomic4443 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}4444 // expected-note@+1 {{expected an expression statement}}4445 {4446#pragma omp sections // expected-error {{OpenMP constructs may not be nested inside an atomic region}}4447 {4448 bar();4449 }4450 }4451#pragma omp atomic4452 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}4453 // expected-note@+1 {{expected an expression statement}}4454 {4455#pragma omp section // expected-error {{OpenMP constructs may not be nested inside an atomic region}}4456 {4457 bar();4458 }4459 }4460#pragma omp atomic4461 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}4462 // expected-note@+1 {{expected an expression statement}}4463 {4464#pragma omp single // expected-error {{OpenMP constructs may not be nested inside an atomic region}}4465 {4466 bar();4467 }4468 }4469#pragma omp atomic4470 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}4471 // expected-note@+1 {{expected an expression statement}}4472 {4473#pragma omp master // expected-error {{OpenMP constructs may not be nested inside an atomic region}}4474 {4475 bar();4476 }4477 }4478#pragma omp atomic4479 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}4480 // expected-note@+1 {{expected an expression statement}}4481 {4482#pragma omp parallel master // expected-error {{OpenMP constructs may not be nested inside an atomic region}}4483 {4484 bar();4485 }4486 }4487#pragma omp atomic4488 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}4489 // expected-note@+1 {{expected an expression statement}}4490 {4491#pragma omp parallel masked // expected-error {{OpenMP constructs may not be nested inside an atomic region}}4492 {4493 bar();4494 }4495 }4496#pragma omp atomic4497 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}4498 // expected-note@+1 {{expected an expression statement}}4499 {4500#pragma omp critical // expected-error {{OpenMP constructs may not be nested inside an atomic region}}4501 {4502 bar();4503 }4504 }4505#pragma omp atomic4506 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}4507 // expected-note@+1 {{expected an expression statement}}4508 {4509#pragma omp parallel for // expected-error {{OpenMP constructs may not be nested inside an atomic region}}4510 for (int i = 0; i < 10; ++i)4511 ;4512 }4513#pragma omp atomic4514 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}4515 // expected-note@+1 {{expected an expression statement}}4516 {4517#pragma omp parallel for simd // expected-error {{OpenMP constructs may not be nested inside an atomic region}}4518 for (int i = 0; i < 10; ++i)4519 ;4520 }4521#pragma omp atomic4522 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}4523 // expected-note@+1 {{expected an expression statement}}4524 {4525#pragma omp parallel sections // expected-error {{OpenMP constructs may not be nested inside an atomic region}}4526 {4527 bar();4528 }4529 }4530#pragma omp atomic4531 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}4532 // expected-note@+1 {{expected an expression statement}}4533 {4534#pragma omp task // expected-error {{OpenMP constructs may not be nested inside an atomic region}}4535 {4536 bar();4537 }4538 }4539#pragma omp atomic4540 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}4541 // expected-note@+1 {{expected an expression statement}}4542 {4543#pragma omp taskyield // expected-error {{OpenMP constructs may not be nested inside an atomic region}}4544 bar();4545 }4546#pragma omp atomic4547 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}4548 // expected-note@+1 {{expected an expression statement}}4549 {4550#pragma omp barrier // expected-error {{OpenMP constructs may not be nested inside an atomic region}}4551 bar();4552 }4553#pragma omp atomic4554 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}4555 // expected-note@+1 {{expected an expression statement}}4556 {4557#pragma omp scan // expected-error {{OpenMP constructs may not be nested inside an atomic region}}4558 bar();4559 }4560#pragma omp atomic4561 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}4562 // expected-note@+1 {{expected an expression statement}}4563 {4564#pragma omp taskwait // expected-error {{OpenMP constructs may not be nested inside an atomic region}}4565 bar();4566 }4567#pragma omp atomic4568 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}4569 // expected-note@+1 {{expected an expression statement}}4570 {4571#pragma omp flush // expected-error {{OpenMP constructs may not be nested inside an atomic region}}4572 bar();4573 }4574#pragma omp atomic4575 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}4576 // expected-note@+1 {{expected an expression statement}}4577 {4578#pragma omp ordered // expected-error {{OpenMP constructs may not be nested inside an atomic region}}4579 bar();4580 }4581#pragma omp atomic4582 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}4583 // expected-note@+1 {{expected an expression statement}}4584 {4585#pragma omp atomic // expected-error {{OpenMP constructs may not be nested inside an atomic region}}4586 ++a;4587 }4588#pragma omp atomic4589 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}4590 // expected-note@+1 {{expected an expression statement}}4591 {4592#pragma omp target // expected-error {{OpenMP constructs may not be nested inside an atomic region}}4593 ++a;4594 }4595#pragma omp atomic4596 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}4597 // expected-note@+1 {{expected an expression statement}}4598 {4599#pragma omp target parallel // expected-error {{OpenMP constructs may not be nested inside an atomic region}}4600 ++a;4601 }4602#pragma omp atomic4603 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}4604 // expected-note@+1 {{expected an expression statement}}4605 {4606#pragma omp target parallel for // expected-error {{OpenMP constructs may not be nested inside an atomic region}}4607 for (int i = 0; i < 10; ++i)4608 ;4609 }4610#pragma omp atomic4611 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}4612 // expected-note@+1 {{expected an expression statement}}4613 {4614#pragma omp target enter data map(to: a) // expected-error {{OpenMP constructs may not be nested inside an atomic region}}4615 ++a;4616 }4617#pragma omp atomic4618 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}4619 // expected-note@+1 {{expected an expression statement}}4620 {4621#pragma omp target exit data map(from: a) // expected-error {{OpenMP constructs may not be nested inside an atomic region}}4622 ++a;4623 }4624#pragma omp atomic4625 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}4626 // expected-note@+1 {{expected an expression statement}}4627 {4628#pragma omp teams // expected-error {{OpenMP constructs may not be nested inside an atomic region}}4629 ++a;4630 }4631#pragma omp atomic4632 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}4633 // expected-note@+1 {{expected an expression statement}}4634 {4635#pragma omp taskloop // expected-error {{OpenMP constructs may not be nested inside an atomic region}}4636 for (int i = 0; i < 10; ++i)4637 ++a;4638 }4639#pragma omp atomic4640 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}4641 // expected-note@+1 {{expected an expression statement}}4642 {4643#pragma omp distribute // expected-error {{OpenMP constructs may not be nested inside an atomic region}}4644 for (int i = 0; i < 10; ++i)4645 ;4646 }4647#pragma omp atomic4648 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}4649 // expected-note@+1 {{expected an expression statement}}4650 {4651#pragma omp target update to(a) // expected-error {{OpenMP constructs may not be nested inside an atomic region}}4652 bar();4653 }4654#pragma omp atomic4655 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}4656 // expected-note@+1 {{expected an expression statement}}4657 {4658#pragma omp distribute parallel for // expected-error {{OpenMP constructs may not be nested inside an atomic region}}4659 for (int i = 0; i < 10; ++i)4660 ;4661 }4662#pragma omp atomic4663 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}4664 // expected-note@+1 {{expected an expression statement}}4665 {4666#pragma omp distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside an atomic region}}4667 for (int i = 0; i < 10; ++i)4668 ;4669 }4670#pragma omp atomic4671 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}4672 // expected-note@+1 {{expected an expression statement}}4673 {4674#pragma omp distribute simd // expected-error {{OpenMP constructs may not be nested inside an atomic region}}4675 for (int i = 0; i < 10; ++i)4676 ;4677 }4678#pragma omp atomic4679 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}4680 // expected-note@+1 {{expected an expression statement}}4681 {4682#pragma omp target simd // expected-error {{OpenMP constructs may not be nested inside an atomic region}}4683 for (int i = 0; i < 10; ++i)4684 ;4685 }4686#pragma omp atomic4687 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}4688 // expected-note@+1 {{expected an expression statement}}4689 {4690#pragma omp teams distribute // expected-error {{OpenMP constructs may not be nested inside an atomic region}}4691 for (int i = 0; i < 10; ++i)4692 ;4693 }4694#pragma omp atomic4695 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}4696 // expected-note@+1 {{expected an expression statement}}4697 {4698#pragma omp teams distribute simd // expected-error {{OpenMP constructs may not be nested inside an atomic region}}4699 for (int i = 0; i < 10; ++i)4700 ;4701 }4702#pragma omp atomic4703 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}4704 // expected-note@+1 {{expected an expression statement}}4705 {4706#pragma omp teams distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside an atomic region}}4707 for (int i = 0; i < 10; ++i)4708 ;4709 }4710#pragma omp atomic4711 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}4712 // expected-note@+1 {{expected an expression statement}}4713 {4714#pragma omp teams distribute parallel for // expected-error {{OpenMP constructs may not be nested inside an atomic region}}4715 for (int i = 0; i < 10; ++i)4716 ;4717 }4718#pragma omp atomic4719 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}4720 // expected-note@+1 {{expected an expression statement}}4721 {4722#pragma omp target teams // expected-error {{OpenMP constructs may not be nested inside an atomic region}}4723 a++;4724 }4725#pragma omp atomic4726 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}4727 // expected-note@+1 {{expected an expression statement}}4728 {4729#pragma omp target teams distribute // expected-error {{OpenMP constructs may not be nested inside an atomic region}}4730 for (int i = 0; i < 10; ++i)4731 ;4732 }4733#pragma omp atomic4734 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}4735 // expected-note@+1 {{expected an expression statement}}4736 {4737#pragma omp target teams distribute parallel for // expected-error {{OpenMP constructs may not be nested inside an atomic region}}4738 for (int i = 0; i < 10; ++i)4739 ;4740 }4741#pragma omp atomic4742 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}4743 // expected-note@+1 {{expected an expression statement}}4744 {4745#pragma omp target teams distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside an atomic region}}4746 for (int i = 0; i < 10; ++i)4747 ;4748 }4749#pragma omp atomic4750 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}4751 // expected-note@+1 {{expected an expression statement}}4752 {4753#pragma omp target teams distribute simd // expected-error {{OpenMP constructs may not be nested inside an atomic region}}4754 for (int i = 0; i < 10; ++i)4755 ;4756 }4757 4758// TARGET DIRECTIVE4759#pragma omp target4760#pragma omp parallel4761 bar();4762#pragma omp target4763#pragma omp for4764 for (int i = 0; i < 10; ++i)4765 ;4766#pragma omp target4767#pragma omp simd4768 for (int i = 0; i < 10; ++i)4769 ;4770#pragma omp target4771#pragma omp for simd4772 for (int i = 0; i < 10; ++i)4773 ;4774#pragma omp target4775#pragma omp sections4776 {4777 bar();4778 }4779#pragma omp target4780#pragma omp section // expected-error {{'omp section' directive must be closely nested to a sections region, not a target region}}4781 {4782 bar();4783 }4784#pragma omp target4785#pragma omp single4786 bar();4787 4788#pragma omp target4789#pragma omp master4790 {4791 bar();4792 }4793#pragma omp target4794#pragma omp critical4795 {4796 bar();4797 }4798#pragma omp target4799#pragma omp parallel for4800 for (int i = 0; i < 10; ++i)4801 ;4802#pragma omp target4803#pragma omp parallel for simd4804 for (int i = 0; i < 10; ++i)4805 ;4806#pragma omp target4807#pragma omp parallel sections4808 {4809 bar();4810 }4811#pragma omp target4812#pragma omp task4813 {4814 bar();4815 }4816#pragma omp target4817 {4818#pragma omp taskyield4819 bar();4820 }4821#pragma omp target4822 {4823#pragma omp barrier4824 bar();4825 }4826#pragma omp target4827 {4828#pragma omp scan // expected-error {{region cannot be closely nested inside 'target' region; perhaps you forget to enclose 'omp scan' directive into a for, simd, for simd, parallel for, or parallel for simd region?}}4829 bar();4830 }4831#pragma omp target4832 {4833#pragma omp taskwait4834 bar();4835 }4836#pragma omp target4837 {4838#pragma omp flush4839 bar();4840 }4841#pragma omp target4842 {4843#pragma omp ordered // expected-error {{region cannot be closely nested inside 'target' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}4844 bar();4845 }4846#pragma omp target4847 {4848#pragma omp atomic4849 ++a;4850 }4851#pragma omp target4852 {4853#pragma omp target // expected-error {{region cannot be nested inside 'target' region}}4854 ++a;4855 }4856#pragma omp target4857 {4858#pragma omp target parallel // expected-error {{region cannot be nested inside 'target' region}}4859 ++a;4860 }4861#pragma omp target4862#pragma omp target parallel for // expected-error {{region cannot be nested inside 'target' region}}4863 for (int i = 0; i < 10; ++i)4864 ;4865#pragma omp target4866 {4867#pragma omp teams4868 ++a;4869 }4870#pragma omp target // expected-error {{target construct with nested teams region contains statements outside of the teams construct}}4871 {4872#pragma omp teams // expected-note {{directive outside teams construct here}}4873 ++a;4874#pragma omp teams // expected-note {{nested teams construct here}}4875 ++a;4876 }4877#pragma omp target // expected-error {{target construct with nested teams region contains statements outside of the teams construct}}4878 {4879 ++a; // expected-note {{statement outside teams construct here}}4880#pragma omp teams // expected-note {{nested teams construct here}}4881 ++a;4882 }4883#pragma omp target // expected-error {{target construct with nested teams region contains statements outside of the teams construct}}4884 {4885#pragma omp teams // expected-note {{nested teams construct here}}4886 ++a;4887 ++a; // expected-note {{statement outside teams construct here}}4888 }4889#pragma omp target // expected-error {{target construct with nested teams region contains statements outside of the teams construct}}4890 {4891 while (0) // expected-note {{statement outside teams construct here}}4892#pragma omp teams // expected-note {{nested teams construct here}}4893 ++a;4894 }4895#pragma omp target4896 {4897#pragma omp taskloop4898 for (int i = 0; i < 10; ++i)4899 ++a;4900 }4901#pragma omp target4902 {4903#pragma omp distribute // expected-error {{region cannot be closely nested inside 'target' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}4904 for (int i = 0; i < 10; ++i)4905 ;4906 }4907#pragma omp target4908 {4909#pragma omp target enter data map(to: a) // expected-error {{region cannot be nested inside 'target' region}}4910 }4911#pragma omp target4912 {4913#pragma omp target exit data map(from: a) // expected-error {{region cannot be nested inside 'target' region}}4914 }4915#pragma omp target4916 {4917#pragma omp target update to(a) // expected-error {{region cannot be nested inside 'target' region}}4918 }4919#pragma omp target4920 {4921#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'target' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}4922 for (int i = 0; i < 10; ++i)4923 ;4924 }4925#pragma omp target4926 {4927#pragma omp distribute parallel for simd // expected-error {{region cannot be closely nested inside 'target' region; perhaps you forget to enclose 'omp distribute parallel for simd' directive into a teams region?}}4928 for (int i = 0; i < 10; ++i)4929 ;4930 }4931#pragma omp target4932 {4933#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'target' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}4934 for (int i = 0; i < 10; ++i)4935 ;4936 }4937#pragma omp target4938 {4939#pragma omp target simd // expected-error {{region cannot be nested inside 'target' region}}4940 for (int i = 0; i < 10; ++i)4941 ;4942 }4943#pragma omp target4944 {4945#pragma omp teams distribute // OK4946 for (int i = 0; i < 10; ++i)4947 ;4948 }4949#pragma omp target4950 {4951#pragma omp teams distribute simd // OK4952 for (int i = 0; i < 10; ++i)4953 ;4954 }4955#pragma omp target4956 {4957#pragma omp teams distribute parallel for simd // OK4958 for (int i = 0; i < 10; ++i)4959 ;4960 }4961#pragma omp target4962 {4963#pragma omp teams distribute parallel for // OK4964 for (int i = 0; i < 10; ++i)4965 ;4966 }4967#pragma omp target4968 {4969#pragma omp target teams // expected-error {{region cannot be nested inside 'target' region}}4970 for (int i = 0; i < 10; ++i)4971 ;4972 }4973#pragma omp target4974 {4975#pragma omp target teams distribute // expected-error {{region cannot be nested inside 'target' region}}4976 for (int i = 0; i < 10; ++i)4977 ;4978 }4979#pragma omp target4980 {4981#pragma omp target teams distribute parallel for // expected-error {{region cannot be nested inside 'target' region}}4982 for (int i = 0; i < 10; ++i)4983 ;4984 }4985#pragma omp target4986 {4987#pragma omp target teams distribute parallel for simd // expected-error {{region cannot be nested inside 'target' region}}4988 for (int i = 0; i < 10; ++i)4989 ;4990 }4991#pragma omp target4992 {4993#pragma omp target teams distribute simd // expected-error {{region cannot be nested inside 'target' region}}4994 for (int i = 0; i < 10; ++i)4995 ;4996 }4997 4998// TARGET PARALLEL DIRECTIVE4999#pragma omp target parallel5000#pragma omp parallel5001 bar();5002#pragma omp target parallel5003#pragma omp for5004 for (int i = 0; i < 10; ++i)5005 ;5006#pragma omp target parallel5007#pragma omp simd5008 for (int i = 0; i < 10; ++i)5009 ;5010#pragma omp target parallel5011#pragma omp for simd5012 for (int i = 0; i < 10; ++i)5013 ;5014#pragma omp target parallel5015#pragma omp sections5016 {5017 bar();5018 }5019#pragma omp target parallel5020#pragma omp section // expected-error {{'omp section' directive must be closely nested to a sections region, not a target parallel region}}5021 {5022 bar();5023 }5024#pragma omp target parallel5025#pragma omp single5026 bar();5027 5028#pragma omp target parallel5029#pragma omp master5030 {5031 bar();5032 }5033#pragma omp target5034#pragma omp parallel master5035 {5036 bar();5037 }5038#pragma omp target5039#pragma omp parallel masked5040 {5041 bar();5042 }5043#pragma omp target parallel5044#pragma omp critical5045 {5046 bar();5047 }5048#pragma omp target parallel5049#pragma omp parallel for5050 for (int i = 0; i < 10; ++i)5051 ;5052#pragma omp target parallel5053#pragma omp parallel for simd5054 for (int i = 0; i < 10; ++i)5055 ;5056#pragma omp target parallel5057#pragma omp parallel sections5058 {5059 bar();5060 }5061#pragma omp target parallel5062#pragma omp task5063 {5064 bar();5065 }5066#pragma omp target parallel5067 {5068#pragma omp taskyield5069 bar();5070 }5071#pragma omp target parallel5072 {5073#pragma omp barrier5074 bar();5075 }5076#pragma omp target parallel5077 {5078#pragma omp scan // expected-error {{region cannot be closely nested inside 'target parallel' region; perhaps you forget to enclose 'omp scan' directive into a for, simd, for simd, parallel for, or parallel for simd region?}}5079 bar();5080 }5081#pragma omp target parallel5082 {5083#pragma omp taskwait5084 bar();5085 }5086#pragma omp target parallel5087 {5088#pragma omp flush5089 bar();5090 }5091#pragma omp target parallel5092 {5093#pragma omp ordered // expected-error {{region cannot be closely nested inside 'target parallel' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}5094 bar();5095 }5096#pragma omp target parallel5097 {5098#pragma omp atomic5099 ++a;5100 }5101#pragma omp target parallel5102 {5103#pragma omp target // expected-error {{region cannot be nested inside 'target parallel' region}}5104 ++a;5105 }5106#pragma omp target parallel5107 {5108#pragma omp target parallel // expected-error {{region cannot be nested inside 'target parallel' region}}5109 ++a;5110 }5111#pragma omp target parallel5112#pragma omp target parallel for // expected-error {{region cannot be nested inside 'target parallel' region}}5113 for (int i = 0; i < 10; ++i)5114 ;5115#pragma omp target parallel5116 {5117#pragma omp teams // expected-error {{region cannot be closely nested inside 'target parallel' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}5118 ++a;5119 }5120#pragma omp target parallel5121 {5122 ++a;5123#pragma omp teams // expected-error {{region cannot be closely nested inside 'target parallel' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}5124 ++a;5125 }5126#pragma omp target parallel5127 {5128#pragma omp taskloop5129 for (int i = 0; i < 10; ++i)5130 ++a;5131 }5132#pragma omp target parallel5133 {5134#pragma omp distribute // expected-error {{region cannot be closely nested inside 'target parallel' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}5135 for (int i = 0; i < 10; ++i)5136 ;5137 }5138#pragma omp target parallel5139 {5140#pragma omp target enter data map(to: a) // expected-error {{region cannot be nested inside 'target parallel' region}}5141 }5142#pragma omp target parallel5143 {5144#pragma omp target exit data map(from: a) // expected-error {{region cannot be nested inside 'target parallel' region}}5145 }5146#pragma omp target parallel5147 {5148#pragma omp target update to(a) // expected-error {{region cannot be nested inside 'target parallel' region}}5149 }5150#pragma omp target parallel5151 {5152#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'target parallel' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}5153 for (int i = 0; i < 10; ++i)5154 ;5155 }5156#pragma omp target parallel5157 {5158#pragma omp distribute parallel for simd // expected-error {{region cannot be closely nested inside 'target parallel' region; perhaps you forget to enclose 'omp distribute parallel for simd' directive into a teams region?}}5159 for (int i = 0; i < 10; ++i)5160 ;5161 }5162#pragma omp target parallel5163 {5164#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'target parallel' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}5165 for (int i = 0; i < 10; ++i)5166 ;5167 }5168#pragma omp target parallel5169 {5170#pragma omp target simd // expected-error {{region cannot be nested inside 'target parallel' region}}5171 for (int i = 0; i < 10; ++i)5172 ;5173 }5174#pragma omp target parallel5175 {5176#pragma omp teams distribute // expected-error {{region cannot be closely nested inside 'target parallel' region; perhaps you forget to enclose 'omp teams distribute' directive into a target region?}}5177 for (int i = 0; i < 10; ++i)5178 ;5179 }5180#pragma omp target parallel5181 {5182#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'target parallel' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}5183 for (int i = 0; i < 10; ++i)5184 ;5185 }5186#pragma omp target parallel5187 {5188#pragma omp teams distribute parallel for simd // expected-error {{region cannot be closely nested inside 'target parallel' region; perhaps you forget to enclose 'omp teams distribute parallel for simd' directive into a target region?}}5189 for (int i = 0; i < 10; ++i)5190 ;5191 }5192#pragma omp target parallel5193 {5194#pragma omp teams distribute parallel for // expected-error {{region cannot be closely nested inside 'target parallel' region; perhaps you forget to enclose 'omp teams distribute parallel for' directive into a target region?}}5195 for (int i = 0; i < 10; ++i)5196 ;5197 }5198#pragma omp target parallel5199 {5200#pragma omp target teams // expected-error {{region cannot be nested inside 'target parallel' region}}5201 a++;5202 }5203#pragma omp target parallel5204 {5205#pragma omp target teams distribute // expected-error {{region cannot be nested inside 'target parallel' region}}5206 for (int i = 0; i < 10; ++i)5207 ;5208 }5209#pragma omp target parallel5210 {5211#pragma omp target teams distribute parallel for // expected-error {{region cannot be nested inside 'target parallel' region}}5212 for (int i = 0; i < 10; ++i)5213 ;5214 }5215#pragma omp target parallel5216 {5217#pragma omp target teams distribute parallel for simd // expected-error {{region cannot be nested inside 'target parallel' region}}5218 for (int i = 0; i < 10; ++i)5219 ;5220 }5221#pragma omp target parallel5222 {5223#pragma omp target teams distribute simd // expected-error {{region cannot be nested inside 'target parallel' region}}5224 for (int i = 0; i < 10; ++i)5225 ;5226 }5227 5228// TARGET PARALLEL FOR DIRECTIVE5229#pragma omp target parallel for5230 for (int i = 0; i < 10; ++i) {5231#pragma omp for // expected-error {{region cannot be closely nested inside 'target parallel for' region; perhaps you forget to enclose 'omp for' directive into a parallel region?}}5232 for (int i = 0; i < 10; ++i)5233 ;5234 }5235#pragma omp target parallel for5236 for (int i = 0; i < 10; ++i) {5237#pragma omp simd5238 for (int i = 0; i < 10; ++i)5239 ;5240 }5241#pragma omp target parallel for5242 for (int i = 0; i < 10; ++i) {5243#pragma omp for simd // expected-error {{region cannot be closely nested inside 'target parallel for' region; perhaps you forget to enclose 'omp for simd' directive into a parallel region?}}5244 for (int i = 0; i < 10; ++i)5245 ;5246 }5247#pragma omp target parallel for5248 for (int i = 0; i < 10; ++i) {5249#pragma omp parallel5250 for (int i = 0; i < 10; ++i)5251 ;5252 }5253#pragma omp target parallel for5254 for (int i = 0; i < 10; ++i) {5255#pragma omp sections // expected-error {{region cannot be closely nested inside 'target parallel for' region; perhaps you forget to enclose 'omp sections' directive into a parallel region?}}5256 {5257 bar();5258 }5259 }5260#pragma omp target parallel for5261 for (int i = 0; i < 10; ++i) {5262#pragma omp section // expected-error {{'omp section' directive must be closely nested to a sections region, not a target parallel for region}}5263 {5264 bar();5265 }5266 }5267#pragma omp target parallel for5268 for (int i = 0; i < 10; ++i) {5269#pragma omp single // expected-error {{region cannot be closely nested inside 'target parallel for' region; perhaps you forget to enclose 'omp single' directive into a parallel region?}}5270 {5271 bar();5272 }5273 }5274 5275#pragma omp target parallel for5276 for (int i = 0; i < 10; ++i) {5277#pragma omp master // expected-error {{region cannot be closely nested inside 'target parallel for' region}}5278 {5279 bar();5280 }5281 }5282 5283#pragma omp target parallel for5284 for (int i = 0; i < 10; ++i) {5285#pragma omp critical5286 {5287 bar();5288 }5289 }5290 5291#pragma omp target parallel for5292 for (int i = 0; i < 10; ++i) {5293#pragma omp parallel5294 {5295#pragma omp single // OK5296 {5297 bar();5298 }5299#pragma omp for // OK5300 for (int i = 0; i < 10; ++i)5301 ;5302#pragma omp for simd // OK5303 for (int i = 0; i < 10; ++i)5304 ;5305#pragma omp sections // OK5306 {5307 bar();5308 }5309 }5310 }5311#pragma omp target parallel for5312 for (int i = 0; i < 10; ++i) {5313#pragma omp parallel for5314 for (int i = 0; i < 10; ++i)5315 ;5316 }5317#pragma omp target parallel for5318 for (int i = 0; i < 10; ++i) {5319#pragma omp parallel for simd5320 for (int i = 0; i < 10; ++i)5321 ;5322 }5323#pragma omp target parallel for5324 for (int i = 0; i < 10; ++i) {5325#pragma omp parallel sections5326 {5327 bar();5328 }5329 }5330#pragma omp target parallel for5331 for (int i = 0; i < 10; ++i) {5332#pragma omp task5333 {5334 bar();5335 }5336 }5337#pragma omp target parallel for5338 for (int i = 0; i < 10; ++i) {5339#pragma omp taskyield5340 bar();5341 }5342#pragma omp target parallel for5343 for (int i = 0; i < 10; ++i) {5344#pragma omp barrier // expected-error {{region cannot be closely nested inside 'target parallel for' region}}5345 bar();5346 }5347#pragma omp target parallel for5348 for (int i = 0; i < 10; ++i) {5349#pragma omp taskwait5350 bar();5351 }5352#pragma omp target parallel for5353 for (int i = 0; i < 10; ++i) {5354#pragma omp flush5355 bar();5356 }5357#pragma omp target parallel for5358 for (int i = 0; i < 10; ++i) {5359#pragma omp ordered // expected-error {{region cannot be closely nested inside 'target parallel for' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}5360 bar();5361 }5362#pragma omp target parallel for ordered5363 for (int i = 0; i < 10; ++i) {5364#pragma omp ordered // OK5365 bar();5366 }5367#pragma omp target parallel for5368 for (int i = 0; i < 10; ++i) {5369#pragma omp atomic5370 ++a;5371 }5372#pragma omp target parallel for5373 for (int i = 0; i < 10; ++i) {5374#pragma omp target // expected-error {{region cannot be nested inside 'target parallel for' region}}5375 ++a;5376 }5377#pragma omp target parallel for5378 for (int i = 0; i < 10; ++i) {5379#pragma omp target parallel // expected-error {{region cannot be nested inside 'target parallel for' region}}5380 ++a;5381 }5382#pragma omp target parallel for5383 for (int i = 0; i < 10; ++i) {5384#pragma omp target parallel for // expected-error {{region cannot be nested inside 'target parallel for' region}}5385 for (int i = 0; i < 10; ++i)5386 ;5387 }5388#pragma omp target parallel for5389 for (int i = 0; i < 10; ++i) {5390#pragma omp target enter data map(to: a) // expected-error {{region cannot be nested inside 'target parallel for' region}}5391 ++a;5392 }5393#pragma omp target parallel for5394 for (int i = 0; i < 10; ++i) {5395#pragma omp target exit data map(from: a) // expected-error {{region cannot be nested inside 'target parallel for' region}}5396 ++a;5397 }5398#pragma omp target parallel for5399 for (int i = 0; i < 10; ++i) {5400#pragma omp teams // expected-error {{region cannot be closely nested inside 'target parallel for' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}5401 ++a;5402 }5403#pragma omp target parallel for5404 for (int i = 0; i < 10; ++i) {5405#pragma omp taskloop5406 for (int i = 0; i < 10; ++i)5407 ++a;5408 }5409#pragma omp target parallel for5410 for (int i = 0; i < 10; ++i) {5411#pragma omp distribute // expected-error {{region cannot be closely nested inside 'target parallel for' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}5412 for (int j = 0; j < 10; ++j)5413 ;5414 }5415#pragma omp target parallel for5416 for (int i = 0; i < 10; ++i) {5417#pragma omp target update to(a) // expected-error {{region cannot be nested inside 'target parallel for' region}}5418 }5419#pragma omp target parallel for5420 for (int i = 0; i < 10; ++i) {5421#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'target parallel for' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}5422 for (int j = 0; j < 10; ++j)5423 ;5424 }5425#pragma omp target parallel for5426 for (int i = 0; i < 10; ++i) {5427#pragma omp distribute parallel for simd // expected-error {{region cannot be closely nested inside 'target parallel for' region; perhaps you forget to enclose 'omp distribute parallel for simd' directive into a teams region?}}5428 for (int j = 0; j < 10; ++j)5429 ;5430 }5431#pragma omp target parallel for5432 for (int i = 0; i < 10; ++i) {5433#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'target parallel for' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}5434 for (int j = 0; j < 10; ++j)5435 ;5436 }5437#pragma omp target parallel for5438 for (int i = 0; i < 10; ++i) {5439#pragma omp target simd // expected-error {{region cannot be nested inside 'target parallel for' region}}5440 for (int j = 0; j < 10; ++j)5441 ;5442 }5443#pragma omp target parallel for5444 for (int i = 0; i < 10; ++i) {5445#pragma omp teams distribute // expected-error {{region cannot be closely nested inside 'target parallel for' region; perhaps you forget to enclose 'omp teams distribute' directive into a target region?}}5446 for (int j = 0; j < 10; ++j)5447 ;5448 }5449#pragma omp target parallel for5450 for (int i = 0; i < 10; ++i) {5451#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'target parallel for' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}5452 for (int j = 0; j < 10; ++j)5453 ;5454 }5455#pragma omp target parallel for5456 for (int i = 0; i < 10; ++i) {5457#pragma omp teams distribute parallel for simd // expected-error {{region cannot be closely nested inside 'target parallel for' region; perhaps you forget to enclose 'omp teams distribute parallel for simd' directive into a target region?}}5458 for (int j = 0; j < 10; ++j)5459 ;5460 }5461#pragma omp target parallel for5462 for (int i = 0; i < 10; ++i) {5463#pragma omp teams distribute parallel for // expected-error {{region cannot be closely nested inside 'target parallel for' region; perhaps you forget to enclose 'omp teams distribute parallel for' directive into a target region?}}5464 for (int j = 0; j < 10; ++j)5465 ;5466 }5467#pragma omp target parallel for5468 for (int i = 0; i < 10; ++i) {5469#pragma omp target teams // expected-error {{region cannot be nested inside 'target parallel for' region}}5470 a++;5471 }5472#pragma omp target parallel for5473 for (int i = 0; i < 10; ++i) {5474#pragma omp target teams distribute // expected-error {{region cannot be nested inside 'target parallel for' region}}5475 for (int j = 0; j < 10; ++j)5476 ;5477 }5478#pragma omp target parallel for5479 for (int i = 0; i < 10; ++i) {5480#pragma omp target teams distribute parallel for // expected-error {{region cannot be nested inside 'target parallel for' region}}5481 for (int j = 0; j < 10; ++j)5482 ;5483 }5484#pragma omp target parallel for5485 for (int i = 0; i < 10; ++i) {5486#pragma omp target teams distribute parallel for simd // expected-error {{region cannot be nested inside 'target parallel for' region}}5487 for (int j = 0; j < 10; ++j)5488 ;5489 }5490#pragma omp target parallel for5491 for (int i = 0; i < 10; ++i) {5492#pragma omp target teams distribute simd // expected-error {{region cannot be nested inside 'target parallel for' region}}5493 for (int j = 0; j < 10; ++j)5494 ;5495 }5496 5497// TEAMS DIRECTIVE5498#pragma omp teams // omp45-error {{orphaned 'omp teams' directives are prohibited; perhaps you forget to enclose the directive into a target region?}}5499 bar();5500#pragma omp target5501#pragma omp teams5502#pragma omp parallel5503 bar();5504#pragma omp target5505#pragma omp teams5506#pragma omp for // expected-error {{region cannot be closely nested inside 'teams' region; perhaps you forget to enclose 'omp for' directive into a parallel region?}}5507 for (int i = 0; i < 10; ++i)5508 ;5509#pragma omp target5510#pragma omp teams5511#pragma omp simd // expected-error {{region cannot be closely nested inside 'teams' region; perhaps you forget to enclose 'omp simd' directive into a parallel region?}}5512 for (int i = 0; i < 10; ++i)5513 ;5514#pragma omp target5515#pragma omp teams5516#pragma omp for simd // expected-error {{region cannot be closely nested inside 'teams' region; perhaps you forget to enclose 'omp for simd' directive into a parallel region?}}5517 for (int i = 0; i < 10; ++i)5518 ;5519#pragma omp target5520#pragma omp teams5521#pragma omp sections // expected-error {{region cannot be closely nested inside 'teams' region; perhaps you forget to enclose 'omp sections' directive into a parallel region?}}5522 {5523 bar();5524 }5525#pragma omp target5526#pragma omp teams5527#pragma omp section // expected-error {{'omp section' directive must be closely nested to a sections region, not a teams region}}5528 {5529 bar();5530 }5531#pragma omp target5532#pragma omp teams5533#pragma omp single // expected-error {{region cannot be closely nested inside 'teams' region; perhaps you forget to enclose 'omp single' directive into a parallel region?}}5534 bar();5535 5536#pragma omp target5537#pragma omp teams5538#pragma omp master // expected-error {{region cannot be closely nested inside 'teams' region; perhaps you forget to enclose 'omp master' directive into a parallel region?}}5539 {5540 bar();5541 }5542#pragma omp target5543#pragma omp teams5544#pragma omp critical // expected-error {{region cannot be closely nested inside 'teams' region; perhaps you forget to enclose 'omp critical' directive into a parallel region?}}5545 {5546 bar();5547 }5548#pragma omp target5549#pragma omp teams5550#pragma omp parallel for5551 for (int i = 0; i < 10; ++i)5552 ;5553#pragma omp target5554#pragma omp teams5555#pragma omp parallel for simd5556 for (int i = 0; i < 10; ++i)5557 ;5558#pragma omp target5559#pragma omp teams5560#pragma omp parallel sections5561 {5562 bar();5563 }5564#pragma omp target5565#pragma omp teams5566#pragma omp task // expected-error {{region cannot be closely nested inside 'teams' region; perhaps you forget to enclose 'omp task' directive into a parallel region?}}5567 {5568 bar();5569 }5570#pragma omp target5571#pragma omp teams5572 {5573#pragma omp taskyield // expected-error {{region cannot be closely nested inside 'teams' region; perhaps you forget to enclose 'omp taskyield' directive into a parallel region?}}5574 bar();5575 }5576#pragma omp target5577#pragma omp teams5578 {5579#pragma omp barrier // expected-error {{region cannot be closely nested inside 'teams' region; perhaps you forget to enclose 'omp barrier' directive into a parallel region?}}5580 bar();5581 }5582#pragma omp target5583#pragma omp teams5584 {5585#pragma omp scan // expected-error {{region cannot be closely nested inside 'teams' region; perhaps you forget to enclose 'omp scan' directive into a for, simd, for simd, parallel for, or parallel for simd region?}}5586 bar();5587 }5588#pragma omp target5589#pragma omp teams5590 {5591#pragma omp taskwait // expected-error {{region cannot be closely nested inside 'teams' region; perhaps you forget to enclose 'omp taskwait' directive into a parallel region?}}5592 bar();5593 }5594#pragma omp target5595#pragma omp teams5596 {5597#pragma omp flush // expected-error {{region cannot be closely nested inside 'teams' region; perhaps you forget to enclose 'omp flush' directive into a parallel region?}}5598 bar();5599 }5600#pragma omp target5601#pragma omp teams5602 {5603#pragma omp ordered // expected-error {{region cannot be closely nested inside 'teams' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}5604 bar();5605 }5606#pragma omp target5607#pragma omp teams5608 {5609#pragma omp atomic // omp-error {{region cannot be closely nested inside 'teams' region; perhaps you forget to enclose 'omp atomic' directive into a parallel region?}}5610 ++a;5611 }5612#pragma omp target5613#pragma omp teams5614 {5615#pragma omp target // expected-error {{region cannot be nested inside 'target' region}}5616 ++a;5617 }5618#pragma omp target5619#pragma omp teams5620 {5621#pragma omp target parallel // expected-error {{region cannot be nested inside 'target' region}}5622 ++a;5623 }5624#pragma omp target5625#pragma omp teams5626#pragma omp target parallel for // expected-error {{region cannot be nested inside 'target' region}}5627 for (int i = 0; i < 10; ++i)5628 ;5629#pragma omp target5630#pragma omp teams5631 {5632#pragma omp target enter data map(to: a) // expected-error {{region cannot be nested inside 'target' region}}5633 ++a;5634 }5635#pragma omp target5636#pragma omp teams5637 {5638#pragma omp target exit data map(from: a) // expected-error {{region cannot be nested inside 'target' region}}5639 ++a;5640 }5641#pragma omp target5642#pragma omp teams5643 {5644#pragma omp teams // expected-error {{region cannot be closely nested inside 'teams' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}5645 ++a;5646 }5647#pragma omp target5648#pragma omp teams5649 {5650#pragma omp taskloop // expected-error {{region cannot be closely nested inside 'teams' region; perhaps you forget to enclose 'omp taskloop' directive into a parallel region?}}5651 for (int i = 0; i < 10; ++i)5652 ++a;5653 }5654#pragma omp target5655#pragma omp teams5656#pragma omp distribute5657 for (int i = 0; i < 10; ++i)5658 ;5659#pragma omp target5660#pragma omp teams5661#pragma omp distribute5662 for (int i = 0; i < 10; ++i)5663 ;5664#pragma omp distribute5665 for (int j = 0; j < 10; ++j)5666 ;5667#pragma omp target5668#pragma omp teams5669 {5670#pragma omp target update to(a) // expected-error {{region cannot be nested inside 'target' region}}5671 }5672#pragma omp target5673#pragma omp teams5674 {5675#pragma omp distribute parallel for5676 for (int i = 0; i < 10; ++i)5677 ;5678#pragma omp distribute parallel for5679 for (int j = 0; j < 10; ++j)5680 ;5681 }5682#pragma omp target5683#pragma omp teams5684 {5685#pragma omp distribute parallel for simd5686 for (int i = 0; i < 10; ++i)5687 ;5688#pragma omp distribute parallel for simd5689 for (int j = 0; j < 10; ++j)5690 ;5691 }5692#pragma omp target5693#pragma omp teams5694 {5695#pragma omp distribute simd5696 for (int i = 0; i < 10; ++i)5697 ;5698#pragma omp distribute simd5699 for (int j = 0; j < 10; ++j)5700 ;5701 }5702#pragma omp target5703#pragma omp teams5704 {5705#pragma omp target simd // expected-error {{region cannot be nested inside 'target' region}}5706 for (int i = 0; i < 10; ++i)5707 ;5708 }5709#pragma omp target5710#pragma omp teams5711 {5712#pragma omp teams distribute // expected-error {{region cannot be closely nested inside 'teams' region; perhaps you forget to enclose 'omp teams distribute' directive into a target region?}}5713 for (int i = 0; i < 10; ++i)5714 ;5715 }5716#pragma omp target5717#pragma omp teams5718 {5719#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'teams' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}5720 for (int i = 0; i < 10; ++i)5721 ;5722 }5723#pragma omp target5724#pragma omp teams5725 {5726#pragma omp teams distribute parallel for simd // expected-error {{region cannot be closely nested inside 'teams' region; perhaps you forget to enclose 'omp teams distribute parallel for simd' directive into a target region?}}5727 for (int i = 0; i < 10; ++i)5728 ;5729 }5730#pragma omp target5731#pragma omp teams5732 {5733#pragma omp teams distribute parallel for // expected-error {{region cannot be closely nested inside 'teams' region; perhaps you forget to enclose 'omp teams distribute parallel for' directive into a target region?}}5734 for (int i = 0; i < 10; ++i)5735 ;5736 }5737#pragma omp target5738#pragma omp teams5739 {5740#pragma omp target teams // expected-error {{region cannot be nested inside 'target' region}}5741 a++;5742 }5743#pragma omp target5744#pragma omp teams5745 {5746#pragma omp target teams distribute // expected-error {{region cannot be nested inside 'target' region}}5747 for (int i = 0; i < 10; ++i)5748 ;5749 }5750#pragma omp target5751#pragma omp teams5752 {5753#pragma omp target teams distribute parallel for // expected-error {{region cannot be nested inside 'target' region}}5754 for (int i = 0; i < 10; ++i)5755 ;5756 }5757#pragma omp target5758#pragma omp teams5759 {5760#pragma omp target teams distribute parallel for simd // expected-error {{region cannot be nested inside 'target' region}}5761 for (int i = 0; i < 10; ++i)5762 ;5763 }5764#pragma omp target5765#pragma omp teams5766 {5767#pragma omp target teams distribute simd // expected-error {{region cannot be nested inside 'target' region}}5768 for (int i = 0; i < 10; ++i)5769 ;5770 }5771 5772// TASKLOOP DIRECTIVE5773#pragma omp taskloop5774 for (int i = 0; i < 10; ++i) {5775#pragma omp for // expected-error {{region cannot be closely nested inside 'taskloop' region; perhaps you forget to enclose 'omp for' directive into a parallel region?}}5776 for (int i = 0; i < 10; ++i)5777 ;5778 }5779#pragma omp taskloop5780 for (int i = 0; i < 10; ++i) {5781#pragma omp simd5782 for (int i = 0; i < 10; ++i)5783 ;5784 }5785#pragma omp taskloop5786 for (int i = 0; i < 10; ++i) {5787#pragma omp for simd // expected-error {{region cannot be closely nested inside 'taskloop' region; perhaps you forget to enclose 'omp for simd' directive into a parallel region?}}5788 for (int i = 0; i < 10; ++i)5789 ;5790 }5791#pragma omp taskloop5792 for (int i = 0; i < 10; ++i) {5793#pragma omp parallel5794 for (int i = 0; i < 10; ++i)5795 ;5796 }5797#pragma omp taskloop5798 for (int i = 0; i < 10; ++i) {5799#pragma omp sections // expected-error {{region cannot be closely nested inside 'taskloop' region; perhaps you forget to enclose 'omp sections' directive into a parallel region?}}5800 {5801 bar();5802 }5803 }5804#pragma omp taskloop5805 for (int i = 0; i < 10; ++i) {5806#pragma omp section // expected-error {{'omp section' directive must be closely nested to a sections region, not a taskloop region}}5807 {5808 bar();5809 }5810 }5811#pragma omp taskloop5812 for (int i = 0; i < 10; ++i) {5813#pragma omp single // expected-error {{region cannot be closely nested inside 'taskloop' region; perhaps you forget to enclose 'omp single' directive into a parallel region?}}5814 {5815 bar();5816 }5817 }5818 5819#pragma omp taskloop5820 for (int i = 0; i < 10; ++i) {5821#pragma omp master // expected-error {{region cannot be closely nested inside 'taskloop' region}}5822 {5823 bar();5824 }5825 }5826#pragma omp taskloop5827 for (int i = 0; i < 10; ++i) {5828#pragma omp critical5829 {5830 bar();5831 }5832 }5833#pragma omp taskloop5834 for (int i = 0; i < 10; ++i) {5835#pragma omp parallel5836 {5837#pragma omp single // OK5838 {5839 bar();5840 }5841#pragma omp for // OK5842 for (int i = 0; i < 10; ++i)5843 ;5844#pragma omp sections // OK5845 {5846 bar();5847 }5848 }5849 }5850#pragma omp taskloop5851 for (int i = 0; i < 10; ++i) {5852#pragma omp parallel for5853 for (int i = 0; i < 10; ++i)5854 ;5855 }5856#pragma omp taskloop5857 for (int i = 0; i < 10; ++i) {5858#pragma omp parallel for simd5859 for (int i = 0; i < 10; ++i)5860 ;5861 }5862#pragma omp taskloop5863 for (int i = 0; i < 10; ++i) {5864#pragma omp parallel sections5865 {5866 bar();5867 }5868 }5869#pragma omp taskloop5870 for (int i = 0; i < 10; ++i) {5871#pragma omp task5872 {5873 bar();5874 }5875 }5876#pragma omp taskloop5877 for (int i = 0; i < 10; ++i) {5878#pragma omp taskyield5879 bar();5880 }5881#pragma omp taskloop5882 for (int i = 0; i < 10; ++i) {5883#pragma omp barrier // expected-error {{region cannot be closely nested inside 'taskloop' region}}5884 bar();5885 }5886#pragma omp taskloop5887 for (int i = 0; i < 10; ++i) {5888#pragma omp scan // expected-error {{region cannot be closely nested inside 'taskloop' region}}5889 bar();5890 }5891#pragma omp taskloop5892 for (int i = 0; i < 10; ++i) {5893#pragma omp taskwait5894 bar();5895 }5896#pragma omp taskloop5897 for (int i = 0; i < 10; ++i) {5898#pragma omp flush5899 bar();5900 }5901#pragma omp taskloop5902 for (int i = 0; i < 10; ++i) {5903#pragma omp ordered // expected-error {{region cannot be closely nested inside 'taskloop' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}5904 bar();5905 }5906#pragma omp taskloop5907 for (int i = 0; i < 10; ++i) {5908#pragma omp atomic5909 ++a;5910 }5911#pragma omp taskloop5912 for (int i = 0; i < 10; ++i) {5913#pragma omp target5914 ++a;5915 }5916#pragma omp taskloop5917 for (int i = 0; i < 10; ++i) {5918#pragma omp target parallel5919 ++a;5920 }5921#pragma omp taskloop5922 for (int i = 0; i < 10; ++i) {5923#pragma omp target parallel for5924 for (int i = 0; i < 10; ++i)5925 ;5926 }5927#pragma omp taskloop5928 for (int i = 0; i < 10; ++i) {5929#pragma omp target enter data map(to: a)5930 ++a;5931 }5932#pragma omp taskloop5933 for (int i = 0; i < 10; ++i) {5934#pragma omp target exit data map(from: a)5935 ++a;5936 }5937#pragma omp taskloop5938 for (int i = 0; i < 10; ++i) {5939#pragma omp teams // expected-error {{region cannot be closely nested inside 'taskloop' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}5940 ++a;5941 }5942#pragma omp taskloop5943 for (int i = 0; i < 10; ++i) {5944#pragma omp taskloop5945 for (int i = 0; i < 10; ++i)5946 ++a;5947 }5948#pragma omp taskloop5949 for (int i = 0; i < 10; ++i) {5950#pragma omp target update to(a)5951 bar();5952 }5953#pragma omp taskloop5954 for (int i = 0; i < 10; ++i) {5955#pragma omp distribute // expected-error {{region cannot be closely nested inside 'taskloop' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}5956 for (int j = 0; j < 10; ++j)5957 ++a;5958 }5959#pragma omp taskloop5960 for (int i = 0; i < 10; ++i) {5961#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'taskloop' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}5962 for (int j = 0; j < 10; ++j)5963 ++a;5964 }5965#pragma omp taskloop5966 for (int i = 0; i < 10; ++i) {5967#pragma omp distribute parallel for simd // expected-error {{region cannot be closely nested inside 'taskloop' region; perhaps you forget to enclose 'omp distribute parallel for simd' directive into a teams region?}}5968 for (int j = 0; j < 10; ++j)5969 ++a;5970 }5971#pragma omp taskloop5972 for (int i = 0; i < 10; ++i) {5973#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'taskloop' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}5974 for (int j = 0; j < 10; ++j)5975 ++a;5976 }5977#pragma omp taskloop5978 for (int i = 0; i < 10; ++i) {5979#pragma omp target simd // OK5980 for (int j = 0; j < 10; ++j)5981 ++a;5982 }5983#pragma omp taskloop5984 for (int i = 0; i < 10; ++i) {5985#pragma omp teams distribute // expected-error {{region cannot be closely nested inside 'taskloop' region; perhaps you forget to enclose 'omp teams distribute' directive into a target region?}}5986 for (int j = 0; j < 10; ++j)5987 ++a;5988 }5989#pragma omp taskloop5990 for (int i = 0; i < 10; ++i) {5991#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'taskloop' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}5992 for (int j = 0; j < 10; ++j)5993 ++a;5994 }5995#pragma omp taskloop5996 for (int i = 0; i < 10; ++i) {5997#pragma omp teams distribute parallel for simd // expected-error {{region cannot be closely nested inside 'taskloop' region; perhaps you forget to enclose 'omp teams distribute parallel for simd' directive into a target region?}}5998 for (int j = 0; j < 10; ++j)5999 ++a;6000 }6001#pragma omp taskloop6002 for (int i = 0; i < 10; ++i) {6003#pragma omp teams distribute parallel for // expected-error {{region cannot be closely nested inside 'taskloop' region; perhaps you forget to enclose 'omp teams distribute parallel for' directive into a target region?}}6004 for (int j = 0; j < 10; ++j)6005 ++a;6006 }6007#pragma omp taskloop6008 for (int i = 0; i < 10; ++i) {6009#pragma omp target teams // OK6010 ++a;6011 }6012#pragma omp taskloop6013 for (int i = 0; i < 10; ++i) {6014#pragma omp target teams distribute // OK6015 for (int j = 0; j < 10; ++j)6016 ++a;6017 }6018#pragma omp taskloop6019 for (int i = 0; i < 10; ++i) {6020#pragma omp target teams distribute parallel for // OK6021 for (int j = 0; j < 10; ++j)6022 ++a;6023 }6024#pragma omp taskloop6025 for (int i = 0; i < 10; ++i) {6026#pragma omp target teams distribute parallel for simd // OK6027 for (int j = 0; j < 10; ++j)6028 ++a;6029 }6030#pragma omp taskloop6031 for (int i = 0; i < 10; ++i) {6032#pragma omp target teams distribute simd // OK6033 for (int j = 0; j < 10; ++j)6034 ++a;6035 }6036#pragma omp taskloop6037 for (int i = 0; i < 10; ++i) {6038#pragma omp cancel taskgroup // omp45-error {{region cannot be closely nested inside 'taskloop' region}}6039#pragma omp cancellation point taskgroup // omp45-error {{region cannot be closely nested inside 'taskloop' region}}6040 }6041#pragma omp taskloop6042 for (int i = 0; i < 10; ++i) {6043#pragma omp cancel parallel // expected-error {{region cannot be closely nested inside 'taskloop' region}}6044#pragma omp cancellation point parallel // expected-error {{region cannot be closely nested inside 'taskloop' region}}6045 }6046#pragma omp master taskloop6047 for (int i = 0; i < 10; ++i) {6048#pragma omp cancel taskgroup // omp45-error {{region cannot be closely nested inside 'master taskloop' region}}6049#pragma omp cancellation point taskgroup // omp45-error {{region cannot be closely nested inside 'master taskloop' region}}6050 }6051#pragma omp master taskloop6052 for (int i = 0; i < 10; ++i) {6053#pragma omp cancel parallel // expected-error {{region cannot be closely nested inside 'master taskloop' region}}6054#pragma omp cancellation point parallel // expected-error {{region cannot be closely nested inside 'master taskloop' region}}6055 }6056#pragma omp parallel master taskloop6057 for (int i = 0; i < 10; ++i) {6058#pragma omp cancel taskgroup // omp45-error {{region cannot be closely nested inside 'parallel master taskloop' region}}6059#pragma omp cancellation point taskgroup // omp45-error {{region cannot be closely nested inside 'parallel master taskloop' region}}6060 }6061#pragma omp parallel master taskloop6062 for (int i = 0; i < 10; ++i) {6063#pragma omp cancel parallel // expected-error {{region cannot be closely nested inside 'parallel master taskloop' region}}6064#pragma omp cancellation point parallel // expected-error {{region cannot be closely nested inside 'parallel master taskloop' region}}6065 }6066 6067// DISTRIBUTE DIRECTIVE6068#pragma omp target6069#pragma omp teams6070#pragma omp distribute6071 for (int i = 0; i < 10; ++i) {6072#pragma omp distribute // expected-error {{region cannot be closely nested inside 'distribute' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}6073 for (int i = 0; i < 10; ++i)6074 ;6075 }6076#pragma omp target6077#pragma omp teams6078#pragma omp distribute6079 for (int i = 0; i < 10; ++i) {6080#pragma omp for6081 for (int i = 0; i < 10; ++i)6082 ;6083 }6084#pragma omp target6085#pragma omp teams6086#pragma omp distribute6087 for (int i = 0; i < 10; ++i) {6088#pragma omp simd6089 for (int i = 0; i < 10; ++i)6090 ;6091 }6092#pragma omp target6093#pragma omp teams6094#pragma omp distribute6095 for (int i = 0; i < 10; ++i) {6096#pragma omp for simd6097 for (int i = 0; i < 10; ++i)6098 ;6099 }6100#pragma omp target6101#pragma omp teams6102#pragma omp distribute6103 for (int i = 0; i < 10; ++i) {6104#pragma omp parallel6105 for (int i = 0; i < 10; ++i)6106 ;6107 }6108#pragma omp target6109#pragma omp teams6110#pragma omp distribute6111 for (int i = 0; i < 10; ++i) {6112#pragma omp sections6113 {6114 bar();6115 }6116 }6117#pragma omp target6118#pragma omp teams6119#pragma omp distribute6120 for (int i = 0; i < 10; ++i) {6121#pragma omp section // expected-error {{'omp section' directive must be closely nested to a sections region, not a distribute region}}6122 {6123 bar();6124 }6125 }6126#pragma omp target6127#pragma omp teams6128#pragma omp distribute6129 for (int i = 0; i < 10; ++i) {6130#pragma omp single6131 {6132 bar();6133 }6134 }6135#pragma omp target6136#pragma omp teams6137#pragma omp distribute6138 for (int i = 0; i < 10; ++i) {6139#pragma omp master6140 {6141 bar();6142 }6143 }6144#pragma omp target6145#pragma omp teams6146#pragma omp distribute6147 for (int i = 0; i < 10; ++i) {6148#pragma omp critical6149 {6150 bar();6151 }6152 }6153#pragma omp target6154#pragma omp teams6155#pragma omp distribute6156 for (int i = 0; i < 10; ++i) {6157#pragma omp parallel6158 {6159#pragma omp single6160 {6161 bar();6162 }6163 }6164 }6165#pragma omp target6166#pragma omp teams6167#pragma omp distribute6168 for (int i = 0; i < 10; ++i) {6169#pragma omp parallel for6170 for (int i = 0; i < 10; ++i)6171 ;6172 }6173#pragma omp target6174#pragma omp teams6175#pragma omp distribute6176 for (int i = 0; i < 10; ++i) {6177#pragma omp parallel for simd6178 for (int i = 0; i < 10; ++i)6179 ;6180 }6181#pragma omp target6182#pragma omp teams6183#pragma omp distribute6184 for (int i = 0; i < 10; ++i) {6185#pragma omp parallel sections6186 {6187 bar();6188 }6189 }6190#pragma omp target6191#pragma omp teams6192#pragma omp distribute6193 for (int i = 0; i < 10; ++i) {6194#pragma omp task6195 {6196 bar();6197 }6198 }6199#pragma omp target6200#pragma omp teams6201#pragma omp distribute6202 for (int i = 0; i < 10; ++i) {6203#pragma omp taskyield6204 bar();6205 }6206#pragma omp target6207#pragma omp teams6208#pragma omp distribute6209 for (int i = 0; i < 10; ++i) {6210#pragma omp barrier6211 bar();6212 }6213#pragma omp target6214#pragma omp teams6215#pragma omp distribute6216 for (int i = 0; i < 10; ++i) {6217#pragma omp scan // expected-error {{region cannot be closely nested inside 'distribute' region; perhaps you forget to enclose 'omp scan' directive into a for, simd, for simd, parallel for, or parallel for simd region?}}6218 bar();6219 }6220#pragma omp target6221#pragma omp teams6222#pragma omp distribute6223 for (int i = 0; i < 10; ++i) {6224#pragma omp taskwait6225 bar();6226 }6227#pragma omp target6228#pragma omp teams6229#pragma omp distribute6230 for (int i = 0; i < 10; ++i) {6231#pragma omp flush6232 bar();6233 }6234#pragma omp target6235#pragma omp teams6236#pragma omp distribute6237 for (int i = 0; i < 10; ++i) {6238#pragma omp ordered // expected-error {{region cannot be closely nested inside 'distribute' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}6239 bar();6240 }6241#pragma omp target6242#pragma omp teams6243#pragma omp distribute6244 for (int i = 0; i < 10; ++i) {6245#pragma omp atomic6246 ++a;6247 }6248#pragma omp target6249#pragma omp teams6250#pragma omp distribute6251 for (int i = 0; i < 10; ++i) {6252#pragma omp target // expected-error {{region cannot be nested inside 'target' region}}6253 ++a;6254 }6255#pragma omp target6256#pragma omp teams6257#pragma omp distribute6258 for (int i = 0; i < 10; ++i) {6259#pragma omp target parallel // expected-error {{region cannot be nested inside 'target' region}}6260 ++a;6261 }6262#pragma omp target6263#pragma omp teams6264#pragma omp distribute6265 for (int i = 0; i < 10; ++i) {6266#pragma omp target parallel for // expected-error {{region cannot be nested inside 'target' region}}6267 for (int i = 0; i < 10; ++i)6268 ;6269 }6270#pragma omp target6271#pragma omp teams6272#pragma omp distribute6273 for (int i = 0; i < 10; ++i) {6274#pragma omp target enter data map(to: a) // expected-error {{region cannot be nested inside 'target' region}}6275 ++a;6276 }6277#pragma omp target6278#pragma omp teams6279#pragma omp distribute6280 for (int i = 0; i < 10; ++i) {6281#pragma omp target exit data map(from: a) // expected-error {{region cannot be nested inside 'target' region}}6282 ++a;6283 }6284#pragma omp target6285#pragma omp teams6286#pragma omp distribute6287 for (int i = 0; i < 10; ++i) {6288#pragma omp teams // expected-error {{region cannot be closely nested inside 'distribute' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}6289 ++a;6290 }6291#pragma omp target6292#pragma omp teams6293#pragma omp distribute6294 for (int i = 0; i < 10; ++i) {6295#pragma omp target update to(a) // expected-error {{region cannot be nested inside 'target' region}}6296 ++a;6297 }6298#pragma omp target6299#pragma omp teams6300#pragma omp distribute6301 for (int i = 0; i < 10; ++i) {6302#pragma omp target simd // expected-error {{region cannot be nested inside 'target' region}}6303 for (int j = 0; j < 10; ++j)6304 ;6305 }6306#pragma omp target6307#pragma omp teams6308#pragma omp distribute6309 for (int i = 0; i < 10; ++i) {6310#pragma omp teams distribute // expected-error {{region cannot be closely nested inside 'distribute' region; perhaps you forget to enclose 'omp teams distribute' directive into a target region?}}6311 for (int j = 0; j < 10; ++j)6312 ;6313 }6314#pragma omp target6315#pragma omp teams6316#pragma omp distribute6317 for (int i = 0; i < 10; ++i) {6318#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'distribute' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}6319 for (int j = 0; j < 10; ++j)6320 ;6321 }6322#pragma omp target6323#pragma omp teams6324#pragma omp distribute6325 for (int i = 0; i < 10; ++i) {6326#pragma omp teams distribute parallel for simd // expected-error {{region cannot be closely nested inside 'distribute' region; perhaps you forget to enclose 'omp teams distribute parallel for simd' directive into a target region?}}6327 for (int j = 0; j < 10; ++j)6328 ;6329 }6330#pragma omp target6331#pragma omp teams6332#pragma omp distribute6333 for (int i = 0; i < 10; ++i) {6334#pragma omp teams distribute parallel for // expected-error {{region cannot be closely nested inside 'distribute' region; perhaps you forget to enclose 'omp teams distribute parallel for' directive into a target region?}}6335 for (int j = 0; j < 10; ++j)6336 ;6337 }6338#pragma omp target6339#pragma omp teams6340#pragma omp distribute6341 for (int i = 0; i < 10; ++i) {6342#pragma omp target teams // expected-error {{region cannot be nested inside 'target' region}}6343 a++;6344 }6345#pragma omp target6346#pragma omp teams6347#pragma omp distribute6348 for (int i = 0; i < 10; ++i) {6349#pragma omp target teams distribute // expected-error {{region cannot be nested inside 'target' region}}6350 for (int j = 0; j < 10; ++j)6351 ;6352 }6353#pragma omp target6354#pragma omp teams6355#pragma omp distribute6356 for (int i = 0; i < 10; ++i) {6357#pragma omp target teams distribute parallel for // expected-error {{region cannot be nested inside 'target' region}}6358 for (int j = 0; j < 10; ++j)6359 ;6360 }6361#pragma omp target6362#pragma omp teams6363#pragma omp distribute6364 for (int i = 0; i < 10; ++i) {6365#pragma omp target teams distribute parallel for simd // expected-error {{region cannot be nested inside 'target' region}}6366 for (int j = 0; j < 10; ++j)6367 ;6368 }6369#pragma omp target6370#pragma omp teams6371#pragma omp distribute6372 for (int i = 0; i < 10; ++i) {6373#pragma omp target teams distribute simd // expected-error {{region cannot be nested inside 'target' region}}6374 for (int j = 0; j < 10; ++j)6375 ;6376 }6377 6378// DISTRIBUTE PARALLEL FOR DIRECTIVE6379#pragma omp target6380#pragma omp teams6381#pragma omp distribute parallel for6382 for (int i = 0; i < 10; ++i) {6383#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'distribute parallel for' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}6384 for (int i = 0; i < 10; ++i)6385 ;6386 }6387#pragma omp target6388#pragma omp teams6389#pragma omp distribute parallel for6390 for (int i = 0; i < 10; ++i) {6391#pragma omp distribute // expected-error {{region cannot be closely nested inside 'distribute parallel for' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}6392 for (int i = 0; i < 10; ++i)6393 ;6394 }6395#pragma omp target6396#pragma omp teams6397#pragma omp distribute parallel for6398 for (int i = 0; i < 10; ++i) {6399#pragma omp for // expected-error {{region cannot be closely nested inside 'distribute parallel for' region; perhaps you forget to enclose 'omp for' directive into a parallel region?}}6400 for (int i = 0; i < 10; ++i)6401 ;6402 }6403#pragma omp target6404#pragma omp teams6405#pragma omp distribute parallel for6406 for (int i = 0; i < 10; ++i) {6407#pragma omp simd6408 for (int i = 0; i < 10; ++i)6409 ;6410 }6411#pragma omp target6412#pragma omp teams6413#pragma omp distribute parallel for6414 for (int i = 0; i < 10; ++i) {6415#pragma omp for simd // expected-error {{region cannot be closely nested inside 'distribute parallel for' region; perhaps you forget to enclose 'omp for simd' directive into a parallel region?}}6416 for (int i = 0; i < 10; ++i)6417 ;6418 }6419#pragma omp target6420#pragma omp teams6421#pragma omp distribute parallel for6422 for (int i = 0; i < 10; ++i) {6423#pragma omp parallel6424 for (int i = 0; i < 10; ++i)6425 ;6426 }6427#pragma omp target6428#pragma omp teams6429#pragma omp distribute parallel for6430 for (int i = 0; i < 10; ++i) {6431#pragma omp sections // expected-error {{region cannot be closely nested inside 'distribute parallel for' region; perhaps you forget to enclose 'omp sections' directive into a parallel region?}}6432 {6433 bar();6434 }6435 }6436#pragma omp target6437#pragma omp teams6438#pragma omp distribute parallel for6439 for (int i = 0; i < 10; ++i) {6440#pragma omp section // expected-error {{'omp section' directive must be closely nested to a sections region, not a distribute parallel for region}}6441 {6442 bar();6443 }6444 }6445#pragma omp target6446#pragma omp teams6447#pragma omp distribute parallel for6448 for (int i = 0; i < 10; ++i) {6449#pragma omp single // expected-error {{region cannot be closely nested inside 'distribute parallel for' region; perhaps you forget to enclose 'omp single' directive into a parallel region?}}6450 {6451 bar();6452 }6453 }6454#pragma omp target6455#pragma omp teams6456#pragma omp distribute parallel for6457 for (int i = 0; i < 10; ++i) {6458#pragma omp master // expected-error {{region cannot be closely nested inside 'distribute parallel for' region}}6459 {6460 bar();6461 }6462 }6463#pragma omp target6464#pragma omp teams6465#pragma omp distribute parallel for6466 for (int i = 0; i < 10; ++i) {6467#pragma omp critical6468 {6469 bar();6470 }6471 }6472#pragma omp target6473#pragma omp teams6474#pragma omp distribute parallel for6475 for (int i = 0; i < 10; ++i) {6476#pragma omp parallel6477 {6478#pragma omp single6479 {6480 bar();6481 }6482 }6483 }6484#pragma omp target6485#pragma omp teams6486#pragma omp distribute parallel for6487 for (int i = 0; i < 10; ++i) {6488#pragma omp parallel for6489 for (int i = 0; i < 10; ++i)6490 ;6491 }6492#pragma omp target6493#pragma omp teams6494#pragma omp distribute parallel for6495 for (int i = 0; i < 10; ++i) {6496#pragma omp parallel for simd6497 for (int i = 0; i < 10; ++i)6498 ;6499 }6500#pragma omp target6501#pragma omp teams6502#pragma omp distribute parallel for6503 for (int i = 0; i < 10; ++i) {6504#pragma omp parallel sections6505 {6506 bar();6507 }6508 }6509#pragma omp target6510#pragma omp teams6511#pragma omp distribute parallel for6512 for (int i = 0; i < 10; ++i) {6513#pragma omp task6514 {6515 bar();6516 }6517 }6518#pragma omp target6519#pragma omp teams6520#pragma omp distribute parallel for6521 for (int i = 0; i < 10; ++i) {6522#pragma omp taskyield6523 bar();6524 }6525#pragma omp target6526#pragma omp teams6527#pragma omp distribute parallel for6528 for (int i = 0; i < 10; ++i) {6529#pragma omp barrier // expected-error {{region cannot be closely nested inside 'distribute parallel for' region}}6530 bar();6531 }6532#pragma omp target6533#pragma omp teams6534#pragma omp distribute parallel for6535 for (int i = 0; i < 10; ++i) {6536#pragma omp scan // expected-error {{region cannot be closely nested inside 'distribute parallel for' region}}6537 bar();6538 }6539#pragma omp target6540#pragma omp teams6541#pragma omp distribute parallel for6542 for (int i = 0; i < 10; ++i) {6543#pragma omp taskwait6544 bar();6545 }6546#pragma omp target6547#pragma omp teams6548#pragma omp distribute parallel for6549 for (int i = 0; i < 10; ++i) {6550#pragma omp flush6551 bar();6552 }6553#pragma omp target6554#pragma omp teams6555#pragma omp distribute parallel for6556 for (int i = 0; i < 10; ++i) {6557#pragma omp ordered // expected-error {{region cannot be closely nested inside 'distribute parallel for' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}6558 bar();6559 }6560#pragma omp target6561#pragma omp teams6562#pragma omp distribute parallel for6563 for (int i = 0; i < 10; ++i) {6564#pragma omp atomic6565 ++a;6566 }6567#pragma omp target6568#pragma omp teams6569#pragma omp distribute parallel for6570 for (int i = 0; i < 10; ++i) {6571#pragma omp target // expected-error {{region cannot be nested inside 'target' region}}6572 ++a;6573 }6574#pragma omp target6575#pragma omp teams6576#pragma omp distribute parallel for6577 for (int i = 0; i < 10; ++i) {6578#pragma omp target parallel // expected-error {{region cannot be nested inside 'target' region}}6579 ++a;6580 }6581#pragma omp target6582#pragma omp teams6583#pragma omp distribute parallel for6584 for (int i = 0; i < 10; ++i) {6585#pragma omp target parallel for // expected-error {{region cannot be nested inside 'target' region}}6586 for (int i = 0; i < 10; ++i)6587 ;6588 }6589#pragma omp target6590#pragma omp teams6591#pragma omp distribute parallel for6592 for (int i = 0; i < 10; ++i) {6593#pragma omp target enter data map(to: a) // expected-error {{region cannot be nested inside 'target' region}}6594 ++a;6595 }6596#pragma omp target6597#pragma omp teams6598#pragma omp distribute parallel for6599 for (int i = 0; i < 10; ++i) {6600#pragma omp target exit data map(from: a) // expected-error {{region cannot be nested inside 'target' region}}6601 ++a;6602 }6603#pragma omp target6604#pragma omp teams6605#pragma omp distribute parallel for6606 for (int i = 0; i < 10; ++i) {6607#pragma omp teams // expected-error {{region cannot be closely nested inside 'distribute parallel for' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}6608 ++a;6609 }6610#pragma omp target6611#pragma omp teams6612#pragma omp distribute parallel for6613 for (int i = 0; i < 10; ++i) {6614#pragma omp target update to(a) // expected-error {{region cannot be nested inside 'target' region}}6615 ++a;6616 }6617#pragma omp target6618#pragma omp teams6619#pragma omp distribute parallel for6620 for (int i = 0; i < 10; ++i) {6621#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'distribute parallel for' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}6622 for (int i = 0; i < 10; ++i)6623 ;6624 }6625#pragma omp target6626#pragma omp teams6627#pragma omp distribute parallel for6628 for (int i = 0; i < 10; ++i) {6629#pragma omp teams distribute // expected-error {{region cannot be closely nested inside 'distribute parallel for' region; perhaps you forget to enclose 'omp teams distribute' directive into a target region?}}6630 for (int i = 0; i < 10; ++i)6631 ;6632 }6633#pragma omp target6634#pragma omp teams6635#pragma omp distribute parallel for6636 for (int i = 0; i < 10; ++i) {6637#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'distribute parallel for' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}6638 for (int i = 0; i < 10; ++i)6639 ;6640 }6641#pragma omp target6642#pragma omp teams6643#pragma omp distribute parallel for6644 for (int i = 0; i < 10; ++i) {6645#pragma omp teams distribute parallel for simd // expected-error {{region cannot be closely nested inside 'distribute parallel for' region; perhaps you forget to enclose 'omp teams distribute parallel for simd' directive into a target region?}}6646 for (int i = 0; i < 10; ++i)6647 ;6648 }6649#pragma omp target6650#pragma omp teams6651#pragma omp distribute parallel for6652 for (int i = 0; i < 10; ++i) {6653#pragma omp teams distribute parallel for // expected-error {{region cannot be closely nested inside 'distribute parallel for' region; perhaps you forget to enclose 'omp teams distribute parallel for' directive into a target region?}}6654 for (int i = 0; i < 10; ++i)6655 ;6656 }6657#pragma omp target6658#pragma omp teams6659#pragma omp distribute parallel for6660 for (int i = 0; i < 10; ++i) {6661#pragma omp target teams // expected-error {{region cannot be nested inside 'target' region}}6662 a++;6663 }6664#pragma omp target6665#pragma omp teams6666#pragma omp distribute parallel for6667 for (int i = 0; i < 10; ++i) {6668#pragma omp target teams distribute // expected-error {{region cannot be nested inside 'target' region}}6669 for (int i = 0; i < 10; ++i)6670 ;6671 }6672#pragma omp target6673#pragma omp teams6674#pragma omp distribute parallel for6675 for (int i = 0; i < 10; ++i) {6676#pragma omp target teams distribute parallel for // expected-error {{region cannot be nested inside 'target' region}}6677 for (int i = 0; i < 10; ++i)6678 ;6679 }6680#pragma omp target6681#pragma omp teams6682#pragma omp distribute parallel for6683 for (int i = 0; i < 10; ++i) {6684#pragma omp target teams distribute parallel for simd // expected-error {{region cannot be nested inside 'target' region}}6685 for (int i = 0; i < 10; ++i)6686 ;6687 }6688#pragma omp target6689#pragma omp teams6690#pragma omp distribute parallel for6691 for (int i = 0; i < 10; ++i) {6692#pragma omp target teams distribute simd // expected-error {{region cannot be nested inside 'target' region}}6693 for (int i = 0; i < 10; ++i)6694 ;6695 }6696 6697// DISTRIBUTE PARALLEL FOR SIMD DIRECTIVE6698#pragma omp target6699#pragma omp teams6700#pragma omp distribute parallel for simd6701 for (int i = 0; i < 10; ++i) {6702#pragma omp distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}6703 for (int i = 0; i < 10; ++i)6704 ;6705 }6706#pragma omp target6707#pragma omp teams6708#pragma omp distribute parallel for simd6709 for (int i = 0; i < 10; ++i) {6710#pragma omp distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}6711 for (int i = 0; i < 10; ++i)6712 ;6713 }6714#pragma omp target6715#pragma omp teams6716#pragma omp distribute parallel for simd6717 for (int i = 0; i < 10; ++i) {6718#pragma omp for // expected-error {{OpenMP constructs may not be nested inside a simd region}}6719 for (int i = 0; i < 10; ++i)6720 ;6721 }6722#pragma omp target6723#pragma omp teams6724#pragma omp distribute parallel for simd6725 for (int i = 0; i < 10; ++i) {6726#pragma omp simd // omp45warn-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}6727 for (int i = 0; i < 10; ++i)6728 ;6729 }6730#pragma omp target6731#pragma omp teams6732#pragma omp distribute parallel for simd6733 for (int i = 0; i < 10; ++i) {6734#pragma omp for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}6735 for (int i = 0; i < 10; ++i)6736 ;6737 }6738#pragma omp target6739#pragma omp teams6740#pragma omp distribute parallel for simd6741 for (int i = 0; i < 10; ++i) {6742#pragma omp parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}6743 for (int i = 0; i < 10; ++i)6744 ;6745 }6746#pragma omp target6747#pragma omp teams6748#pragma omp distribute parallel for simd6749 for (int i = 0; i < 10; ++i) {6750#pragma omp sections // expected-error {{OpenMP constructs may not be nested inside a simd region}}6751 {6752 bar();6753 }6754 }6755#pragma omp target6756#pragma omp teams6757#pragma omp distribute parallel for simd6758 for (int i = 0; i < 10; ++i) {6759#pragma omp section // expected-error {{OpenMP constructs may not be nested inside a simd region}}6760 {6761 bar();6762 }6763 }6764#pragma omp target6765#pragma omp teams6766#pragma omp distribute parallel for simd6767 for (int i = 0; i < 10; ++i) {6768#pragma omp single // expected-error {{OpenMP constructs may not be nested inside a simd region}}6769 {6770 bar();6771 }6772 }6773#pragma omp target6774#pragma omp teams6775#pragma omp distribute parallel for simd6776 for (int i = 0; i < 10; ++i) {6777#pragma omp master // expected-error {{OpenMP constructs may not be nested inside a simd region}}6778 {6779 bar();6780 }6781 }6782#pragma omp target6783#pragma omp teams6784#pragma omp distribute parallel for simd6785 for (int i = 0; i < 10; ++i) {6786#pragma omp critical // expected-error {{OpenMP constructs may not be nested inside a simd region}}6787 {6788 bar();6789 }6790 }6791#pragma omp target6792#pragma omp teams6793#pragma omp distribute parallel for simd6794 for (int i = 0; i < 10; ++i) {6795#pragma omp parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}6796 {6797#pragma omp single6798 {6799 bar();6800 }6801 }6802 }6803#pragma omp target6804#pragma omp teams6805#pragma omp distribute parallel for simd6806 for (int i = 0; i < 10; ++i) {6807#pragma omp parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}6808 for (int i = 0; i < 10; ++i)6809 ;6810 }6811#pragma omp target6812#pragma omp teams6813#pragma omp distribute parallel for simd6814 for (int i = 0; i < 10; ++i) {6815#pragma omp parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}6816 for (int i = 0; i < 10; ++i)6817 ;6818 }6819#pragma omp target6820#pragma omp teams6821#pragma omp distribute parallel for simd6822 for (int i = 0; i < 10; ++i) {6823#pragma omp parallel sections // expected-error {{OpenMP constructs may not be nested inside a simd region}}6824 {6825 bar();6826 }6827 }6828#pragma omp target6829#pragma omp teams6830#pragma omp distribute parallel for simd6831 for (int i = 0; i < 10; ++i) {6832#pragma omp task // expected-error {{OpenMP constructs may not be nested inside a simd region}}6833 {6834 bar();6835 }6836 }6837#pragma omp target6838#pragma omp teams6839#pragma omp distribute parallel for simd6840 for (int i = 0; i < 10; ++i) {6841#pragma omp taskyield // expected-error {{OpenMP constructs may not be nested inside a simd region}}6842 bar();6843 }6844#pragma omp target6845#pragma omp teams6846#pragma omp distribute parallel for simd6847 for (int i = 0; i < 10; ++i) {6848#pragma omp barrier // expected-error {{OpenMP constructs may not be nested inside a simd region}}6849 bar();6850 }6851#pragma omp target6852#pragma omp teams6853#pragma omp distribute parallel for simd6854 for (int i = 0; i < 10; ++i) {6855#pragma omp scan // omp45-error {{OpenMP constructs may not be nested inside a simd region}} omp50-error {{region cannot be closely nested inside 'distribute parallel for simd' region; perhaps you forget to enclose 'omp scan' directive into a for, simd, for simd, parallel for, or parallel for simd region?}} omp51-error {{region cannot be closely nested inside 'distribute parallel for simd' region; perhaps you forget to enclose 'omp scan' directive into a for, simd, for simd, parallel for, or parallel for simd region?}}6856 bar();6857 }6858#pragma omp target6859#pragma omp teams6860#pragma omp distribute parallel for simd6861 for (int i = 0; i < 10; ++i) {6862#pragma omp taskwait // expected-error {{OpenMP constructs may not be nested inside a simd region}}6863 bar();6864 }6865#pragma omp target6866#pragma omp teams6867#pragma omp distribute parallel for simd6868 for (int i = 0; i < 10; ++i) {6869#pragma omp flush // expected-error {{OpenMP constructs may not be nested inside a simd region}}6870 bar();6871 }6872#pragma omp target6873#pragma omp teams6874#pragma omp distribute parallel for simd6875 for (int i = 0; i < 10; ++i) {6876#pragma omp ordered // expected-error {{OpenMP constructs may not be nested inside a simd region}}6877 bar();6878 }6879#pragma omp target6880#pragma omp teams6881#pragma omp distribute parallel for simd6882 for (int i = 0; i < 10; ++i) {6883#pragma omp atomic // omp45-error {{OpenMP constructs may not be nested inside a simd region}}6884 ++a;6885 }6886#pragma omp target6887#pragma omp teams6888#pragma omp distribute parallel for simd6889 for (int i = 0; i < 10; ++i) {6890#pragma omp target // expected-error {{OpenMP constructs may not be nested inside a simd region}}6891 ++a;6892 }6893#pragma omp target6894#pragma omp teams6895#pragma omp distribute parallel for simd6896 for (int i = 0; i < 10; ++i) {6897#pragma omp target parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}6898 ++a;6899 }6900#pragma omp target6901#pragma omp teams6902#pragma omp distribute parallel for simd6903 for (int i = 0; i < 10; ++i) {6904#pragma omp target parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}6905 for (int i = 0; i < 10; ++i)6906 ;6907 }6908#pragma omp target6909#pragma omp teams6910#pragma omp distribute parallel for simd6911 for (int i = 0; i < 10; ++i) {6912#pragma omp target enter data map(to: a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}6913 ++a;6914 }6915#pragma omp target6916#pragma omp teams6917#pragma omp distribute parallel for simd6918 for (int i = 0; i < 10; ++i) {6919#pragma omp target exit data map(from: a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}6920 ++a;6921 }6922#pragma omp target6923#pragma omp teams6924#pragma omp distribute parallel for simd6925 for (int i = 0; i < 10; ++i) {6926#pragma omp teams // expected-error {{OpenMP constructs may not be nested inside a simd region}}6927 ++a;6928 }6929#pragma omp target6930#pragma omp teams6931#pragma omp distribute parallel for simd6932 for (int i = 0; i < 10; ++i) {6933#pragma omp target update to(a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}6934 ++a;6935 }6936#pragma omp target6937#pragma omp teams6938#pragma omp distribute parallel for simd6939 for (int i = 0; i < 10; ++i) {6940#pragma omp distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}6941 for (int i = 0; i < 10; ++i)6942 ++a;6943 }6944#pragma omp target6945#pragma omp teams6946#pragma omp distribute parallel for simd6947 for (int i = 0; i < 10; ++i) {6948#pragma omp target simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}6949 for (int i = 0; i < 10; ++i)6950 ++a;6951 }6952#pragma omp target6953#pragma omp teams6954#pragma omp distribute parallel for simd6955 for (int i = 0; i < 10; ++i) {6956#pragma omp teams distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}6957 for (int i = 0; i < 10; ++i)6958 ++a;6959 }6960#pragma omp target6961#pragma omp teams6962#pragma omp distribute parallel for simd6963 for (int i = 0; i < 10; ++i) {6964#pragma omp teams distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}6965 for (int i = 0; i < 10; ++i)6966 ++a;6967 }6968#pragma omp target6969#pragma omp teams6970#pragma omp distribute parallel for simd6971 for (int i = 0; i < 10; ++i) {6972#pragma omp teams distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}6973 for (int i = 0; i < 10; ++i)6974 ++a;6975 }6976#pragma omp target6977#pragma omp teams6978#pragma omp distribute parallel for simd6979 for (int i = 0; i < 10; ++i) {6980#pragma omp teams distribute parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}6981 for (int i = 0; i < 10; ++i)6982 ++a;6983 }6984#pragma omp target6985#pragma omp teams6986#pragma omp distribute parallel for simd6987 for (int i = 0; i < 10; ++i) {6988#pragma omp target teams // expected-error {{OpenMP constructs may not be nested inside a simd region}}6989 ++a;6990 }6991#pragma omp target6992#pragma omp teams6993#pragma omp distribute parallel for simd6994 for (int i = 0; i < 10; ++i) {6995#pragma omp target teams distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}6996 for (int i = 0; i < 10; ++i)6997 ++a;6998 }6999#pragma omp target7000#pragma omp teams7001#pragma omp distribute parallel for simd7002 for (int i = 0; i < 10; ++i) {7003#pragma omp target teams distribute parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}7004 for (int i = 0; i < 10; ++i)7005 ++a;7006 }7007#pragma omp target7008#pragma omp teams7009#pragma omp distribute parallel for simd7010 for (int i = 0; i < 10; ++i) {7011#pragma omp target teams distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}7012 for (int i = 0; i < 10; ++i)7013 ++a;7014 }7015#pragma omp target7016#pragma omp teams7017#pragma omp distribute parallel for simd7018 for (int i = 0; i < 10; ++i) {7019#pragma omp target teams distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}7020 for (int i = 0; i < 10; ++i)7021 ++a;7022 }7023 7024// TARGET SIMD DIRECTIVE7025#pragma omp target simd7026 for (int i = 0; i < 10; ++i) {7027#pragma omp distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}7028 for (int i = 0; i < 10; ++i)7029 ;7030 }7031#pragma omp target simd7032 for (int i = 0; i < 10; ++i) {7033#pragma omp distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}7034 for (int i = 0; i < 10; ++i)7035 ;7036 }7037#pragma omp target simd7038 for (int i = 0; i < 10; ++i) {7039#pragma omp for // expected-error {{OpenMP constructs may not be nested inside a simd region}}7040 for (int i = 0; i < 10; ++i)7041 ;7042 }7043#pragma omp target simd7044 for (int i = 0; i < 10; ++i) {7045#pragma omp simd // omp45warn-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}7046 for (int i = 0; i < 10; ++i)7047 ;7048 }7049#pragma omp target simd7050 for (int i = 0; i < 10; ++i) {7051#pragma omp for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}7052 for (int i = 0; i < 10; ++i)7053 ;7054 }7055#pragma omp target simd7056 for (int i = 0; i < 10; ++i) {7057#pragma omp parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}7058 for (int i = 0; i < 10; ++i)7059 ;7060 }7061#pragma omp target simd7062 for (int i = 0; i < 10; ++i) {7063#pragma omp sections // expected-error {{OpenMP constructs may not be nested inside a simd region}}7064 {7065 bar();7066 }7067 }7068#pragma omp target simd7069 for (int i = 0; i < 10; ++i) {7070#pragma omp section // expected-error {{OpenMP constructs may not be nested inside a simd region}}7071 {7072 bar();7073 }7074 }7075#pragma omp target simd7076 for (int i = 0; i < 10; ++i) {7077#pragma omp single // expected-error {{OpenMP constructs may not be nested inside a simd region}}7078 {7079 bar();7080 }7081 }7082#pragma omp target simd7083 for (int i = 0; i < 10; ++i) {7084#pragma omp master // expected-error {{OpenMP constructs may not be nested inside a simd region}}7085 {7086 bar();7087 }7088 }7089#pragma omp target simd7090 for (int i = 0; i < 10; ++i) {7091#pragma omp critical // expected-error {{OpenMP constructs may not be nested inside a simd region}}7092 {7093 bar();7094 }7095 }7096#pragma omp target simd7097 for (int i = 0; i < 10; ++i) {7098#pragma omp parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}7099 {7100#pragma omp single7101 {7102 bar();7103 }7104 }7105 }7106#pragma omp target simd7107 for (int i = 0; i < 10; ++i) {7108#pragma omp parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}7109 for (int i = 0; i < 10; ++i)7110 ;7111 }7112#pragma omp target simd7113 for (int i = 0; i < 10; ++i) {7114#pragma omp parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}7115 for (int i = 0; i < 10; ++i)7116 ;7117 }7118#pragma omp target simd7119 for (int i = 0; i < 10; ++i) {7120#pragma omp parallel sections // expected-error {{OpenMP constructs may not be nested inside a simd region}}7121 {7122 bar();7123 }7124 }7125#pragma omp target simd7126 for (int i = 0; i < 10; ++i) {7127#pragma omp task // expected-error {{OpenMP constructs may not be nested inside a simd region}}7128 {7129 bar();7130 }7131 }7132#pragma omp target simd7133 for (int i = 0; i < 10; ++i) {7134#pragma omp taskyield // expected-error {{OpenMP constructs may not be nested inside a simd region}}7135 bar();7136 }7137#pragma omp target simd7138 for (int i = 0; i < 10; ++i) {7139#pragma omp barrier // expected-error {{OpenMP constructs may not be nested inside a simd region}}7140 bar();7141 }7142#pragma omp target simd7143 for (int i = 0; i < 10; ++i) {7144#pragma omp scan // omp45-error {{OpenMP constructs may not be nested inside a simd region}} omp50-error {{exactly one of 'inclusive' or 'exclusive' clauses is expected}} omp51-error {{exactly one of 'inclusive' or 'exclusive' clauses is expected}}7145 bar();7146 }7147#pragma omp target simd7148 for (int i = 0; i < 10; ++i) {7149#pragma omp taskwait // expected-error {{OpenMP constructs may not be nested inside a simd region}}7150 bar();7151 }7152#pragma omp target simd7153 for (int i = 0; i < 10; ++i) {7154#pragma omp flush // expected-error {{OpenMP constructs may not be nested inside a simd region}}7155 bar();7156 }7157#pragma omp target simd7158 for (int i = 0; i < 10; ++i) {7159#pragma omp ordered // expected-error {{OpenMP constructs may not be nested inside a simd region}}7160 bar();7161 }7162#pragma omp target simd7163 for (int i = 0; i < 10; ++i) {7164#pragma omp atomic // omp45-error {{OpenMP constructs may not be nested inside a simd region}}7165 ++a;7166 }7167#pragma omp target simd7168 for (int i = 0; i < 10; ++i) {7169#pragma omp target // expected-error {{OpenMP constructs may not be nested inside a simd region}}7170 ++a;7171 }7172#pragma omp target simd7173 for (int i = 0; i < 10; ++i) {7174#pragma omp target parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}7175 ++a;7176 }7177#pragma omp target simd7178 for (int i = 0; i < 10; ++i) {7179#pragma omp target parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}7180 for (int i = 0; i < 10; ++i)7181 ;7182 }7183#pragma omp target simd7184 for (int i = 0; i < 10; ++i) {7185#pragma omp target enter data map(to: a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}7186 ++a;7187 }7188#pragma omp target simd7189 for (int i = 0; i < 10; ++i) {7190#pragma omp target exit data map(from: a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}7191 ++a;7192 }7193#pragma omp target simd7194 for (int i = 0; i < 10; ++i) {7195#pragma omp teams // expected-error {{OpenMP constructs may not be nested inside a simd region}}7196 ++a;7197 }7198#pragma omp target simd7199 for (int i = 0; i < 10; ++i) {7200#pragma omp target update to(a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}7201 ++a;7202 }7203#pragma omp target simd7204 for (int i = 0; i < 10; ++i) {7205#pragma omp distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}7206 for (int i = 0; i < 10; ++i)7207 ++a;7208 }7209#pragma omp target simd7210 for (int i = 0; i < 10; ++i) {7211#pragma omp target simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}7212 for (int i = 0; i < 10; ++i)7213 ++a;7214 }7215#pragma omp target simd7216 for (int i = 0; i < 10; ++i) {7217#pragma omp teams distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}7218 for (int i = 0; i < 10; ++i)7219 ++a;7220 }7221#pragma omp target simd7222 for (int i = 0; i < 10; ++i) {7223#pragma omp teams distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}7224 for (int i = 0; i < 10; ++i)7225 ++a;7226 }7227#pragma omp target simd7228 for (int i = 0; i < 10; ++i) {7229#pragma omp teams distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}7230 for (int i = 0; i < 10; ++i)7231 ++a;7232 }7233#pragma omp target simd7234 for (int i = 0; i < 10; ++i) {7235#pragma omp target teams distribute parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}7236 for (int i = 0; i < 10; ++i)7237 ++a;7238 }7239#pragma omp target simd7240 for (int i = 0; i < 10; ++i) {7241#pragma omp target teams distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}7242 for (int i = 0; i < 10; ++i)7243 ++a;7244 }7245#pragma omp target simd7246 for (int i = 0; i < 10; ++i) {7247#pragma omp target teams distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}7248 for (int i = 0; i < 10; ++i)7249 ++a;7250 }7251 7252// TEAMS DISTRIBUTE DIRECTIVE7253#pragma omp teams distribute // omp45-error {{orphaned 'omp teams distribute' directives are prohibited; perhaps you forget to enclose the directive into a target region?}}7254 for (int i = 0; i < 10; ++i)7255 ;7256#pragma omp target7257#pragma omp teams distribute7258 for (int i = 0; i < 10; ++i) {7259#pragma omp distribute parallel for simd // expected-error {{region cannot be closely nested inside 'teams distribute' region; perhaps you forget to enclose 'omp distribute parallel for simd' directive into a teams region?}}7260 for (int i = 0; i < 10; ++i)7261 ;7262 }7263#pragma omp target7264#pragma omp teams distribute7265 for (int i = 0; i < 10; ++i) {7266#pragma omp distribute // expected-error {{region cannot be closely nested inside 'teams distribute' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}7267 for (int i = 0; i < 10; ++i)7268 ;7269 }7270#pragma omp target7271#pragma omp teams distribute7272 for (int i = 0; i < 10; ++i) {7273#pragma omp for // OK7274 for (int i = 0; i < 10; ++i)7275 ;7276 }7277#pragma omp target7278#pragma omp teams distribute7279 for (int i = 0; i < 10; ++i) {7280#pragma omp simd // OK7281 for (int i = 0; i < 10; ++i)7282 ;7283 }7284#pragma omp target7285#pragma omp teams distribute7286 for (int i = 0; i < 10; ++i) {7287#pragma omp for simd // OK7288 for (int i = 0; i < 10; ++i)7289 ;7290 }7291#pragma omp target7292#pragma omp teams distribute7293 for (int i = 0; i < 10; ++i) {7294#pragma omp parallel // OK7295 for (int i = 0; i < 10; ++i)7296 ;7297 }7298#pragma omp target7299#pragma omp teams distribute7300 for (int i = 0; i < 10; ++i) {7301#pragma omp sections // OK7302 {7303 bar();7304 }7305 }7306#pragma omp target7307#pragma omp teams distribute7308 for (int i = 0; i < 10; ++i) {7309#pragma omp section // expected-error {{'omp section' directive must be closely nested to a sections region, not a teams distribute region}}7310 {7311 bar();7312 }7313 }7314#pragma omp target7315#pragma omp teams distribute7316 for (int i = 0; i < 10; ++i) {7317#pragma omp single // OK7318 {7319 bar();7320 }7321 }7322#pragma omp target7323#pragma omp teams distribute7324 for (int i = 0; i < 10; ++i) {7325#pragma omp master // OK7326 {7327 bar();7328 }7329 }7330#pragma omp target7331#pragma omp teams distribute7332 for (int i = 0; i < 10; ++i) {7333#pragma omp critical // OK7334 {7335 bar();7336 }7337 }7338#pragma omp target7339#pragma omp teams distribute7340 for (int i = 0; i < 10; ++i) {7341#pragma omp parallel // OK7342 {7343#pragma omp single7344 {7345 bar();7346 }7347 }7348 }7349#pragma omp target7350#pragma omp teams distribute7351 for (int i = 0; i < 10; ++i) {7352#pragma omp parallel for // OK7353 for (int i = 0; i < 10; ++i)7354 ;7355 }7356#pragma omp target7357#pragma omp teams distribute7358 for (int i = 0; i < 10; ++i) {7359#pragma omp parallel for simd // OK7360 for (int i = 0; i < 10; ++i)7361 ;7362 }7363#pragma omp target7364#pragma omp teams distribute7365 for (int i = 0; i < 10; ++i) {7366#pragma omp parallel sections // OK7367 {7368 bar();7369 }7370 }7371#pragma omp target7372#pragma omp teams distribute7373 for (int i = 0; i < 10; ++i) {7374#pragma omp task // OK7375 {7376 bar();7377 }7378 }7379#pragma omp target7380#pragma omp teams distribute7381 for (int i = 0; i < 10; ++i) {7382#pragma omp taskyield // OK7383 bar();7384 }7385#pragma omp target7386#pragma omp teams distribute7387 for (int i = 0; i < 10; ++i) {7388#pragma omp barrier // OK7389 bar();7390 }7391#pragma omp target7392#pragma omp teams distribute7393 for (int i = 0; i < 10; ++i) {7394#pragma omp scan // expected-error {{region cannot be closely nested inside 'teams distribute' region; perhaps you forget to enclose 'omp scan' directive into a for, simd, for simd, parallel for, or parallel for simd region?}}7395 bar();7396 }7397#pragma omp target7398#pragma omp teams distribute7399 for (int i = 0; i < 10; ++i) {7400#pragma omp taskwait // OK7401 bar();7402 }7403#pragma omp target7404#pragma omp teams distribute7405 for (int i = 0; i < 10; ++i) {7406#pragma omp flush // OK7407 bar();7408 }7409#pragma omp target7410#pragma omp teams distribute7411 for (int i = 0; i < 10; ++i) {7412#pragma omp ordered // expected-error {{region cannot be closely nested inside 'teams distribute' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}7413 bar();7414 }7415#pragma omp target7416#pragma omp teams distribute7417 for (int i = 0; i < 10; ++i) {7418#pragma omp atomic // OK7419 ++a;7420 }7421#pragma omp target7422#pragma omp teams distribute7423 for (int i = 0; i < 10; ++i) {7424#pragma omp target // expected-error {{region cannot be nested inside 'target' region}}7425 ++a;7426 }7427#pragma omp target7428#pragma omp teams distribute7429 for (int i = 0; i < 10; ++i) {7430#pragma omp target parallel // expected-error {{region cannot be nested inside 'target' region}}7431 ++a;7432 }7433#pragma omp target7434#pragma omp teams distribute7435 for (int i = 0; i < 10; ++i) {7436#pragma omp target parallel for // expected-error {{region cannot be nested inside 'target' region}}7437 for (int i = 0; i < 10; ++i)7438 ;7439 }7440#pragma omp target7441#pragma omp teams distribute7442 for (int i = 0; i < 10; ++i) {7443#pragma omp target enter data map(to: a) // expected-error {{region cannot be nested inside 'target' region}}7444 ++a;7445 }7446#pragma omp target7447#pragma omp teams distribute7448 for (int i = 0; i < 10; ++i) {7449#pragma omp target exit data map(from: a) // expected-error {{region cannot be nested inside 'target' region}}7450 ++a;7451 }7452#pragma omp target7453#pragma omp teams distribute7454 for (int i = 0; i < 10; ++i) {7455#pragma omp teams // expected-error {{region cannot be closely nested inside 'teams distribute' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}7456 ++a;7457 }7458#pragma omp target7459#pragma omp teams distribute7460 for (int i = 0; i < 10; ++i) {7461#pragma omp target update to(a) // expected-error {{region cannot be nested inside 'target' region}}7462 ++a;7463 }7464#pragma omp target7465#pragma omp teams distribute7466 for (int i = 0; i < 10; ++i) {7467#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'teams distribute' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}7468 for (int i = 0; i < 10; ++i)7469 ++a;7470 }7471#pragma omp target7472#pragma omp teams distribute7473 for (int i = 0; i < 10; ++i) {7474#pragma omp target simd // expected-error {{region cannot be nested inside 'target' region}}7475 for (int i = 0; i < 10; ++i)7476 ++a;7477 }7478#pragma omp target7479#pragma omp teams distribute7480 for (int i = 0; i < 10; ++i) {7481#pragma omp teams distribute // expected-error {{region cannot be closely nested inside 'teams distribute' region; perhaps you forget to enclose 'omp teams distribute' directive into a target region?}}7482 for (int i = 0; i < 10; ++i)7483 ++a;7484 }7485#pragma omp target7486#pragma omp teams distribute7487 for (int i = 0; i < 10; ++i) {7488#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'teams distribute' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}7489 for (int i = 0; i < 10; ++i)7490 ++a;7491 }7492#pragma omp target7493#pragma omp teams distribute7494 for (int i = 0; i < 10; ++i) {7495#pragma omp teams distribute parallel for simd // expected-error {{region cannot be closely nested inside 'teams distribute' region; perhaps you forget to enclose 'omp teams distribute parallel for simd' directive into a target region?}}7496 for (int i = 0; i < 10; ++i)7497 ++a;7498 }7499#pragma omp target7500#pragma omp teams distribute7501 for (int i = 0; i < 10; ++i) {7502#pragma omp target teams distribute parallel for // expected-error {{region cannot be nested inside 'target' region}}7503 for (int i = 0; i < 10; ++i)7504 ++a;7505 }7506#pragma omp target7507#pragma omp teams distribute7508 for (int i = 0; i < 10; ++i) {7509#pragma omp target teams distribute parallel for simd // expected-error {{region cannot be nested inside 'target' region}}7510 for (int i = 0; i < 10; ++i)7511 ++a;7512 }7513#pragma omp target7514#pragma omp teams distribute7515 for (int i = 0; i < 10; ++i) {7516#pragma omp target teams distribute simd // expected-error {{region cannot be nested inside 'target' region}}7517 for (int i = 0; i < 10; ++i)7518 ++a;7519 }7520 7521// TEAMS DISTRIBUTE DIRECTIVE7522#pragma omp teams distribute // omp45-error {{orphaned 'omp teams distribute' directives are prohibited; perhaps you forget to enclose the directive into a target region?}}7523 for (int i = 0; i < 10; ++i)7524 ;7525#pragma omp target7526#pragma omp teams distribute7527 for (int i = 0; i < 10; ++i) {7528#pragma omp distribute parallel for simd // expected-error {{region cannot be closely nested inside 'teams distribute' region; perhaps you forget to enclose 'omp distribute parallel for simd' directive into a teams region?}}7529 for (int i = 0; i < 10; ++i)7530 ;7531 }7532#pragma omp target7533#pragma omp teams distribute7534 for (int i = 0; i < 10; ++i) {7535#pragma omp distribute // expected-error {{region cannot be closely nested inside 'teams distribute' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}7536 for (int i = 0; i < 10; ++i)7537 ;7538 }7539#pragma omp target7540#pragma omp teams distribute7541 for (int i = 0; i < 10; ++i) {7542#pragma omp for // OK7543 for (int i = 0; i < 10; ++i)7544 ;7545 }7546#pragma omp target7547#pragma omp teams distribute7548 for (int i = 0; i < 10; ++i) {7549#pragma omp simd // OK7550 for (int i = 0; i < 10; ++i)7551 ;7552 }7553#pragma omp target7554#pragma omp teams distribute7555 for (int i = 0; i < 10; ++i) {7556#pragma omp for simd // OK7557 for (int i = 0; i < 10; ++i)7558 ;7559 }7560#pragma omp target7561#pragma omp teams distribute7562 for (int i = 0; i < 10; ++i) {7563#pragma omp parallel // OK7564 for (int i = 0; i < 10; ++i)7565 ;7566 }7567#pragma omp target7568#pragma omp teams distribute7569 for (int i = 0; i < 10; ++i) {7570#pragma omp sections // OK7571 {7572 bar();7573 }7574 }7575#pragma omp target7576#pragma omp teams distribute7577 for (int i = 0; i < 10; ++i) {7578#pragma omp section // expected-error {{'omp section' directive must be closely nested to a sections region, not a teams distribute region}}7579 {7580 bar();7581 }7582 }7583#pragma omp target7584#pragma omp teams distribute7585 for (int i = 0; i < 10; ++i) {7586#pragma omp single // OK7587 {7588 bar();7589 }7590 }7591#pragma omp target7592#pragma omp teams distribute7593 for (int i = 0; i < 10; ++i) {7594#pragma omp master // OK7595 {7596 bar();7597 }7598 }7599#pragma omp target7600#pragma omp teams distribute7601 for (int i = 0; i < 10; ++i) {7602#pragma omp critical // OK7603 {7604 bar();7605 }7606 }7607#pragma omp target7608#pragma omp teams distribute7609 for (int i = 0; i < 10; ++i) {7610#pragma omp parallel // OK7611 {7612#pragma omp single7613 {7614 bar();7615 }7616 }7617 }7618#pragma omp target7619#pragma omp teams distribute7620 for (int i = 0; i < 10; ++i) {7621#pragma omp parallel for // OK7622 for (int i = 0; i < 10; ++i)7623 ;7624 }7625#pragma omp target7626#pragma omp teams distribute7627 for (int i = 0; i < 10; ++i) {7628#pragma omp parallel for simd // OK7629 for (int i = 0; i < 10; ++i)7630 ;7631 }7632#pragma omp target7633#pragma omp teams distribute7634 for (int i = 0; i < 10; ++i) {7635#pragma omp parallel sections // OK7636 {7637 bar();7638 }7639 }7640#pragma omp target7641#pragma omp teams distribute7642 for (int i = 0; i < 10; ++i) {7643#pragma omp task // OK7644 {7645 bar();7646 }7647 }7648#pragma omp target7649#pragma omp teams distribute7650 for (int i = 0; i < 10; ++i) {7651#pragma omp taskyield // OK7652 bar();7653 }7654#pragma omp target7655#pragma omp teams distribute7656 for (int i = 0; i < 10; ++i) {7657#pragma omp barrier // OK7658 bar();7659 }7660#pragma omp target7661#pragma omp teams distribute7662 for (int i = 0; i < 10; ++i) {7663#pragma omp scan // expected-error {{region cannot be closely nested inside 'teams distribute' region; perhaps you forget to enclose 'omp scan' directive into a for, simd, for simd, parallel for, or parallel for simd region?}}7664 bar();7665 }7666#pragma omp target7667#pragma omp teams distribute7668 for (int i = 0; i < 10; ++i) {7669#pragma omp taskwait // OK7670 bar();7671 }7672#pragma omp target7673#pragma omp teams distribute7674 for (int i = 0; i < 10; ++i) {7675#pragma omp flush // OK7676 bar();7677 }7678#pragma omp target7679#pragma omp teams distribute7680 for (int i = 0; i < 10; ++i) {7681#pragma omp ordered // expected-error {{region cannot be closely nested inside 'teams distribute' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}7682 bar();7683 }7684#pragma omp target7685#pragma omp teams distribute7686 for (int i = 0; i < 10; ++i) {7687#pragma omp atomic // OK7688 ++a;7689 }7690#pragma omp target7691#pragma omp teams distribute7692 for (int i = 0; i < 10; ++i) {7693#pragma omp target // expected-error {{region cannot be nested inside 'target' region}}7694 ++a;7695 }7696#pragma omp target7697#pragma omp teams distribute7698 for (int i = 0; i < 10; ++i) {7699#pragma omp target parallel // expected-error {{region cannot be nested inside 'target' region}}7700 ++a;7701 }7702#pragma omp target7703#pragma omp teams distribute7704 for (int i = 0; i < 10; ++i) {7705#pragma omp target parallel for // expected-error {{region cannot be nested inside 'target' region}}7706 for (int i = 0; i < 10; ++i)7707 ;7708 }7709#pragma omp target7710#pragma omp teams distribute7711 for (int i = 0; i < 10; ++i) {7712#pragma omp target enter data map(to: a) // expected-error {{region cannot be nested inside 'target' region}}7713 ++a;7714 }7715#pragma omp target7716#pragma omp teams distribute7717 for (int i = 0; i < 10; ++i) {7718#pragma omp target exit data map(from: a) // expected-error {{region cannot be nested inside 'target' region}}7719 ++a;7720 }7721#pragma omp target7722#pragma omp teams distribute7723 for (int i = 0; i < 10; ++i) {7724#pragma omp teams // expected-error {{region cannot be closely nested inside 'teams distribute' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}7725 ++a;7726 }7727#pragma omp target7728#pragma omp teams distribute7729 for (int i = 0; i < 10; ++i) {7730#pragma omp target update to(a) // expected-error {{region cannot be nested inside 'target' region}}7731 ++a;7732 }7733#pragma omp target7734#pragma omp teams distribute7735 for (int i = 0; i < 10; ++i) {7736#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'teams distribute' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}7737 for (int i = 0; i < 10; ++i)7738 ++a;7739 }7740#pragma omp target7741#pragma omp teams distribute7742 for (int i = 0; i < 10; ++i) {7743#pragma omp target simd // expected-error {{region cannot be nested inside 'target' region}}7744 for (int i = 0; i < 10; ++i)7745 ++a;7746 }7747#pragma omp target7748#pragma omp teams distribute7749 for (int i = 0; i < 10; ++i) {7750#pragma omp teams distribute // expected-error {{region cannot be closely nested inside 'teams distribute' region; perhaps you forget to enclose 'omp teams distribute' directive into a target region?}}7751 for (int i = 0; i < 10; ++i)7752 ++a;7753 }7754#pragma omp target7755#pragma omp teams distribute7756 for (int i = 0; i < 10; ++i) {7757#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'teams distribute' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}7758 for (int i = 0; i < 10; ++i)7759 ++a;7760 }7761#pragma omp target7762#pragma omp teams distribute7763 for (int i = 0; i < 10; ++i) {7764#pragma omp teams distribute parallel for simd // expected-error {{region cannot be closely nested inside 'teams distribute' region; perhaps you forget to enclose 'omp teams distribute parallel for simd' directive into a target region?}}7765 for (int i = 0; i < 10; ++i)7766 ++a;7767 }7768#pragma omp target7769#pragma omp teams distribute7770 for (int i = 0; i < 10; ++i) {7771#pragma omp teams distribute parallel for // expected-error {{region cannot be closely nested inside 'teams distribute' region; perhaps you forget to enclose 'omp teams distribute parallel for' directive into a target region?}}7772 for (int i = 0; i < 10; ++i)7773 ++a;7774 }7775#pragma omp target7776#pragma omp teams distribute7777 for (int i = 0; i < 10; ++i) {7778#pragma omp target teams // expected-error {{region cannot be nested inside 'target' region}}7779 ++a;7780 }7781#pragma omp target7782#pragma omp teams distribute7783 for (int i = 0; i < 10; ++i) {7784#pragma omp target teams distribute // expected-error {{region cannot be nested inside 'target' region}}7785 for (int i = 0; i < 10; ++i)7786 ++a;7787 }7788#pragma omp target7789#pragma omp teams distribute7790 for (int i = 0; i < 10; ++i) {7791#pragma omp target teams distribute parallel for // expected-error {{region cannot be nested inside 'target' region}}7792 for (int i = 0; i < 10; ++i)7793 ++a;7794 }7795#pragma omp target7796#pragma omp teams distribute7797 for (int i = 0; i < 10; ++i) {7798#pragma omp target teams distribute parallel for simd // expected-error {{region cannot be nested inside 'target' region}}7799 for (int i = 0; i < 10; ++i)7800 ++a;7801 }7802#pragma omp target7803#pragma omp teams distribute7804 for (int i = 0; i < 10; ++i) {7805#pragma omp target teams distribute simd // expected-error {{region cannot be nested inside 'target' region}}7806 for (int i = 0; i < 10; ++i)7807 ++a;7808 }7809 7810// TEAMS DISTRIBUTE SIMD DIRECTIVE7811#pragma omp teams distribute simd // omp45-error {{orphaned 'omp teams distribute simd' directives are prohibited; perhaps you forget to enclose the directive into a target region?}}7812 for (int i = 0; i < 10; ++i)7813 ;7814#pragma omp target7815#pragma omp teams distribute simd7816 for (int i = 0; i < 10; ++i) {7817#pragma omp distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}7818 for (int i = 0; i < 10; ++i)7819 ;7820 }7821#pragma omp target7822#pragma omp teams distribute simd7823 for (int i = 0; i < 10; ++i) {7824#pragma omp distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}7825 for (int i = 0; i < 10; ++i)7826 ;7827 }7828#pragma omp target7829#pragma omp teams distribute simd7830 for (int i = 0; i < 10; ++i) {7831#pragma omp for // expected-error {{OpenMP constructs may not be nested inside a simd region}}7832 for (int i = 0; i < 10; ++i)7833 ;7834 }7835#pragma omp target7836#pragma omp teams distribute simd7837 for (int i = 0; i < 10; ++i) {7838#pragma omp simd // omp45warn-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}7839 for (int i = 0; i < 10; ++i)7840 ;7841 }7842#pragma omp target7843#pragma omp teams distribute simd7844 for (int i = 0; i < 10; ++i) {7845#pragma omp for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}7846 for (int i = 0; i < 10; ++i)7847 ;7848 }7849#pragma omp target7850#pragma omp teams distribute simd7851 for (int i = 0; i < 10; ++i) {7852#pragma omp parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}7853 for (int i = 0; i < 10; ++i)7854 ;7855 }7856#pragma omp target7857#pragma omp teams distribute simd7858 for (int i = 0; i < 10; ++i) {7859#pragma omp sections // expected-error {{OpenMP constructs may not be nested inside a simd region}}7860 {7861 bar();7862 }7863 }7864#pragma omp target7865#pragma omp teams distribute simd7866 for (int i = 0; i < 10; ++i) {7867#pragma omp section // expected-error {{OpenMP constructs may not be nested inside a simd region}}7868 {7869 bar();7870 }7871 }7872#pragma omp target7873#pragma omp teams distribute simd7874 for (int i = 0; i < 10; ++i) {7875#pragma omp single // expected-error {{OpenMP constructs may not be nested inside a simd region}}7876 {7877 bar();7878 }7879 }7880#pragma omp target7881#pragma omp teams distribute simd7882 for (int i = 0; i < 10; ++i) {7883#pragma omp master // expected-error {{OpenMP constructs may not be nested inside a simd region}}7884 {7885 bar();7886 }7887 }7888#pragma omp target7889#pragma omp teams distribute simd7890 for (int i = 0; i < 10; ++i) {7891#pragma omp critical // expected-error {{OpenMP constructs may not be nested inside a simd region}}7892 {7893 bar();7894 }7895 }7896#pragma omp target7897#pragma omp teams distribute simd7898 for (int i = 0; i < 10; ++i) {7899#pragma omp parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}7900 {7901#pragma omp single7902 {7903 bar();7904 }7905 }7906 }7907#pragma omp target7908#pragma omp teams distribute simd7909 for (int i = 0; i < 10; ++i) {7910#pragma omp parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}7911 for (int i = 0; i < 10; ++i)7912 ;7913 }7914#pragma omp target7915#pragma omp teams distribute simd7916 for (int i = 0; i < 10; ++i) {7917#pragma omp parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}7918 for (int i = 0; i < 10; ++i)7919 ;7920 }7921#pragma omp target7922#pragma omp teams distribute simd7923 for (int i = 0; i < 10; ++i) {7924#pragma omp parallel sections // expected-error {{OpenMP constructs may not be nested inside a simd region}}7925 {7926 bar();7927 }7928 }7929#pragma omp target7930#pragma omp teams distribute simd7931 for (int i = 0; i < 10; ++i) {7932#pragma omp task // expected-error {{OpenMP constructs may not be nested inside a simd region}}7933 {7934 bar();7935 }7936 }7937#pragma omp target7938#pragma omp teams distribute simd7939 for (int i = 0; i < 10; ++i) {7940#pragma omp taskyield // expected-error {{OpenMP constructs may not be nested inside a simd region}}7941 bar();7942 }7943#pragma omp target7944#pragma omp teams distribute simd7945 for (int i = 0; i < 10; ++i) {7946#pragma omp barrier // expected-error {{OpenMP constructs may not be nested inside a simd region}}7947 bar();7948 }7949#pragma omp target7950#pragma omp teams distribute simd7951 for (int i = 0; i < 10; ++i) {7952#pragma omp scan // omp45-error {{OpenMP constructs may not be nested inside a simd region}} omp50-error {{region cannot be closely nested inside 'teams distribute simd' region; perhaps you forget to enclose 'omp scan' directive into a for, simd, for simd, parallel for, or parallel for simd region?}} omp51-error {{region cannot be closely nested inside 'teams distribute simd' region; perhaps you forget to enclose 'omp scan' directive into a for, simd, for simd, parallel for, or parallel for simd region?}}7953 bar();7954 }7955#pragma omp target7956#pragma omp teams distribute simd7957 for (int i = 0; i < 10; ++i) {7958#pragma omp taskwait // expected-error {{OpenMP constructs may not be nested inside a simd region}}7959 bar();7960 }7961#pragma omp target7962#pragma omp teams distribute simd7963 for (int i = 0; i < 10; ++i) {7964#pragma omp flush // expected-error {{OpenMP constructs may not be nested inside a simd region}}7965 bar();7966 }7967#pragma omp target7968#pragma omp teams distribute simd7969 for (int i = 0; i < 10; ++i) {7970#pragma omp ordered // expected-error {{OpenMP constructs may not be nested inside a simd region}}7971 bar();7972 }7973#pragma omp target7974#pragma omp teams distribute simd7975 for (int i = 0; i < 10; ++i) {7976#pragma omp atomic // omp45-error {{OpenMP constructs may not be nested inside a simd region}}7977 ++a;7978 }7979#pragma omp target7980#pragma omp teams distribute simd7981 for (int i = 0; i < 10; ++i) {7982#pragma omp target // expected-error {{OpenMP constructs may not be nested inside a simd region}}7983 ++a;7984 }7985#pragma omp target7986#pragma omp teams distribute simd7987 for (int i = 0; i < 10; ++i) {7988#pragma omp target parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}7989 ++a;7990 }7991#pragma omp target7992#pragma omp teams distribute simd7993 for (int i = 0; i < 10; ++i) {7994#pragma omp target parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}7995 for (int i = 0; i < 10; ++i)7996 ;7997 }7998#pragma omp target7999#pragma omp teams distribute simd8000 for (int i = 0; i < 10; ++i) {8001#pragma omp target enter data map(to: a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}8002 ++a;8003 }8004#pragma omp target8005#pragma omp teams distribute simd8006 for (int i = 0; i < 10; ++i) {8007#pragma omp target exit data map(from: a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}8008 ++a;8009 }8010#pragma omp target8011#pragma omp teams distribute simd8012 for (int i = 0; i < 10; ++i) {8013#pragma omp teams // expected-error {{OpenMP constructs may not be nested inside a simd region}}8014 ++a;8015 }8016#pragma omp target8017#pragma omp teams distribute simd8018 for (int i = 0; i < 10; ++i) {8019#pragma omp target update to(a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}8020 ++a;8021 }8022#pragma omp target8023#pragma omp teams distribute simd8024 for (int i = 0; i < 10; ++i) {8025#pragma omp distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}8026 for (int i = 0; i < 10; ++i)8027 ++a;8028 }8029#pragma omp target8030#pragma omp teams distribute simd8031 for (int i = 0; i < 10; ++i) {8032#pragma omp target simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}8033 for (int i = 0; i < 10; ++i)8034 ++a;8035 }8036#pragma omp target8037#pragma omp teams distribute simd8038 for (int i = 0; i < 10; ++i) {8039#pragma omp teams distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}8040 for (int i = 0; i < 10; ++i)8041 ++a;8042 }8043#pragma omp target8044#pragma omp teams distribute simd8045 for (int i = 0; i < 10; ++i) {8046#pragma omp teams distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}8047 for (int i = 0; i < 10; ++i)8048 ++a;8049 }8050#pragma omp target8051#pragma omp teams distribute simd8052 for (int i = 0; i < 10; ++i) {8053#pragma omp teams distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}8054 for (int i = 0; i < 10; ++i)8055 ++a;8056 }8057#pragma omp target8058#pragma omp teams distribute simd8059 for (int i = 0; i < 10; ++i) {8060#pragma omp teams distribute parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}8061 for (int i = 0; i < 10; ++i)8062 ++a;8063 }8064#pragma omp target8065#pragma omp teams distribute simd8066 for (int i = 0; i < 10; ++i) {8067#pragma omp target teams // expected-error {{OpenMP constructs may not be nested inside a simd region}}8068 ++a;8069 }8070#pragma omp target8071#pragma omp teams distribute simd8072 for (int i = 0; i < 10; ++i) {8073#pragma omp target teams distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}8074 for (int i = 0; i < 10; ++i)8075 ++a;8076 }8077#pragma omp target8078#pragma omp teams distribute simd8079 for (int i = 0; i < 10; ++i) {8080#pragma omp target teams distribute parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}8081 for (int i = 0; i < 10; ++i)8082 ++a;8083 }8084#pragma omp target8085#pragma omp teams distribute simd8086 for (int i = 0; i < 10; ++i) {8087#pragma omp target teams distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}8088 for (int i = 0; i < 10; ++i)8089 ++a;8090 }8091#pragma omp target8092#pragma omp teams distribute simd8093 for (int i = 0; i < 10; ++i) {8094#pragma omp target teams distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}8095 for (int i = 0; i < 10; ++i)8096 ++a;8097 }8098 8099// TEAMS DISTRIBUTE PARALLEL FOR SIMD DIRECTIVE8100#pragma omp teams distribute parallel for simd // omp45-error {{orphaned 'omp teams distribute parallel for simd' directives are prohibited; perhaps you forget to enclose the directive into a target region?}}8101 for (int i = 0; i < 10; ++i)8102 ;8103#pragma omp target8104#pragma omp teams distribute parallel for simd8105 for (int i = 0; i < 10; ++i) {8106#pragma omp distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}8107 for (int i = 0; i < 10; ++i)8108 ;8109 }8110#pragma omp target8111#pragma omp teams distribute parallel for simd8112 for (int i = 0; i < 10; ++i) {8113#pragma omp distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}8114 for (int i = 0; i < 10; ++i)8115 ;8116 }8117#pragma omp target8118#pragma omp teams distribute parallel for simd8119 for (int i = 0; i < 10; ++i) {8120#pragma omp for // expected-error {{OpenMP constructs may not be nested inside a simd region}}8121 for (int i = 0; i < 10; ++i)8122 ;8123 }8124#pragma omp target8125#pragma omp teams distribute parallel for simd8126 for (int i = 0; i < 10; ++i) {8127#pragma omp simd // omp45warn-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}8128 for (int i = 0; i < 10; ++i)8129 ;8130 }8131#pragma omp target8132#pragma omp teams distribute parallel for simd8133 for (int i = 0; i < 10; ++i) {8134#pragma omp for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}8135 for (int i = 0; i < 10; ++i)8136 ;8137 }8138#pragma omp target8139#pragma omp teams distribute parallel for simd8140 for (int i = 0; i < 10; ++i) {8141#pragma omp parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}8142 for (int i = 0; i < 10; ++i)8143 ;8144 }8145#pragma omp target8146#pragma omp teams distribute parallel for simd8147 for (int i = 0; i < 10; ++i) {8148#pragma omp sections // expected-error {{OpenMP constructs may not be nested inside a simd region}}8149 {8150 bar();8151 }8152 }8153#pragma omp target8154#pragma omp teams distribute parallel for simd8155 for (int i = 0; i < 10; ++i) {8156#pragma omp section // expected-error {{OpenMP constructs may not be nested inside a simd region}}8157 {8158 bar();8159 }8160 }8161#pragma omp target8162#pragma omp teams distribute parallel for simd8163 for (int i = 0; i < 10; ++i) {8164#pragma omp single // expected-error {{OpenMP constructs may not be nested inside a simd region}}8165 {8166 bar();8167 }8168 }8169#pragma omp target8170#pragma omp teams distribute parallel for simd8171 for (int i = 0; i < 10; ++i) {8172#pragma omp master // expected-error {{OpenMP constructs may not be nested inside a simd region}}8173 {8174 bar();8175 }8176 }8177#pragma omp target8178#pragma omp teams distribute parallel for simd8179 for (int i = 0; i < 10; ++i) {8180#pragma omp critical // expected-error {{OpenMP constructs may not be nested inside a simd region}}8181 {8182 bar();8183 }8184 }8185#pragma omp target8186#pragma omp teams distribute parallel for simd8187 for (int i = 0; i < 10; ++i) {8188#pragma omp parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}8189 {8190#pragma omp single8191 {8192 bar();8193 }8194 }8195 }8196#pragma omp target8197#pragma omp teams distribute parallel for simd8198 for (int i = 0; i < 10; ++i) {8199#pragma omp parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}8200 for (int i = 0; i < 10; ++i)8201 ;8202 }8203#pragma omp target8204#pragma omp teams distribute parallel for simd8205 for (int i = 0; i < 10; ++i) {8206#pragma omp parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}8207 for (int i = 0; i < 10; ++i)8208 ;8209 }8210#pragma omp target8211#pragma omp teams distribute parallel for simd8212 for (int i = 0; i < 10; ++i) {8213#pragma omp parallel sections // expected-error {{OpenMP constructs may not be nested inside a simd region}}8214 {8215 bar();8216 }8217 }8218#pragma omp target8219#pragma omp teams distribute parallel for simd8220 for (int i = 0; i < 10; ++i) {8221#pragma omp task // expected-error {{OpenMP constructs may not be nested inside a simd region}}8222 {8223 bar();8224 }8225 }8226#pragma omp target8227#pragma omp teams distribute parallel for simd8228 for (int i = 0; i < 10; ++i) {8229#pragma omp taskyield // expected-error {{OpenMP constructs may not be nested inside a simd region}}8230 bar();8231 }8232#pragma omp target8233#pragma omp teams distribute parallel for simd8234 for (int i = 0; i < 10; ++i) {8235#pragma omp barrier // expected-error {{OpenMP constructs may not be nested inside a simd region}}8236 bar();8237 }8238#pragma omp target8239#pragma omp teams distribute parallel for simd8240 for (int i = 0; i < 10; ++i) {8241#pragma omp scan // omp45-error {{OpenMP constructs may not be nested inside a simd region}} omp50-error {{region cannot be closely nested inside 'teams distribute parallel for simd' region; perhaps you forget to enclose 'omp scan' directive into a for, simd, for simd, parallel for, or parallel for simd region?}} omp51-error {{region cannot be closely nested inside 'teams distribute parallel for simd' region; perhaps you forget to enclose 'omp scan' directive into a for, simd, for simd, parallel for, or parallel for simd region?}}8242 bar();8243 }8244#pragma omp target8245#pragma omp teams distribute parallel for simd8246 for (int i = 0; i < 10; ++i) {8247#pragma omp taskwait // expected-error {{OpenMP constructs may not be nested inside a simd region}}8248 bar();8249 }8250#pragma omp target8251#pragma omp teams distribute parallel for simd8252 for (int i = 0; i < 10; ++i) {8253#pragma omp flush // expected-error {{OpenMP constructs may not be nested inside a simd region}}8254 bar();8255 }8256#pragma omp target8257#pragma omp teams distribute parallel for simd8258 for (int i = 0; i < 10; ++i) {8259#pragma omp ordered // expected-error {{OpenMP constructs may not be nested inside a simd region}}8260 bar();8261 }8262#pragma omp target8263#pragma omp teams distribute parallel for simd8264 for (int i = 0; i < 10; ++i) {8265#pragma omp atomic // omp45-error {{OpenMP constructs may not be nested inside a simd region}}8266 ++a;8267 }8268#pragma omp target8269#pragma omp teams distribute parallel for simd8270 for (int i = 0; i < 10; ++i) {8271#pragma omp target // expected-error {{OpenMP constructs may not be nested inside a simd region}}8272 ++a;8273 }8274#pragma omp target8275#pragma omp teams distribute parallel for simd8276 for (int i = 0; i < 10; ++i) {8277#pragma omp target parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}8278 ++a;8279 }8280#pragma omp target8281#pragma omp teams distribute parallel for simd8282 for (int i = 0; i < 10; ++i) {8283#pragma omp target parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}8284 for (int i = 0; i < 10; ++i)8285 ;8286 }8287#pragma omp target8288#pragma omp teams distribute parallel for simd8289 for (int i = 0; i < 10; ++i) {8290#pragma omp target enter data map(to: a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}8291 ++a;8292 }8293#pragma omp target8294#pragma omp teams distribute parallel for simd8295 for (int i = 0; i < 10; ++i) {8296#pragma omp target exit data map(from: a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}8297 ++a;8298 }8299#pragma omp target8300#pragma omp teams distribute parallel for simd8301 for (int i = 0; i < 10; ++i) {8302#pragma omp teams // expected-error {{OpenMP constructs may not be nested inside a simd region}}8303 ++a;8304 }8305#pragma omp target8306#pragma omp teams distribute parallel for simd8307 for (int i = 0; i < 10; ++i) {8308#pragma omp target update to(a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}8309 ++a;8310 }8311#pragma omp target8312#pragma omp teams distribute parallel for simd8313 for (int i = 0; i < 10; ++i) {8314#pragma omp distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}8315 for (int i = 0; i < 10; ++i)8316 ++a;8317 }8318#pragma omp target8319#pragma omp teams distribute parallel for simd8320 for (int i = 0; i < 10; ++i) {8321#pragma omp target simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}8322 for (int i = 0; i < 10; ++i)8323 ++a;8324 }8325#pragma omp target8326#pragma omp teams distribute parallel for simd8327 for (int i = 0; i < 10; ++i) {8328#pragma omp teams distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}8329 for (int i = 0; i < 10; ++i)8330 ++a;8331 }8332#pragma omp target8333#pragma omp teams distribute parallel for simd8334 for (int i = 0; i < 10; ++i) {8335#pragma omp teams distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}8336 for (int i = 0; i < 10; ++i)8337 ++a;8338 }8339#pragma omp target8340#pragma omp teams distribute parallel for simd8341 for (int i = 0; i < 10; ++i) {8342#pragma omp teams distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}8343 for (int i = 0; i < 10; ++i)8344 ++a;8345 }8346#pragma omp target8347#pragma omp teams distribute parallel for simd8348 for (int i = 0; i < 10; ++i) {8349#pragma omp teams distribute parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}8350 for (int i = 0; i < 10; ++i)8351 ++a;8352 }8353#pragma omp target8354#pragma omp teams distribute parallel for simd8355 for (int i = 0; i < 10; ++i) {8356#pragma omp target teams // expected-error {{OpenMP constructs may not be nested inside a simd region}}8357 ++a;8358 }8359#pragma omp target8360#pragma omp teams distribute parallel for simd8361 for (int i = 0; i < 10; ++i) {8362#pragma omp target teams distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}8363 for (int i = 0; i < 10; ++i)8364 ++a;8365 }8366#pragma omp target8367#pragma omp teams distribute parallel for simd8368 for (int i = 0; i < 10; ++i) {8369#pragma omp target teams distribute parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}8370 for (int i = 0; i < 10; ++i)8371 ++a;8372 }8373#pragma omp target8374#pragma omp teams distribute parallel for simd8375 for (int i = 0; i < 10; ++i) {8376#pragma omp target teams distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}8377 for (int i = 0; i < 10; ++i)8378 ++a;8379 }8380#pragma omp target8381#pragma omp teams distribute parallel for simd8382 for (int i = 0; i < 10; ++i) {8383#pragma omp target teams distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}8384 for (int i = 0; i < 10; ++i)8385 ++a;8386 }8387 8388// TEAMS DISTRIBUTE PARALLEL FOR DIRECTIVE8389#pragma omp teams distribute parallel for // omp45-error {{orphaned 'omp teams distribute parallel for' directives are prohibited; perhaps you forget to enclose the directive into a target region?}}8390 for (int i = 0; i < 10; ++i)8391 ;8392#pragma omp target8393#pragma omp teams distribute parallel for8394 for (int i = 0; i < 10; ++i) {8395#pragma omp distribute parallel for simd // expected-error {{region cannot be closely nested inside 'teams distribute parallel for' region; perhaps you forget to enclose 'omp distribute parallel for simd' directive into a teams region?}}8396 for (int i = 0; i < 10; ++i)8397 ;8398 }8399#pragma omp target8400#pragma omp teams distribute parallel for8401 for (int i = 0; i < 10; ++i) {8402#pragma omp distribute // expected-error {{region cannot be closely nested inside 'teams distribute parallel for' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}8403 for (int i = 0; i < 10; ++i)8404 ;8405 }8406#pragma omp target8407#pragma omp teams distribute parallel for8408 for (int i = 0; i < 10; ++i) {8409#pragma omp for // expected-error {{region cannot be closely nested inside 'teams distribute parallel for' region; perhaps you forget to enclose 'omp for' directive into a parallel region?}}8410 for (int i = 0; i < 10; ++i)8411 ;8412 }8413#pragma omp target8414#pragma omp teams distribute parallel for8415 for (int i = 0; i < 10; ++i) {8416#pragma omp simd // OK8417 for (int i = 0; i < 10; ++i)8418 ;8419 }8420#pragma omp target8421#pragma omp teams distribute parallel for8422 for (int i = 0; i < 10; ++i) {8423#pragma omp for simd // expected-error {{region cannot be closely nested inside 'teams distribute parallel for' region; perhaps you forget to enclose 'omp for simd' directive into a parallel region?}}8424 for (int i = 0; i < 10; ++i)8425 ;8426 }8427#pragma omp target8428#pragma omp teams distribute parallel for8429 for (int i = 0; i < 10; ++i) {8430#pragma omp parallel // OK8431 for (int i = 0; i < 10; ++i)8432 ;8433 }8434#pragma omp target8435#pragma omp teams distribute parallel for8436 for (int i = 0; i < 10; ++i) {8437#pragma omp sections // expected-error {{region cannot be closely nested inside 'teams distribute parallel for' region; perhaps you forget to enclose 'omp sections' directive into a parallel region?}}8438 {8439 bar();8440 }8441 }8442#pragma omp target8443#pragma omp teams distribute parallel for8444 for (int i = 0; i < 10; ++i) {8445#pragma omp section // expected-error {{'omp section' directive must be closely nested to a sections region, not a teams distribute parallel for region}}8446 {8447 bar();8448 }8449 }8450#pragma omp target8451#pragma omp teams distribute parallel for8452 for (int i = 0; i < 10; ++i) {8453#pragma omp single // expected-error {{region cannot be closely nested inside 'teams distribute parallel for' region; perhaps you forget to enclose 'omp single' directive into a parallel region?}}8454 {8455 bar();8456 }8457 }8458#pragma omp target8459#pragma omp teams distribute parallel for8460 for (int i = 0; i < 10; ++i) {8461#pragma omp master // expected-error {{region cannot be closely nested inside 'teams distribute parallel for' region}}8462 {8463 bar();8464 }8465 }8466#pragma omp target8467#pragma omp teams distribute parallel for8468 for (int i = 0; i < 10; ++i) {8469#pragma omp critical // OK8470 {8471 bar();8472 }8473 }8474#pragma omp target8475#pragma omp teams distribute parallel for8476 for (int i = 0; i < 10; ++i) {8477#pragma omp parallel // OK8478 {8479#pragma omp single8480 {8481 bar();8482 }8483 }8484 }8485#pragma omp target8486#pragma omp teams distribute parallel for8487 for (int i = 0; i < 10; ++i) {8488#pragma omp parallel for // OK8489 for (int i = 0; i < 10; ++i)8490 ;8491 }8492#pragma omp target8493#pragma omp teams distribute parallel for8494 for (int i = 0; i < 10; ++i) {8495#pragma omp parallel for simd // OK8496 for (int i = 0; i < 10; ++i)8497 ;8498 }8499#pragma omp target8500#pragma omp teams distribute parallel for8501 for (int i = 0; i < 10; ++i) {8502#pragma omp parallel sections // OK8503 {8504 bar();8505 }8506 }8507#pragma omp target8508#pragma omp teams distribute parallel for8509 for (int i = 0; i < 10; ++i) {8510#pragma omp task // OK8511 {8512 bar();8513 }8514 }8515#pragma omp target8516#pragma omp teams distribute parallel for8517 for (int i = 0; i < 10; ++i) {8518#pragma omp taskyield // OK8519 bar();8520 }8521#pragma omp target8522#pragma omp teams distribute parallel for8523 for (int i = 0; i < 10; ++i) {8524#pragma omp barrier // expected-error {{region cannot be closely nested inside 'teams distribute parallel for' region}}8525 bar();8526 }8527#pragma omp target8528#pragma omp teams distribute parallel for8529 for (int i = 0; i < 10; ++i) {8530#pragma omp scan // expected-error {{region cannot be closely nested inside 'teams distribute parallel for' region}}8531 bar();8532 }8533#pragma omp target8534#pragma omp teams distribute parallel for8535 for (int i = 0; i < 10; ++i) {8536#pragma omp taskwait // OK8537 bar();8538 }8539#pragma omp target8540#pragma omp teams distribute parallel for8541 for (int i = 0; i < 10; ++i) {8542#pragma omp flush // OK8543 bar();8544 }8545#pragma omp target8546#pragma omp teams distribute parallel for8547 for (int i = 0; i < 10; ++i) {8548#pragma omp ordered // expected-error {{region cannot be closely nested inside 'teams distribute parallel for' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}8549 bar();8550 }8551#pragma omp target8552#pragma omp teams distribute parallel for8553 for (int i = 0; i < 10; ++i) {8554#pragma omp atomic // OK8555 ++a;8556 }8557#pragma omp target8558#pragma omp teams distribute parallel for8559 for (int i = 0; i < 10; ++i) {8560#pragma omp target // expected-error {{region cannot be nested inside 'target' region}}8561 ++a;8562 }8563#pragma omp target8564#pragma omp teams distribute parallel for8565 for (int i = 0; i < 10; ++i) {8566#pragma omp target parallel // expected-error {{region cannot be nested inside 'target' region}}8567 ++a;8568 }8569#pragma omp target8570#pragma omp teams distribute parallel for8571 for (int i = 0; i < 10; ++i) {8572#pragma omp target parallel for // expected-error {{region cannot be nested inside 'target' region}}8573 for (int i = 0; i < 10; ++i)8574 ;8575 }8576#pragma omp target8577#pragma omp teams distribute parallel for8578 for (int i = 0; i < 10; ++i) {8579#pragma omp target enter data map(to: a) // expected-error {{region cannot be nested inside 'target' region}}8580 ++a;8581 }8582#pragma omp target8583#pragma omp teams distribute parallel for8584 for (int i = 0; i < 10; ++i) {8585#pragma omp target exit data map(from: a) // expected-error {{region cannot be nested inside 'target' region}}8586 ++a;8587 }8588#pragma omp target8589#pragma omp teams distribute parallel for8590 for (int i = 0; i < 10; ++i) {8591#pragma omp teams // expected-error {{region cannot be closely nested inside 'teams distribute parallel for' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}8592 ++a;8593 }8594#pragma omp target8595#pragma omp teams distribute parallel for8596 for (int i = 0; i < 10; ++i) {8597#pragma omp target update to(a) // expected-error {{region cannot be nested inside 'target' region}}8598 ++a;8599 }8600#pragma omp target8601#pragma omp teams distribute parallel for8602 for (int i = 0; i < 10; ++i) {8603#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'teams distribute parallel for' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}8604 for (int i = 0; i < 10; ++i)8605 ++a;8606 }8607#pragma omp target8608#pragma omp teams distribute parallel for8609 for (int i = 0; i < 10; ++i) {8610#pragma omp target simd // expected-error {{region cannot be nested inside 'target' region}}8611 for (int i = 0; i < 10; ++i)8612 ++a;8613 }8614#pragma omp target8615#pragma omp teams distribute parallel for8616 for (int i = 0; i < 10; ++i) {8617#pragma omp teams distribute // expected-error {{region cannot be closely nested inside 'teams distribute parallel for' region; perhaps you forget to enclose 'omp teams distribute' directive into a target region?}}8618 for (int i = 0; i < 10; ++i)8619 ++a;8620 }8621#pragma omp target8622#pragma omp teams distribute parallel for8623 for (int i = 0; i < 10; ++i) {8624#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'teams distribute parallel for' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}8625 for (int i = 0; i < 10; ++i)8626 ++a;8627 }8628#pragma omp target8629#pragma omp teams distribute parallel for8630 for (int i = 0; i < 10; ++i) {8631#pragma omp teams distribute parallel for simd // expected-error {{region cannot be closely nested inside 'teams distribute parallel for' region; perhaps you forget to enclose 'omp teams distribute parallel for simd' directive into a target region?}}8632 for (int i = 0; i < 10; ++i)8633 ++a;8634 }8635#pragma omp target8636#pragma omp teams distribute parallel for8637 for (int i = 0; i < 10; ++i) {8638#pragma omp teams distribute parallel for // expected-error {{region cannot be closely nested inside 'teams distribute parallel for' region; perhaps you forget to enclose 'omp teams distribute parallel for' directive into a target region?}}8639 for (int i = 0; i < 10; ++i)8640 ++a;8641 }8642#pragma omp target8643#pragma omp teams distribute parallel for8644 for (int i = 0; i < 10; ++i) {8645#pragma omp target teams // expected-error {{region cannot be nested inside 'target' region}}8646 ++a;8647 }8648#pragma omp target8649#pragma omp teams distribute parallel for8650 for (int i = 0; i < 10; ++i) {8651#pragma omp target teams distribute // expected-error {{region cannot be nested inside 'target' region}}8652 for (int i = 0; i < 10; ++i)8653 ++a;8654 }8655#pragma omp target8656#pragma omp teams distribute parallel for8657 for (int i = 0; i < 10; ++i) {8658#pragma omp target teams distribute parallel for // expected-error {{region cannot be nested inside 'target' region}}8659 for (int i = 0; i < 10; ++i)8660 ++a;8661 }8662#pragma omp target8663#pragma omp teams distribute parallel for8664 for (int i = 0; i < 10; ++i) {8665#pragma omp target teams distribute parallel for simd // expected-error {{region cannot be nested inside 'target' region}}8666 for (int i = 0; i < 10; ++i)8667 ++a;8668 }8669#pragma omp target8670#pragma omp teams distribute parallel for8671 for (int i = 0; i < 10; ++i) {8672#pragma omp target teams distribute simd // expected-error {{region cannot be nested inside 'target' region}}8673 for (int i = 0; i < 10; ++i)8674 ++a;8675 }8676 8677// TARGET TEAMS DIRECTIVE8678#pragma omp target teams8679#pragma omp parallel8680 bar();8681#pragma omp target teams8682#pragma omp for // expected-error {{region cannot be closely nested inside 'target teams' region; perhaps you forget to enclose 'omp for' directive into a parallel region?}}8683 for (int i = 0; i < 10; ++i)8684 ;8685#pragma omp target teams8686#pragma omp simd // expected-error {{region cannot be closely nested inside 'target teams' region; perhaps you forget to enclose 'omp simd' directive into a parallel region?}}8687 for (int i = 0; i < 10; ++i)8688 ;8689#pragma omp target teams8690#pragma omp for simd // expected-error {{region cannot be closely nested inside 'target teams' region; perhaps you forget to enclose 'omp for simd' directive into a parallel region?}}8691 for (int i = 0; i < 10; ++i)8692 ;8693#pragma omp target teams8694#pragma omp sections // expected-error {{region cannot be closely nested inside 'target teams' region; perhaps you forget to enclose 'omp sections' directive into a parallel region?}}8695 {8696 bar();8697 }8698#pragma omp target teams8699#pragma omp section // expected-error {{'omp section' directive must be closely nested to a sections region, not a target teams region}}8700 {8701 bar();8702 }8703#pragma omp target teams8704#pragma omp single // expected-error {{region cannot be closely nested inside 'target teams' region; perhaps you forget to enclose 'omp single' directive into a parallel region?}}8705 bar();8706 8707#pragma omp target teams8708#pragma omp master // expected-error {{region cannot be closely nested inside 'target teams' region; perhaps you forget to enclose 'omp master' directive into a parallel region?}}8709 {8710 bar();8711 }8712#pragma omp target teams8713#pragma omp critical // expected-error {{region cannot be closely nested inside 'target teams' region; perhaps you forget to enclose 'omp critical' directive into a parallel region?}}8714 {8715 bar();8716 }8717#pragma omp target teams8718#pragma omp parallel for8719 for (int i = 0; i < 10; ++i)8720 ;8721#pragma omp target teams8722#pragma omp parallel for simd8723 for (int i = 0; i < 10; ++i)8724 ;8725#pragma omp target teams8726#pragma omp parallel sections8727 {8728 bar();8729 }8730#pragma omp target teams8731#pragma omp task // expected-error {{region cannot be closely nested inside 'target teams' region; perhaps you forget to enclose 'omp task' directive into a parallel region?}}8732 {8733 bar();8734 }8735#pragma omp target teams8736 {8737#pragma omp taskyield // expected-error {{region cannot be closely nested inside 'target teams' region; perhaps you forget to enclose 'omp taskyield' directive into a parallel region?}}8738 bar();8739 }8740#pragma omp target teams8741 {8742#pragma omp barrier // expected-error {{region cannot be closely nested inside 'target teams' region; perhaps you forget to enclose 'omp barrier' directive into a parallel region?}}8743 bar();8744 }8745#pragma omp target teams8746 {8747#pragma omp scan // expected-error {{region cannot be closely nested inside 'target teams' region; perhaps you forget to enclose 'omp scan' directive into a for, simd, for simd, parallel for, or parallel for simd region?}}8748 bar();8749 }8750#pragma omp target teams8751 {8752#pragma omp taskwait // expected-error {{region cannot be closely nested inside 'target teams' region; perhaps you forget to enclose 'omp taskwait' directive into a parallel region?}}8753 bar();8754 }8755#pragma omp target teams8756 {8757#pragma omp flush // expected-error {{region cannot be closely nested inside 'target teams' region; perhaps you forget to enclose 'omp flush' directive into a parallel region?}}8758 bar();8759 }8760#pragma omp target teams8761 {8762#pragma omp ordered // expected-error {{region cannot be closely nested inside 'target teams' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}8763 bar();8764 }8765#pragma omp target teams8766 {8767#pragma omp atomic // omp-error {{region cannot be closely nested inside 'target teams' region; perhaps you forget to enclose 'omp atomic' directive into a parallel region?}}8768 ++a;8769 }8770#pragma omp target teams8771 {8772#pragma omp target // expected-error {{region cannot be nested inside 'target teams' region}}8773 ++a;8774 }8775#pragma omp target teams8776 {8777#pragma omp target parallel // expected-error {{region cannot be nested inside 'target teams' region}}8778 ++a;8779 }8780#pragma omp target teams8781#pragma omp target parallel for // expected-error {{region cannot be nested inside 'target teams' region}}8782 for (int i = 0; i < 10; ++i)8783 ;8784#pragma omp target teams8785 {8786#pragma omp target enter data map(to: a) // expected-error {{region cannot be nested inside 'target teams' region}}8787 }8788#pragma omp target teams8789 {8790#pragma omp target exit data map(from: a) // expected-error {{region cannot be nested inside 'target teams' region}}8791 }8792#pragma omp target teams8793 {8794#pragma omp teams // expected-error {{region cannot be closely nested inside 'target teams' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}8795 ++a;8796 }8797#pragma omp target teams8798 {8799#pragma omp taskloop // expected-error {{region cannot be closely nested inside 'target teams' region; perhaps you forget to enclose 'omp taskloop' directive into a parallel region?}}8800 for (int i = 0; i < 10; ++i)8801 ++a;8802 }8803#pragma omp target teams8804#pragma omp distribute8805 for (int i = 0; i < 10; ++i)8806 ;8807#pragma omp target teams8808 {8809#pragma omp target update to(a) // expected-error {{region cannot be nested inside 'target teams' region}}8810 ++a;8811 }8812#pragma omp target teams8813#pragma omp distribute parallel for8814 for (int i = 0; i < 10; ++i)8815 ;8816#pragma omp target teams8817 {8818#pragma omp distribute parallel for8819 for (int i = 0; i < 10; ++i)8820 ;8821#pragma omp distribute parallel for8822 for (int j = 0; j < 10; ++j)8823 ;8824 }8825#pragma omp target teams8826 {8827#pragma omp distribute parallel for simd8828 for (int i = 0; i < 10; ++i)8829 ;8830#pragma omp distribute parallel for simd8831 for (int j = 0; j < 10; ++j)8832 ;8833 }8834#pragma omp target teams8835 {8836#pragma omp distribute simd8837 for (int i = 0; i < 10; ++i)8838 ;8839#pragma omp distribute simd8840 for (int j = 0; j < 10; ++j)8841 ;8842 }8843#pragma omp target teams8844 {8845#pragma omp target simd // expected-error {{region cannot be nested inside 'target teams' region}}8846 for (int i = 0; i < 10; ++i)8847 ;8848 }8849#pragma omp target teams8850 {8851#pragma omp teams distribute // expected-error {{region cannot be closely nested inside 'target teams' region; perhaps you forget to enclose 'omp teams distribute' directive into a target region?}}8852 for (int i = 0; i < 10; ++i)8853 ;8854 }8855#pragma omp target teams8856 {8857#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'target teams' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}8858 for (int i = 0; i < 10; ++i)8859 ;8860 }8861#pragma omp target teams8862 {8863#pragma omp teams distribute parallel for simd // expected-error {{region cannot be closely nested inside 'target teams' region; perhaps you forget to enclose 'omp teams distribute parallel for simd' directive into a target region?}}8864 for (int i = 0; i < 10; ++i)8865 ;8866 }8867#pragma omp target teams8868 {8869#pragma omp teams distribute parallel for // expected-error {{region cannot be closely nested inside 'target teams' region; perhaps you forget to enclose 'omp teams distribute parallel for' directive into a target region?}}8870 for (int i = 0; i < 10; ++i)8871 ;8872 }8873#pragma omp target teams8874 {8875#pragma omp target teams // expected-error {{region cannot be nested inside 'target teams' region}}8876 a++;8877 }8878#pragma omp target teams8879 {8880#pragma omp target teams distribute // expected-error {{region cannot be nested inside 'target teams' region}}8881 for (int i = 0; i < 10; ++i)8882 ;8883 }8884#pragma omp target teams8885 {8886#pragma omp target teams distribute parallel for // expected-error {{region cannot be nested inside 'target teams' region}}8887 for (int i = 0; i < 10; ++i)8888 ;8889 }8890#pragma omp target teams8891 {8892#pragma omp target teams distribute parallel for simd // expected-error {{region cannot be nested inside 'target teams' region}}8893 for (int i = 0; i < 10; ++i)8894 ;8895 }8896#pragma omp target teams8897 {8898#pragma omp target teams distribute simd // expected-error {{region cannot be nested inside 'target teams' region}}8899 for (int i = 0; i < 10; ++i)8900 ;8901 }8902 8903// TARGET TEAMS DISTRIBUTE DIRECTIVE8904#pragma omp target teams distribute // OK8905 for (int i = 0; i < 10; ++i)8906 ;8907#pragma omp target teams distribute8908 for (int i = 0; i < 10; ++i) {8909#pragma omp distribute parallel for simd // expected-error {{region cannot be closely nested inside 'target teams distribute' region; perhaps you forget to enclose 'omp distribute parallel for simd' directive into a teams region?}}8910 for (int i = 0; i < 10; ++i)8911 ;8912 }8913#pragma omp target teams distribute8914 for (int i = 0; i < 10; ++i) {8915#pragma omp distribute // expected-error {{region cannot be closely nested inside 'target teams distribute' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}8916 for (int i = 0; i < 10; ++i)8917 ;8918 }8919#pragma omp target teams distribute8920 for (int i = 0; i < 10; ++i) {8921#pragma omp for // OK8922 for (int i = 0; i < 10; ++i)8923 ;8924 }8925#pragma omp target teams distribute8926 for (int i = 0; i < 10; ++i) {8927#pragma omp simd // OK8928 for (int i = 0; i < 10; ++i)8929 ;8930 }8931#pragma omp target teams distribute8932 for (int i = 0; i < 10; ++i) {8933#pragma omp for simd // OK8934 for (int i = 0; i < 10; ++i)8935 ;8936 }8937#pragma omp target teams distribute8938 for (int i = 0; i < 10; ++i) {8939#pragma omp parallel // OK8940 for (int i = 0; i < 10; ++i)8941 ;8942 }8943#pragma omp target teams distribute8944 for (int i = 0; i < 10; ++i) {8945#pragma omp sections // OK8946 {8947 bar();8948 }8949 }8950#pragma omp target teams distribute8951 for (int i = 0; i < 10; ++i) {8952#pragma omp section // expected-error {{'omp section' directive must be closely nested to a sections region, not a target teams distribute region}}8953 {8954 bar();8955 }8956 }8957#pragma omp target teams distribute8958 for (int i = 0; i < 10; ++i) {8959#pragma omp single // OK8960 {8961 bar();8962 }8963 }8964#pragma omp target teams distribute8965 for (int i = 0; i < 10; ++i) {8966#pragma omp master // OK8967 {8968 bar();8969 }8970 }8971#pragma omp target teams distribute8972 for (int i = 0; i < 10; ++i) {8973#pragma omp critical // OK8974 {8975 bar();8976 }8977 }8978#pragma omp target teams distribute8979 for (int i = 0; i < 10; ++i) {8980#pragma omp parallel // OK8981 {8982#pragma omp single8983 {8984 bar();8985 }8986 }8987 }8988#pragma omp target teams distribute8989 for (int i = 0; i < 10; ++i) {8990#pragma omp parallel for // OK8991 for (int i = 0; i < 10; ++i)8992 ;8993 }8994#pragma omp target teams distribute8995 for (int i = 0; i < 10; ++i) {8996#pragma omp parallel for simd // OK8997 for (int i = 0; i < 10; ++i)8998 ;8999 }9000#pragma omp target teams distribute9001 for (int i = 0; i < 10; ++i) {9002#pragma omp parallel sections // OK9003 {9004 bar();9005 }9006 }9007#pragma omp target teams distribute9008 for (int i = 0; i < 10; ++i) {9009#pragma omp task // OK9010 {9011 bar();9012 }9013 }9014#pragma omp target teams distribute9015 for (int i = 0; i < 10; ++i) {9016#pragma omp taskyield // OK9017 bar();9018 }9019#pragma omp target teams distribute9020 for (int i = 0; i < 10; ++i) {9021#pragma omp barrier // OK9022 bar();9023 }9024#pragma omp target teams distribute9025 for (int i = 0; i < 10; ++i) {9026#pragma omp scan // expected-error {{region cannot be closely nested inside 'target teams distribute' region; perhaps you forget to enclose 'omp scan' directive into a for, simd, for simd, parallel for, or parallel for simd region?}}9027 bar();9028 }9029#pragma omp target teams distribute9030 for (int i = 0; i < 10; ++i) {9031#pragma omp taskwait // OK9032 bar();9033 }9034#pragma omp target teams distribute9035 for (int i = 0; i < 10; ++i) {9036#pragma omp flush // OK9037 bar();9038 }9039#pragma omp target teams distribute9040 for (int i = 0; i < 10; ++i) {9041#pragma omp ordered // expected-error {{region cannot be closely nested inside 'target teams distribute' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}9042 bar();9043 }9044#pragma omp target teams distribute9045 for (int i = 0; i < 10; ++i) {9046#pragma omp atomic // OK9047 ++a;9048 }9049#pragma omp target teams distribute9050 for (int i = 0; i < 10; ++i) {9051#pragma omp target // expected-error {{region cannot be nested inside 'target teams distribute' region}}9052 ++a;9053 }9054#pragma omp target teams distribute9055 for (int i = 0; i < 10; ++i) {9056#pragma omp target parallel // expected-error {{region cannot be nested inside 'target teams distribute' region}}9057 ++a;9058 }9059#pragma omp target teams distribute9060 for (int i = 0; i < 10; ++i) {9061#pragma omp target parallel for // expected-error {{region cannot be nested inside 'target teams distribute' region}}9062 for (int i = 0; i < 10; ++i)9063 ;9064 }9065#pragma omp target teams distribute9066 for (int i = 0; i < 10; ++i) {9067#pragma omp target enter data map(to: a) // expected-error {{region cannot be nested inside 'target teams distribute' region}}9068 ++a;9069 }9070#pragma omp target teams distribute9071 for (int i = 0; i < 10; ++i) {9072#pragma omp target exit data map(from: a) // expected-error {{region cannot be nested inside 'target teams distribute' region}}9073 ++a;9074 }9075#pragma omp target teams distribute9076 for (int i = 0; i < 10; ++i) {9077#pragma omp teams // expected-error {{region cannot be closely nested inside 'target teams distribute' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}9078 ++a;9079 }9080#pragma omp target teams distribute9081 for (int i = 0; i < 10; ++i) {9082#pragma omp target update to(a) // expected-error {{region cannot be nested inside 'target teams distribute' region}}9083 ++a;9084 }9085#pragma omp target teams distribute9086 for (int i = 0; i < 10; ++i) {9087#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'target teams distribute' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}9088 for (int i = 0; i < 10; ++i)9089 ++a;9090 }9091#pragma omp target teams distribute9092 for (int i = 0; i < 10; ++i) {9093#pragma omp target simd // expected-error {{region cannot be nested inside 'target teams distribute' region}}9094 for (int i = 0; i < 10; ++i)9095 ++a;9096 }9097#pragma omp target teams distribute9098 for (int i = 0; i < 10; ++i) {9099#pragma omp teams distribute // expected-error {{region cannot be closely nested inside 'target teams distribute' region; perhaps you forget to enclose 'omp teams distribute' directive into a target region?}}9100 for (int i = 0; i < 10; ++i)9101 ++a;9102 }9103#pragma omp target teams distribute9104 for (int i = 0; i < 10; ++i) {9105#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'target teams distribute' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}9106 for (int i = 0; i < 10; ++i)9107 ++a;9108 }9109#pragma omp target teams distribute9110 for (int i = 0; i < 10; ++i) {9111#pragma omp teams distribute parallel for simd // expected-error {{region cannot be closely nested inside 'target teams distribute' region; perhaps you forget to enclose 'omp teams distribute parallel for simd' directive into a target region?}}9112 for (int i = 0; i < 10; ++i)9113 ++a;9114 }9115#pragma omp target teams distribute9116 for (int i = 0; i < 10; ++i) {9117#pragma omp teams distribute parallel for // expected-error {{region cannot be closely nested inside 'target teams distribute' region; perhaps you forget to enclose 'omp teams distribute parallel for' directive into a target region?}}9118 for (int i = 0; i < 10; ++i)9119 ;9120 }9121#pragma omp target teams distribute9122 for (int i = 0; i < 10; ++i) {9123#pragma omp target teams // expected-error {{region cannot be nested inside 'target teams distribute' region}}9124 a++;9125 }9126#pragma omp target teams distribute9127 for (int i = 0; i < 10; ++i) {9128#pragma omp target teams distribute // expected-error {{region cannot be nested inside 'target teams distribute' region}}9129 for (int i = 0; i < 10; ++i)9130 ;9131 }9132#pragma omp target teams distribute9133 for (int i = 0; i < 10; ++i) {9134#pragma omp target teams distribute parallel for // expected-error {{region cannot be nested inside 'target teams distribute' region}}9135 for (int i = 0; i < 10; ++i)9136 ;9137 }9138#pragma omp target teams distribute9139 for (int i = 0; i < 10; ++i) {9140#pragma omp target teams distribute parallel for simd // expected-error {{region cannot be nested inside 'target teams distribute' region}}9141 for (int i = 0; i < 10; ++i)9142 ;9143 }9144#pragma omp target teams distribute9145 for (int i = 0; i < 10; ++i) {9146#pragma omp target teams distribute simd // expected-error {{region cannot be nested inside 'target teams distribute' region}}9147 for (int i = 0; i < 10; ++i)9148 ;9149 }9150 9151// TARGET TEAMS DISTRIBUTE PARALLEL FOR DIRECTIVE9152#pragma omp target teams distribute parallel for // OK9153 for (int i = 0; i < 10; ++i)9154 ;9155#pragma omp target teams distribute parallel for9156 for (int i = 0; i < 10; ++i) {9157#pragma omp distribute parallel for simd // expected-error {{region cannot be closely nested inside 'target teams distribute parallel for' region; perhaps you forget to enclose 'omp distribute parallel for simd' directive into a teams region?}}9158 for (int i = 0; i < 10; ++i)9159 ;9160 }9161#pragma omp target teams distribute parallel for9162 for (int i = 0; i < 10; ++i) {9163#pragma omp distribute // expected-error {{region cannot be closely nested inside 'target teams distribute parallel for' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}9164 for (int i = 0; i < 10; ++i)9165 ;9166 }9167#pragma omp target teams distribute parallel for9168 for (int i = 0; i < 10; ++i) {9169#pragma omp for // expected-error {{region cannot be closely nested inside 'target teams distribute parallel for' region; perhaps you forget to enclose 'omp for' directive into a parallel region?}}9170 for (int i = 0; i < 10; ++i)9171 ;9172 }9173#pragma omp target teams distribute parallel for9174 for (int i = 0; i < 10; ++i) {9175#pragma omp simd // OK9176 for (int i = 0; i < 10; ++i)9177 ;9178 }9179#pragma omp target teams distribute parallel for9180 for (int i = 0; i < 10; ++i) {9181#pragma omp for simd // expected-error {{region cannot be closely nested inside 'target teams distribute parallel for' region; perhaps you forget to enclose 'omp for simd' directive into a parallel region?}}9182 for (int i = 0; i < 10; ++i)9183 ;9184 }9185#pragma omp target teams distribute parallel for9186 for (int i = 0; i < 10; ++i) {9187#pragma omp parallel // OK9188 for (int i = 0; i < 10; ++i)9189 ;9190 }9191#pragma omp target teams distribute parallel for9192 for (int i = 0; i < 10; ++i) {9193#pragma omp sections // expected-error {{region cannot be closely nested inside 'target teams distribute parallel for' region; perhaps you forget to enclose 'omp sections' directive into a parallel region?}}9194 {9195 bar();9196 }9197 }9198#pragma omp target teams distribute parallel for9199 for (int i = 0; i < 10; ++i) {9200#pragma omp section // expected-error {{'omp section' directive must be closely nested to a sections region, not a target teams distribute parallel for region}}9201 {9202 bar();9203 }9204 }9205#pragma omp target teams distribute parallel for9206 for (int i = 0; i < 10; ++i) {9207#pragma omp single // expected-error {{region cannot be closely nested inside 'target teams distribute parallel for' region; perhaps you forget to enclose 'omp single' directive into a parallel region?}}9208 {9209 bar();9210 }9211 }9212#pragma omp target teams distribute parallel for9213 for (int i = 0; i < 10; ++i) {9214#pragma omp master // expected-error {{region cannot be closely nested inside 'target teams distribute parallel for' region}}9215 {9216 bar();9217 }9218 }9219#pragma omp target teams distribute parallel for9220 for (int i = 0; i < 10; ++i) {9221#pragma omp critical // OK9222 {9223 bar();9224 }9225 }9226#pragma omp target teams distribute parallel for9227 for (int i = 0; i < 10; ++i) {9228#pragma omp parallel // OK9229 {9230#pragma omp single9231 {9232 bar();9233 }9234 }9235 }9236#pragma omp target teams distribute parallel for9237 for (int i = 0; i < 10; ++i) {9238#pragma omp parallel for // OK9239 for (int i = 0; i < 10; ++i)9240 ;9241 }9242#pragma omp target teams distribute parallel for9243 for (int i = 0; i < 10; ++i) {9244#pragma omp parallel for simd // OK9245 for (int i = 0; i < 10; ++i)9246 ;9247 }9248#pragma omp target teams distribute parallel for9249 for (int i = 0; i < 10; ++i) {9250#pragma omp parallel sections // OK9251 {9252 bar();9253 }9254 }9255#pragma omp target teams distribute parallel for9256 for (int i = 0; i < 10; ++i) {9257#pragma omp task // OK9258 {9259 bar();9260 }9261 }9262#pragma omp target teams distribute parallel for9263 for (int i = 0; i < 10; ++i) {9264#pragma omp taskyield // OK9265 bar();9266 }9267#pragma omp target teams distribute parallel for9268 for (int i = 0; i < 10; ++i) {9269#pragma omp barrier // expected-error {{region cannot be closely nested inside 'target teams distribute parallel for' region}}9270 bar();9271 }9272#pragma omp target teams distribute parallel for9273 for (int i = 0; i < 10; ++i) {9274#pragma omp scan // expected-error {{region cannot be closely nested inside 'target teams distribute parallel for' region}}9275 bar();9276 }9277#pragma omp target teams distribute parallel for9278 for (int i = 0; i < 10; ++i) {9279#pragma omp taskwait // OK9280 bar();9281 }9282#pragma omp target teams distribute parallel for9283 for (int i = 0; i < 10; ++i) {9284#pragma omp flush // OK9285 bar();9286 }9287#pragma omp target teams distribute parallel for9288 for (int i = 0; i < 10; ++i) {9289#pragma omp ordered // expected-error {{region cannot be closely nested inside 'target teams distribute parallel for' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}9290 bar();9291 }9292#pragma omp target teams distribute parallel for9293 for (int i = 0; i < 10; ++i) {9294#pragma omp atomic // OK9295 ++a;9296 }9297#pragma omp target teams distribute parallel for9298 for (int i = 0; i < 10; ++i) {9299#pragma omp target // expected-error {{region cannot be nested inside 'target teams distribute parallel for' region}}9300 ++a;9301 }9302#pragma omp target teams distribute parallel for9303 for (int i = 0; i < 10; ++i) {9304#pragma omp target parallel // expected-error {{region cannot be nested inside 'target teams distribute parallel for' region}}9305 ++a;9306 }9307#pragma omp target teams distribute parallel for9308 for (int i = 0; i < 10; ++i) {9309#pragma omp target parallel for // expected-error {{region cannot be nested inside 'target teams distribute parallel for' region}}9310 for (int i = 0; i < 10; ++i)9311 ;9312 }9313#pragma omp target teams distribute parallel for9314 for (int i = 0; i < 10; ++i) {9315#pragma omp target enter data map(to: a) // expected-error {{region cannot be nested inside 'target teams distribute parallel for' region}}9316 ++a;9317 }9318#pragma omp target teams distribute parallel for9319 for (int i = 0; i < 10; ++i) {9320#pragma omp target exit data map(from: a) // expected-error {{region cannot be nested inside 'target teams distribute parallel for' region}}9321 ++a;9322 }9323#pragma omp target teams distribute parallel for9324 for (int i = 0; i < 10; ++i) {9325#pragma omp teams // expected-error {{region cannot be closely nested inside 'target teams distribute parallel for' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}9326 ++a;9327 }9328#pragma omp target teams distribute parallel for9329 for (int i = 0; i < 10; ++i) {9330#pragma omp target update to(a) // expected-error {{region cannot be nested inside 'target teams distribute parallel for' region}}9331 ++a;9332 }9333#pragma omp target teams distribute parallel for9334 for (int i = 0; i < 10; ++i) {9335#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'target teams distribute parallel for' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}9336 for (int i = 0; i < 10; ++i)9337 ++a;9338 }9339#pragma omp target teams distribute parallel for9340 for (int i = 0; i < 10; ++i) {9341#pragma omp target simd // expected-error {{region cannot be nested inside 'target teams distribute parallel for' region}}9342 for (int i = 0; i < 10; ++i)9343 ++a;9344 }9345#pragma omp target teams distribute parallel for9346 for (int i = 0; i < 10; ++i) {9347#pragma omp teams distribute // expected-error {{region cannot be closely nested inside 'target teams distribute parallel for' region; perhaps you forget to enclose 'omp teams distribute' directive into a target region?}}9348 for (int i = 0; i < 10; ++i)9349 ++a;9350 }9351#pragma omp target teams distribute parallel for9352 for (int i = 0; i < 10; ++i) {9353#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'target teams distribute parallel for' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}9354 for (int i = 0; i < 10; ++i)9355 ++a;9356 }9357#pragma omp target teams distribute parallel for9358 for (int i = 0; i < 10; ++i) {9359#pragma omp teams distribute parallel for simd // expected-error {{region cannot be closely nested inside 'target teams distribute parallel for' region; perhaps you forget to enclose 'omp teams distribute parallel for simd' directive into a target region?}}9360 for (int i = 0; i < 10; ++i)9361 ++a;9362 }9363#pragma omp target teams distribute parallel for9364 for (int i = 0; i < 10; ++i) {9365#pragma omp teams distribute parallel for // expected-error {{region cannot be closely nested inside 'target teams distribute parallel for' region; perhaps you forget to enclose 'omp teams distribute parallel for' directive into a target region?}}9366 for (int i = 0; i < 10; ++i)9367 ;9368 }9369#pragma omp target teams distribute parallel for9370 for (int i = 0; i < 10; ++i) {9371#pragma omp target teams // expected-error {{region cannot be nested inside 'target teams distribute parallel for' region}}9372 a++;9373 }9374#pragma omp target teams distribute parallel for9375 for (int i = 0; i < 10; ++i) {9376#pragma omp target teams distribute // expected-error {{region cannot be nested inside 'target teams distribute parallel for' region}}9377 for (int i = 0; i < 10; ++i)9378 ;9379 }9380#pragma omp target teams distribute parallel for9381 for (int i = 0; i < 10; ++i) {9382#pragma omp target teams distribute parallel for // expected-error {{region cannot be nested inside 'target teams distribute parallel for' region}}9383 for (int i = 0; i < 10; ++i)9384 ;9385 }9386#pragma omp target teams distribute parallel for9387 for (int i = 0; i < 10; ++i) {9388#pragma omp target teams distribute parallel for simd // expected-error {{region cannot be nested inside 'target teams distribute parallel for' region}}9389 for (int i = 0; i < 10; ++i)9390 ;9391 }9392#pragma omp target teams distribute parallel for9393 for (int i = 0; i < 10; ++i) {9394#pragma omp target teams distribute simd // expected-error {{region cannot be nested inside 'target teams distribute parallel for' region}}9395 for (int i = 0; i < 10; ++i)9396 ;9397 }9398 9399// TARGET TEAMS DISTRIBUTE PARALLEL FOR SIMD DIRECTIVE9400#pragma omp target teams distribute parallel for simd // OK9401 for (int i = 0; i < 10; ++i)9402 ;9403#pragma omp target teams distribute parallel for simd9404 for (int i = 0; i < 10; ++i) {9405#pragma omp distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}9406 for (int i = 0; i < 10; ++i)9407 ;9408 }9409#pragma omp target teams distribute parallel for simd9410 for (int i = 0; i < 10; ++i) {9411#pragma omp distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}9412 for (int i = 0; i < 10; ++i)9413 ;9414 }9415#pragma omp target teams distribute parallel for simd9416 for (int i = 0; i < 10; ++i) {9417#pragma omp for // expected-error {{OpenMP constructs may not be nested inside a simd region}}9418 for (int i = 0; i < 10; ++i)9419 ;9420 }9421#pragma omp target teams distribute parallel for simd9422 for (int i = 0; i < 10; ++i) {9423#pragma omp simd // omp45warn-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}9424 for (int i = 0; i < 10; ++i)9425 ;9426 }9427#pragma omp target teams distribute parallel for simd9428 for (int i = 0; i < 10; ++i) {9429#pragma omp for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}9430 for (int i = 0; i < 10; ++i)9431 ;9432 }9433#pragma omp target teams distribute parallel for simd9434 for (int i = 0; i < 10; ++i) {9435#pragma omp parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}9436 for (int i = 0; i < 10; ++i)9437 ;9438 }9439#pragma omp target teams distribute parallel for simd9440 for (int i = 0; i < 10; ++i) {9441#pragma omp sections // expected-error {{OpenMP constructs may not be nested inside a simd region}}9442 {9443 bar();9444 }9445 }9446#pragma omp target teams distribute parallel for simd9447 for (int i = 0; i < 10; ++i) {9448#pragma omp section // expected-error {{OpenMP constructs may not be nested inside a simd region}}9449 {9450 bar();9451 }9452 }9453#pragma omp target teams distribute parallel for simd9454 for (int i = 0; i < 10; ++i) {9455#pragma omp single // expected-error {{OpenMP constructs may not be nested inside a simd region}}9456 {9457 bar();9458 }9459 }9460#pragma omp target teams distribute parallel for simd9461 for (int i = 0; i < 10; ++i) {9462#pragma omp master // expected-error {{OpenMP constructs may not be nested inside a simd region}}9463 {9464 bar();9465 }9466 }9467#pragma omp target teams distribute parallel for simd9468 for (int i = 0; i < 10; ++i) {9469#pragma omp critical // expected-error {{OpenMP constructs may not be nested inside a simd region}}9470 {9471 bar();9472 }9473 }9474#pragma omp target teams distribute parallel for simd9475 for (int i = 0; i < 10; ++i) {9476#pragma omp parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}9477 {9478#pragma omp single9479 {9480 bar();9481 }9482 }9483 }9484#pragma omp target teams distribute parallel for simd9485 for (int i = 0; i < 10; ++i) {9486#pragma omp parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}9487 for (int i = 0; i < 10; ++i)9488 ;9489 }9490#pragma omp target teams distribute parallel for simd9491 for (int i = 0; i < 10; ++i) {9492#pragma omp parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}9493 for (int i = 0; i < 10; ++i)9494 ;9495 }9496#pragma omp target teams distribute parallel for simd9497 for (int i = 0; i < 10; ++i) {9498#pragma omp parallel sections // expected-error {{OpenMP constructs may not be nested inside a simd region}}9499 {9500 bar();9501 }9502 }9503#pragma omp target teams distribute parallel for simd9504 for (int i = 0; i < 10; ++i) {9505#pragma omp task // expected-error {{OpenMP constructs may not be nested inside a simd region}}9506 {9507 bar();9508 }9509 }9510#pragma omp target teams distribute parallel for simd9511 for (int i = 0; i < 10; ++i) {9512#pragma omp taskyield // expected-error {{OpenMP constructs may not be nested inside a simd region}}9513 bar();9514 }9515#pragma omp target teams distribute parallel for simd9516 for (int i = 0; i < 10; ++i) {9517#pragma omp barrier // expected-error {{OpenMP constructs may not be nested inside a simd region}}9518 bar();9519 }9520#pragma omp target teams distribute parallel for simd9521 for (int i = 0; i < 10; ++i) {9522#pragma omp scan // omp45-error {{OpenMP constructs may not be nested inside a simd region}} omp50-error {{region cannot be closely nested inside 'target teams distribute parallel for simd' region; perhaps you forget to enclose 'omp scan' directive into a for, simd, for simd, parallel for, or parallel for simd region?}} omp51-error {{region cannot be closely nested inside 'target teams distribute parallel for simd' region; perhaps you forget to enclose 'omp scan' directive into a for, simd, for simd, parallel for, or parallel for simd region?}}9523 bar();9524 }9525#pragma omp target teams distribute parallel for simd9526 for (int i = 0; i < 10; ++i) {9527#pragma omp taskwait // expected-error {{OpenMP constructs may not be nested inside a simd region}}9528 bar();9529 }9530#pragma omp target teams distribute parallel for simd9531 for (int i = 0; i < 10; ++i) {9532#pragma omp flush // expected-error {{OpenMP constructs may not be nested inside a simd region}}9533 bar();9534 }9535#pragma omp target teams distribute parallel for simd9536 for (int i = 0; i < 10; ++i) {9537#pragma omp ordered // expected-error {{OpenMP constructs may not be nested inside a simd region}}9538 bar();9539 }9540#pragma omp target teams distribute parallel for simd9541 for (int i = 0; i < 10; ++i) {9542#pragma omp atomic // omp45-error {{OpenMP constructs may not be nested inside a simd region}}9543 ++a;9544 }9545#pragma omp target teams distribute parallel for simd9546 for (int i = 0; i < 10; ++i) {9547#pragma omp target // expected-error {{OpenMP constructs may not be nested inside a simd region}}9548 ++a;9549 }9550#pragma omp target teams distribute parallel for simd9551 for (int i = 0; i < 10; ++i) {9552#pragma omp target parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}9553 ++a;9554 }9555#pragma omp target teams distribute parallel for simd9556 for (int i = 0; i < 10; ++i) {9557#pragma omp target parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}9558 for (int i = 0; i < 10; ++i)9559 ;9560 }9561#pragma omp target teams distribute parallel for simd9562 for (int i = 0; i < 10; ++i) {9563#pragma omp target enter data map(to: a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}9564 ++a;9565 }9566#pragma omp target teams distribute parallel for simd9567 for (int i = 0; i < 10; ++i) {9568#pragma omp target exit data map(from: a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}9569 ++a;9570 }9571#pragma omp target teams distribute parallel for simd9572 for (int i = 0; i < 10; ++i) {9573#pragma omp teams // expected-error {{OpenMP constructs may not be nested inside a simd region}}9574 ++a;9575 }9576#pragma omp target teams distribute parallel for simd9577 for (int i = 0; i < 10; ++i) {9578#pragma omp target update to(a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}9579 ++a;9580 }9581#pragma omp target teams distribute parallel for simd9582 for (int i = 0; i < 10; ++i) {9583#pragma omp distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}9584 for (int i = 0; i < 10; ++i)9585 ++a;9586 }9587#pragma omp target teams distribute parallel for simd9588 for (int i = 0; i < 10; ++i) {9589#pragma omp target simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}9590 for (int i = 0; i < 10; ++i)9591 ++a;9592 }9593#pragma omp target teams distribute parallel for simd9594 for (int i = 0; i < 10; ++i) {9595#pragma omp teams distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}9596 for (int i = 0; i < 10; ++i)9597 ++a;9598 }9599#pragma omp target teams distribute parallel for simd9600 for (int i = 0; i < 10; ++i) {9601#pragma omp teams distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}9602 for (int i = 0; i < 10; ++i)9603 ++a;9604 }9605#pragma omp target teams distribute parallel for simd9606 for (int i = 0; i < 10; ++i) {9607#pragma omp teams distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}9608 for (int i = 0; i < 10; ++i)9609 ++a;9610 }9611#pragma omp target teams distribute parallel for simd9612 for (int i = 0; i < 10; ++i) {9613#pragma omp teams distribute parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}9614 for (int i = 0; i < 10; ++i)9615 ;9616 }9617#pragma omp target teams distribute parallel for simd9618 for (int i = 0; i < 10; ++i) {9619#pragma omp target teams // expected-error {{OpenMP constructs may not be nested inside a simd region}}9620 a++;9621 }9622#pragma omp target teams distribute parallel for simd9623 for (int i = 0; i < 10; ++i) {9624#pragma omp target teams distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}9625 for (int i = 0; i < 10; ++i)9626 ;9627 }9628#pragma omp target teams distribute parallel for simd9629 for (int i = 0; i < 10; ++i) {9630#pragma omp target teams distribute parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}9631 for (int i = 0; i < 10; ++i)9632 ;9633 }9634#pragma omp target teams distribute parallel for simd9635 for (int i = 0; i < 10; ++i) {9636#pragma omp target teams distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}9637 for (int i = 0; i < 10; ++i)9638 ;9639 }9640#pragma omp target teams distribute parallel for simd9641 for (int i = 0; i < 10; ++i) {9642#pragma omp target teams distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}9643 for (int i = 0; i < 10; ++i)9644 ;9645 }9646 9647// TARGET TEAMS DISTRIBUTE SIMD DIRECTIVE9648#pragma omp target teams distribute simd // OK9649 for (int i = 0; i < 10; ++i)9650 ;9651#pragma omp target teams distribute simd9652 for (int i = 0; i < 10; ++i) {9653#pragma omp distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}9654 for (int i = 0; i < 10; ++i)9655 ;9656 }9657#pragma omp target teams distribute simd9658 for (int i = 0; i < 10; ++i) {9659#pragma omp distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}9660 for (int i = 0; i < 10; ++i)9661 ;9662 }9663#pragma omp target teams distribute simd9664 for (int i = 0; i < 10; ++i) {9665#pragma omp for // expected-error {{OpenMP constructs may not be nested inside a simd region}}9666 for (int i = 0; i < 10; ++i)9667 ;9668 }9669#pragma omp target teams distribute simd9670 for (int i = 0; i < 10; ++i) {9671#pragma omp simd // omp45warn-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}9672 for (int i = 0; i < 10; ++i)9673 ;9674 }9675#pragma omp target teams distribute simd9676 for (int i = 0; i < 10; ++i) {9677#pragma omp for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}9678 for (int i = 0; i < 10; ++i)9679 ;9680 }9681#pragma omp target teams distribute simd9682 for (int i = 0; i < 10; ++i) {9683#pragma omp parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}9684 for (int i = 0; i < 10; ++i)9685 ;9686 }9687#pragma omp target teams distribute simd9688 for (int i = 0; i < 10; ++i) {9689#pragma omp sections // expected-error {{OpenMP constructs may not be nested inside a simd region}}9690 {9691 bar();9692 }9693 }9694#pragma omp target teams distribute simd9695 for (int i = 0; i < 10; ++i) {9696#pragma omp section // expected-error {{OpenMP constructs may not be nested inside a simd region}}9697 {9698 bar();9699 }9700 }9701#pragma omp target teams distribute simd9702 for (int i = 0; i < 10; ++i) {9703#pragma omp single // expected-error {{OpenMP constructs may not be nested inside a simd region}}9704 {9705 bar();9706 }9707 }9708#pragma omp target teams distribute simd9709 for (int i = 0; i < 10; ++i) {9710#pragma omp master // expected-error {{OpenMP constructs may not be nested inside a simd region}}9711 {9712 bar();9713 }9714 }9715#pragma omp target teams distribute simd9716 for (int i = 0; i < 10; ++i) {9717#pragma omp critical // expected-error {{OpenMP constructs may not be nested inside a simd region}}9718 {9719 bar();9720 }9721 }9722#pragma omp target teams distribute simd9723 for (int i = 0; i < 10; ++i) {9724#pragma omp parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}9725 {9726#pragma omp single9727 {9728 bar();9729 }9730 }9731 }9732#pragma omp target teams distribute simd9733 for (int i = 0; i < 10; ++i) {9734#pragma omp parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}9735 for (int i = 0; i < 10; ++i)9736 ;9737 }9738#pragma omp target teams distribute simd9739 for (int i = 0; i < 10; ++i) {9740#pragma omp parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}9741 for (int i = 0; i < 10; ++i)9742 ;9743 }9744#pragma omp target teams distribute simd9745 for (int i = 0; i < 10; ++i) {9746#pragma omp parallel sections // expected-error {{OpenMP constructs may not be nested inside a simd region}}9747 {9748 bar();9749 }9750 }9751#pragma omp target teams distribute simd9752 for (int i = 0; i < 10; ++i) {9753#pragma omp task // expected-error {{OpenMP constructs may not be nested inside a simd region}}9754 {9755 bar();9756 }9757 }9758#pragma omp target teams distribute simd9759 for (int i = 0; i < 10; ++i) {9760#pragma omp taskyield // expected-error {{OpenMP constructs may not be nested inside a simd region}}9761 bar();9762 }9763#pragma omp target teams distribute simd9764 for (int i = 0; i < 10; ++i) {9765#pragma omp barrier // expected-error {{OpenMP constructs may not be nested inside a simd region}}9766 bar();9767 }9768#pragma omp target teams distribute simd9769 for (int i = 0; i < 10; ++i) {9770#pragma omp scan // omp45-error {{OpenMP constructs may not be nested inside a simd region}} omp50-error {{region cannot be closely nested inside 'target teams distribute simd' region; perhaps you forget to enclose 'omp scan' directive into a for, simd, for simd, parallel for, or parallel for simd region?}} omp51-error {{region cannot be closely nested inside 'target teams distribute simd' region; perhaps you forget to enclose 'omp scan' directive into a for, simd, for simd, parallel for, or parallel for simd region?}}9771 bar();9772 }9773#pragma omp target teams distribute simd9774 for (int i = 0; i < 10; ++i) {9775#pragma omp taskwait // expected-error {{OpenMP constructs may not be nested inside a simd region}}9776 bar();9777 }9778#pragma omp target teams distribute simd9779 for (int i = 0; i < 10; ++i) {9780#pragma omp flush // expected-error {{OpenMP constructs may not be nested inside a simd region}}9781 bar();9782 }9783#pragma omp target teams distribute simd9784 for (int i = 0; i < 10; ++i) {9785#pragma omp ordered // expected-error {{OpenMP constructs may not be nested inside a simd region}}9786 bar();9787 }9788#pragma omp target teams distribute simd9789 for (int i = 0; i < 10; ++i) {9790#pragma omp atomic // omp45-error {{OpenMP constructs may not be nested inside a simd region}}9791 ++a;9792 }9793#pragma omp target teams distribute simd9794 for (int i = 0; i < 10; ++i) {9795#pragma omp target // expected-error {{OpenMP constructs may not be nested inside a simd region}}9796 ++a;9797 }9798#pragma omp target teams distribute simd9799 for (int i = 0; i < 10; ++i) {9800#pragma omp target parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}9801 ++a;9802 }9803#pragma omp target teams distribute simd9804 for (int i = 0; i < 10; ++i) {9805#pragma omp target parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}9806 for (int i = 0; i < 10; ++i)9807 ;9808 }9809#pragma omp target teams distribute simd9810 for (int i = 0; i < 10; ++i) {9811#pragma omp target enter data map(to: a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}9812 ++a;9813 }9814#pragma omp target teams distribute simd9815 for (int i = 0; i < 10; ++i) {9816#pragma omp target exit data map(from: a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}9817 ++a;9818 }9819#pragma omp target teams distribute simd9820 for (int i = 0; i < 10; ++i) {9821#pragma omp teams // expected-error {{OpenMP constructs may not be nested inside a simd region}}9822 ++a;9823 }9824#pragma omp target teams distribute simd9825 for (int i = 0; i < 10; ++i) {9826#pragma omp target update to(a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}9827 ++a;9828 }9829#pragma omp target teams distribute simd9830 for (int i = 0; i < 10; ++i) {9831#pragma omp distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}9832 for (int i = 0; i < 10; ++i)9833 ++a;9834 }9835#pragma omp target teams distribute simd9836 for (int i = 0; i < 10; ++i) {9837#pragma omp target simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}9838 for (int i = 0; i < 10; ++i)9839 ++a;9840 }9841#pragma omp target teams distribute simd9842 for (int i = 0; i < 10; ++i) {9843#pragma omp teams distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}9844 for (int i = 0; i < 10; ++i)9845 ++a;9846 }9847#pragma omp target teams distribute simd9848 for (int i = 0; i < 10; ++i) {9849#pragma omp teams distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}9850 for (int i = 0; i < 10; ++i)9851 ++a;9852 }9853#pragma omp target teams distribute simd9854 for (int i = 0; i < 10; ++i) {9855#pragma omp teams distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}9856 for (int i = 0; i < 10; ++i)9857 ++a;9858 }9859#pragma omp target teams distribute simd9860 for (int i = 0; i < 10; ++i) {9861#pragma omp teams distribute parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}9862 for (int i = 0; i < 10; ++i)9863 ;9864 }9865#pragma omp target teams distribute simd9866 for (int i = 0; i < 10; ++i) {9867#pragma omp target teams // expected-error {{OpenMP constructs may not be nested inside a simd region}}9868 a++;9869 }9870#pragma omp target teams distribute simd9871 for (int i = 0; i < 10; ++i) {9872#pragma omp target teams distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}9873 for (int i = 0; i < 10; ++i)9874 ;9875 }9876#pragma omp target teams distribute simd9877 for (int i = 0; i < 10; ++i) {9878#pragma omp target teams distribute parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}9879 for (int i = 0; i < 10; ++i)9880 ;9881 }9882#pragma omp target teams distribute simd9883 for (int i = 0; i < 10; ++i) {9884#pragma omp target teams distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}9885 for (int i = 0; i < 10; ++i)9886 ;9887 }9888#pragma omp target teams distribute simd9889 for (int i = 0; i < 10; ++i) {9890#pragma omp target teams distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}9891 for (int i = 0; i < 10; ++i)9892 ;9893 }9894 9895 // SCOPE DIRECTIVE9896#pragma omp scope9897#pragma omp parallel // OK9898 bar();9899#pragma omp scope9900#pragma omp parallel for // OK9901 for(int i = 0; i < 10; i++)9902 ;9903#pragma omp scope9904#pragma omp parallel for simd // OK9905 for(int i = 0; i < 10; i++)9906 ;9907#pragma omp scope9908#pragma omp for9909 for (int i = 0; i < 10; ++i)9910 ;9911#pragma omp scope9912#pragma omp simd9913 for (int i = 0; i < 10; ++i)9914 ;9915#pragma omp scope9916#pragma omp for simd9917 for (int i = 0; i < 10; ++i)9918 ;9919#pragma omp scope9920#pragma omp sections9921 {9922 bar();9923 }9924#pragma omp scope9925#pragma omp section // expected-error {{'omp section' directive must be closely nested to a sections region, not a scope region}}9926 {9927 bar();9928 }9929#pragma omp scope9930#pragma omp single9931 bar();9932 9933#pragma omp scope9934#pragma omp master9935 {9936 bar();9937 }9938#pragma omp scope9939#pragma omp critical9940 {9941 bar();9942 }9943#pragma omp scope9944#pragma omp parallel sections9945 {9946 bar();9947 }9948#pragma omp scope9949#pragma omp parallel master9950 {9951 bar();9952 }9953#pragma omp scope9954#pragma omp parallel masked9955 {9956 bar();9957 }9958#pragma omp scope9959#pragma omp task9960 {9961 bar();9962 }9963#pragma omp scope9964 {9965#pragma omp taskyield9966 bar();9967 }9968#pragma omp scope9969 {9970#pragma omp barrier9971 bar();9972 }9973#pragma omp scope9974 {9975#pragma omp scan // expected-error {{region cannot be closely nested inside 'scope' region; perhaps you forget to enclose 'omp scan' directive into a for, simd, for simd, parallel for, or parallel for simd region?}}9976 bar();9977 }9978#pragma omp scope9979 {9980#pragma omp taskwait9981 bar();9982 }9983#pragma omp scope9984 {9985#pragma omp flush9986 bar();9987 }9988#pragma omp scope9989 {9990#pragma omp ordered // expected-error {{region cannot be closely nested inside 'scope' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}9991 bar();9992 }9993#pragma omp scope9994 {9995#pragma omp atomic9996 ++a;9997 }9998#pragma omp scope9999 {10000#pragma omp target parallel10001 ++a;10002 }10003#pragma omp scope10004 {10005#pragma omp target parallel for10006 for (int i = 0; i < 10; ++i)10007 ;10008 }10009#pragma omp scope10010 {10011#pragma omp target enter data map(to: a)10012 ++a;10013 }10014#pragma omp scope10015 {10016#pragma omp target exit data map(from: a)10017 ++a;10018 }10019#pragma omp scope10020 {10021#pragma omp taskloop10022 for (int i = 0; i < 10; ++i)10023 ++a;10024 }10025#pragma omp scope10026 {10027#pragma omp target // OK10028 a++;10029 }10030#pragma omp scope10031 {10032#pragma omp teams // expected-error {{region cannot be closely nested inside 'scope' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}10033 a++;10034 }10035#pragma omp scope10036 {10037#pragma omp target teams // OK10038 a++;10039 }10040#pragma omp scope10041 {10042#pragma omp distribute // expected-error {{region cannot be closely nested inside 'scope' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}10043 for (int i = 0; i < 10; ++i)10044 ;10045 }10046 #pragma omp scope10047 {10048 #pragma omp distribute parallel for simd // expected-error {{region cannot be closely nested inside 'scope' region; perhaps you forget to enclose 'omp distribute parallel for simd' directive into a teams region?}}10049 for (int i = 0; i < 10; ++i)10050 ;10051 }10052#pragma omp scope10053 {10054#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'scope' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}10055 for (int i = 0; i < 10; ++i)10056 ;10057 }10058#pragma omp scope10059 {10060#pragma omp target simd // OK10061 for (int i = 0; i < 10; ++i)10062 ;10063 }10064#pragma omp scope10065 {10066 #pragma omp teams distribute // expected-error {{region cannot be closely nested inside 'scope' region; perhaps you forget to enclose 'omp teams distribute' directive into a target region?}}10067 for (int i = 0; i < 10; ++i)10068 ;10069 }10070#pragma omp scope10071 {10072#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'scope' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}10073 for (int i = 0; i < 10; ++i)10074 ;10075 }10076#pragma omp scope10077 {10078#pragma omp teams distribute parallel for simd // expected-error {{region cannot be closely nested inside 'scope' region; perhaps you forget to enclose 'omp teams distribute parallel for simd' directive into a target region?}}10079 for (int i = 0; i < 10; ++i)10080 ;10081 }10082#pragma omp scope10083 {10084#pragma omp teams distribute parallel for // expected-error {{region cannot be closely nested inside 'scope' region; perhaps you forget to enclose 'omp teams distribute parallel for' directive into a target region?}}10085 for (int i = 0; i < 10; ++i)10086 ;10087 }10088#pragma omp scope10089 {10090#pragma omp target teams // OK10091 ++a;10092 }10093#pragma omp scope10094 {10095#pragma omp target teams distribute // OK10096 for (int i = 0; i < 10; ++i)10097 ;10098 }10099#pragma omp scope10100 {10101#pragma omp target teams distribute parallel for // OK10102 for (int i = 0; i < 10; ++i)10103 ;10104 }10105#pragma omp scope10106 {10107#pragma omp target teams distribute parallel for simd // OK10108 for (int i = 0; i < 10; ++i)10109 ;10110 }10111#pragma omp scope10112 {10113#pragma omp target teams distribute simd // OK10114 for (int i = 0; i < 10; ++i)10115 ;10116 }10117#pragma omp for10118 for (int i = 0; i < 10; ++i) {10119#pragma omp scope // expected-error {{region cannot be closely nested inside 'for' region}}10120 bar();10121 }10122 10123#pragma omp for simd10124 for (int i = 0; i < 10; ++i) {10125#pragma omp scope // expected-error {{OpenMP constructs may not be nested inside a simd region}}10126 bar();10127 }10128 10129#pragma omp sections10130 {10131#pragma omp scope // expected-error {{region cannot be closely nested inside 'sections' region}}10132 bar();10133 }10134 10135#pragma omp sections10136 {10137#pragma omp section10138 {10139#pragma omp scope // expected-error {{region cannot be closely nested inside 'section' region}}10140 bar();10141 }10142 }10143 10144#pragma omp single10145 {10146#pragma omp scope // expected-error {{region cannot be closely nested inside 'single' region}}10147 bar();10148 }10149 10150#pragma omp master10151 {10152#pragma omp scope // expected-error {{region cannot be closely nested inside 'master' region}}10153 bar();10154 }10155 10156#pragma omp critical10157 {10158#pragma omp scope // expected-error {{region cannot be closely nested inside 'critical' region}}10159 bar();10160 }10161 10162#pragma omp parallel for10163 for (int i = 0; i < 10; ++i) {10164#pragma omp scope // expected-error {{region cannot be closely nested inside 'parallel for' region}}10165 bar();10166 }10167 10168#pragma omp parallel for simd10169 for (int i = 0; i < 10; ++i) {10170#pragma omp scope // expected-error {{OpenMP constructs may not be nested inside a simd region}}10171 bar();10172 }10173 10174#pragma omp parallel master10175 {10176#pragma omp scope // expected-error {{region cannot be closely nested inside 'parallel master' region}}10177 bar();10178 }10179 10180#pragma omp parallel sections10181 {10182#pragma omp scope // expected-error {{region cannot be closely nested inside 'parallel sections' region}}10183 bar();10184 }10185 10186#pragma omp task10187 {10188#pragma omp scope // expected-error {{region cannot be closely nested inside 'task' region}}10189 bar();10190 }10191 10192#pragma omp ordered10193 {10194#pragma omp scope // expected-error {{region cannot be closely nested inside 'ordered' region}}10195 bar();10196 }10197 10198#pragma omp atomic10199 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}10200 // expected-note@+1 {{expected an expression statement}}10201 {10202#pragma omp scope // expected-error {{OpenMP constructs may not be nested inside an atomic region}}10203 bar();10204 }10205 10206#pragma omp target10207#pragma omp teams10208 {10209#pragma omp scope // expected-error {{region cannot be closely nested inside 'teams' region; perhaps you forget to enclose 'omp scope' directive into a parallel region?}}10210 bar();10211 }10212 10213#pragma omp taskloop10214 for (int i = 0; i < 10; ++i) {10215#pragma omp scope // expected-error {{region cannot be closely nested inside 'taskloop' region}}10216 bar();10217 }10218 10219#pragma omp target10220#pragma omp teams10221#pragma omp distribute parallel for10222 for (int i = 0; i < 10; ++i) {10223#pragma omp scope // expected-error {{region cannot be closely nested inside 'distribute parallel for' region}}10224 bar();10225 }10226 10227#pragma omp target10228#pragma omp teams10229#pragma omp distribute parallel for simd10230 for (int i = 0; i < 10; ++i) {10231#pragma omp scope // expected-error {{OpenMP constructs may not be nested inside a simd region}}10232 bar();10233 }10234 10235#pragma omp target simd10236 for (int i = 0; i < 10; ++i) {10237#pragma omp scope // expected-error {{OpenMP constructs may not be nested inside a simd region}}10238 bar();10239 }10240 10241#pragma omp target10242#pragma omp teams distribute simd10243 for (int i = 0; i < 10; ++i) {10244#pragma omp scope // expected-error {{OpenMP constructs may not be nested inside a simd region}}10245 bar();10246 }10247 10248#pragma omp target10249#pragma omp teams distribute parallel for simd10250 for (int i = 0; i < 10; ++i) {10251#pragma omp scope // expected-error {{OpenMP constructs may not be nested inside a simd region}}10252 bar();10253 }10254 10255#pragma omp target10256#pragma omp teams distribute parallel for10257 for (int i = 0; i < 10; ++i) {10258#pragma omp scope // expected-error {{region cannot be closely nested inside 'teams distribute parallel for' region}}10259 bar();10260 }10261 10262#pragma omp target teams10263 {10264#pragma omp scope // expected-error {{region cannot be closely nested inside 'target teams' region; perhaps you forget to enclose 'omp scope' directive into a parallel region?}}10265 bar();10266 }10267 10268#pragma omp target teams distribute parallel for10269 for (int i = 0; i < 10; ++i) {10270#pragma omp scope // expected-error {{region cannot be closely nested inside 'target teams distribute parallel for' region}}10271 bar();10272 }10273 10274#pragma omp target teams distribute parallel for simd10275 for (int i = 0; i < 10; ++i) {10276#pragma omp scope // expected-error {{OpenMP constructs may not be nested inside a simd region}}10277 bar();10278 }10279 10280#pragma omp target teams distribute simd10281 for (int i = 0; i < 10; ++i) {10282#pragma omp scope // expected-error {{OpenMP constructs may not be nested inside a simd region}}10283 bar();10284 }10285 10286#pragma omp simd10287 for (int i = 0; i < 10; ++i) {10288#pragma omp scope // expected-error {{OpenMP constructs may not be nested inside a simd region}}10289 bar();10290 }10291}10292 10293void foo() {10294 int a = 0;10295// PARALLEL DIRECTIVE10296#pragma omp parallel10297#pragma omp for10298 for (int i = 0; i < 10; ++i)10299 ;10300#pragma omp parallel10301#pragma omp simd10302 for (int i = 0; i < 10; ++i)10303 ;10304#pragma omp parallel10305#pragma omp for simd10306 for (int i = 0; i < 10; ++i)10307 ;10308#pragma omp parallel10309#pragma omp sections10310 {10311 bar();10312 }10313#pragma omp parallel10314#pragma omp section // expected-error {{'omp section' directive must be closely nested to a sections region, not a parallel region}}10315 {10316 bar();10317 }10318#pragma omp parallel10319#pragma omp sections10320 {10321 bar();10322 }10323#pragma omp parallel10324#pragma omp single10325 bar();10326#pragma omp parallel10327#pragma omp master10328 bar();10329#pragma omp parallel master10330 bar();10331#pragma omp parallel masked10332 bar();10333#pragma omp parallel10334#pragma omp critical10335 bar();10336#pragma omp parallel10337#pragma omp parallel for10338 for (int i = 0; i < 10; ++i)10339 ;10340#pragma omp parallel10341#pragma omp parallel for simd10342 for (int i = 0; i < 10; ++i)10343 ;10344#pragma omp parallel10345#pragma omp parallel sections10346 {10347 bar();10348 }10349#pragma omp parallel10350#pragma omp task10351 {10352 bar();10353 }10354#pragma omp parallel10355 {10356#pragma omp taskyield10357 bar();10358 }10359#pragma omp parallel10360 {10361#pragma omp barrier10362 bar();10363 }10364#pragma omp parallel10365 {10366#pragma omp scan // expected-error {{region cannot be closely nested inside 'parallel' region; perhaps you forget to enclose 'omp scan' directive into a for, simd, for simd, parallel for, or parallel for simd region?}}10367 bar();10368 }10369#pragma omp parallel10370 {10371#pragma omp taskwait10372 bar();10373 }10374#pragma omp parallel10375 {10376#pragma omp flush10377 bar();10378 }10379#pragma omp parallel10380 {10381#pragma omp ordered // expected-error {{region cannot be closely nested inside 'parallel' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}10382 bar();10383 }10384#pragma omp parallel10385 {10386#pragma omp atomic10387 ++a;10388 }10389#pragma omp parallel10390 {10391#pragma omp target10392 ++a;10393 }10394#pragma omp parallel10395 {10396#pragma omp target parallel10397 ++a;10398 }10399#pragma omp parallel10400#pragma omp target parallel for10401 for (int i = 0; i < 10; ++i)10402 ;10403#pragma omp parallel10404 {10405#pragma omp target enter data map(to: a)10406 ++a;10407 }10408#pragma omp parallel10409 {10410#pragma omp target exit data map(from: a)10411 ++a;10412 }10413#pragma omp parallel10414 {10415#pragma omp teams // expected-error {{region cannot be closely nested inside 'parallel' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}10416 ++a;10417 }10418#pragma omp parallel10419 {10420#pragma omp taskloop10421 for (int i = 0; i < 10; ++i)10422 ++a;10423 }10424#pragma omp parallel10425 {10426#pragma omp distribute // expected-error {{region cannot be closely nested inside 'parallel' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}10427 for (int i = 0; i < 10; ++i)10428 ;10429 }10430#pragma omp parallel10431 {10432#pragma omp target update to(a)10433 a++;10434 }10435#pragma omp parallel10436 {10437#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'parallel' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}10438 for (int i = 0; i < 10; ++i)10439 ;10440 }10441#pragma omp parallel10442 {10443#pragma omp distribute parallel for simd // expected-error {{region cannot be closely nested inside 'parallel' region; perhaps you forget to enclose 'omp distribute parallel for simd' directive into a teams region?}}10444 for (int i = 0; i < 10; ++i)10445 ;10446 }10447#pragma omp parallel10448 {10449#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'parallel' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}10450 for (int i = 0; i < 10; ++i)10451 ;10452 }10453#pragma omp parallel10454 {10455#pragma omp target simd // OK10456 for (int i = 0; i < 10; ++i)10457 ;10458 }10459#pragma omp parallel10460 {10461#pragma omp teams distribute // expected-error {{region cannot be closely nested inside 'parallel' region; perhaps you forget to enclose 'omp teams distribute' directive into a target region?}}10462 for (int i = 0; i < 10; ++i)10463 ;10464 }10465#pragma omp parallel10466 {10467#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'parallel' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}10468 for (int i = 0; i < 10; ++i)10469 ;10470 }10471#pragma omp parallel10472 {10473#pragma omp teams distribute parallel for simd // expected-error {{region cannot be closely nested inside 'parallel' region; perhaps you forget to enclose 'omp teams distribute parallel for simd' directive into a target region?}}10474 for (int i = 0; i < 10; ++i)10475 ;10476 }10477#pragma omp parallel10478 {10479#pragma omp teams distribute parallel for // expected-error {{region cannot be closely nested inside 'parallel' region; perhaps you forget to enclose 'omp teams distribute parallel for' directive into a target region?}}10480 for (int i = 0; i < 10; ++i)10481 ;10482 }10483#pragma omp parallel10484 {10485#pragma omp target teams // OK10486 a++;10487 }10488#pragma omp parallel10489 {10490#pragma omp target teams distribute // OK10491 for (int i = 0; i < 10; ++i)10492 ;10493 }10494#pragma omp parallel10495 {10496#pragma omp target teams distribute parallel for // OK10497 for (int i = 0; i < 10; ++i)10498 ;10499 }10500#pragma omp parallel10501 {10502#pragma omp target teams distribute parallel for simd // OK10503 for (int i = 0; i < 10; ++i)10504 ;10505 }10506#pragma omp parallel10507 {10508#pragma omp target teams distribute simd // OK10509 for (int i = 0; i < 10; ++i)10510 ;10511 }10512 10513// SIMD DIRECTIVE10514#pragma omp simd10515 for (int i = 0; i < 10; ++i) {10516#pragma omp for // expected-error {{OpenMP constructs may not be nested inside a simd region}}10517 for (int i = 0; i < 10; ++i)10518 ;10519 }10520#pragma omp simd10521 for (int i = 0; i < 10; ++i) {10522#pragma omp simd // omp45warn-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}10523 for (int i = 0; i < 10; ++i)10524 ;10525 }10526#pragma omp simd10527 for (int i = 0; i < 10; ++i) {10528#pragma omp for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}10529 for (int i = 0; i < 10; ++i)10530 ;10531 }10532#pragma omp simd10533 for (int i = 0; i < 10; ++i) {10534#pragma omp parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}10535 for (int i = 0; i < 10; ++i)10536 ;10537 }10538#pragma omp simd10539 for (int i = 0; i < 10; ++i) {10540#pragma omp sections // expected-error {{OpenMP constructs may not be nested inside a simd region}}10541 {10542 bar();10543 }10544 }10545#pragma omp simd10546 for (int i = 0; i < 10; ++i) {10547#pragma omp section // expected-error {{OpenMP constructs may not be nested inside a simd region}}10548 {10549 bar();10550 }10551 }10552#pragma omp simd10553 for (int i = 0; i < 10; ++i) {10554#pragma omp single // expected-error {{OpenMP constructs may not be nested inside a simd region}}10555 bar();10556#pragma omp master // expected-error {{OpenMP constructs may not be nested inside a simd region}}10557 bar();10558 }10559#pragma omp simd10560 for (int i = 0; i < 10; ++i) {10561#pragma omp single // expected-error {{OpenMP constructs may not be nested inside a simd region}}10562 bar();10563#pragma omp critical // expected-error {{OpenMP constructs may not be nested inside a simd region}}10564 bar();10565 }10566#pragma omp simd10567 for (int i = 0; i < 10; ++i) {10568#pragma omp parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}10569 for (int i = 0; i < 10; ++i)10570 ;10571 }10572#pragma omp simd10573 for (int i = 0; i < 10; ++i) {10574#pragma omp parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}10575 for (int i = 0; i < 10; ++i)10576 ;10577 }10578#pragma omp simd10579 for (int i = 0; i < 10; ++i) {10580#pragma omp parallel sections // expected-error {{OpenMP constructs may not be nested inside a simd region}}10581 {10582 bar();10583 }10584 }10585#pragma omp simd10586 for (int i = 0; i < 10; ++i) {10587#pragma omp task // expected-error {{OpenMP constructs may not be nested inside a simd region}}10588 {10589 bar();10590 }10591 }10592#pragma omp simd10593 for (int i = 0; i < 10; ++i) {10594#pragma omp taskyield // expected-error {{OpenMP constructs may not be nested inside a simd region}}10595 bar();10596 }10597#pragma omp simd10598 for (int i = 0; i < 10; ++i) {10599#pragma omp barrier // expected-error {{OpenMP constructs may not be nested inside a simd region}}10600 bar();10601 }10602#pragma omp simd10603 for (int i = 0; i < 10; ++i) {10604#pragma omp scan // omp45-error {{OpenMP constructs may not be nested inside a simd region}} omp50-error {{exactly one of 'inclusive' or 'exclusive' clauses is expected}} omp51-error {{exactly one of 'inclusive' or 'exclusive' clauses is expected}}10605 bar();10606 }10607#pragma omp simd10608 for (int i = 0; i < 10; ++i) {10609#pragma omp taskwait // expected-error {{OpenMP constructs may not be nested inside a simd region}}10610 bar();10611 }10612#pragma omp simd10613 for (int i = 0; i < 10; ++i) {10614#pragma omp flush // expected-error {{OpenMP constructs may not be nested inside a simd region}}10615 bar();10616 }10617#pragma omp simd10618 for (int i = 0; i < 10; ++i) {10619#pragma omp ordered // expected-error {{OpenMP constructs may not be nested inside a simd region}}10620 bar();10621 }10622#pragma omp simd10623 for (int i = 0; i < 10; ++i) {10624#pragma omp atomic // omp45-error {{OpenMP constructs may not be nested inside a simd region}}10625 ++a;10626 }10627#pragma omp simd10628 for (int i = 0; i < 10; ++i) {10629#pragma omp target // expected-error {{OpenMP constructs may not be nested inside a simd region}}10630 ++a;10631 }10632#pragma omp simd10633 for (int i = 0; i < 10; ++i) {10634#pragma omp target parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}10635 ++a;10636 }10637#pragma omp simd10638 for (int i = 0; i < 10; ++i) {10639#pragma omp target parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}10640 for (int i = 0; i < 10; ++i)10641 ;10642 }10643#pragma omp simd10644 for (int i = 0; i < 10; ++i) {10645#pragma omp target enter data map(to: a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}10646 ++a;10647 }10648#pragma omp simd10649 for (int i = 0; i < 10; ++i) {10650#pragma omp target exit data map(from: a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}10651 ++a;10652 }10653#pragma omp simd10654 for (int i = 0; i < 10; ++i) {10655#pragma omp teams // expected-error {{OpenMP constructs may not be nested inside a simd region}}10656 ++a;10657 }10658#pragma omp simd10659 for (int i = 0; i < 10; ++i) {10660#pragma omp taskloop // expected-error {{OpenMP constructs may not be nested inside a simd region}}10661 for (int i = 0; i < 10; ++i)10662 ++a;10663 }10664#pragma omp simd10665 for (int i = 0; i < 10; ++i) {10666#pragma omp distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}10667 for (int j = 0; j < 10; ++j)10668 ;10669 }10670#pragma omp simd10671 for (int i = 0; i < 10; ++i) {10672#pragma omp target update to(a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}10673 a++;10674 }10675#pragma omp simd10676 for (int i = 0; i < 10; ++i) {10677#pragma omp distribute parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}10678 for (int j = 0; j < 10; ++j)10679 ;10680 }10681#pragma omp simd10682 for (int i = 0; i < 10; ++i) {10683#pragma omp distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}10684 for (int j = 0; j < 10; ++j)10685 ;10686 }10687#pragma omp simd10688 for (int i = 0; i < 10; ++i) {10689#pragma omp distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}10690 for (int j = 0; j < 10; ++j)10691 ;10692 }10693#pragma omp simd10694 for (int i = 0; i < 10; ++i) {10695#pragma omp target simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}10696 for (int j = 0; j < 10; ++j)10697 ;10698 }10699#pragma omp simd10700 for (int i = 0; i < 10; ++i) {10701#pragma omp teams distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}10702 for (int j = 0; j < 10; ++j)10703 ;10704 }10705#pragma omp simd10706 for (int i = 0; i < 10; ++i) {10707#pragma omp teams distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}10708 for (int j = 0; j < 10; ++j)10709 ;10710 }10711#pragma omp simd10712 for (int i = 0; i < 10; ++i) {10713#pragma omp teams distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}10714 for (int j = 0; j < 10; ++j)10715 ;10716 }10717#pragma omp simd10718 for (int i = 0; i < 10; ++i) {10719#pragma omp teams distribute parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}10720 for (int j = 0; j < 10; ++j)10721 ;10722 }10723#pragma omp simd10724 for (int i = 0; i < 10; ++i) {10725#pragma omp target teams // expected-error {{OpenMP constructs may not be nested inside a simd region}}10726 a++;10727 }10728#pragma omp simd10729 for (int i = 0; i < 10; ++i) {10730#pragma omp target teams distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}10731 for (int j = 0; j < 10; ++j)10732 ;10733 }10734#pragma omp simd10735 for (int i = 0; i < 10; ++i) {10736#pragma omp target teams distribute parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}10737 for (int j = 0; j < 10; ++j)10738 ;10739 }10740#pragma omp simd10741 for (int i = 0; i < 10; ++i) {10742#pragma omp target teams distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}10743 for (int j = 0; j < 10; ++j)10744 ;10745 }10746#pragma omp simd10747 for (int i = 0; i < 10; ++i) {10748#pragma omp target teams distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}10749 for (int j = 0; j < 10; ++j)10750 ;10751 }10752 10753// FOR DIRECTIVE10754#pragma omp for10755 for (int i = 0; i < 10; ++i) {10756#pragma omp for // expected-error {{region cannot be closely nested inside 'for' region; perhaps you forget to enclose 'omp for' directive into a parallel region?}}10757 for (int i = 0; i < 10; ++i)10758 ;10759 }10760#pragma omp for10761 for (int i = 0; i < 10; ++i) {10762#pragma omp simd10763 for (int i = 0; i < 10; ++i)10764 ;10765 }10766#pragma omp for10767 for (int i = 0; i < 10; ++i) {10768#pragma omp for simd // expected-error {{region cannot be closely nested inside 'for' region; perhaps you forget to enclose 'omp for simd' directive into a parallel region?}}10769 for (int i = 0; i < 10; ++i)10770 ;10771 }10772#pragma omp for10773 for (int i = 0; i < 10; ++i) {10774#pragma omp parallel10775 for (int i = 0; i < 10; ++i)10776 ;10777 }10778#pragma omp for10779 for (int i = 0; i < 10; ++i) {10780#pragma omp sections // expected-error {{region cannot be closely nested inside 'for' region; perhaps you forget to enclose 'omp sections' directive into a parallel region?}}10781 {10782 bar();10783 }10784 }10785#pragma omp for10786 for (int i = 0; i < 10; ++i) {10787#pragma omp section // expected-error {{'omp section' directive must be closely nested to a sections region, not a for region}}10788 {10789 bar();10790 }10791 }10792#pragma omp for10793 for (int i = 0; i < 10; ++i) {10794#pragma omp single // expected-error {{region cannot be closely nested inside 'for' region; perhaps you forget to enclose 'omp single' directive into a parallel region?}}10795 bar();10796#pragma omp master // expected-error {{region cannot be closely nested inside 'for' region}}10797 bar();10798#pragma omp critical10799 bar();10800 }10801#pragma omp for10802 for (int i = 0; i < 10; ++i) {10803#pragma omp parallel10804 {10805#pragma omp single // OK10806 {10807 bar();10808 }10809#pragma omp for // OK10810 for (int i = 0; i < 10; ++i)10811 ;10812#pragma omp for simd // OK10813 for (int i = 0; i < 10; ++i)10814 ;10815#pragma omp sections // OK10816 {10817 bar();10818 }10819 }10820 }10821#pragma omp for10822 for (int i = 0; i < 10; ++i) {10823#pragma omp parallel for10824 for (int i = 0; i < 10; ++i)10825 ;10826 }10827#pragma omp for10828 for (int i = 0; i < 10; ++i) {10829#pragma omp parallel for simd10830 for (int i = 0; i < 10; ++i)10831 ;10832 }10833#pragma omp for10834 for (int i = 0; i < 10; ++i) {10835#pragma omp parallel sections10836 {10837 bar();10838 }10839 }10840#pragma omp for10841 for (int i = 0; i < 10; ++i) {10842#pragma omp task10843 {10844 bar();10845 }10846 }10847#pragma omp for10848 for (int i = 0; i < 10; ++i) {10849#pragma omp taskyield10850 bar();10851 }10852#pragma omp for10853 for (int i = 0; i < 10; ++i) {10854#pragma omp barrier // expected-error {{region cannot be closely nested inside 'for' region}}10855 bar();10856 }10857#pragma omp for10858 for (int i = 0; i < 10; ++i) {10859#pragma omp scan // omp45-error {{region cannot be closely nested inside 'for' region}} omp50-error {{exactly one of 'inclusive' or 'exclusive' clauses is expected}} omp51-error {{exactly one of 'inclusive' or 'exclusive' clauses is expected}}10860 bar();10861 }10862#pragma omp for10863 for (int i = 0; i < 10; ++i) {10864#pragma omp taskwait10865 bar();10866 }10867#pragma omp for10868 for (int i = 0; i < 10; ++i) {10869#pragma omp flush10870 bar();10871 }10872#pragma omp for10873 for (int i = 0; i < 10; ++i) {10874#pragma omp ordered // expected-error {{region cannot be closely nested inside 'for' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}10875 bar();10876 }10877#pragma omp for ordered10878 for (int i = 0; i < 10; ++i) {10879#pragma omp ordered // OK10880 bar();10881 }10882#pragma omp for10883 for (int i = 0; i < 10; ++i) {10884#pragma omp atomic10885 ++a;10886 }10887#pragma omp for10888 for (int i = 0; i < 10; ++i) {10889#pragma omp target10890 ++a;10891 }10892#pragma omp for10893 for (int i = 0; i < 10; ++i) {10894#pragma omp target parallel10895 ++a;10896 }10897#pragma omp for10898 for (int i = 0; i < 10; ++i) {10899#pragma omp target parallel for10900 for (int i = 0; i < 10; ++i)10901 ;10902 }10903#pragma omp for10904 for (int i = 0; i < 10; ++i) {10905#pragma omp target enter data map(to: a)10906 ++a;10907 }10908#pragma omp for10909 for (int i = 0; i < 10; ++i) {10910#pragma omp target exit data map(from: a)10911 ++a;10912 }10913#pragma omp for10914 for (int i = 0; i < 10; ++i) {10915#pragma omp teams // expected-error {{region cannot be closely nested inside 'for' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}10916 ++a;10917 }10918#pragma omp for10919 for (int i = 0; i < 10; ++i) {10920#pragma omp taskloop10921 for (int i = 0; i < 10; ++i)10922 ++a;10923 }10924#pragma omp for10925 for (int i = 0; i < 10; ++i) {10926#pragma omp distribute // expected-error {{region cannot be closely nested inside 'for' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}10927 for (int j = 0; j < 10; ++j)10928 ;10929 }10930#pragma omp for10931 for (int i = 0; i < 10; ++i) {10932#pragma omp target update to(a)10933 ++a;10934 }10935#pragma omp for10936 for (int i = 0; i < 10; ++i) {10937#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'for' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}10938 for (int j = 0; j < 10; ++j)10939 ;10940 }10941#pragma omp for10942 for (int i = 0; i < 10; ++i) {10943#pragma omp distribute parallel for simd // expected-error {{region cannot be closely nested inside 'for' region; perhaps you forget to enclose 'omp distribute parallel for simd' directive into a teams region?}}10944 for (int j = 0; j < 10; ++j)10945 ;10946 }10947#pragma omp for10948 for (int i = 0; i < 10; ++i) {10949#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'for' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}10950 for (int j = 0; j < 10; ++j)10951 ;10952 }10953#pragma omp for10954 for (int i = 0; i < 10; ++i) {10955#pragma omp target simd // OK10956 for (int j = 0; j < 10; ++j)10957 ;10958 }10959#pragma omp for10960 for (int i = 0; i < 10; ++i) {10961#pragma omp teams distribute // expected-error {{region cannot be closely nested inside 'for' region; perhaps you forget to enclose 'omp teams distribute' directive into a target region?}}10962 for (int j = 0; j < 10; ++j)10963 ;10964 }10965#pragma omp for10966 for (int i = 0; i < 10; ++i) {10967#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'for' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}10968 for (int j = 0; j < 10; ++j)10969 ;10970 }10971#pragma omp for10972 for (int i = 0; i < 10; ++i) {10973#pragma omp teams distribute parallel for simd // expected-error {{region cannot be closely nested inside 'for' region; perhaps you forget to enclose 'omp teams distribute parallel for simd' directive into a target region?}}10974 for (int j = 0; j < 10; ++j)10975 ;10976 }10977#pragma omp for10978 for (int i = 0; i < 10; ++i) {10979#pragma omp teams distribute parallel for // expected-error {{region cannot be closely nested inside 'for' region; perhaps you forget to enclose 'omp teams distribute parallel for' directive into a target region?}}10980 for (int j = 0; j < 10; ++j)10981 ;10982 }10983#pragma omp for10984 for (int i = 0; i < 10; ++i) {10985#pragma omp target teams // OK10986 a++;10987 }10988#pragma omp for10989 for (int i = 0; i < 10; ++i) {10990#pragma omp target teams distribute // OK10991 for (int j = 0; j < 10; ++j)10992 ;10993 }10994#pragma omp for10995 for (int i = 0; i < 10; ++i) {10996#pragma omp target teams distribute parallel for // OK10997 for (int j = 0; j < 10; ++j)10998 ;10999 }11000#pragma omp for11001 for (int i = 0; i < 10; ++i) {11002#pragma omp target teams distribute parallel for simd // OK11003 for (int j = 0; j < 10; ++j)11004 ;11005 }11006#pragma omp for11007 for (int i = 0; i < 10; ++i) {11008#pragma omp target teams distribute simd // OK11009 for (int j = 0; j < 10; ++j)11010 ;11011 }11012 11013// FOR SIMD DIRECTIVE11014#pragma omp for simd11015 for (int i = 0; i < 10; ++i) {11016#pragma omp for // expected-error {{OpenMP constructs may not be nested inside a simd region}}11017 for (int i = 0; i < 10; ++i)11018 ;11019 }11020#pragma omp for simd11021 for (int i = 0; i < 10; ++i) {11022#pragma omp simd // omp45warn-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}11023 for (int i = 0; i < 10; ++i)11024 ;11025 }11026#pragma omp for simd11027 for (int i = 0; i < 10; ++i) {11028#pragma omp for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}11029 for (int i = 0; i < 10; ++i)11030 ;11031 }11032#pragma omp for simd11033 for (int i = 0; i < 10; ++i) {11034#pragma omp parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}11035 for (int i = 0; i < 10; ++i)11036 ;11037 }11038#pragma omp for simd11039 for (int i = 0; i < 10; ++i) {11040#pragma omp sections // expected-error {{OpenMP constructs may not be nested inside a simd region}}11041 {11042 bar();11043 }11044 }11045#pragma omp for simd11046 for (int i = 0; i < 10; ++i) {11047#pragma omp section // expected-error {{OpenMP constructs may not be nested inside a simd region}}11048 {11049 bar();11050 }11051 }11052#pragma omp for simd11053 for (int i = 0; i < 10; ++i) {11054#pragma omp single // expected-error {{OpenMP constructs may not be nested inside a simd region}}11055 bar();11056#pragma omp master // expected-error {{OpenMP constructs may not be nested inside a simd region}}11057 bar();11058 }11059#pragma omp for simd11060 for (int i = 0; i < 10; ++i) {11061#pragma omp single // expected-error {{OpenMP constructs may not be nested inside a simd region}}11062 bar();11063#pragma omp critical // expected-error {{OpenMP constructs may not be nested inside a simd region}}11064 bar();11065 }11066#pragma omp for simd11067 for (int i = 0; i < 10; ++i) {11068#pragma omp parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}11069 for (int i = 0; i < 10; ++i)11070 ;11071 }11072#pragma omp for simd11073 for (int i = 0; i < 10; ++i) {11074#pragma omp parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}11075 for (int i = 0; i < 10; ++i)11076 ;11077 }11078#pragma omp for simd11079 for (int i = 0; i < 10; ++i) {11080#pragma omp parallel sections // expected-error {{OpenMP constructs may not be nested inside a simd region}}11081 {11082 bar();11083 }11084 }11085#pragma omp for simd11086 for (int i = 0; i < 10; ++i) {11087#pragma omp task // expected-error {{OpenMP constructs may not be nested inside a simd region}}11088 {11089 bar();11090 }11091 }11092#pragma omp for simd11093 for (int i = 0; i < 10; ++i) {11094#pragma omp taskyield // expected-error {{OpenMP constructs may not be nested inside a simd region}}11095 bar();11096 }11097#pragma omp for simd11098 for (int i = 0; i < 10; ++i) {11099#pragma omp barrier // expected-error {{OpenMP constructs may not be nested inside a simd region}}11100 bar();11101 }11102#pragma omp for simd11103 for (int i = 0; i < 10; ++i) {11104#pragma omp scan // omp45-error {{OpenMP constructs may not be nested inside a simd region}} omp50-error {{exactly one of 'inclusive' or 'exclusive' clauses is expected}} omp51-error {{exactly one of 'inclusive' or 'exclusive' clauses is expected}}11105 bar();11106 }11107#pragma omp for simd11108 for (int i = 0; i < 10; ++i) {11109#pragma omp taskwait // expected-error {{OpenMP constructs may not be nested inside a simd region}}11110 bar();11111 }11112#pragma omp for simd11113 for (int i = 0; i < 10; ++i) {11114#pragma omp flush // expected-error {{OpenMP constructs may not be nested inside a simd region}}11115 bar();11116 }11117#pragma omp for simd11118 for (int i = 0; i < 10; ++i) {11119#pragma omp ordered // expected-error {{OpenMP constructs may not be nested inside a simd region}}11120 bar();11121 }11122#pragma omp for simd11123 for (int i = 0; i < 10; ++i) {11124#pragma omp atomic // omp45-error {{OpenMP constructs may not be nested inside a simd region}}11125 ++a;11126 }11127#pragma omp for simd11128 for (int i = 0; i < 10; ++i) {11129#pragma omp target // expected-error {{OpenMP constructs may not be nested inside a simd region}}11130 ++a;11131 }11132#pragma omp for simd11133 for (int i = 0; i < 10; ++i) {11134#pragma omp target parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}11135 ++a;11136 }11137#pragma omp for simd11138 for (int i = 0; i < 10; ++i) {11139#pragma omp target parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}11140 for (int i = 0; i < 10; ++i)11141 ;11142 }11143#pragma omp for simd11144 for (int i = 0; i < 10; ++i) {11145#pragma omp target enter data map(to: a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}11146 ++a;11147 }11148#pragma omp for simd11149 for (int i = 0; i < 10; ++i) {11150#pragma omp target exit data map(from: a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}11151 ++a;11152 }11153#pragma omp for simd11154 for (int i = 0; i < 10; ++i) {11155#pragma omp teams // expected-error {{OpenMP constructs may not be nested inside a simd region}}11156 ++a;11157 }11158#pragma omp for simd11159 for (int i = 0; i < 10; ++i) {11160#pragma omp taskloop // expected-error {{OpenMP constructs may not be nested inside a simd region}}11161 for (int i = 0; i < 10; ++i)11162 ++a;11163 }11164#pragma omp for simd11165 for (int i = 0; i < 10; ++i) {11166#pragma omp distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}11167 for (int j = 0; j < 10; ++j)11168 ;11169 }11170#pragma omp for simd11171 for (int i = 0; i < 10; ++i) {11172#pragma omp target update to(a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}11173 ++a;11174 }11175#pragma omp for simd11176 for (int i = 0; i < 10; ++i) {11177#pragma omp distribute parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}11178 for (int j = 0; j < 10; ++j)11179 ;11180 }11181#pragma omp for simd11182 for (int i = 0; i < 10; ++i) {11183#pragma omp distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}11184 for (int j = 0; j < 10; ++j)11185 ;11186 }11187#pragma omp for simd11188 for (int i = 0; i < 10; ++i) {11189#pragma omp distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}11190 for (int j = 0; j < 10; ++j)11191 ;11192 }11193#pragma omp for simd11194 for (int i = 0; i < 10; ++i) {11195#pragma omp target simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}11196 for (int j = 0; j < 10; ++j)11197 ;11198 }11199#pragma omp for simd11200 for (int i = 0; i < 10; ++i) {11201#pragma omp teams distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}11202 for (int j = 0; j < 10; ++j)11203 ;11204 }11205#pragma omp for simd11206 for (int i = 0; i < 10; ++i) {11207#pragma omp teams distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}11208 for (int j = 0; j < 10; ++j)11209 ;11210 }11211#pragma omp for simd11212 for (int i = 0; i < 10; ++i) {11213#pragma omp teams distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}11214 for (int j = 0; j < 10; ++j)11215 ;11216 }11217#pragma omp for simd11218 for (int i = 0; i < 10; ++i) {11219#pragma omp teams distribute parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}11220 for (int j = 0; j < 10; ++j)11221 ;11222 }11223#pragma omp for simd11224 for (int i = 0; i < 10; ++i) {11225#pragma omp target teams // expected-error {{OpenMP constructs may not be nested inside a simd region}}11226 a++;11227 }11228#pragma omp for simd11229 for (int i = 0; i < 10; ++i) {11230#pragma omp target teams distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}11231 for (int j = 0; j < 10; ++j)11232 ;11233 }11234#pragma omp for simd11235 for (int i = 0; i < 10; ++i) {11236#pragma omp target teams distribute parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}11237 for (int j = 0; j < 10; ++j)11238 ;11239 }11240#pragma omp for simd11241 for (int i = 0; i < 10; ++i) {11242#pragma omp target teams distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}11243 for (int j = 0; j < 10; ++j)11244 ;11245 }11246#pragma omp for simd11247 for (int i = 0; i < 10; ++i) {11248#pragma omp target teams distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}11249 for (int j = 0; j < 10; ++j)11250 ;11251 }11252 11253// SECTIONS DIRECTIVE11254#pragma omp sections11255 {11256#pragma omp for // expected-error {{region cannot be closely nested inside 'sections' region; perhaps you forget to enclose 'omp for' directive into a parallel region?}}11257 for (int i = 0; i < 10; ++i)11258 ;11259 }11260#pragma omp sections11261 {11262#pragma omp simd11263 for (int i = 0; i < 10; ++i)11264 ;11265 }11266#pragma omp sections11267 {11268#pragma omp for simd // expected-error {{region cannot be closely nested inside 'sections' region; perhaps you forget to enclose 'omp for simd' directive into a parallel region?}}11269 for (int i = 0; i < 10; ++i)11270 ;11271 }11272#pragma omp sections11273 {11274#pragma omp parallel11275 for (int i = 0; i < 10; ++i)11276 ;11277 }11278#pragma omp sections11279 {11280#pragma omp sections // expected-error {{region cannot be closely nested inside 'sections' region; perhaps you forget to enclose 'omp sections' directive into a parallel region?}}11281 {11282 bar();11283 }11284 }11285#pragma omp sections11286 {11287#pragma omp section11288 {11289 bar();11290 }11291 }11292#pragma omp sections11293 {11294#pragma omp critical11295 bar();11296#pragma omp single // expected-error {{region cannot be closely nested inside 'sections' region; perhaps you forget to enclose 'omp single' directive into a parallel region?}}11297 bar();11298#pragma omp master // expected-error {{region cannot be closely nested inside 'sections' region}}11299 bar();11300 }11301#pragma omp sections11302 {11303#pragma omp parallel11304 {11305#pragma omp single // OK11306 {11307 bar();11308 }11309#pragma omp for // OK11310 for (int i = 0; i < 10; ++i)11311 ;11312#pragma omp for simd // OK11313 for (int i = 0; i < 10; ++i)11314 ;11315#pragma omp sections // OK11316 {11317 bar();11318 }11319 }11320 }11321#pragma omp sections11322 {11323#pragma omp parallel for11324 for (int i = 0; i < 10; ++i)11325 ;11326 }11327#pragma omp sections11328 {11329#pragma omp parallel for simd11330 for (int i = 0; i < 10; ++i)11331 ;11332 }11333#pragma omp sections11334 {11335#pragma omp parallel sections11336 {11337 bar();11338 }11339 }11340#pragma omp sections11341 {11342#pragma omp task11343 {11344 bar();11345 }11346 }11347#pragma omp sections11348 {11349#pragma omp taskyield11350 }11351#pragma omp sections11352 {11353#pragma omp barrier // expected-error {{region cannot be closely nested inside 'sections' region}}11354 bar();11355 }11356#pragma omp sections11357 {11358#pragma omp scan // expected-error {{region cannot be closely nested inside 'sections' region}}11359 bar();11360 }11361#pragma omp sections11362 {11363#pragma omp taskwait11364 }11365#pragma omp sections11366 {11367#pragma omp flush11368 }11369#pragma omp sections11370 {11371#pragma omp ordered // expected-error {{region cannot be closely nested inside 'sections' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}11372 bar();11373 }11374#pragma omp sections11375 {11376#pragma omp atomic11377 ++a;11378 }11379#pragma omp sections11380 {11381#pragma omp target11382 ++a;11383 }11384#pragma omp sections11385 {11386#pragma omp target parallel11387 ++a;11388 }11389#pragma omp sections11390 {11391#pragma omp target parallel for11392 for (int i = 0; i < 10; ++i)11393 ;11394 }11395#pragma omp sections11396 {11397#pragma omp target enter data map(to: a)11398 }11399#pragma omp sections11400 {11401#pragma omp target exit data map(from: a)11402 }11403#pragma omp sections11404 {11405#pragma omp teams // expected-error {{region cannot be closely nested inside 'sections' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}11406 ++a;11407 }11408#pragma omp sections11409 {11410#pragma omp taskloop11411 for (int i = 0; i < 10; ++i)11412 ++a;11413 }11414#pragma omp sections11415 {11416#pragma omp distribute // expected-error {{region cannot be closely nested inside 'sections' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}11417 for (int i = 0; i < 10; ++i)11418 ;11419 }11420#pragma omp sections11421 {11422#pragma omp target update to(a)11423 }11424#pragma omp sections11425 {11426#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'sections' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}11427 for (int i = 0; i < 10; ++i)11428 ;11429 }11430#pragma omp sections11431 {11432#pragma omp distribute parallel for simd // expected-error {{region cannot be closely nested inside 'sections' region; perhaps you forget to enclose 'omp distribute parallel for simd' directive into a teams region?}}11433 for (int i = 0; i < 10; ++i)11434 ;11435 }11436#pragma omp sections11437 {11438#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'sections' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}11439 for (int i = 0; i < 10; ++i)11440 ;11441 }11442#pragma omp sections11443 {11444#pragma omp target simd // OK11445 for (int i = 0; i < 10; ++i)11446 ;11447 }11448#pragma omp sections11449 {11450#pragma omp teams distribute // expected-error {{region cannot be closely nested inside 'sections' region; perhaps you forget to enclose 'omp teams distribute' directive into a target region?}}11451 for (int i = 0; i < 10; ++i)11452 ;11453 }11454#pragma omp sections11455 {11456#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'sections' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}11457 for (int i = 0; i < 10; ++i)11458 ;11459 }11460#pragma omp sections11461 {11462#pragma omp teams distribute parallel for simd // expected-error {{region cannot be closely nested inside 'sections' region; perhaps you forget to enclose 'omp teams distribute parallel for simd' directive into a target region?}}11463 for (int i = 0; i < 10; ++i)11464 ;11465 }11466#pragma omp sections11467 {11468#pragma omp teams distribute parallel for // expected-error {{region cannot be closely nested inside 'sections' region; perhaps you forget to enclose 'omp teams distribute parallel for' directive into a target region?}}11469 for (int i = 0; i < 10; ++i)11470 ;11471 }11472#pragma omp sections11473 {11474#pragma omp target teams // OK11475 a++;11476 }11477#pragma omp sections11478 {11479#pragma omp target teams distribute // OK11480 for (int i = 0; i < 10; ++i)11481 ;11482 }11483#pragma omp sections11484 {11485#pragma omp target teams distribute parallel for // OK11486 for (int i = 0; i < 10; ++i)11487 ;11488 }11489#pragma omp sections11490 {11491#pragma omp target teams distribute parallel for simd // OK11492 for (int i = 0; i < 10; ++i)11493 ;11494 }11495#pragma omp sections11496 {11497#pragma omp target teams distribute simd // OK11498 for (int i = 0; i < 10; ++i)11499 ;11500 }11501 11502// SECTION DIRECTIVE11503#pragma omp section // expected-error {{orphaned 'omp section' directives are prohibited, it must be closely nested to a sections region}}11504 {11505 bar();11506 }11507#pragma omp sections11508 {11509#pragma omp section11510 {11511#pragma omp for // expected-error {{region cannot be closely nested inside 'section' region; perhaps you forget to enclose 'omp for' directive into a parallel region?}}11512 for (int i = 0; i < 10; ++i)11513 ;11514 }11515 }11516#pragma omp sections11517 {11518#pragma omp section11519 {11520#pragma omp simd11521 for (int i = 0; i < 10; ++i)11522 ;11523 }11524 }11525#pragma omp sections11526 {11527#pragma omp section11528 {11529#pragma omp for simd // expected-error {{region cannot be closely nested inside 'section' region; perhaps you forget to enclose 'omp for simd' directive into a parallel region?}}11530 for (int i = 0; i < 10; ++i)11531 ;11532 }11533 }11534#pragma omp sections11535 {11536#pragma omp section11537 {11538#pragma omp parallel11539 for (int i = 0; i < 10; ++i)11540 ;11541 }11542 }11543#pragma omp sections11544 {11545#pragma omp section11546 {11547#pragma omp sections // expected-error {{region cannot be closely nested inside 'section' region; perhaps you forget to enclose 'omp sections' directive into a parallel region?}}11548 {11549 bar();11550 }11551 }11552 }11553#pragma omp sections11554 {11555#pragma omp section11556 {11557#pragma omp section // expected-error {{'omp section' directive must be closely nested to a sections region, not a section region}}11558 {11559 bar();11560 }11561 }11562 }11563#pragma omp sections11564 {11565#pragma omp section11566 {11567#pragma omp single // expected-error {{region cannot be closely nested inside 'section' region; perhaps you forget to enclose 'omp single' directive into a parallel region?}}11568 bar();11569#pragma omp master // expected-error {{region cannot be closely nested inside 'section' region}}11570 bar();11571#pragma omp critical11572 bar();11573 }11574 }11575#pragma omp sections11576 {11577#pragma omp section11578 {11579#pragma omp parallel11580 {11581#pragma omp single // OK11582 {11583 bar();11584 }11585#pragma omp for // OK11586 for (int i = 0; i < 10; ++i)11587 ;11588#pragma omp for simd // OK11589 for (int i = 0; i < 10; ++i)11590 ;11591#pragma omp sections // OK11592 {11593 bar();11594 }11595 }11596 }11597 }11598#pragma omp sections11599 {11600#pragma omp section11601 {11602#pragma omp parallel for11603 for (int i = 0; i < 10; ++i)11604 ;11605 }11606 }11607#pragma omp sections11608 {11609#pragma omp section11610 {11611#pragma omp parallel for simd11612 for (int i = 0; i < 10; ++i)11613 ;11614 }11615 }11616#pragma omp sections11617 {11618#pragma omp section11619 {11620#pragma omp parallel sections11621 {11622 bar();11623 }11624 }11625 }11626#pragma omp sections11627 {11628#pragma omp section11629 {11630#pragma omp task11631 {11632 bar();11633 }11634 }11635 }11636#pragma omp sections11637 {11638#pragma omp section11639 {11640#pragma omp taskyield11641 bar();11642 }11643 }11644#pragma omp sections11645 {11646#pragma omp section11647 {11648#pragma omp barrier // expected-error {{region cannot be closely nested inside 'section' region}}11649 bar();11650 }11651 }11652#pragma omp sections11653 {11654#pragma omp section11655 {11656#pragma omp scan // expected-error {{region cannot be closely nested inside 'section' region}}11657 bar();11658 }11659 }11660#pragma omp sections11661 {11662#pragma omp section11663 {11664#pragma omp taskwait11665 bar();11666 }11667 }11668#pragma omp sections11669 {11670#pragma omp section11671 {11672#pragma omp flush11673 bar();11674 }11675 }11676#pragma omp sections11677 {11678#pragma omp section11679 {11680#pragma omp ordered // expected-error {{region cannot be closely nested inside 'section' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}11681 bar();11682 }11683 }11684#pragma omp sections11685 {11686#pragma omp section11687 {11688#pragma omp atomic11689 ++a;11690 }11691 }11692#pragma omp sections11693 {11694#pragma omp section11695 {11696#pragma omp target11697 ++a;11698 }11699 }11700#pragma omp sections11701 {11702#pragma omp section11703 {11704#pragma omp target parallel11705 ++a;11706 }11707 }11708#pragma omp sections11709 {11710#pragma omp section11711 {11712#pragma omp target parallel for11713 for (int i = 0; i < 10; ++i)11714 ;11715 }11716 }11717#pragma omp sections11718 {11719#pragma omp section11720 {11721#pragma omp target enter data map(to: a)11722 ++a;11723 }11724 }11725#pragma omp sections11726 {11727#pragma omp section11728 {11729#pragma omp target exit data map(from: a)11730 ++a;11731 }11732 }11733#pragma omp sections11734 {11735#pragma omp section11736 {11737#pragma omp teams // expected-error {{region cannot be closely nested inside 'section' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}11738 ++a;11739 }11740 }11741#pragma omp sections11742 {11743#pragma omp section11744 {11745#pragma omp taskloop11746 for (int i = 0; i < 10; ++i)11747 ++a;11748 }11749 }11750#pragma omp sections11751 {11752#pragma omp section11753#pragma omp distribute // expected-error {{region cannot be closely nested inside 'section' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}11754 for (int i = 0; i < 10; ++i)11755 ;11756 }11757#pragma omp sections11758 {11759#pragma omp section11760 {11761#pragma omp target update to(a)11762 a++;11763 }11764 }11765#pragma omp sections11766 {11767#pragma omp section11768#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'section' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}11769 for (int i = 0; i < 10; ++i)11770 ;11771 }11772#pragma omp sections11773 {11774#pragma omp section11775#pragma omp distribute parallel for simd // expected-error {{region cannot be closely nested inside 'section' region; perhaps you forget to enclose 'omp distribute parallel for simd' directive into a teams region?}}11776 for (int i = 0; i < 10; ++i)11777 ;11778 }11779#pragma omp sections11780 {11781#pragma omp section11782#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'section' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}11783 for (int i = 0; i < 10; ++i)11784 ;11785 }11786#pragma omp sections11787 {11788#pragma omp section11789#pragma omp target simd // OK11790 for (int i = 0; i < 10; ++i)11791 ;11792 }11793#pragma omp sections11794 {11795#pragma omp section11796#pragma omp teams distribute // expected-error {{region cannot be closely nested inside 'section' region; perhaps you forget to enclose 'omp teams distribute' directive into a target region?}}11797 for (int i = 0; i < 10; ++i)11798 ;11799 }11800#pragma omp sections11801 {11802#pragma omp section11803#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'section' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}11804 for (int i = 0; i < 10; ++i)11805 ;11806 }11807#pragma omp sections11808 {11809#pragma omp section11810#pragma omp teams distribute parallel for simd // expected-error {{region cannot be closely nested inside 'section' region; perhaps you forget to enclose 'omp teams distribute parallel for simd' directive into a target region?}}11811 for (int i = 0; i < 10; ++i)11812 ;11813 }11814#pragma omp sections11815 {11816#pragma omp section11817#pragma omp teams distribute parallel for // expected-error {{region cannot be closely nested inside 'section' region; perhaps you forget to enclose 'omp teams distribute parallel for' directive into a target region?}}11818 for (int i = 0; i < 10; ++i)11819 ;11820 }11821#pragma omp sections11822 {11823#pragma omp section11824#pragma omp target teams // OK11825 a++;11826 }11827#pragma omp sections11828 {11829#pragma omp section11830#pragma omp target teams distribute // OK11831 for (int i = 0; i < 10; ++i)11832 ;11833 }11834#pragma omp sections11835 {11836#pragma omp section11837#pragma omp target teams distribute parallel for // OK11838 for (int i = 0; i < 10; ++i)11839 ;11840 }11841#pragma omp sections11842 {11843#pragma omp section11844#pragma omp target teams distribute parallel for simd // OK11845 for (int i = 0; i < 10; ++i)11846 ;11847 }11848#pragma omp sections11849 {11850#pragma omp section11851#pragma omp target teams distribute simd // OK11852 for (int i = 0; i < 10; ++i)11853 ;11854 }11855 11856// SINGLE DIRECTIVE11857#pragma omp single11858 {11859#pragma omp for // expected-error {{region cannot be closely nested inside 'single' region; perhaps you forget to enclose 'omp for' directive into a parallel region?}}11860 for (int i = 0; i < 10; ++i)11861 ;11862 }11863#pragma omp single11864 {11865#pragma omp simd11866 for (int i = 0; i < 10; ++i)11867 ;11868 }11869#pragma omp single11870 {11871#pragma omp for simd // expected-error {{region cannot be closely nested inside 'single' region; perhaps you forget to enclose 'omp for simd' directive into a parallel region?}}11872 for (int i = 0; i < 10; ++i)11873 ;11874 }11875#pragma omp single11876 {11877#pragma omp parallel11878 for (int i = 0; i < 10; ++i)11879 ;11880 }11881#pragma omp single11882 {11883#pragma omp single // expected-error {{region cannot be closely nested inside 'single' region; perhaps you forget to enclose 'omp single' directive into a parallel region?}}11884 {11885 bar();11886 }11887#pragma omp master // expected-error {{region cannot be closely nested inside 'single' region}}11888 bar();11889#pragma omp critical11890 bar();11891 }11892#pragma omp single11893 {11894#pragma omp sections // expected-error {{region cannot be closely nested inside 'single' region; perhaps you forget to enclose 'omp sections' directive into a parallel region?}}11895 {11896 bar();11897 }11898 }11899#pragma omp single11900 {11901#pragma omp parallel11902 {11903#pragma omp single // OK11904 {11905 bar();11906 }11907#pragma omp for // OK11908 for (int i = 0; i < 10; ++i)11909 ;11910#pragma omp for simd // OK11911 for (int i = 0; i < 10; ++i)11912 ;11913#pragma omp sections // OK11914 {11915 bar();11916 }11917 }11918 }11919#pragma omp single11920 {11921#pragma omp parallel for11922 for (int i = 0; i < 10; ++i)11923 ;11924 }11925#pragma omp single11926 {11927#pragma omp parallel for simd11928 for (int i = 0; i < 10; ++i)11929 ;11930 }11931#pragma omp single11932 {11933#pragma omp parallel sections11934 {11935 bar();11936 }11937 }11938#pragma omp single11939 {11940#pragma omp task11941 {11942 bar();11943 }11944 }11945#pragma omp single11946 {11947#pragma omp taskyield11948 bar();11949 }11950#pragma omp single11951 {11952#pragma omp barrier // expected-error {{region cannot be closely nested inside 'single' region}}11953 bar();11954 }11955#pragma omp single11956 {11957#pragma omp scan // expected-error {{region cannot be closely nested inside 'single' region}}11958 bar();11959 }11960#pragma omp single11961 {11962#pragma omp taskwait11963 bar();11964 }11965#pragma omp single11966 {11967#pragma omp flush11968 bar();11969 }11970#pragma omp single11971 {11972#pragma omp ordered // expected-error {{region cannot be closely nested inside 'single' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}11973 bar();11974 }11975#pragma omp single11976 {11977#pragma omp atomic11978 ++a;11979 }11980#pragma omp single11981 {11982#pragma omp target11983 ++a;11984 }11985#pragma omp single11986 {11987#pragma omp target parallel11988 ++a;11989 }11990#pragma omp single11991 {11992#pragma omp target parallel for11993 for (int i = 0; i < 10; ++i)11994 ;11995 }11996#pragma omp single11997 {11998#pragma omp target enter data map(to: a)11999 ++a;12000 }12001#pragma omp single12002 {12003#pragma omp target exit data map(from: a)12004 ++a;12005 }12006#pragma omp single12007 {12008#pragma omp teams // expected-error {{region cannot be closely nested inside 'single' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}12009 ++a;12010 }12011#pragma omp single12012 {12013#pragma omp taskloop12014 for (int i = 0; i < 10; ++i)12015 ++a;12016 }12017#pragma omp single12018 {12019#pragma omp distribute // expected-error {{region cannot be closely nested inside 'single' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}12020 for (int i = 0; i < 10; ++i)12021 ;12022 }12023#pragma omp single12024 {12025#pragma omp target update to(a)12026 a++;12027 }12028#pragma omp single12029 {12030#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'single' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}12031 for (int i = 0; i < 10; ++i)12032 ;12033 }12034#pragma omp single12035 {12036#pragma omp distribute parallel for simd // expected-error {{region cannot be closely nested inside 'single' region; perhaps you forget to enclose 'omp distribute parallel for simd' directive into a teams region?}}12037 for (int i = 0; i < 10; ++i)12038 ;12039 }12040#pragma omp single12041 {12042#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'single' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}12043 for (int i = 0; i < 10; ++i)12044 ;12045 }12046#pragma omp single12047 {12048#pragma omp target simd // OK12049 for (int i = 0; i < 10; ++i)12050 ;12051 }12052#pragma omp single12053 {12054#pragma omp teams distribute // expected-error {{region cannot be closely nested inside 'single' region; perhaps you forget to enclose 'omp teams distribute' directive into a target region?}}12055 for (int i = 0; i < 10; ++i)12056 ;12057 }12058#pragma omp single12059 {12060#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'single' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}12061 for (int i = 0; i < 10; ++i)12062 ;12063 }12064#pragma omp single12065 {12066#pragma omp teams distribute parallel for simd // expected-error {{region cannot be closely nested inside 'single' region; perhaps you forget to enclose 'omp teams distribute parallel for simd' directive into a target region?}}12067 for (int i = 0; i < 10; ++i)12068 ;12069 }12070#pragma omp single12071 {12072#pragma omp teams distribute parallel for // expected-error {{region cannot be closely nested inside 'single' region; perhaps you forget to enclose 'omp teams distribute parallel for' directive into a target region?}}12073 for (int i = 0; i < 10; ++i)12074 ;12075 }12076#pragma omp single12077 {12078#pragma omp target teams // oK12079 a++;12080 }12081#pragma omp single12082 {12083#pragma omp target teams distribute // OK12084 for (int i = 0; i < 10; ++i)12085 ;12086 }12087#pragma omp single12088 {12089#pragma omp target teams distribute parallel for // OK12090 for (int i = 0; i < 10; ++i)12091 ;12092 }12093#pragma omp single12094 {12095#pragma omp target teams distribute parallel for simd // OK12096 for (int i = 0; i < 10; ++i)12097 ;12098 }12099#pragma omp single12100 {12101#pragma omp target teams distribute simd // OK12102 for (int i = 0; i < 10; ++i)12103 ;12104 }12105 12106// MASTER DIRECTIVE12107#pragma omp master12108 {12109#pragma omp for // expected-error {{region cannot be closely nested inside 'master' region; perhaps you forget to enclose 'omp for' directive into a parallel region?}}12110 for (int i = 0; i < 10; ++i)12111 ;12112 }12113#pragma omp master12114 {12115#pragma omp simd12116 for (int i = 0; i < 10; ++i)12117 ;12118 }12119#pragma omp master12120 {12121#pragma omp for simd // expected-error {{region cannot be closely nested inside 'master' region; perhaps you forget to enclose 'omp for simd' directive into a parallel region?}}12122 for (int i = 0; i < 10; ++i)12123 ;12124 }12125#pragma omp master12126 {12127#pragma omp parallel12128 for (int i = 0; i < 10; ++i)12129 ;12130 }12131#pragma omp parallel master12132 {12133 for (int i = 0; i < 10; ++i)12134 ;12135 }12136#pragma omp master12137 {12138#pragma omp single // expected-error {{region cannot be closely nested inside 'master' region; perhaps you forget to enclose 'omp single' directive into a parallel region?}}12139 {12140 bar();12141 }12142 }12143#pragma omp master12144 {12145#pragma omp master // OK, though second 'master' is redundant12146 {12147 bar();12148 }12149 }12150#pragma omp master12151 {12152#pragma omp critical12153 {12154 bar();12155 }12156 }12157#pragma omp master12158 {12159#pragma omp sections // expected-error {{region cannot be closely nested inside 'master' region; perhaps you forget to enclose 'omp sections' directive into a parallel region?}}12160 {12161 bar();12162 }12163 }12164#pragma omp master12165 {12166#pragma omp parallel12167 {12168#pragma omp master // OK12169 {12170 bar();12171 }12172#pragma omp for // OK12173 for (int i = 0; i < 10; ++i)12174 ;12175#pragma omp for simd // OK12176 for (int i = 0; i < 10; ++i)12177 ;12178#pragma omp sections // OK12179 {12180 bar();12181 }12182 }12183 }12184#pragma omp master12185 {12186#pragma omp parallel master12187 {12188 bar();12189 }12190 }12191#pragma omp master12192 {12193#pragma omp parallel for12194 for (int i = 0; i < 10; ++i)12195 ;12196 }12197#pragma omp master12198 {12199#pragma omp parallel for simd12200 for (int i = 0; i < 10; ++i)12201 ;12202 }12203#pragma omp master12204 {12205#pragma omp parallel sections12206 {12207 bar();12208 }12209 }12210#pragma omp master12211 {12212#pragma omp task12213 {12214 bar();12215 }12216 }12217#pragma omp master12218 {12219#pragma omp taskyield12220 bar();12221 }12222#pragma omp master12223 {12224#pragma omp barrier // expected-error {{region cannot be closely nested inside 'master' region}}12225 bar();12226 }12227#pragma omp master12228 {12229#pragma omp scan // expected-error {{region cannot be closely nested inside 'master' region}}12230 bar();12231 }12232#pragma omp master12233 {12234#pragma omp taskwait12235 bar();12236 }12237#pragma omp master12238 {12239#pragma omp flush12240 bar();12241 }12242#pragma omp master12243 {12244#pragma omp ordered // expected-error {{region cannot be closely nested inside 'master' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}12245 bar();12246 }12247#pragma omp master12248 {12249#pragma omp atomic12250 ++a;12251 }12252#pragma omp master12253 {12254#pragma omp target12255 ++a;12256 }12257#pragma omp master12258 {12259#pragma omp target parallel12260 ++a;12261 }12262#pragma omp master12263 {12264#pragma omp target parallel for12265 for (int i = 0; i < 10; ++i)12266 ;12267 }12268#pragma omp master12269 {12270#pragma omp target enter data map(to: a)12271 ++a;12272 }12273#pragma omp master12274 {12275#pragma omp target exit data map(from: a)12276 ++a;12277 }12278#pragma omp master12279 {12280#pragma omp teams // expected-error {{region cannot be closely nested inside 'master' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}12281 ++a;12282 }12283#pragma omp master12284 {12285#pragma omp taskloop12286 for (int i = 0; i < 10; ++i)12287 ++a;12288 }12289#pragma omp master12290 {12291#pragma omp distribute // expected-error {{region cannot be closely nested inside 'master' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}12292 for (int i = 0; i < 10; ++i)12293 ;12294 }12295#pragma omp master12296 {12297#pragma omp target update to(a)12298 ++a;12299 }12300#pragma omp master12301 {12302#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'master' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}12303 for (int i = 0; i < 10; ++i)12304 ;12305 }12306#pragma omp master12307 {12308#pragma omp distribute parallel for simd // expected-error {{region cannot be closely nested inside 'master' region; perhaps you forget to enclose 'omp distribute parallel for simd' directive into a teams region?}}12309 for (int i = 0; i < 10; ++i)12310 ;12311 }12312#pragma omp master12313 {12314#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'master' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}12315 for (int i = 0; i < 10; ++i)12316 ;12317 }12318#pragma omp master12319 {12320#pragma omp target simd // OK12321 for (int i = 0; i < 10; ++i)12322 ;12323 }12324#pragma omp master12325 {12326#pragma omp teams distribute // expected-error {{region cannot be closely nested inside 'master' region; perhaps you forget to enclose 'omp teams distribute' directive into a target region?}}12327 for (int i = 0; i < 10; ++i)12328 ;12329 }12330#pragma omp master12331 {12332#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'master' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}12333 for (int i = 0; i < 10; ++i)12334 ;12335 }12336#pragma omp master12337 {12338#pragma omp teams distribute parallel for simd // expected-error {{region cannot be closely nested inside 'master' region; perhaps you forget to enclose 'omp teams distribute parallel for simd' directive into a target region?}}12339 for (int i = 0; i < 10; ++i)12340 ;12341 }12342#pragma omp master12343 {12344#pragma omp teams distribute parallel for // expected-error {{region cannot be closely nested inside 'master' region; perhaps you forget to enclose 'omp teams distribute parallel for' directive into a target region?}}12345 for (int i = 0; i < 10; ++i)12346 ;12347 }12348#pragma omp master12349 {12350#pragma omp target teams // OK12351 a++;12352 }12353#pragma omp master12354 {12355#pragma omp target teams distribute // OK12356 for (int i = 0; i < 10; ++i)12357 ;12358 }12359#pragma omp master12360 {12361#pragma omp target teams distribute parallel for // OK12362 for (int i = 0; i < 10; ++i)12363 ;12364 }12365#pragma omp master12366 {12367#pragma omp target teams distribute parallel for simd // OK12368 for (int i = 0; i < 10; ++i)12369 ;12370 }12371#pragma omp master12372 {12373#pragma omp target teams distribute simd // OK12374 for (int i = 0; i < 10; ++i)12375 ;12376 }12377 12378// CRITICAL DIRECTIVE12379#pragma omp critical12380 {12381#pragma omp for // expected-error {{region cannot be closely nested inside 'critical' region; perhaps you forget to enclose 'omp for' directive into a parallel region?}}12382 for (int i = 0; i < 10; ++i)12383 ;12384 }12385#pragma omp critical12386 {12387#pragma omp simd12388 for (int i = 0; i < 10; ++i)12389 ;12390 }12391#pragma omp critical12392 {12393#pragma omp for simd // expected-error {{region cannot be closely nested inside 'critical' region; perhaps you forget to enclose 'omp for simd' directive into a parallel region?}}12394 for (int i = 0; i < 10; ++i)12395 ;12396 }12397#pragma omp critical12398 {12399#pragma omp parallel12400 for (int i = 0; i < 10; ++i)12401 ;12402 }12403#pragma omp critical12404 {12405#pragma omp single // expected-error {{region cannot be closely nested inside 'critical' region; perhaps you forget to enclose 'omp single' directive into a parallel region?}}12406 {12407 bar();12408 }12409 }12410#pragma omp critical12411 {12412#pragma omp master // OK, though second 'master' is redundant12413 {12414 bar();12415 }12416 }12417#pragma omp critical12418 {12419#pragma omp critical12420 {12421 bar();12422 }12423 }12424#pragma omp critical12425 {12426#pragma omp sections // expected-error {{region cannot be closely nested inside 'critical' region; perhaps you forget to enclose 'omp sections' directive into a parallel region?}}12427 {12428 bar();12429 }12430 }12431#pragma omp critical12432 {12433#pragma omp parallel12434 {12435#pragma omp master // OK12436 {12437 bar();12438 }12439#pragma omp for // OK12440 for (int i = 0; i < 10; ++i)12441 ;12442#pragma omp for simd // OK12443 for (int i = 0; i < 10; ++i)12444 ;12445#pragma omp sections // OK12446 {12447 bar();12448 }12449 }12450 }12451#pragma omp critical12452 {12453#pragma omp parallel for12454 for (int i = 0; i < 10; ++i)12455 ;12456 }12457#pragma omp critical12458 {12459#pragma omp parallel for simd12460 for (int i = 0; i < 10; ++i)12461 ;12462 }12463#pragma omp critical12464 {12465#pragma omp parallel sections12466 {12467 bar();12468 }12469 }12470#pragma omp critical12471 {12472#pragma omp task12473 {12474 bar();12475 }12476 }12477#pragma omp critical12478 {12479#pragma omp taskyield12480 bar();12481 }12482#pragma omp critical12483 {12484#pragma omp barrier // expected-error {{region cannot be closely nested inside 'critical' region}}12485 bar();12486 }12487#pragma omp critical12488 {12489#pragma omp scan // expected-error {{region cannot be closely nested inside 'critical' region}}12490 bar();12491 }12492#pragma omp critical12493 {12494#pragma omp taskwait12495 bar();12496 }12497#pragma omp critical(Belka)12498 {12499#pragma omp critical(Strelka)12500 bar();12501 }12502#pragma omp critical(Tuzik) // expected-note {{previous 'critical' region starts here}}12503 {12504#pragma omp critical(grelka) // expected-note {{previous 'critical' region starts here}}12505 {12506#pragma omp critical(Tuzik) // expected-error {{cannot nest 'critical' regions having the same name 'Tuzik'}}12507 {12508#pragma omp parallel12509#pragma omp critical(grelka) // expected-error {{cannot nest 'critical' regions having the same name 'grelka'}}12510 {12511 bar();12512 }12513 }12514 }12515 }12516#pragma omp critical12517 {12518#pragma omp flush12519 bar();12520 }12521#pragma omp critical12522 {12523#pragma omp ordered // expected-error {{region cannot be closely nested inside 'critical' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}12524 bar();12525 }12526#pragma omp critical12527 {12528#pragma omp atomic12529 ++a;12530 }12531#pragma omp critical12532 {12533#pragma omp target12534 ++a;12535 }12536#pragma omp critical12537 {12538#pragma omp target parallel12539 ++a;12540 }12541#pragma omp critical12542 {12543#pragma omp target parallel for12544 for (int i = 0; i < 10; ++i)12545 ;12546 }12547#pragma omp critical12548 {12549#pragma omp target enter data map(to: a)12550 ++a;12551 }12552#pragma omp critical12553 {12554#pragma omp target exit data map(from: a)12555 ++a;12556 }12557#pragma omp critical12558 {12559#pragma omp teams // expected-error {{region cannot be closely nested inside 'critical' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}12560 ++a;12561 }12562#pragma omp critical12563 {12564#pragma omp taskloop12565 for (int i = 0; i < 10; ++i)12566 ++a;12567 }12568#pragma omp critical12569 {12570#pragma omp distribute // expected-error {{region cannot be closely nested inside 'critical' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}12571 for (int i = 0; i < 10; ++i)12572 ;12573 }12574#pragma omp critical12575 {12576#pragma omp target update to(a)12577 a++;12578 }12579#pragma omp critical12580 {12581#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'critical' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}12582 for (int i = 0; i < 10; ++i)12583 ;12584 }12585#pragma omp critical12586 {12587#pragma omp distribute parallel for simd // expected-error {{region cannot be closely nested inside 'critical' region; perhaps you forget to enclose 'omp distribute parallel for simd' directive into a teams region?}}12588 for (int i = 0; i < 10; ++i)12589 ;12590 }12591#pragma omp critical12592 {12593#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'critical' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}12594 for (int i = 0; i < 10; ++i)12595 ;12596 }12597#pragma omp critical12598 {12599#pragma omp target simd // OK12600 for (int i = 0; i < 10; ++i)12601 ;12602 }12603#pragma omp critical12604 {12605#pragma omp teams distribute // expected-error {{region cannot be closely nested inside 'critical' region; perhaps you forget to enclose 'omp teams distribute' directive into a target region?}}12606 for (int i = 0; i < 10; ++i)12607 ;12608 }12609#pragma omp critical12610 {12611#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'critical' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}12612 for (int i = 0; i < 10; ++i)12613 ;12614 }12615#pragma omp critical12616 {12617#pragma omp teams distribute parallel for simd // expected-error {{region cannot be closely nested inside 'critical' region; perhaps you forget to enclose 'omp teams distribute parallel for simd' directive into a target region?}}12618 for (int i = 0; i < 10; ++i)12619 ;12620 }12621#pragma omp critical12622 {12623#pragma omp teams distribute parallel for // expected-error {{region cannot be closely nested inside 'critical' region; perhaps you forget to enclose 'omp teams distribute parallel for' directive into a target region?}}12624 for (int i = 0; i < 10; ++i)12625 ;12626 }12627#pragma omp critical12628 {12629#pragma omp target teams // OK12630 a++;12631 }12632#pragma omp critical12633 {12634#pragma omp target teams distribute // OK12635 for (int i = 0; i < 10; ++i)12636 ;12637 }12638#pragma omp critical12639 {12640#pragma omp target teams distribute parallel for // OK12641 for (int i = 0; i < 10; ++i)12642 ;12643 }12644#pragma omp critical12645 {12646#pragma omp target teams distribute parallel for simd // OK12647 for (int i = 0; i < 10; ++i)12648 ;12649 }12650#pragma omp critical12651 {12652#pragma omp target teams distribute simd // OK12653 for (int i = 0; i < 10; ++i)12654 ;12655 }12656 12657// PARALLEL FOR DIRECTIVE12658#pragma omp parallel for12659 for (int i = 0; i < 10; ++i) {12660#pragma omp for // expected-error {{region cannot be closely nested inside 'parallel for' region; perhaps you forget to enclose 'omp for' directive into a parallel region?}}12661 for (int i = 0; i < 10; ++i)12662 ;12663 }12664#pragma omp parallel for12665 for (int i = 0; i < 10; ++i) {12666#pragma omp simd12667 for (int i = 0; i < 10; ++i)12668 ;12669 }12670#pragma omp parallel for12671 for (int i = 0; i < 10; ++i) {12672#pragma omp for simd // expected-error {{region cannot be closely nested inside 'parallel for' region; perhaps you forget to enclose 'omp for simd' directive into a parallel region?}}12673 for (int i = 0; i < 10; ++i)12674 ;12675 }12676 12677#pragma omp parallel for12678 for (int i = 0; i < 10; ++i) {12679#pragma omp parallel12680 for (int i = 0; i < 10; ++i)12681 ;12682 }12683#pragma omp parallel for12684 for (int i = 0; i < 10; ++i) {12685#pragma omp sections // expected-error {{region cannot be closely nested inside 'parallel for' region; perhaps you forget to enclose 'omp sections' directive into a parallel region?}}12686 {12687 bar();12688 }12689 }12690#pragma omp parallel for12691 for (int i = 0; i < 10; ++i) {12692#pragma omp section // expected-error {{'omp section' directive must be closely nested to a sections region, not a parallel for region}}12693 {12694 bar();12695 }12696 }12697#pragma omp parallel for12698 for (int i = 0; i < 10; ++i) {12699#pragma omp single // expected-error {{region cannot be closely nested inside 'parallel for' region; perhaps you forget to enclose 'omp single' directive into a parallel region?}}12700 {12701 bar();12702 }12703#pragma omp master // expected-error {{region cannot be closely nested inside 'parallel for' region}}12704 {12705 bar();12706 }12707#pragma omp critical12708 {12709 bar();12710 }12711 }12712#pragma omp parallel for12713 for (int i = 0; i < 10; ++i) {12714#pragma omp parallel12715 {12716#pragma omp single // OK12717 {12718 bar();12719 }12720#pragma omp master // OK12721 {12722 bar();12723 }12724#pragma omp critical // OK12725 {12726 bar();12727 }12728#pragma omp for // OK12729 for (int i = 0; i < 10; ++i)12730 ;12731#pragma omp for simd // OK12732 for (int i = 0; i < 10; ++i)12733 ;12734#pragma omp sections // OK12735 {12736 bar();12737 }12738 }12739 }12740#pragma omp parallel for12741 for (int i = 0; i < 10; ++i) {12742#pragma omp parallel for12743 for (int i = 0; i < 10; ++i)12744 ;12745 }12746#pragma omp parallel for12747 for (int i = 0; i < 10; ++i) {12748#pragma omp parallel for simd12749 for (int i = 0; i < 10; ++i)12750 ;12751 }12752#pragma omp parallel for12753 for (int i = 0; i < 10; ++i) {12754#pragma omp parallel sections12755 {12756 bar();12757 }12758 }12759#pragma omp parallel for12760 for (int i = 0; i < 10; ++i) {12761#pragma omp task12762 {12763 bar();12764 }12765 }12766#pragma omp parallel for12767 for (int i = 0; i < 10; ++i) {12768#pragma omp taskyield12769 bar();12770 }12771#pragma omp parallel for12772 for (int i = 0; i < 10; ++i) {12773#pragma omp barrier // expected-error {{region cannot be closely nested inside 'parallel for' region}}12774 bar();12775 }12776#pragma omp parallel for12777 for (int i = 0; i < 10; ++i) {12778#pragma omp scan // omp45-error {{region cannot be closely nested inside 'parallel for' region}} omp50-error {{exactly one of 'inclusive' or 'exclusive' clauses is expected}} omp51-error {{exactly one of 'inclusive' or 'exclusive' clauses is expected}}12779 bar();12780 }12781#pragma omp parallel for12782 for (int i = 0; i < 10; ++i) {12783#pragma omp taskwait12784 bar();12785 }12786#pragma omp parallel for12787 for (int i = 0; i < 10; ++i) {12788#pragma omp flush12789 bar();12790 }12791#pragma omp parallel for12792 for (int i = 0; i < 10; ++i) {12793#pragma omp ordered // expected-error {{region cannot be closely nested inside 'parallel for' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}12794 bar();12795 }12796#pragma omp parallel for ordered12797 for (int i = 0; i < 10; ++i) {12798#pragma omp ordered // OK12799 bar();12800 }12801#pragma omp parallel for12802 for (int i = 0; i < 10; ++i) {12803#pragma omp atomic12804 ++a;12805 }12806#pragma omp parallel for12807 for (int i = 0; i < 10; ++i) {12808#pragma omp target12809 ++a;12810 }12811#pragma omp parallel for12812 for (int i = 0; i < 10; ++i) {12813#pragma omp target parallel12814 ++a;12815 }12816#pragma omp parallel for12817 for (int i = 0; i < 10; ++i) {12818#pragma omp target parallel for12819 for (int i = 0; i < 10; ++i)12820 ;12821 }12822#pragma omp parallel for12823 for (int i = 0; i < 10; ++i) {12824#pragma omp target enter data map(to: a)12825 ++a;12826 }12827#pragma omp parallel for12828 for (int i = 0; i < 10; ++i) {12829#pragma omp target exit data map(from: a)12830 ++a;12831 }12832#pragma omp parallel for12833 for (int i = 0; i < 10; ++i) {12834#pragma omp teams // expected-error {{region cannot be closely nested inside 'parallel for' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}12835 ++a;12836 }12837#pragma omp parallel for12838 for (int i = 0; i < 10; ++i) {12839#pragma omp taskloop12840 for (int i = 0; i < 10; ++i)12841 ++a;12842 }12843#pragma omp parallel for12844 for (int i = 0; i < 10; ++i) {12845#pragma omp distribute // expected-error {{region cannot be closely nested inside 'parallel for' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}12846 for (int j = 0; j < 10; ++j)12847 ;12848 }12849#pragma omp parallel for12850 for (int i = 0; i < 10; ++i) {12851#pragma omp target update to(a)12852 a++;12853 }12854#pragma omp parallel for12855 for (int i = 0; i < 10; ++i) {12856#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'parallel for' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}12857 for (int j = 0; j < 10; ++j)12858 ;12859 }12860#pragma omp parallel for12861 for (int i = 0; i < 10; ++i) {12862#pragma omp distribute parallel for simd // expected-error {{region cannot be closely nested inside 'parallel for' region; perhaps you forget to enclose 'omp distribute parallel for simd' directive into a teams region?}}12863 for (int j = 0; j < 10; ++j)12864 ;12865 }12866#pragma omp parallel for12867 for (int i = 0; i < 10; ++i) {12868#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'parallel for' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}12869 for (int j = 0; j < 10; ++j)12870 ;12871 }12872#pragma omp parallel for12873 for (int i = 0; i < 10; ++i) {12874#pragma omp target simd // OK12875 for (int j = 0; j < 10; ++j)12876 ;12877 }12878#pragma omp parallel for12879 for (int i = 0; i < 10; ++i) {12880#pragma omp teams distribute // expected-error {{region cannot be closely nested inside 'parallel for' region; perhaps you forget to enclose 'omp teams distribute' directive into a target region?}}12881 for (int j = 0; j < 10; ++j)12882 ;12883 }12884#pragma omp parallel for12885 for (int i = 0; i < 10; ++i) {12886#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'parallel for' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}12887 for (int j = 0; j < 10; ++j)12888 ;12889 }12890#pragma omp parallel for12891 for (int i = 0; i < 10; ++i) {12892#pragma omp teams distribute parallel for simd // expected-error {{region cannot be closely nested inside 'parallel for' region; perhaps you forget to enclose 'omp teams distribute parallel for simd' directive into a target region?}}12893 for (int j = 0; j < 10; ++j)12894 ;12895 }12896#pragma omp parallel for12897 for (int i = 0; i < 10; ++i) {12898#pragma omp teams distribute parallel for // expected-error {{region cannot be closely nested inside 'parallel for' region; perhaps you forget to enclose 'omp teams distribute parallel for' directive into a target region?}}12899 for (int j = 0; j < 10; ++j)12900 ;12901 }12902#pragma omp parallel for12903 for (int i = 0; i < 10; ++i) {12904#pragma omp target teams // OK12905 a++;12906 }12907#pragma omp parallel for12908 for (int i = 0; i < 10; ++i) {12909#pragma omp target teams distribute // OK12910 for (int j = 0; j < 10; ++j)12911 ;12912 }12913#pragma omp parallel for12914 for (int i = 0; i < 10; ++i) {12915#pragma omp target teams distribute parallel for // OK12916 for (int j = 0; j < 10; ++j)12917 ;12918 }12919#pragma omp parallel for12920 for (int i = 0; i < 10; ++i) {12921#pragma omp target teams distribute parallel for simd // OK12922 for (int j = 0; j < 10; ++j)12923 ;12924 }12925#pragma omp parallel for12926 for (int i = 0; i < 10; ++i) {12927#pragma omp target teams distribute simd // OK12928 for (int j = 0; j < 10; ++j)12929 ;12930 }12931 12932// PARALLEL FOR SIMD DIRECTIVE12933#pragma omp parallel for simd12934 for (int i = 0; i < 10; ++i) {12935#pragma omp for // expected-error {{OpenMP constructs may not be nested inside a simd region}}12936 for (int i = 0; i < 10; ++i)12937 ;12938 }12939#pragma omp parallel for simd12940 for (int i = 0; i < 10; ++i) {12941#pragma omp simd // omp45warn-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}12942 for (int i = 0; i < 10; ++i)12943 ;12944 }12945#pragma omp parallel for simd12946 for (int i = 0; i < 10; ++i) {12947#pragma omp for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}12948 for (int i = 0; i < 10; ++i)12949 ;12950 }12951#pragma omp parallel for simd12952 for (int i = 0; i < 10; ++i) {12953#pragma omp parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}12954 for (int i = 0; i < 10; ++i)12955 ;12956 }12957#pragma omp parallel for simd12958 for (int i = 0; i < 10; ++i) {12959#pragma omp sections // expected-error {{OpenMP constructs may not be nested inside a simd region}}12960 {12961 bar();12962 }12963 }12964#pragma omp parallel for simd12965 for (int i = 0; i < 10; ++i) {12966#pragma omp section // expected-error {{OpenMP constructs may not be nested inside a simd region}}12967 {12968 bar();12969 }12970 }12971#pragma omp parallel for simd12972 for (int i = 0; i < 10; ++i) {12973#pragma omp single // expected-error {{OpenMP constructs may not be nested inside a simd region}}12974 {12975 bar();12976 }12977 }12978 12979#pragma omp parallel for simd12980 for (int i = 0; i < 10; ++i) {12981#pragma omp master // expected-error {{OpenMP constructs may not be nested inside a simd region}}12982 {12983 bar();12984 }12985 }12986 12987#pragma omp parallel for simd12988 for (int i = 0; i < 10; ++i) {12989#pragma omp critical // expected-error {{OpenMP constructs may not be nested inside a simd region}}12990 {12991 bar();12992 }12993 }12994 12995#pragma omp parallel for simd12996 for (int i = 0; i < 10; ++i) {12997#pragma omp parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}12998 {12999#pragma omp single13000 {13001 bar();13002 }13003#pragma omp for13004 for (int i = 0; i < 10; ++i)13005 ;13006#pragma omp for simd13007 for (int i = 0; i < 10; ++i)13008 ;13009#pragma omp sections13010 {13011 bar();13012 }13013 }13014 }13015#pragma omp parallel for simd13016 for (int i = 0; i < 10; ++i) {13017#pragma omp parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}13018 for (int i = 0; i < 10; ++i)13019 ;13020 }13021#pragma omp parallel for simd13022 for (int i = 0; i < 10; ++i) {13023#pragma omp parallel for simd// expected-error {{OpenMP constructs may not be nested inside a simd region}}13024 for (int i = 0; i < 10; ++i)13025 ;13026 }13027#pragma omp parallel for simd13028 for (int i = 0; i < 10; ++i) {13029#pragma omp parallel sections // expected-error {{OpenMP constructs may not be nested inside a simd region}}13030 {13031 bar();13032 }13033 }13034#pragma omp parallel for simd13035 for (int i = 0; i < 10; ++i) {13036#pragma omp task // expected-error {{OpenMP constructs may not be nested inside a simd region}}13037 {13038 bar();13039 }13040 }13041#pragma omp parallel for simd13042 for (int i = 0; i < 10; ++i) {13043#pragma omp taskyield // expected-error {{OpenMP constructs may not be nested inside a simd region}}13044 bar();13045 }13046#pragma omp parallel for simd13047 for (int i = 0; i < 10; ++i) {13048#pragma omp barrier // expected-error {{OpenMP constructs may not be nested inside a simd region}}13049 bar();13050 }13051#pragma omp parallel for simd13052 for (int i = 0; i < 10; ++i) {13053#pragma omp scan // omp45-error {{OpenMP constructs may not be nested inside a simd region}} omp50-error {{exactly one of 'inclusive' or 'exclusive' clauses is expected}} omp51-error {{exactly one of 'inclusive' or 'exclusive' clauses is expected}}13054 bar();13055 }13056#pragma omp parallel for simd13057 for (int i = 0; i < 10; ++i) {13058#pragma omp taskwait // expected-error {{OpenMP constructs may not be nested inside a simd region}}13059 bar();13060 }13061#pragma omp parallel for simd13062 for (int i = 0; i < 10; ++i) {13063#pragma omp flush // expected-error {{OpenMP constructs may not be nested inside a simd region}}13064 bar();13065 }13066#pragma omp parallel for simd13067 for (int i = 0; i < 10; ++i) {13068#pragma omp ordered // expected-error {{OpenMP constructs may not be nested inside a simd region}}13069 bar();13070 }13071#pragma omp parallel for simd13072 for (int i = 0; i < 10; ++i) {13073#pragma omp ordered // expected-error {{OpenMP constructs may not be nested inside a simd region}}13074 bar();13075 }13076#pragma omp parallel for simd13077 for (int i = 0; i < 10; ++i) {13078#pragma omp atomic // omp45-error {{OpenMP constructs may not be nested inside a simd region}}13079 ++a;13080 }13081#pragma omp parallel for simd13082 for (int i = 0; i < 10; ++i) {13083#pragma omp target // expected-error {{OpenMP constructs may not be nested inside a simd region}}13084 ++a;13085 }13086#pragma omp parallel for simd13087 for (int i = 0; i < 10; ++i) {13088#pragma omp target parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}13089 ++a;13090 }13091#pragma omp parallel for simd13092 for (int i = 0; i < 10; ++i) {13093#pragma omp target parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}13094 for (int i = 0; i < 10; ++i)13095 ;13096 }13097#pragma omp parallel for simd13098 for (int i = 0; i < 10; ++i) {13099#pragma omp target enter data map(to: a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}13100 ++a;13101 }13102#pragma omp parallel for simd13103 for (int i = 0; i < 10; ++i) {13104#pragma omp target exit data map(from: a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}13105 ++a;13106 }13107#pragma omp parallel for simd13108 for (int i = 0; i < 10; ++i) {13109#pragma omp teams // expected-error {{OpenMP constructs may not be nested inside a simd region}}13110 ++a;13111 }13112#pragma omp parallel for simd13113 for (int i = 0; i < 10; ++i) {13114#pragma omp taskloop // expected-error {{OpenMP constructs may not be nested inside a simd region}}13115 for (int i = 0; i < 10; ++i)13116 ++a;13117 }13118#pragma omp parallel for simd13119 for (int i = 0; i < 10; ++i) {13120#pragma omp distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}13121 for (int j = 0; j < 10; ++j)13122 ;13123 }13124#pragma omp parallel for simd13125 for (int i = 0; i < 10; ++i) {13126#pragma omp target update to(a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}13127 a++;13128 }13129#pragma omp parallel for simd13130 for (int i = 0; i < 10; ++i) {13131#pragma omp distribute parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}13132 for (int j = 0; j < 10; ++j)13133 ;13134 }13135#pragma omp parallel for simd13136 for (int i = 0; i < 10; ++i) {13137#pragma omp distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}13138 for (int j = 0; j < 10; ++j)13139 ;13140 }13141#pragma omp parallel for simd13142 for (int i = 0; i < 10; ++i) {13143#pragma omp distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}13144 for (int j = 0; j < 10; ++j)13145 ;13146 }13147#pragma omp parallel for simd13148 for (int i = 0; i < 10; ++i) {13149#pragma omp target simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}13150 for (int j = 0; j < 10; ++j)13151 ;13152 }13153#pragma omp parallel for simd13154 for (int i = 0; i < 10; ++i) {13155#pragma omp teams distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}13156 for (int j = 0; j < 10; ++j)13157 ;13158 }13159#pragma omp parallel for simd13160 for (int i = 0; i < 10; ++i) {13161#pragma omp teams distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}13162 for (int j = 0; j < 10; ++j)13163 ;13164 }13165#pragma omp parallel for simd13166 for (int i = 0; i < 10; ++i) {13167#pragma omp teams distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}13168 for (int j = 0; j < 10; ++j)13169 ;13170 }13171#pragma omp parallel for simd13172 for (int i = 0; i < 10; ++i) {13173#pragma omp teams distribute parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}13174 for (int j = 0; j < 10; ++j)13175 ;13176 }13177#pragma omp parallel for simd13178 for (int i = 0; i < 10; ++i) {13179#pragma omp target teams // expected-error {{OpenMP constructs may not be nested inside a simd region}}13180 a++;13181 }13182#pragma omp parallel for simd13183 for (int i = 0; i < 10; ++i) {13184#pragma omp target teams distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}13185 for (int j = 0; j < 10; ++j)13186 ;13187 }13188#pragma omp parallel for simd13189 for (int i = 0; i < 10; ++i) {13190#pragma omp target teams distribute parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}13191 for (int j = 0; j < 10; ++j)13192 ;13193 }13194#pragma omp parallel for simd13195 for (int i = 0; i < 10; ++i) {13196#pragma omp target teams distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}13197 for (int j = 0; j < 10; ++j)13198 ;13199 }13200#pragma omp parallel for simd13201 for (int i = 0; i < 10; ++i) {13202#pragma omp target teams distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}13203 for (int j = 0; j < 10; ++j)13204 ;13205 }13206 13207// PARALLEL SECTIONS DIRECTIVE13208#pragma omp parallel sections13209 {13210#pragma omp for // expected-error {{region cannot be closely nested inside 'parallel sections' region; perhaps you forget to enclose 'omp for' directive into a parallel region?}}13211 for (int i = 0; i < 10; ++i)13212 ;13213 }13214#pragma omp parallel sections13215 {13216#pragma omp simd13217 for (int i = 0; i < 10; ++i)13218 ;13219 }13220#pragma omp parallel sections13221 {13222#pragma omp for simd // expected-error {{region cannot be closely nested inside 'parallel sections' region; perhaps you forget to enclose 'omp for simd' directive into a parallel region?}}13223 for (int i = 0; i < 10; ++i)13224 ;13225 }13226#pragma omp parallel sections13227 {13228#pragma omp parallel13229 for (int i = 0; i < 10; ++i)13230 ;13231 }13232#pragma omp parallel sections13233 {13234#pragma omp sections // expected-error {{region cannot be closely nested inside 'parallel sections' region; perhaps you forget to enclose 'omp sections' directive into a parallel region?}}13235 {13236 bar();13237 }13238 }13239#pragma omp parallel sections13240 {13241#pragma omp section13242 {13243 bar();13244 }13245 }13246#pragma omp parallel sections13247 {13248#pragma omp section13249 {13250#pragma omp single // expected-error {{region cannot be closely nested inside 'section' region; perhaps you forget to enclose 'omp single' directive into a parallel region?}}13251 bar();13252#pragma omp master // expected-error {{region cannot be closely nested inside 'section' region}}13253 bar();13254#pragma omp critical13255 bar();13256 }13257 }13258#pragma omp parallel sections13259 {13260#pragma omp parallel13261 {13262#pragma omp single // OK13263 {13264 bar();13265 }13266#pragma omp master // OK13267 {13268 bar();13269 }13270#pragma omp critical // OK13271 {13272 bar();13273 }13274#pragma omp for // OK13275 for (int i = 0; i < 10; ++i)13276 ;13277#pragma omp for simd // OK13278 for (int i = 0; i < 10; ++i)13279 ;13280#pragma omp sections // OK13281 {13282 bar();13283 }13284 }13285 }13286#pragma omp parallel sections13287 {13288#pragma omp parallel for13289 for (int i = 0; i < 10; ++i)13290 ;13291 }13292#pragma omp parallel sections13293 {13294#pragma omp parallel for simd13295 for (int i = 0; i < 10; ++i)13296 ;13297 }13298#pragma omp parallel sections13299 {13300#pragma omp parallel sections13301 {13302 bar();13303 }13304 }13305#pragma omp parallel sections13306 {13307#pragma omp task13308 {13309 bar();13310 }13311 }13312#pragma omp parallel sections13313 {13314#pragma omp taskyield13315 }13316#pragma omp parallel sections13317 {13318#pragma omp barrier // expected-error {{region cannot be closely nested inside 'parallel sections' region}}13319 }13320#pragma omp parallel sections13321 {13322#pragma omp scan // expected-error {{region cannot be closely nested inside 'parallel sections' region}}13323 }13324#pragma omp parallel sections13325 {13326#pragma omp taskwait13327 }13328#pragma omp parallel sections13329 {13330#pragma omp flush13331 }13332#pragma omp parallel sections13333 {13334#pragma omp ordered // expected-error {{region cannot be closely nested inside 'parallel sections' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}13335 bar();13336 }13337#pragma omp parallel sections13338 {13339#pragma omp atomic13340 ++a;13341 }13342#pragma omp parallel sections13343 {13344#pragma omp target13345 ++a;13346 }13347#pragma omp parallel sections13348 {13349#pragma omp target parallel13350 ++a;13351 }13352#pragma omp parallel sections13353 {13354#pragma omp target parallel for13355 for (int i = 0; i < 10; ++i)13356 ;13357 }13358#pragma omp parallel sections13359 {13360#pragma omp target enter data map(to: a)13361 }13362#pragma omp parallel sections13363 {13364#pragma omp target exit data map(from: a)13365 }13366#pragma omp parallel sections13367 {13368#pragma omp teams // expected-error {{region cannot be closely nested inside 'parallel sections' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}13369 ++a;13370 }13371#pragma omp parallel sections13372 {13373#pragma omp taskloop13374 for (int i = 0; i < 10; ++i)13375 ++a;13376 }13377#pragma omp parallel sections13378 {13379#pragma omp distribute // expected-error {{region cannot be closely nested inside 'parallel sections' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}13380 for (int i = 0; i < 10; ++i)13381 ;13382 }13383#pragma omp parallel sections13384 {13385#pragma omp target update to(a)13386 }13387#pragma omp parallel sections13388 {13389#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'parallel sections' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}13390 for (int i = 0; i < 10; ++i)13391 ;13392 }13393#pragma omp parallel sections13394 {13395#pragma omp distribute parallel for simd // expected-error {{region cannot be closely nested inside 'parallel sections' region; perhaps you forget to enclose 'omp distribute parallel for simd' directive into a teams region?}}13396 for (int i = 0; i < 10; ++i)13397 ;13398 }13399#pragma omp parallel sections13400 {13401#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'parallel sections' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}13402 for (int i = 0; i < 10; ++i)13403 ;13404 }13405#pragma omp parallel sections13406 {13407#pragma omp target simd // OK13408 for (int i = 0; i < 10; ++i)13409 ;13410 }13411#pragma omp parallel sections13412 {13413#pragma omp teams distribute // expected-error {{region cannot be closely nested inside 'parallel sections' region; perhaps you forget to enclose 'omp teams distribute' directive into a target region?}}13414 for (int i = 0; i < 10; ++i)13415 ;13416 }13417#pragma omp parallel sections13418 {13419#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'parallel sections' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}13420 for (int i = 0; i < 10; ++i)13421 ;13422 }13423#pragma omp parallel sections13424 {13425#pragma omp teams distribute parallel for simd // expected-error {{region cannot be closely nested inside 'parallel sections' region; perhaps you forget to enclose 'omp teams distribute parallel for simd' directive into a target region?}}13426 for (int i = 0; i < 10; ++i)13427 ;13428 }13429#pragma omp parallel sections13430 {13431#pragma omp teams distribute parallel for // expected-error {{region cannot be closely nested inside 'parallel sections' region; perhaps you forget to enclose 'omp teams distribute parallel for' directive into a target region?}}13432 for (int i = 0; i < 10; ++i)13433 ;13434 }13435#pragma omp parallel sections13436 {13437#pragma omp target teams // OK13438 a++;13439 }13440#pragma omp parallel sections13441 {13442#pragma omp target teams distribute // OK13443 for (int i = 0; i < 10; ++i)13444 ;13445 }13446#pragma omp parallel sections13447 {13448#pragma omp target teams distribute parallel for // OK13449 for (int i = 0; i < 10; ++i)13450 ;13451 }13452#pragma omp parallel sections13453 {13454#pragma omp target teams distribute parallel for simd // OK13455 for (int i = 0; i < 10; ++i)13456 ;13457 }13458#pragma omp parallel sections13459 {13460#pragma omp target teams distribute simd // OK13461 for (int i = 0; i < 10; ++i)13462 ;13463 }13464 13465// TASK DIRECTIVE13466#pragma omp task13467#pragma omp for // expected-error {{region cannot be closely nested inside 'task' region; perhaps you forget to enclose 'omp for' directive into a parallel region?}}13468 for (int i = 0; i < 10; ++i)13469 ;13470#pragma omp task13471#pragma omp simd13472 for (int i = 0; i < 10; ++i)13473 ;13474#pragma omp task13475#pragma omp for simd // expected-error {{region cannot be closely nested inside 'task' region; perhaps you forget to enclose 'omp for simd' directive into a parallel region?}}13476 for (int i = 0; i < 10; ++i)13477 ;13478#pragma omp task13479#pragma omp sections // expected-error {{region cannot be closely nested inside 'task' region; perhaps you forget to enclose 'omp sections' directive into a parallel region?}}13480 {13481 bar();13482 }13483#pragma omp task13484#pragma omp section // expected-error {{'omp section' directive must be closely nested to a sections region, not a task region}}13485 {13486 bar();13487 }13488#pragma omp task13489#pragma omp single // expected-error {{region cannot be closely nested inside 'task' region; perhaps you forget to enclose 'omp single' directive into a parallel region?}}13490 bar();13491#pragma omp task13492#pragma omp master // expected-error {{region cannot be closely nested inside 'task' region}}13493 bar();13494#pragma omp task13495#pragma omp critical13496 bar();13497#pragma omp task13498#pragma omp parallel for13499 for (int i = 0; i < 10; ++i)13500 ;13501#pragma omp task13502#pragma omp parallel for simd13503 for (int i = 0; i < 10; ++i)13504 ;13505#pragma omp task13506#pragma omp parallel sections13507 {13508 bar();13509 }13510#pragma omp task13511#pragma omp task13512 {13513 bar();13514 }13515#pragma omp task13516 {13517#pragma omp taskyield13518 bar();13519 }13520#pragma omp task13521 {13522#pragma omp barrier // expected-error {{region cannot be closely nested inside 'task' region}}13523 bar();13524 }13525#pragma omp task13526 {13527#pragma omp scan // expected-error {{region cannot be closely nested inside 'task' region}}13528 bar();13529 }13530#pragma omp task13531 {13532#pragma omp taskwait13533 bar();13534 }13535#pragma omp task13536 {13537#pragma omp flush13538 bar();13539 }13540#pragma omp task13541 {13542#pragma omp ordered // expected-error {{region cannot be closely nested inside 'task' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}13543 bar();13544 }13545#pragma omp task13546 {13547#pragma omp atomic13548 ++a;13549 }13550#pragma omp task13551 {13552#pragma omp target13553 ++a;13554 }13555#pragma omp task13556 {13557#pragma omp target parallel13558 ++a;13559 }13560#pragma omp task13561#pragma omp target parallel for13562 for (int i = 0; i < 10; ++i)13563 ;13564#pragma omp task13565 {13566#pragma omp target enter data map(to: a)13567 ++a;13568 }13569#pragma omp task13570 {13571#pragma omp target exit data map(from: a)13572 ++a;13573 }13574#pragma omp task13575 {13576#pragma omp teams // expected-error {{region cannot be closely nested inside 'task' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}13577 ++a;13578 }13579#pragma omp task13580 {13581#pragma omp taskloop13582 for (int i = 0; i < 10; ++i)13583 ++a;13584 }13585#pragma omp task13586 {13587#pragma omp distribute // expected-error {{region cannot be closely nested inside 'task' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}13588 for (int i = 0; i < 10; ++i)13589 ;13590 }13591#pragma omp task13592 {13593#pragma omp target update to(a)13594 a++;13595 }13596#pragma omp task13597 {13598#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'task' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}13599 for (int i = 0; i < 10; ++i)13600 ;13601 }13602#pragma omp task13603 {13604#pragma omp distribute parallel for simd // expected-error {{region cannot be closely nested inside 'task' region; perhaps you forget to enclose 'omp distribute parallel for simd' directive into a teams region?}}13605 for (int i = 0; i < 10; ++i)13606 ;13607 }13608#pragma omp task13609 {13610#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'task' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}13611 for (int i = 0; i < 10; ++i)13612 ;13613 }13614#pragma omp task13615 {13616#pragma omp target simd // OK13617 for (int i = 0; i < 10; ++i)13618 ;13619 }13620#pragma omp task13621 {13622#pragma omp teams distribute // expected-error {{region cannot be closely nested inside 'task' region; perhaps you forget to enclose 'omp teams distribute' directive into a target region?}}13623 for (int i = 0; i < 10; ++i)13624 ;13625 }13626#pragma omp task13627 {13628#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'task' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}13629 for (int i = 0; i < 10; ++i)13630 ;13631 }13632#pragma omp task13633 {13634#pragma omp teams distribute parallel for simd // expected-error {{region cannot be closely nested inside 'task' region; perhaps you forget to enclose 'omp teams distribute parallel for simd' directive into a target region?}}13635 for (int i = 0; i < 10; ++i)13636 ;13637 }13638#pragma omp task13639 {13640#pragma omp teams distribute parallel for // expected-error {{region cannot be closely nested inside 'task' region; perhaps you forget to enclose 'omp teams distribute parallel for' directive into a target region?}}13641 for (int i = 0; i < 10; ++i)13642 ;13643 }13644#pragma omp task13645 {13646#pragma omp target teams // OK13647 a++;13648 }13649#pragma omp task13650 {13651#pragma omp target teams distribute // OK13652 for (int i = 0; i < 10; ++i)13653 ;13654 }13655#pragma omp task13656 {13657#pragma omp target teams distribute parallel for // OK13658 for (int i = 0; i < 10; ++i)13659 ;13660 }13661#pragma omp task13662 {13663#pragma omp target teams distribute parallel for simd // OK13664 for (int i = 0; i < 10; ++i)13665 ;13666 }13667#pragma omp task13668 {13669#pragma omp target teams distribute simd // OK13670 for (int i = 0; i < 10; ++i)13671 ;13672 }13673 13674// ATOMIC DIRECTIVE13675#pragma omp atomic13676 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}13677 // expected-note@+1 {{expected an expression statement}}13678 {13679#pragma omp for // expected-error {{OpenMP constructs may not be nested inside an atomic region}}13680 for (int i = 0; i < 10; ++i)13681 ;13682 }13683#pragma omp atomic13684 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}13685 // expected-note@+1 {{expected an expression statement}}13686 {13687#pragma omp simd // expected-error {{OpenMP constructs may not be nested inside an atomic region}}13688 for (int i = 0; i < 10; ++i)13689 ;13690 }13691#pragma omp atomic13692 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}13693 // expected-note@+1 {{expected an expression statement}}13694 {13695#pragma omp for simd // expected-error {{OpenMP constructs may not be nested inside an atomic region}}13696 for (int i = 0; i < 10; ++i)13697 ;13698 }13699#pragma omp atomic13700 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}13701 // expected-note@+1 {{expected an expression statement}}13702 {13703#pragma omp parallel // expected-error {{OpenMP constructs may not be nested inside an atomic region}}13704 for (int i = 0; i < 10; ++i)13705 ;13706 }13707#pragma omp atomic13708 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}13709 // expected-note@+1 {{expected an expression statement}}13710 {13711#pragma omp sections // expected-error {{OpenMP constructs may not be nested inside an atomic region}}13712 {13713 bar();13714 }13715 }13716#pragma omp atomic13717 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}13718 // expected-note@+1 {{expected an expression statement}}13719 {13720#pragma omp section // expected-error {{OpenMP constructs may not be nested inside an atomic region}}13721 {13722 bar();13723 }13724 }13725#pragma omp atomic13726 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}13727 // expected-note@+1 {{expected an expression statement}}13728 {13729#pragma omp single // expected-error {{OpenMP constructs may not be nested inside an atomic region}}13730 {13731 bar();13732 }13733 }13734#pragma omp atomic13735 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}13736 // expected-note@+1 {{expected an expression statement}}13737 {13738#pragma omp master // expected-error {{OpenMP constructs may not be nested inside an atomic region}}13739 {13740 bar();13741 }13742 }13743#pragma omp atomic13744 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}13745 // expected-note@+1 {{expected an expression statement}}13746 {13747#pragma omp critical // expected-error {{OpenMP constructs may not be nested inside an atomic region}}13748 {13749 bar();13750 }13751 }13752#pragma omp atomic13753 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}13754 // expected-note@+1 {{expected an expression statement}}13755 {13756#pragma omp parallel for // expected-error {{OpenMP constructs may not be nested inside an atomic region}}13757 for (int i = 0; i < 10; ++i)13758 ;13759 }13760#pragma omp atomic13761 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}13762 // expected-note@+1 {{expected an expression statement}}13763 {13764#pragma omp parallel for simd // expected-error {{OpenMP constructs may not be nested inside an atomic region}}13765 for (int i = 0; i < 10; ++i)13766 ;13767 }13768#pragma omp atomic13769 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}13770 // expected-note@+1 {{expected an expression statement}}13771 {13772#pragma omp parallel sections // expected-error {{OpenMP constructs may not be nested inside an atomic region}}13773 {13774 bar();13775 }13776 }13777#pragma omp atomic13778 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}13779 // expected-note@+1 {{expected an expression statement}}13780 {13781#pragma omp task // expected-error {{OpenMP constructs may not be nested inside an atomic region}}13782 {13783 bar();13784 }13785 }13786#pragma omp atomic13787 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}13788 // expected-note@+1 {{expected an expression statement}}13789 {13790#pragma omp taskyield // expected-error {{OpenMP constructs may not be nested inside an atomic region}}13791 bar();13792 }13793#pragma omp atomic13794 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}13795 // expected-note@+1 {{expected an expression statement}}13796 {13797#pragma omp barrier // expected-error {{OpenMP constructs may not be nested inside an atomic region}}13798 bar();13799 }13800#pragma omp atomic13801 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}13802 // expected-note@+1 {{expected an expression statement}}13803 {13804#pragma omp scan // expected-error {{OpenMP constructs may not be nested inside an atomic region}}13805 bar();13806 }13807#pragma omp atomic13808 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}13809 // expected-note@+1 {{expected an expression statement}}13810 {13811#pragma omp taskwait // expected-error {{OpenMP constructs may not be nested inside an atomic region}}13812 bar();13813 }13814#pragma omp atomic13815 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}13816 // expected-note@+1 {{expected an expression statement}}13817 {13818#pragma omp flush // expected-error {{OpenMP constructs may not be nested inside an atomic region}}13819 bar();13820 }13821#pragma omp atomic13822 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}13823 // expected-note@+1 {{expected an expression statement}}13824 {13825#pragma omp ordered // expected-error {{OpenMP constructs may not be nested inside an atomic region}}13826 bar();13827 }13828#pragma omp atomic13829 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}13830 // expected-note@+1 {{expected an expression statement}}13831 {13832#pragma omp atomic // expected-error {{OpenMP constructs may not be nested inside an atomic region}}13833 ++a;13834 }13835#pragma omp atomic13836 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}13837 // expected-note@+1 {{expected an expression statement}}13838 {13839#pragma omp target // expected-error {{OpenMP constructs may not be nested inside an atomic region}}13840 ++a;13841 }13842#pragma omp atomic13843 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}13844 // expected-note@+1 {{expected an expression statement}}13845 {13846#pragma omp target parallel // expected-error {{OpenMP constructs may not be nested inside an atomic region}}13847 ++a;13848 }13849#pragma omp atomic13850 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}13851 // expected-note@+1 {{expected an expression statement}}13852 {13853#pragma omp target parallel for // expected-error {{OpenMP constructs may not be nested inside an atomic region}}13854 for (int i = 0; i < 10; ++i)13855 ;13856 }13857#pragma omp atomic13858 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}13859 // expected-note@+1 {{expected an expression statement}}13860 {13861#pragma omp target enter data map(to: a) // expected-error {{OpenMP constructs may not be nested inside an atomic region}}13862 ++a;13863 }13864#pragma omp atomic13865 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}13866 // expected-note@+1 {{expected an expression statement}}13867 {13868#pragma omp target exit data map(from: a) // expected-error {{OpenMP constructs may not be nested inside an atomic region}}13869 ++a;13870 }13871#pragma omp atomic13872 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}13873 // expected-note@+1 {{expected an expression statement}}13874 {13875#pragma omp teams // expected-error {{OpenMP constructs may not be nested inside an atomic region}}13876 ++a;13877 }13878#pragma omp atomic13879 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}13880 // expected-note@+1 {{expected an expression statement}}13881 {13882#pragma omp taskloop // expected-error {{OpenMP constructs may not be nested inside an atomic region}}13883 for (int i = 0; i < 10; ++i)13884 ++a;13885 }13886#pragma omp atomic13887 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}13888 // expected-note@+1 {{expected an expression statement}}13889 {13890#pragma omp distribute // expected-error {{OpenMP constructs may not be nested inside an atomic region}}13891 for (int i = 0; i < 10; ++i)13892 ;13893 }13894#pragma omp atomic13895 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}13896 // expected-note@+1 {{expected an expression statement}}13897 {13898#pragma omp target update // expected-error {{OpenMP constructs may not be nested inside an atomic region}}13899 }13900#pragma omp atomic13901 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}13902 // expected-note@+1 {{expected an expression statement}}13903 {13904#pragma omp distribute parallel for// expected-error {{OpenMP constructs may not be nested inside an atomic region}}13905 for (int i = 0; i < 10; ++i)13906 ;13907 }13908#pragma omp atomic13909 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}13910 // expected-note@+1 {{expected an expression statement}}13911 {13912#pragma omp distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside an atomic region}}13913 for (int i = 0; i < 10; ++i)13914 ;13915 }13916#pragma omp atomic13917 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}13918 // expected-note@+1 {{expected an expression statement}}13919 {13920#pragma omp distribute simd // expected-error {{OpenMP constructs may not be nested inside an atomic region}}13921 for (int i = 0; i < 10; ++i)13922 ;13923 }13924#pragma omp atomic13925 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}13926 // expected-note@+1 {{expected an expression statement}}13927 {13928#pragma omp target simd // expected-error {{OpenMP constructs may not be nested inside an atomic region}}13929 for (int i = 0; i < 10; ++i)13930 ;13931 }13932#pragma omp atomic13933 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}13934 // expected-note@+1 {{expected an expression statement}}13935 {13936#pragma omp teams distribute // expected-error {{OpenMP constructs may not be nested inside an atomic region}}13937 for (int i = 0; i < 10; ++i)13938 ;13939 }13940#pragma omp atomic13941 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}13942 // expected-note@+1 {{expected an expression statement}}13943 {13944#pragma omp teams distribute simd // expected-error {{OpenMP constructs may not be nested inside an atomic region}}13945 for (int i = 0; i < 10; ++i)13946 ;13947 }13948#pragma omp atomic13949 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}13950 // expected-note@+1 {{expected an expression statement}}13951 {13952#pragma omp teams distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside an atomic region}}13953 for (int i = 0; i < 10; ++i)13954 ;13955 }13956#pragma omp atomic13957 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}13958 // expected-note@+1 {{expected an expression statement}}13959 {13960#pragma omp teams distribute parallel for // expected-error {{OpenMP constructs may not be nested inside an atomic region}}13961 for (int i = 0; i < 10; ++i)13962 ;13963 }13964#pragma omp atomic13965 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}13966 // expected-note@+1 {{expected an expression statement}}13967 {13968#pragma omp target teams // expected-error {{OpenMP constructs may not be nested inside an atomic region}}13969 a++;13970 }13971#pragma omp atomic13972 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}13973 // expected-note@+1 {{expected an expression statement}}13974 {13975#pragma omp target teams distribute // expected-error {{OpenMP constructs may not be nested inside an atomic region}}13976 for (int i = 0; i < 10; ++i)13977 ;13978 }13979#pragma omp atomic13980 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}13981 // expected-note@+1 {{expected an expression statement}}13982 {13983#pragma omp target teams distribute parallel for // expected-error {{OpenMP constructs may not be nested inside an atomic region}}13984 for (int i = 0; i < 10; ++i)13985 ;13986 }13987#pragma omp atomic13988 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}13989 // expected-note@+1 {{expected an expression statement}}13990 {13991#pragma omp target teams distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside an atomic region}}13992 for (int i = 0; i < 10; ++i)13993 ;13994 }13995#pragma omp atomic13996 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}13997 // expected-note@+1 {{expected an expression statement}}13998 {13999#pragma omp target teams distribute simd // expected-error {{OpenMP constructs may not be nested inside an atomic region}}14000 for (int i = 0; i < 10; ++i)14001 ;14002 }14003 14004// TARGET DIRECTIVE14005#pragma omp target14006#pragma omp parallel14007 bar();14008#pragma omp target14009#pragma omp for14010 for (int i = 0; i < 10; ++i)14011 ;14012#pragma omp target14013#pragma omp simd14014 for (int i = 0; i < 10; ++i)14015 ;14016#pragma omp target14017#pragma omp for simd14018 for (int i = 0; i < 10; ++i)14019 ;14020#pragma omp target14021#pragma omp sections14022 {14023 bar();14024 }14025#pragma omp target14026#pragma omp section // expected-error {{'omp section' directive must be closely nested to a sections region, not a target region}}14027 {14028 bar();14029 }14030#pragma omp target14031#pragma omp single14032 bar();14033 14034#pragma omp target14035#pragma omp master14036 {14037 bar();14038 }14039#pragma omp target14040#pragma omp critical14041 {14042 bar();14043 }14044#pragma omp target14045#pragma omp parallel for14046 for (int i = 0; i < 10; ++i)14047 ;14048#pragma omp target14049#pragma omp parallel for simd14050 for (int i = 0; i < 10; ++i)14051 ;14052#pragma omp target14053#pragma omp parallel sections14054 {14055 bar();14056 }14057#pragma omp target14058#pragma omp task14059 {14060 bar();14061 }14062#pragma omp target14063 {14064#pragma omp taskyield14065 bar();14066 }14067#pragma omp target14068 {14069#pragma omp barrier14070 bar();14071 }14072#pragma omp target14073 {14074#pragma omp scan // expected-error {{region cannot be closely nested inside 'target' region; perhaps you forget to enclose 'omp scan' directive into a for, simd, for simd, parallel for, or parallel for simd region?}}14075 bar();14076 }14077#pragma omp target14078 {14079#pragma omp taskwait14080 bar();14081 }14082#pragma omp target14083 {14084#pragma omp flush14085 bar();14086 }14087#pragma omp target14088 {14089#pragma omp ordered // expected-error {{region cannot be closely nested inside 'target' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}14090 bar();14091 }14092#pragma omp target14093 {14094#pragma omp atomic14095 ++a;14096 }14097#pragma omp target14098 {14099#pragma omp target // expected-error {{region cannot be nested inside 'target' region}}14100 ++a;14101 }14102#pragma omp target14103 {14104#pragma omp target parallel // expected-error {{region cannot be nested inside 'target' region}}14105 ++a;14106 }14107#pragma omp target14108#pragma omp target parallel for // expected-error {{region cannot be nested inside 'target' region}}14109 for (int i = 0; i < 10; ++i)14110 ;14111#pragma omp target14112 {14113#pragma omp target enter data map(to: a) // expected-error {{region cannot be nested inside 'target' region}}14114 }14115#pragma omp target14116 {14117#pragma omp target exit data map(from: a) // expected-error {{region cannot be nested inside 'target' region}}14118 }14119#pragma omp target14120 {14121#pragma omp teams14122 ++a;14123 }14124#pragma omp target // expected-error {{target construct with nested teams region contains statements outside of the teams construct}}14125 {14126#pragma omp teams // expected-note {{directive outside teams construct here}}14127 ++a;14128#pragma omp teams // expected-note {{nested teams construct here}}14129 ++a;14130 }14131#pragma omp target // expected-error {{target construct with nested teams region contains statements outside of the teams construct}}14132 {14133 ++a; // expected-note {{statement outside teams construct here}}14134#pragma omp teams // expected-note {{nested teams construct here}}14135 ++a;14136 }14137#pragma omp target // expected-error {{target construct with nested teams region contains statements outside of the teams construct}}14138 {14139#pragma omp teams // expected-note {{nested teams construct here}}14140 ++a;14141 ++a; // expected-note {{statement outside teams construct here}}14142 }14143#pragma omp target14144 {14145#pragma omp taskloop14146 for (int i = 0; i < 10; ++i)14147 ++a;14148 }14149#pragma omp target14150 {14151#pragma omp distribute // expected-error {{region cannot be closely nested inside 'target' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}14152 for (int i = 0; i < 10; ++i)14153 ;14154 }14155#pragma omp atomic14156 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}14157 // expected-note@+1 {{expected an expression statement}}14158 {14159#pragma omp target update to(a) // expected-error {{OpenMP constructs may not be nested inside an atomic region}}14160 a++;14161 }14162#pragma omp target14163 {14164#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'target' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}14165 for (int i = 0; i < 10; ++i)14166 ;14167 }14168#pragma omp target14169 {14170#pragma omp distribute parallel for simd // expected-error {{region cannot be closely nested inside 'target' region; perhaps you forget to enclose 'omp distribute parallel for simd' directive into a teams region?}}14171 for (int i = 0; i < 10; ++i)14172 ;14173 }14174#pragma omp target14175 {14176#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'target' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}14177 for (int i = 0; i < 10; ++i)14178 ;14179 }14180#pragma omp target14181 {14182#pragma omp target simd // expected-error {{region cannot be nested inside 'target' region}}14183 for (int i = 0; i < 10; ++i)14184 ;14185 }14186#pragma omp target14187 {14188#pragma omp teams distribute // OK14189 for (int i = 0; i < 10; ++i)14190 ;14191 }14192#pragma omp target14193 {14194#pragma omp teams distribute simd // OK14195 for (int i = 0; i < 10; ++i)14196 ;14197 }14198#pragma omp target14199 {14200#pragma omp teams distribute parallel for simd // OK14201 for (int i = 0; i < 10; ++i)14202 ;14203 }14204#pragma omp target14205 {14206#pragma omp teams distribute parallel for // OK14207 for (int i = 0; i < 10; ++i)14208 ;14209 }14210#pragma omp target14211 {14212#pragma omp target teams // expected-error {{region cannot be nested inside 'target' region}}14213 a++;14214 }14215#pragma omp target14216 {14217#pragma omp target teams distribute // expected-error {{region cannot be nested inside 'target' region}}14218 for (int i = 0; i < 10; ++i)14219 ;14220 }14221#pragma omp target14222 {14223#pragma omp target teams distribute parallel for // expected-error {{region cannot be nested inside 'target' region}}14224 for (int i = 0; i < 10; ++i)14225 ;14226 }14227#pragma omp target14228 {14229#pragma omp target teams distribute parallel for simd // expected-error {{region cannot be nested inside 'target' region}}14230 for (int i = 0; i < 10; ++i)14231 ;14232 }14233#pragma omp target14234 {14235#pragma omp target teams distribute simd // expected-error {{region cannot be nested inside 'target' region}}14236 for (int i = 0; i < 10; ++i)14237 ;14238 }14239 14240// TARGET PARALLEL DIRECTIVE14241#pragma omp target parallel14242#pragma omp parallel14243 bar();14244#pragma omp target parallel14245#pragma omp for14246 for (int i = 0; i < 10; ++i)14247 ;14248#pragma omp target parallel14249#pragma omp simd14250 for (int i = 0; i < 10; ++i)14251 ;14252#pragma omp target parallel14253#pragma omp for simd14254 for (int i = 0; i < 10; ++i)14255 ;14256#pragma omp target parallel14257#pragma omp sections14258 {14259 bar();14260 }14261#pragma omp target parallel14262#pragma omp section // expected-error {{'omp section' directive must be closely nested to a sections region, not a target parallel region}}14263 {14264 bar();14265 }14266#pragma omp target parallel14267#pragma omp single14268 bar();14269 14270#pragma omp target parallel14271#pragma omp master14272 {14273 bar();14274 }14275#pragma omp target parallel14276#pragma omp critical14277 {14278 bar();14279 }14280#pragma omp target parallel14281#pragma omp parallel for14282 for (int i = 0; i < 10; ++i)14283 ;14284#pragma omp target parallel14285#pragma omp parallel for simd14286 for (int i = 0; i < 10; ++i)14287 ;14288#pragma omp target parallel14289#pragma omp parallel sections14290 {14291 bar();14292 }14293#pragma omp target parallel14294#pragma omp task14295 {14296 bar();14297 }14298#pragma omp target parallel14299 {14300#pragma omp taskyield14301 bar();14302 }14303#pragma omp target parallel14304 {14305#pragma omp barrier14306 bar();14307 }14308#pragma omp target parallel14309 {14310#pragma omp scan // expected-error {{region cannot be closely nested inside 'target parallel' region; perhaps you forget to enclose 'omp scan' directive into a for, simd, for simd, parallel for, or parallel for simd region?}}14311 bar();14312 }14313#pragma omp target parallel14314 {14315#pragma omp taskwait14316 bar();14317 }14318#pragma omp target parallel14319 {14320#pragma omp flush14321 bar();14322 }14323#pragma omp target parallel14324 {14325#pragma omp ordered // expected-error {{region cannot be closely nested inside 'target parallel' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}14326 bar();14327 }14328#pragma omp target parallel14329 {14330#pragma omp atomic14331 ++a;14332 }14333#pragma omp target parallel14334 {14335#pragma omp target // expected-error {{region cannot be nested inside 'target parallel' region}}14336 ++a;14337 }14338#pragma omp target parallel14339 {14340#pragma omp target parallel // expected-error {{region cannot be nested inside 'target parallel' region}}14341 ++a;14342 }14343#pragma omp target parallel14344#pragma omp target parallel for // expected-error {{region cannot be nested inside 'target parallel' region}}14345 for (int i = 0; i < 10; ++i)14346 ;14347#pragma omp target parallel14348 {14349#pragma omp teams // expected-error {{region cannot be closely nested inside 'target parallel' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}14350 ++a;14351 }14352#pragma omp target parallel14353 {14354 ++a;14355#pragma omp teams // expected-error {{region cannot be closely nested inside 'target parallel' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}14356 ++a;14357 }14358#pragma omp target parallel14359 {14360#pragma omp taskloop14361 for (int i = 0; i < 10; ++i)14362 ++a;14363 }14364#pragma omp target parallel14365 {14366#pragma omp distribute // expected-error {{region cannot be closely nested inside 'target parallel' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}14367 for (int i = 0; i < 10; ++i)14368 ;14369 }14370#pragma omp target parallel14371 {14372#pragma omp target enter data map(to: a) // expected-error {{region cannot be nested inside 'target parallel' region}}14373 }14374#pragma omp target parallel14375 {14376#pragma omp target exit data map(from: a) // expected-error {{region cannot be nested inside 'target parallel' region}}14377 }14378#pragma omp target parallel14379 {14380#pragma omp target update to(a) // expected-error {{region cannot be nested inside 'target parallel' region}}14381 }14382#pragma omp target parallel14383 {14384#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'target parallel' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}14385 for (int i = 0; i < 10; ++i)14386 ;14387 }14388#pragma omp target parallel14389 {14390#pragma omp distribute parallel for simd // expected-error {{region cannot be closely nested inside 'target parallel' region; perhaps you forget to enclose 'omp distribute parallel for simd' directive into a teams region?}}14391 for (int i = 0; i < 10; ++i)14392 ;14393 }14394#pragma omp target parallel14395 {14396#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'target parallel' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}14397 for (int i = 0; i < 10; ++i)14398 ;14399 }14400#pragma omp target parallel14401 {14402#pragma omp target simd // expected-error {{region cannot be nested inside 'target parallel' regio}}14403 for (int i = 0; i < 10; ++i)14404 ;14405 }14406#pragma omp target parallel14407 {14408#pragma omp teams distribute // expected-error {{region cannot be closely nested inside 'target parallel' region; perhaps you forget to enclose 'omp teams distribute' directive into a target region?}}14409 for (int i = 0; i < 10; ++i)14410 ;14411 }14412#pragma omp target parallel14413 {14414#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'target parallel' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}14415 for (int i = 0; i < 10; ++i)14416 ;14417 }14418#pragma omp target parallel14419 {14420#pragma omp teams distribute parallel for simd // expected-error {{region cannot be closely nested inside 'target parallel' region; perhaps you forget to enclose 'omp teams distribute parallel for simd' directive into a target region?}}14421 for (int i = 0; i < 10; ++i)14422 ;14423 }14424#pragma omp target parallel14425 {14426#pragma omp teams distribute parallel for // expected-error {{region cannot be closely nested inside 'target parallel' region; perhaps you forget to enclose 'omp teams distribute parallel for' directive into a target region?}}14427 for (int i = 0; i < 10; ++i)14428 ;14429 }14430#pragma omp target parallel14431 {14432#pragma omp target teams // expected-error {{region cannot be nested inside 'target parallel' region}}14433 a++;14434 }14435#pragma omp target parallel14436 {14437#pragma omp target teams distribute // expected-error {{region cannot be nested inside 'target parallel' region}}14438 for (int i = 0; i < 10; ++i)14439 ;14440 }14441#pragma omp target parallel14442 {14443#pragma omp target teams distribute parallel for // expected-error {{region cannot be nested inside 'target parallel' region}}14444 for (int i = 0; i < 10; ++i)14445 ;14446 }14447#pragma omp target parallel14448 {14449#pragma omp target teams distribute parallel for simd // expected-error {{region cannot be nested inside 'target parallel' region}}14450 for (int i = 0; i < 10; ++i)14451 ;14452 }14453#pragma omp target parallel14454 {14455#pragma omp target teams distribute simd // expected-error {{region cannot be nested inside 'target parallel' region}}14456 for (int i = 0; i < 10; ++i)14457 ;14458 }14459 14460// TARGET PARALLEL FOR DIRECTIVE14461#pragma omp target parallel for14462 for (int i = 0; i < 10; ++i) {14463#pragma omp for // expected-error {{region cannot be closely nested inside 'target parallel for' region; perhaps you forget to enclose 'omp for' directive into a parallel region?}}14464 for (int i = 0; i < 10; ++i)14465 ;14466 }14467#pragma omp target parallel for14468 for (int i = 0; i < 10; ++i) {14469#pragma omp simd14470 for (int i = 0; i < 10; ++i)14471 ;14472 }14473#pragma omp target parallel for14474 for (int i = 0; i < 10; ++i) {14475#pragma omp for simd // expected-error {{region cannot be closely nested inside 'target parallel for' region; perhaps you forget to enclose 'omp for simd' directive into a parallel region?}}14476 for (int i = 0; i < 10; ++i)14477 ;14478 }14479#pragma omp target parallel for14480 for (int i = 0; i < 10; ++i) {14481#pragma omp parallel14482 for (int i = 0; i < 10; ++i)14483 ;14484 }14485#pragma omp target parallel for14486 for (int i = 0; i < 10; ++i) {14487#pragma omp sections // expected-error {{region cannot be closely nested inside 'target parallel for' region; perhaps you forget to enclose 'omp sections' directive into a parallel region?}}14488 {14489 bar();14490 }14491 }14492#pragma omp target parallel for14493 for (int i = 0; i < 10; ++i) {14494#pragma omp section // expected-error {{'omp section' directive must be closely nested to a sections region, not a target parallel for region}}14495 {14496 bar();14497 }14498 }14499#pragma omp target parallel for14500 for (int i = 0; i < 10; ++i) {14501#pragma omp single // expected-error {{region cannot be closely nested inside 'target parallel for' region; perhaps you forget to enclose 'omp single' directive into a parallel region?}}14502 {14503 bar();14504 }14505 }14506 14507#pragma omp target parallel for14508 for (int i = 0; i < 10; ++i) {14509#pragma omp master // expected-error {{region cannot be closely nested inside 'target parallel for' region}}14510 {14511 bar();14512 }14513 }14514 14515#pragma omp target parallel for14516 for (int i = 0; i < 10; ++i) {14517#pragma omp critical14518 {14519 bar();14520 }14521 }14522 14523#pragma omp target parallel for14524 for (int i = 0; i < 10; ++i) {14525#pragma omp parallel14526 {14527#pragma omp single // OK14528 {14529 bar();14530 }14531#pragma omp for // OK14532 for (int i = 0; i < 10; ++i)14533 ;14534#pragma omp for simd // OK14535 for (int i = 0; i < 10; ++i)14536 ;14537#pragma omp sections // OK14538 {14539 bar();14540 }14541 }14542 }14543#pragma omp target parallel for14544 for (int i = 0; i < 10; ++i) {14545#pragma omp parallel for14546 for (int i = 0; i < 10; ++i)14547 ;14548 }14549#pragma omp target parallel for14550 for (int i = 0; i < 10; ++i) {14551#pragma omp parallel for simd14552 for (int i = 0; i < 10; ++i)14553 ;14554 }14555#pragma omp target parallel for14556 for (int i = 0; i < 10; ++i) {14557#pragma omp parallel sections14558 {14559 bar();14560 }14561 }14562#pragma omp target parallel for14563 for (int i = 0; i < 10; ++i) {14564#pragma omp task14565 {14566 bar();14567 }14568 }14569#pragma omp target parallel for14570 for (int i = 0; i < 10; ++i) {14571#pragma omp taskyield14572 bar();14573 }14574#pragma omp target parallel for14575 for (int i = 0; i < 10; ++i) {14576#pragma omp barrier // expected-error {{region cannot be closely nested inside 'target parallel for' region}}14577 bar();14578 }14579#pragma omp target parallel for14580 for (int i = 0; i < 10; ++i) {14581#pragma omp taskwait14582 bar();14583 }14584#pragma omp target parallel for14585 for (int i = 0; i < 10; ++i) {14586#pragma omp flush14587 bar();14588 }14589#pragma omp target parallel for14590 for (int i = 0; i < 10; ++i) {14591#pragma omp ordered // expected-error {{region cannot be closely nested inside 'target parallel for' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}14592 bar();14593 }14594#pragma omp target parallel for ordered14595 for (int i = 0; i < 10; ++i) {14596#pragma omp ordered // OK14597 bar();14598 }14599#pragma omp target parallel for14600 for (int i = 0; i < 10; ++i) {14601#pragma omp atomic14602 ++a;14603 }14604#pragma omp target parallel for14605 for (int i = 0; i < 10; ++i) {14606#pragma omp target // expected-error {{region cannot be nested inside 'target parallel for' region}}14607 ++a;14608 }14609#pragma omp target parallel for14610 for (int i = 0; i < 10; ++i) {14611#pragma omp target parallel // expected-error {{region cannot be nested inside 'target parallel for' region}}14612 ++a;14613 }14614#pragma omp target parallel for14615 for (int i = 0; i < 10; ++i) {14616#pragma omp target parallel for // expected-error {{region cannot be nested inside 'target parallel for' region}}14617 for (int i = 0; i < 10; ++i)14618 ;14619 }14620#pragma omp target parallel for14621 for (int i = 0; i < 10; ++i) {14622#pragma omp target enter data map(to: a) // expected-error {{region cannot be nested inside 'target parallel for' region}}14623 ++a;14624 }14625#pragma omp target parallel for14626 for (int i = 0; i < 10; ++i) {14627#pragma omp target exit data map(from: a) // expected-error {{region cannot be nested inside 'target parallel for' region}}14628 ++a;14629 }14630#pragma omp target parallel for14631 for (int i = 0; i < 10; ++i) {14632#pragma omp teams // expected-error {{region cannot be closely nested inside 'target parallel for' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}14633 ++a;14634 }14635#pragma omp target parallel for14636 for (int i = 0; i < 10; ++i) {14637#pragma omp taskloop14638 for (int i = 0; i < 10; ++i)14639 ++a;14640 }14641#pragma omp target parallel for14642 for (int i = 0; i < 10; ++i) {14643#pragma omp distribute // expected-error {{region cannot be closely nested inside 'target parallel for' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}14644 for (int j = 0; j < 10; ++j)14645 ;14646 }14647#pragma omp target parallel for14648 for (int i = 0; i < 10; ++i) {14649#pragma omp target update to(a) // expected-error {{region cannot be nested inside 'target parallel for' region}}14650 a++;14651 }14652#pragma omp target parallel for14653 for (int i = 0; i < 10; ++i) {14654#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'target parallel for' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}14655 for (int j = 0; j < 10; ++j)14656 ;14657 }14658#pragma omp target parallel for14659 for (int i = 0; i < 10; ++i) {14660#pragma omp distribute parallel for simd // expected-error {{region cannot be closely nested inside 'target parallel for' region; perhaps you forget to enclose 'omp distribute parallel for simd' directive into a teams region?}}14661 for (int j = 0; j < 10; ++j)14662 ;14663 }14664#pragma omp target parallel for14665 for (int i = 0; i < 10; ++i) {14666#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'target parallel for' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}14667 for (int j = 0; j < 10; ++j)14668 ;14669 }14670#pragma omp target parallel for14671 for (int i = 0; i < 10; ++i) {14672#pragma omp target simd // expected-error {{region cannot be nested inside 'target parallel for' region}}14673 for (int j = 0; j < 10; ++j)14674 ;14675 }14676#pragma omp target parallel for14677 for (int i = 0; i < 10; ++i) {14678#pragma omp teams distribute // expected-error {{region cannot be closely nested inside 'target parallel for' region; perhaps you forget to enclose 'omp teams distribute' directive into a target region?}}14679 for (int j = 0; j < 10; ++j)14680 ;14681 }14682#pragma omp target parallel for14683 for (int i = 0; i < 10; ++i) {14684#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'target parallel for' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}14685 for (int j = 0; j < 10; ++j)14686 ;14687 }14688#pragma omp target parallel for14689 for (int i = 0; i < 10; ++i) {14690#pragma omp teams distribute parallel for simd // expected-error {{region cannot be closely nested inside 'target parallel for' region; perhaps you forget to enclose 'omp teams distribute parallel for simd' directive into a target region?}}14691 for (int j = 0; j < 10; ++j)14692 ;14693 }14694#pragma omp target parallel for14695 for (int i = 0; i < 10; ++i) {14696#pragma omp teams distribute parallel for // expected-error {{region cannot be closely nested inside 'target parallel for' region; perhaps you forget to enclose 'omp teams distribute parallel for' directive into a target region?}}14697 for (int j = 0; j < 10; ++j)14698 ;14699 }14700#pragma omp target parallel for14701 for (int i = 0; i < 10; ++i) {14702#pragma omp target teams // expected-error {{region cannot be nested inside 'target parallel for' region}}14703 a++;14704 }14705#pragma omp target parallel for14706 for (int i = 0; i < 10; ++i) {14707#pragma omp target teams distribute // expected-error {{region cannot be nested inside 'target parallel for' region}}14708 for (int j = 0; j < 10; ++j)14709 ;14710 }14711#pragma omp target parallel for14712 for (int i = 0; i < 10; ++i) {14713#pragma omp target teams distribute parallel for // expected-error {{region cannot be nested inside 'target parallel for' region}}14714 for (int j = 0; j < 10; ++j)14715 ;14716 }14717#pragma omp target parallel for14718 for (int i = 0; i < 10; ++i) {14719#pragma omp target teams distribute parallel for simd // expected-error {{region cannot be nested inside 'target parallel for' region}}14720 for (int j = 0; j < 10; ++j)14721 ;14722 }14723#pragma omp target parallel for14724 for (int i = 0; i < 10; ++i) {14725#pragma omp target teams distribute simd // expected-error {{region cannot be nested inside 'target parallel for' region}}14726 for (int j = 0; j < 10; ++j)14727 ;14728 }14729 14730// TEAMS DIRECTIVE14731#pragma omp target14732#pragma omp teams14733#pragma omp parallel14734 bar();14735#pragma omp target14736#pragma omp teams14737#pragma omp for // expected-error {{region cannot be closely nested inside 'teams' region; perhaps you forget to enclose 'omp for' directive into a parallel region?}}14738 for (int i = 0; i < 10; ++i)14739 ;14740#pragma omp target14741#pragma omp teams14742#pragma omp simd // expected-error {{region cannot be closely nested inside 'teams' region; perhaps you forget to enclose 'omp simd' directive into a parallel region?}}14743 for (int i = 0; i < 10; ++i)14744 ;14745#pragma omp target14746#pragma omp teams14747#pragma omp for simd // expected-error {{region cannot be closely nested inside 'teams' region; perhaps you forget to enclose 'omp for simd' directive into a parallel region?}}14748 for (int i = 0; i < 10; ++i)14749 ;14750#pragma omp target14751#pragma omp teams14752#pragma omp sections // expected-error {{region cannot be closely nested inside 'teams' region; perhaps you forget to enclose 'omp sections' directive into a parallel region?}}14753 {14754 bar();14755 }14756#pragma omp target14757#pragma omp teams14758#pragma omp section // expected-error {{'omp section' directive must be closely nested to a sections region, not a teams region}}14759 {14760 bar();14761 }14762#pragma omp target14763#pragma omp teams14764#pragma omp single // expected-error {{region cannot be closely nested inside 'teams' region; perhaps you forget to enclose 'omp single' directive into a parallel region?}}14765 bar();14766 14767#pragma omp target14768#pragma omp teams14769#pragma omp master // expected-error {{region cannot be closely nested inside 'teams' region; perhaps you forget to enclose 'omp master' directive into a parallel region?}}14770 {14771 bar();14772 }14773#pragma omp target14774#pragma omp teams14775#pragma omp critical // expected-error {{region cannot be closely nested inside 'teams' region; perhaps you forget to enclose 'omp critical' directive into a parallel region?}}14776 {14777 bar();14778 }14779#pragma omp target14780#pragma omp teams14781#pragma omp parallel for14782 for (int i = 0; i < 10; ++i)14783 ;14784#pragma omp target14785#pragma omp teams14786#pragma omp parallel for simd14787 for (int i = 0; i < 10; ++i)14788 ;14789#pragma omp target14790#pragma omp teams14791#pragma omp parallel sections14792 {14793 bar();14794 }14795#pragma omp target14796#pragma omp teams14797#pragma omp task // expected-error {{region cannot be closely nested inside 'teams' region; perhaps you forget to enclose 'omp task' directive into a parallel region?}}14798 {14799 bar();14800 }14801#pragma omp target14802#pragma omp teams14803 {14804#pragma omp taskyield // expected-error {{region cannot be closely nested inside 'teams' region; perhaps you forget to enclose 'omp taskyield' directive into a parallel region?}}14805 bar();14806 }14807#pragma omp target14808#pragma omp teams14809 {14810#pragma omp barrier // expected-error {{region cannot be closely nested inside 'teams' region; perhaps you forget to enclose 'omp barrier' directive into a parallel region?}}14811 bar();14812 }14813#pragma omp target14814#pragma omp teams14815 {14816#pragma omp scan // expected-error {{region cannot be closely nested inside 'teams' region; perhaps you forget to enclose 'omp scan' directive into a for, simd, for simd, parallel for, or parallel for simd region?}}14817 bar();14818 }14819#pragma omp target14820#pragma omp teams14821 {14822#pragma omp taskwait // expected-error {{region cannot be closely nested inside 'teams' region; perhaps you forget to enclose 'omp taskwait' directive into a parallel region?}}14823 bar();14824 }14825#pragma omp target14826#pragma omp teams14827 {14828#pragma omp flush // expected-error {{region cannot be closely nested inside 'teams' region; perhaps you forget to enclose 'omp flush' directive into a parallel region?}}14829 bar();14830 }14831#pragma omp target14832#pragma omp teams14833 {14834#pragma omp ordered // expected-error {{region cannot be closely nested inside 'teams' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}14835 bar();14836 }14837#pragma omp target14838#pragma omp teams14839 {14840#pragma omp atomic // omp-error {{region cannot be closely nested inside 'teams' region; perhaps you forget to enclose 'omp atomic' directive into a parallel region?}}14841 ++a;14842 }14843#pragma omp target14844#pragma omp teams14845 {14846#pragma omp target // expected-error {{region cannot be nested inside 'target' region}}14847 ++a;14848 }14849#pragma omp target14850#pragma omp teams14851 {14852#pragma omp target parallel // expected-error {{region cannot be nested inside 'target' region}}14853 ++a;14854 }14855#pragma omp target14856#pragma omp teams14857#pragma omp target parallel for // expected-error {{region cannot be nested inside 'target' region}}14858 for (int i = 0; i < 10; ++i)14859 ;14860#pragma omp target14861#pragma omp teams14862 {14863#pragma omp target enter data map(to: a) // expected-error {{region cannot be nested inside 'target' region}}14864 }14865#pragma omp target14866#pragma omp teams14867 {14868#pragma omp target exit data map(from: a) // expected-error {{region cannot be nested inside 'target' region}}14869 }14870#pragma omp target14871#pragma omp teams14872 {14873#pragma omp teams // expected-error {{region cannot be closely nested inside 'teams' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}14874 ++a;14875 }14876#pragma omp target14877#pragma omp teams14878 {14879#pragma omp taskloop // expected-error {{region cannot be closely nested inside 'teams' region; perhaps you forget to enclose 'omp taskloop' directive into a parallel region?}}14880 for (int i = 0; i < 10; ++i)14881 ++a;14882 }14883#pragma omp target14884#pragma omp teams14885#pragma omp distribute14886 for (int i = 0; i < 10; ++i)14887 ;14888#pragma omp target14889#pragma omp teams14890#pragma omp distribute14891 for (int i = 0; i < 10; ++i)14892 ;14893#pragma omp distribute14894 for (int j = 0; j < 10; ++j)14895 ;14896#pragma omp target14897#pragma omp teams14898 {14899#pragma omp target update to(a) // expected-error {{region cannot be nested inside 'target' region}}14900 ++a;14901 }14902#pragma omp target14903#pragma omp teams14904#pragma omp distribute parallel for14905 for (int i = 0; i < 10; ++i)14906 ;14907#pragma omp target14908#pragma omp teams14909 {14910#pragma omp distribute parallel for14911 for (int i = 0; i < 10; ++i)14912 ;14913#pragma omp distribute parallel for14914 for (int j = 0; j < 10; ++j)14915 ;14916 }14917#pragma omp target14918#pragma omp teams14919 {14920#pragma omp distribute parallel for simd14921 for (int i = 0; i < 10; ++i)14922 ;14923#pragma omp distribute parallel for simd14924 for (int j = 0; j < 10; ++j)14925 ;14926 }14927#pragma omp target14928#pragma omp teams14929 {14930#pragma omp distribute simd14931 for (int i = 0; i < 10; ++i)14932 ;14933#pragma omp distribute simd14934 for (int j = 0; j < 10; ++j)14935 ;14936 }14937#pragma omp target14938#pragma omp teams14939 {14940#pragma omp target simd // expected-error {{region cannot be nested inside 'target' region}}14941 for (int i = 0; i < 10; ++i)14942 ;14943 }14944#pragma omp target14945#pragma omp teams14946 {14947#pragma omp teams distribute // expected-error {{region cannot be closely nested inside 'teams' region; perhaps you forget to enclose 'omp teams distribute' directive into a target region?}}14948 for (int i = 0; i < 10; ++i)14949 ;14950 }14951#pragma omp target14952#pragma omp teams14953 {14954#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'teams' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}14955 for (int i = 0; i < 10; ++i)14956 ;14957 }14958#pragma omp target14959#pragma omp teams14960 {14961#pragma omp teams distribute parallel for simd // expected-error {{region cannot be closely nested inside 'teams' region; perhaps you forget to enclose 'omp teams distribute parallel for simd' directive into a target region?}}14962 for (int i = 0; i < 10; ++i)14963 ;14964 }14965#pragma omp target14966#pragma omp teams14967 {14968#pragma omp teams distribute parallel for // expected-error {{region cannot be closely nested inside 'teams' region; perhaps you forget to enclose 'omp teams distribute parallel for' directive into a target region?}}14969 for (int i = 0; i < 10; ++i)14970 ;14971 }14972#pragma omp target14973#pragma omp teams14974 {14975#pragma omp target teams // expected-error {{region cannot be nested inside 'target' region}}14976 a++;14977 }14978#pragma omp target14979#pragma omp teams14980 {14981#pragma omp target teams distribute // expected-error {{region cannot be nested inside 'target' region}}14982 for (int i = 0; i < 10; ++i)14983 ;14984 }14985#pragma omp target14986#pragma omp teams14987 {14988#pragma omp target teams distribute parallel for // expected-error {{region cannot be nested inside 'target' region}}14989 for (int i = 0; i < 10; ++i)14990 ;14991 }14992#pragma omp target14993#pragma omp teams14994 {14995#pragma omp target teams distribute parallel for simd // expected-error {{region cannot be nested inside 'target' region}}14996 for (int i = 0; i < 10; ++i)14997 ;14998 }14999#pragma omp target15000#pragma omp teams15001 {15002#pragma omp target teams distribute simd // expected-error {{region cannot be nested inside 'target' region}}15003 for (int i = 0; i < 10; ++i)15004 ;15005 }15006 15007// TASKLOOP DIRECTIVE15008#pragma omp taskloop15009 for (int i = 0; i < 10; ++i) {15010#pragma omp for // expected-error {{region cannot be closely nested inside 'taskloop' region; perhaps you forget to enclose 'omp for' directive into a parallel region?}}15011 for (int i = 0; i < 10; ++i)15012 ;15013 }15014#pragma omp taskloop15015 for (int i = 0; i < 10; ++i) {15016#pragma omp simd15017 for (int i = 0; i < 10; ++i)15018 ;15019 }15020#pragma omp taskloop15021 for (int i = 0; i < 10; ++i) {15022#pragma omp for simd // expected-error {{region cannot be closely nested inside 'taskloop' region; perhaps you forget to enclose 'omp for simd' directive into a parallel region?}}15023 for (int i = 0; i < 10; ++i)15024 ;15025 }15026#pragma omp taskloop15027 for (int i = 0; i < 10; ++i) {15028#pragma omp parallel15029 for (int i = 0; i < 10; ++i)15030 ;15031 }15032#pragma omp taskloop15033 for (int i = 0; i < 10; ++i) {15034#pragma omp sections // expected-error {{region cannot be closely nested inside 'taskloop' region; perhaps you forget to enclose 'omp sections' directive into a parallel region?}}15035 {15036 bar();15037 }15038 }15039#pragma omp taskloop15040 for (int i = 0; i < 10; ++i) {15041#pragma omp section // expected-error {{'omp section' directive must be closely nested to a sections region, not a taskloop region}}15042 {15043 bar();15044 }15045 }15046#pragma omp taskloop15047 for (int i = 0; i < 10; ++i) {15048#pragma omp single // expected-error {{region cannot be closely nested inside 'taskloop' region; perhaps you forget to enclose 'omp single' directive into a parallel region?}}15049 {15050 bar();15051 }15052 }15053 15054#pragma omp taskloop15055 for (int i = 0; i < 10; ++i) {15056#pragma omp master // expected-error {{region cannot be closely nested inside 'taskloop' region}}15057 {15058 bar();15059 }15060 }15061#pragma omp taskloop15062 for (int i = 0; i < 10; ++i) {15063#pragma omp critical15064 {15065 bar();15066 }15067 }15068#pragma omp taskloop15069 for (int i = 0; i < 10; ++i) {15070#pragma omp parallel15071 {15072#pragma omp single // OK15073 {15074 bar();15075 }15076#pragma omp for // OK15077 for (int i = 0; i < 10; ++i)15078 ;15079#pragma omp sections // OK15080 {15081 bar();15082 }15083 }15084 }15085#pragma omp taskloop15086 for (int i = 0; i < 10; ++i) {15087#pragma omp parallel for15088 for (int i = 0; i < 10; ++i)15089 ;15090 }15091#pragma omp taskloop15092 for (int i = 0; i < 10; ++i) {15093#pragma omp parallel for simd15094 for (int i = 0; i < 10; ++i)15095 ;15096 }15097#pragma omp taskloop15098 for (int i = 0; i < 10; ++i) {15099#pragma omp parallel sections15100 {15101 bar();15102 }15103 }15104#pragma omp taskloop15105 for (int i = 0; i < 10; ++i) {15106#pragma omp task15107 {15108 bar();15109 }15110 }15111#pragma omp taskloop15112 for (int i = 0; i < 10; ++i) {15113#pragma omp taskyield15114 bar();15115 }15116#pragma omp taskloop15117 for (int i = 0; i < 10; ++i) {15118#pragma omp barrier // expected-error {{region cannot be closely nested inside 'taskloop' region}}15119 bar();15120 }15121#pragma omp taskloop15122 for (int i = 0; i < 10; ++i) {15123#pragma omp scan // expected-error {{region cannot be closely nested inside 'taskloop' region}}15124 bar();15125 }15126#pragma omp taskloop15127 for (int i = 0; i < 10; ++i) {15128#pragma omp taskwait15129 bar();15130 }15131#pragma omp taskloop15132 for (int i = 0; i < 10; ++i) {15133#pragma omp flush15134 bar();15135 }15136#pragma omp taskloop15137 for (int i = 0; i < 10; ++i) {15138#pragma omp ordered // expected-error {{region cannot be closely nested inside 'taskloop' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}15139 bar();15140 }15141#pragma omp taskloop15142 for (int i = 0; i < 10; ++i) {15143#pragma omp atomic15144 ++a;15145 }15146#pragma omp taskloop15147 for (int i = 0; i < 10; ++i) {15148#pragma omp target15149 ++a;15150 }15151#pragma omp taskloop15152 for (int i = 0; i < 10; ++i) {15153#pragma omp target parallel15154 ++a;15155 }15156#pragma omp taskloop15157 for (int i = 0; i < 10; ++i) {15158#pragma omp target parallel for15159 for (int i = 0; i < 10; ++i)15160 ;15161 }15162#pragma omp taskloop15163 for (int i = 0; i < 10; ++i) {15164#pragma omp target enter data map(to: a)15165 ++a;15166 }15167#pragma omp taskloop15168 for (int i = 0; i < 10; ++i) {15169#pragma omp target exit data map(from: a)15170 ++a;15171 }15172#pragma omp taskloop15173 for (int i = 0; i < 10; ++i) {15174#pragma omp teams // expected-error {{region cannot be closely nested inside 'taskloop' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}15175 ++a;15176 }15177#pragma omp taskloop15178 for (int i = 0; i < 10; ++i) {15179#pragma omp taskloop15180 for (int i = 0; i < 10; ++i)15181 ++a;15182 }15183#pragma omp taskloop15184 for (int i = 0; i < 10; ++i) {15185#pragma omp target update to(a)15186 ++a;15187 }15188#pragma omp taskloop15189 for (int i = 0; i < 10; ++i) {15190#pragma omp distribute // expected-error {{region cannot be closely nested inside 'taskloop' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}15191 for (int i = 0; i < 10; ++i)15192 ;15193 }15194#pragma omp taskloop15195 for (int i = 0; i < 10; ++i) {15196#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'taskloop' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}15197 for (int i = 0; i < 10; ++i)15198 ;15199 }15200#pragma omp taskloop15201 for (int i = 0; i < 10; ++i) {15202#pragma omp distribute parallel for simd // expected-error {{region cannot be closely nested inside 'taskloop' region; perhaps you forget to enclose 'omp distribute parallel for simd' directive into a teams region?}}15203 for (int i = 0; i < 10; ++i)15204 ;15205 }15206#pragma omp taskloop15207 for (int i = 0; i < 10; ++i) {15208#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'taskloop' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}15209 for (int i = 0; i < 10; ++i)15210 ;15211 }15212#pragma omp taskloop15213 for (int i = 0; i < 10; ++i) {15214#pragma omp target simd // OK15215 for (int i = 0; i < 10; ++i)15216 ;15217 }15218#pragma omp taskloop15219 for (int i = 0; i < 10; ++i) {15220#pragma omp teams distribute // expected-error {{region cannot be closely nested inside 'taskloop' region; perhaps you forget to enclose 'omp teams distribute' directive into a target region?}}15221 for (int i = 0; i < 10; ++i)15222 ;15223 }15224#pragma omp taskloop15225 for (int i = 0; i < 10; ++i) {15226#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'taskloop' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}15227 for (int i = 0; i < 10; ++i)15228 ;15229 }15230#pragma omp taskloop15231 for (int i = 0; i < 10; ++i) {15232#pragma omp teams distribute parallel for simd // expected-error {{region cannot be closely nested inside 'taskloop' region; perhaps you forget to enclose 'omp teams distribute parallel for simd' directive into a target region?}}15233 for (int i = 0; i < 10; ++i)15234 ;15235 }15236#pragma omp taskloop15237 for (int i = 0; i < 10; ++i) {15238#pragma omp teams distribute parallel for // expected-error {{region cannot be closely nested inside 'taskloop' region; perhaps you forget to enclose 'omp teams distribute parallel for' directive into a target region?}}15239 for (int i = 0; i < 10; ++i)15240 ;15241 }15242#pragma omp taskloop15243 for (int i = 0; i < 10; ++i) {15244#pragma omp target teams // OK15245 a++;15246 }15247#pragma omp taskloop15248 for (int i = 0; i < 10; ++i) {15249#pragma omp target teams distribute // OK15250 for (int i = 0; i < 10; ++i)15251 ;15252 }15253#pragma omp taskloop15254 for (int i = 0; i < 10; ++i) {15255#pragma omp target teams distribute parallel for // OK15256 for (int i = 0; i < 10; ++i)15257 ;15258 }15259#pragma omp taskloop15260 for (int i = 0; i < 10; ++i) {15261#pragma omp target teams distribute parallel for simd // OK15262 for (int i = 0; i < 10; ++i)15263 ;15264 }15265#pragma omp taskloop15266 for (int i = 0; i < 10; ++i) {15267#pragma omp target teams distribute simd // OK15268 for (int i = 0; i < 10; ++i)15269 ;15270 }15271 15272// DISTRIBUTE DIRECTIVE15273#pragma omp target15274#pragma omp teams15275#pragma omp distribute15276 for (int i = 0; i < 10; ++i) {15277#pragma omp distribute // expected-error {{region cannot be closely nested inside 'distribute' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}15278 for (int i = 0; i < 10; ++i)15279 ;15280 }15281#pragma omp target15282#pragma omp teams15283#pragma omp distribute15284 for (int i = 0; i < 10; ++i) {15285#pragma omp for15286 for (int i = 0; i < 10; ++i)15287 ;15288 }15289#pragma omp target15290#pragma omp teams15291#pragma omp distribute15292 for (int i = 0; i < 10; ++i) {15293#pragma omp simd15294 for (int i = 0; i < 10; ++i)15295 ;15296 }15297#pragma omp target15298#pragma omp teams15299#pragma omp distribute15300 for (int i = 0; i < 10; ++i) {15301#pragma omp for simd15302 for (int i = 0; i < 10; ++i)15303 ;15304 }15305#pragma omp target15306#pragma omp teams15307#pragma omp distribute15308 for (int i = 0; i < 10; ++i) {15309#pragma omp parallel15310 for (int i = 0; i < 10; ++i)15311 ;15312 }15313#pragma omp target15314#pragma omp teams15315#pragma omp distribute15316 for (int i = 0; i < 10; ++i) {15317#pragma omp sections15318 {15319 bar();15320 }15321 }15322#pragma omp target15323#pragma omp teams15324#pragma omp distribute15325 for (int i = 0; i < 10; ++i) {15326#pragma omp section // expected-error {{'omp section' directive must be closely nested to a sections region, not a distribute region}}15327 {15328 bar();15329 }15330 }15331#pragma omp target15332#pragma omp teams15333#pragma omp distribute15334 for (int i = 0; i < 10; ++i) {15335#pragma omp single15336 {15337 bar();15338 }15339 }15340#pragma omp target15341#pragma omp teams15342#pragma omp distribute15343 for (int i = 0; i < 10; ++i) {15344#pragma omp master15345 {15346 bar();15347 }15348 }15349#pragma omp target15350#pragma omp teams15351#pragma omp distribute15352 for (int i = 0; i < 10; ++i) {15353#pragma omp critical15354 {15355 bar();15356 }15357 }15358#pragma omp target15359#pragma omp teams15360#pragma omp distribute15361 for (int i = 0; i < 10; ++i) {15362#pragma omp parallel15363 {15364#pragma omp single15365 {15366 bar();15367 }15368 }15369 }15370#pragma omp target15371#pragma omp teams15372#pragma omp distribute15373 for (int i = 0; i < 10; ++i) {15374#pragma omp parallel for15375 for (int i = 0; i < 10; ++i)15376 ;15377 }15378#pragma omp target15379#pragma omp teams15380#pragma omp distribute15381 for (int i = 0; i < 10; ++i) {15382#pragma omp parallel for simd15383 for (int i = 0; i < 10; ++i)15384 ;15385 }15386#pragma omp target15387#pragma omp teams15388#pragma omp distribute15389 for (int i = 0; i < 10; ++i) {15390#pragma omp parallel sections15391 {15392 bar();15393 }15394 }15395#pragma omp target15396#pragma omp teams15397#pragma omp distribute15398 for (int i = 0; i < 10; ++i) {15399#pragma omp task15400 {15401 bar();15402 }15403 }15404#pragma omp target15405#pragma omp teams15406#pragma omp distribute15407 for (int i = 0; i < 10; ++i) {15408#pragma omp taskyield15409 bar();15410 }15411#pragma omp target15412#pragma omp teams15413#pragma omp distribute15414 for (int i = 0; i < 10; ++i) {15415#pragma omp barrier15416 bar();15417 }15418#pragma omp target15419#pragma omp teams15420#pragma omp distribute15421 for (int i = 0; i < 10; ++i) {15422#pragma omp scan // expected-error {{region cannot be closely nested inside 'distribute' region; perhaps you forget to enclose 'omp scan' directive into a for, simd, for simd, parallel for, or parallel for simd region?}}15423 bar();15424 }15425#pragma omp target15426#pragma omp teams15427#pragma omp distribute15428 for (int i = 0; i < 10; ++i) {15429#pragma omp taskwait15430 bar();15431 }15432#pragma omp target15433#pragma omp teams15434#pragma omp distribute15435 for (int i = 0; i < 10; ++i) {15436#pragma omp flush15437 bar();15438 }15439#pragma omp target15440#pragma omp teams15441#pragma omp distribute15442 for (int i = 0; i < 10; ++i) {15443#pragma omp ordered // expected-error {{region cannot be closely nested inside 'distribute' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}15444 bar();15445 }15446#pragma omp target15447#pragma omp teams15448#pragma omp distribute15449 for (int i = 0; i < 10; ++i) {15450#pragma omp atomic15451 ++a;15452 }15453#pragma omp target15454#pragma omp teams15455#pragma omp distribute15456 for (int i = 0; i < 10; ++i) {15457#pragma omp target // expected-error {{region cannot be nested inside 'target' region}}15458 ++a;15459 }15460#pragma omp target15461#pragma omp teams15462#pragma omp distribute15463 for (int i = 0; i < 10; ++i) {15464#pragma omp target parallel // expected-error {{region cannot be nested inside 'target' region}}15465 ++a;15466 }15467#pragma omp target15468#pragma omp teams15469#pragma omp distribute15470 for (int i = 0; i < 10; ++i) {15471#pragma omp target parallel for // expected-error {{region cannot be nested inside 'target' region}}15472 for (int i = 0; i < 10; ++i)15473 ;15474 }15475#pragma omp target15476#pragma omp teams15477#pragma omp distribute15478 for (int i = 0; i < 10; ++i) {15479#pragma omp teams // expected-error {{region cannot be closely nested inside 'distribute' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}15480 ++a;15481 }15482#pragma omp target15483#pragma omp teams15484#pragma omp distribute15485 for (int i = 0; i < 10; ++i) {15486#pragma omp target enter data map(to: a) // expected-error {{region cannot be nested inside 'target' region}}15487 ++a;15488 }15489#pragma omp target15490#pragma omp teams15491#pragma omp distribute15492 for (int i = 0; i < 10; ++i) {15493#pragma omp target exit data map(from: a) // expected-error {{region cannot be nested inside 'target' region}}15494 ++a;15495 }15496#pragma omp target15497#pragma omp teams15498#pragma omp distribute15499 for (int i = 0; i < 10; ++i) {15500#pragma omp target update to(a) // expected-error {{region cannot be nested inside 'target' region}}15501 ++a;15502 }15503#pragma omp target15504#pragma omp teams15505#pragma omp distribute15506 for (int i = 0; i < 10; ++i) {15507#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'distribute' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}15508 for (int i = 0; i < 10; ++i)15509 ++a;15510 }15511#pragma omp target15512#pragma omp teams15513#pragma omp distribute15514 for (int i = 0; i < 10; ++i) {15515#pragma omp distribute parallel for simd // expected-error {{region cannot be closely nested inside 'distribute' region; perhaps you forget to enclose 'omp distribute parallel for simd' directive into a teams region?}}15516 for (int i = 0; i < 10; ++i)15517 ++a;15518 }15519#pragma omp target15520#pragma omp teams15521#pragma omp distribute15522 for (int i = 0; i < 10; ++i) {15523#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'distribute' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}15524 for (int i = 0; i < 10; ++i)15525 ++a;15526 }15527#pragma omp target15528#pragma omp teams15529#pragma omp distribute15530 for (int i = 0; i < 10; ++i) {15531#pragma omp target simd // expected-error {{region cannot be nested inside 'target' region}}15532 for (int i = 0; i < 10; ++i)15533 ++a;15534 }15535#pragma omp target15536#pragma omp teams15537#pragma omp distribute15538 for (int i = 0; i < 10; ++i) {15539#pragma omp target parallel for simd // expected-error {{region cannot be nested inside 'target' region}}15540 for (int i = 0; i < 10; ++i)15541 ++a;15542 }15543#pragma omp target15544#pragma omp teams15545#pragma omp distribute15546 for (int i = 0; i < 10; ++i) {15547#pragma omp target parallel for // expected-error {{region cannot be nested inside 'target' region}}15548 for (int i = 0; i < 10; ++i)15549 ++a;15550 }15551#pragma omp target15552#pragma omp teams15553#pragma omp distribute15554 for (int i = 0; i < 10; ++i) {15555#pragma omp target teams // expected-error {{region cannot be nested inside 'target' region}}15556 for (int i = 0; i < 10; ++i)15557 ++a;15558 }15559#pragma omp target15560#pragma omp teams15561#pragma omp distribute15562 for (int i = 0; i < 10; ++i) {15563#pragma omp target teams distribute // expected-error {{region cannot be nested inside 'target' region}}15564 for (int i = 0; i < 10; ++i)15565 ++a;15566 }15567#pragma omp target15568#pragma omp teams15569#pragma omp distribute15570 for (int i = 0; i < 10; ++i) {15571#pragma omp target teams distribute parallel for // expected-error {{region cannot be nested inside 'target' region}}15572 for (int i = 0; i < 10; ++i)15573 ++a;15574 }15575#pragma omp target15576#pragma omp teams15577#pragma omp distribute15578 for (int i = 0; i < 10; ++i) {15579#pragma omp target teams distribute parallel for simd // expected-error {{region cannot be nested inside 'target' region}}15580 for (int i = 0; i < 10; ++i)15581 ++a;15582 }15583#pragma omp target15584#pragma omp teams15585#pragma omp distribute15586 for (int i = 0; i < 10; ++i) {15587#pragma omp target teams distribute simd // expected-error {{region cannot be nested inside 'target' region}}15588 for (int i = 0; i < 10; ++i)15589 ++a;15590 }15591 15592// DISTRIBUTE PARALLEL FOR DIRECTIVE15593#pragma omp target15594#pragma omp teams15595#pragma omp distribute parallel for15596 for (int i = 0; i < 10; ++i) {15597#pragma omp distribute parallel for // expected-error {{region cannot be closely nested inside 'distribute parallel for' region; perhaps you forget to enclose 'omp distribute parallel for' directive into a teams region?}}15598 for (int i = 0; i < 10; ++i)15599 ;15600 }15601 15602#pragma omp target15603#pragma omp teams15604#pragma omp distribute parallel for15605 for (int i = 0; i < 10; ++i) {15606#pragma omp distribute // expected-error {{region cannot be closely nested inside 'distribute parallel for' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}15607 for (int i = 0; i < 10; ++i)15608 ;15609 }15610#pragma omp target15611#pragma omp teams15612#pragma omp distribute parallel for15613 for (int i = 0; i < 10; ++i) {15614#pragma omp for // expected-error {{region cannot be closely nested inside 'distribute parallel for' region; perhaps you forget to enclose 'omp for' directive into a parallel region?}}15615 for (int i = 0; i < 10; ++i)15616 ;15617 }15618#pragma omp target15619#pragma omp teams15620#pragma omp distribute parallel for15621 for (int i = 0; i < 10; ++i) {15622#pragma omp simd15623 for (int i = 0; i < 10; ++i)15624 ;15625 }15626#pragma omp target15627#pragma omp teams15628#pragma omp distribute parallel for15629 for (int i = 0; i < 10; ++i) {15630#pragma omp for simd // expected-error {{region cannot be closely nested inside 'distribute parallel for' region; perhaps you forget to enclose 'omp for simd' directive into a parallel region?}}15631 for (int i = 0; i < 10; ++i)15632 ;15633 }15634#pragma omp target15635#pragma omp teams15636#pragma omp distribute parallel for15637 for (int i = 0; i < 10; ++i) {15638#pragma omp parallel15639 for (int i = 0; i < 10; ++i)15640 ;15641 }15642#pragma omp target15643#pragma omp teams15644#pragma omp distribute parallel for15645 for (int i = 0; i < 10; ++i) {15646#pragma omp sections // expected-error {{region cannot be closely nested inside 'distribute parallel for' region; perhaps you forget to enclose 'omp sections' directive into a parallel region?}}15647 {15648 bar();15649 }15650 }15651#pragma omp target15652#pragma omp teams15653#pragma omp distribute parallel for15654 for (int i = 0; i < 10; ++i) {15655#pragma omp section // expected-error {{'omp section' directive must be closely nested to a sections region, not a distribute parallel for region}}15656 {15657 bar();15658 }15659 }15660#pragma omp target15661#pragma omp teams15662#pragma omp distribute parallel for15663 for (int i = 0; i < 10; ++i) {15664#pragma omp single // expected-error {{region cannot be closely nested inside 'distribute parallel for' region; perhaps you forget to enclose 'omp single' directive into a parallel region?}}15665 {15666 bar();15667 }15668 }15669#pragma omp target15670#pragma omp teams15671#pragma omp distribute parallel for15672 for (int i = 0; i < 10; ++i) {15673#pragma omp master // expected-error {{region cannot be closely nested inside 'distribute parallel for' region}}15674 {15675 bar();15676 }15677 }15678#pragma omp target15679#pragma omp teams15680#pragma omp distribute parallel for15681 for (int i = 0; i < 10; ++i) {15682#pragma omp critical15683 {15684 bar();15685 }15686 }15687#pragma omp target15688#pragma omp teams15689#pragma omp distribute parallel for15690 for (int i = 0; i < 10; ++i) {15691#pragma omp parallel15692 {15693#pragma omp single15694 {15695 bar();15696 }15697 }15698 }15699#pragma omp target15700#pragma omp teams15701#pragma omp distribute parallel for15702 for (int i = 0; i < 10; ++i) {15703#pragma omp parallel for15704 for (int i = 0; i < 10; ++i)15705 ;15706 }15707#pragma omp target15708#pragma omp teams15709#pragma omp distribute parallel for15710 for (int i = 0; i < 10; ++i) {15711#pragma omp parallel for simd15712 for (int i = 0; i < 10; ++i)15713 ;15714 }15715#pragma omp target15716#pragma omp teams15717#pragma omp distribute parallel for15718 for (int i = 0; i < 10; ++i) {15719#pragma omp parallel sections15720 {15721 bar();15722 }15723 }15724#pragma omp target15725#pragma omp teams15726#pragma omp distribute parallel for15727 for (int i = 0; i < 10; ++i) {15728#pragma omp task15729 {15730 bar();15731 }15732 }15733#pragma omp target15734#pragma omp teams15735#pragma omp distribute parallel for15736 for (int i = 0; i < 10; ++i) {15737#pragma omp taskyield15738 bar();15739 }15740#pragma omp target15741#pragma omp teams15742#pragma omp distribute parallel for15743 for (int i = 0; i < 10; ++i) {15744#pragma omp barrier // expected-error {{region cannot be closely nested inside 'distribute parallel for' region}}15745 bar();15746 }15747#pragma omp target15748#pragma omp teams15749#pragma omp distribute parallel for15750 for (int i = 0; i < 10; ++i) {15751#pragma omp scan // expected-error {{region cannot be closely nested inside 'distribute parallel for' region}}15752 bar();15753 }15754#pragma omp target15755#pragma omp teams15756#pragma omp distribute parallel for15757 for (int i = 0; i < 10; ++i) {15758#pragma omp taskwait15759 bar();15760 }15761#pragma omp target15762#pragma omp teams15763#pragma omp distribute parallel for15764 for (int i = 0; i < 10; ++i) {15765#pragma omp flush15766 bar();15767 }15768#pragma omp target15769#pragma omp teams15770#pragma omp distribute parallel for15771 for (int i = 0; i < 10; ++i) {15772#pragma omp ordered // expected-error {{region cannot be closely nested inside 'distribute parallel for' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}15773 bar();15774 }15775#pragma omp target15776#pragma omp teams15777#pragma omp distribute parallel for15778 for (int i = 0; i < 10; ++i) {15779#pragma omp atomic15780 ++a;15781 }15782#pragma omp target15783#pragma omp teams15784#pragma omp distribute parallel for15785 for (int i = 0; i < 10; ++i) {15786#pragma omp target // expected-error {{region cannot be nested inside 'target' region}}15787 ++a;15788 }15789#pragma omp target15790#pragma omp teams15791#pragma omp distribute parallel for15792 for (int i = 0; i < 10; ++i) {15793#pragma omp target parallel // expected-error {{region cannot be nested inside 'target' region}}15794 ++a;15795 }15796#pragma omp target15797#pragma omp teams15798#pragma omp distribute parallel for15799 for (int i = 0; i < 10; ++i) {15800#pragma omp target parallel for // expected-error {{region cannot be nested inside 'target' region}}15801 for (int i = 0; i < 10; ++i)15802 ;15803 }15804#pragma omp target15805#pragma omp teams15806#pragma omp distribute parallel for15807 for (int i = 0; i < 10; ++i) {15808#pragma omp teams // expected-error {{region cannot be closely nested inside 'distribute parallel for' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}15809 ++a;15810 }15811#pragma omp target15812#pragma omp teams15813#pragma omp distribute parallel for15814 for (int i = 0; i < 10; ++i) {15815#pragma omp target enter data map(to: a) // expected-error {{region cannot be nested inside 'target' region}}15816 ++a;15817 }15818#pragma omp target15819#pragma omp teams15820#pragma omp distribute parallel for15821 for (int i = 0; i < 10; ++i) {15822#pragma omp target exit data map(from: a) // expected-error {{region cannot be nested inside 'target' region}}15823 ++a;15824 }15825#pragma omp target15826#pragma omp teams15827#pragma omp distribute parallel for15828 for (int i = 0; i < 10; ++i) {15829#pragma omp target update to(a) // expected-error {{region cannot be nested inside 'target' region}}15830 ++a;15831 }15832#pragma omp target15833#pragma omp teams15834#pragma omp distribute parallel for15835 for (int i = 0; i < 10; ++i) {15836#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'distribute parallel for' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}15837 for (int i = 0; i < 10; ++i)15838 ++a;15839 }15840#pragma omp target15841#pragma omp teams15842#pragma omp distribute parallel for15843 for (int i = 0; i < 10; ++i) {15844#pragma omp target simd // expected-error {{region cannot be nested inside 'target' region}}15845 for (int i = 0; i < 10; ++i)15846 ++a;15847 }15848#pragma omp target15849#pragma omp teams15850#pragma omp distribute parallel for15851 for (int i = 0; i < 10; ++i) {15852#pragma omp teams distribute // expected-error {{region cannot be closely nested inside 'distribute parallel for' region; perhaps you forget to enclose 'omp teams distribute' directive into a target region?}}15853 for (int i = 0; i < 10; ++i)15854 ++a;15855 }15856#pragma omp target15857#pragma omp teams15858#pragma omp distribute parallel for15859 for (int i = 0; i < 10; ++i) {15860#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'distribute parallel for' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}15861 for (int i = 0; i < 10; ++i)15862 ++a;15863 }15864#pragma omp target15865#pragma omp teams15866#pragma omp distribute parallel for15867 for (int i = 0; i < 10; ++i) {15868#pragma omp teams distribute parallel for simd // expected-error {{region cannot be closely nested inside 'distribute parallel for' region; perhaps you forget to enclose 'omp teams distribute parallel for simd' directive into a target region?}}15869 for (int i = 0; i < 10; ++i)15870 ++a;15871 }15872#pragma omp target15873#pragma omp teams15874#pragma omp distribute parallel for15875 for (int i = 0; i < 10; ++i) {15876#pragma omp teams distribute parallel for // expected-error {{region cannot be closely nested inside 'distribute parallel for' region; perhaps you forget to enclose 'omp teams distribute parallel for' directive into a target region?}}15877 for (int i = 0; i < 10; ++i)15878 ++a;15879 }15880#pragma omp target15881#pragma omp teams15882#pragma omp distribute parallel for15883 for (int i = 0; i < 10; ++i) {15884#pragma omp target teams // expected-error {{region cannot be nested inside 'target' region}}15885 ++a;15886 }15887#pragma omp target15888#pragma omp teams15889#pragma omp distribute parallel for15890 for (int i = 0; i < 10; ++i) {15891#pragma omp target teams distribute // expected-error {{region cannot be nested inside 'target' region}}15892 for (int i = 0; i < 10; ++i)15893 ++a;15894 }15895#pragma omp target15896#pragma omp teams15897#pragma omp distribute parallel for15898 for (int i = 0; i < 10; ++i) {15899#pragma omp target teams distribute parallel for // expected-error {{region cannot be nested inside 'target' region}}15900 for (int i = 0; i < 10; ++i)15901 ++a;15902 }15903#pragma omp target15904#pragma omp teams15905#pragma omp distribute parallel for15906 for (int i = 0; i < 10; ++i) {15907#pragma omp target teams distribute parallel for simd // expected-error {{region cannot be nested inside 'target' region}}15908 for (int i = 0; i < 10; ++i)15909 ++a;15910 }15911#pragma omp target15912#pragma omp teams15913#pragma omp distribute parallel for15914 for (int i = 0; i < 10; ++i) {15915#pragma omp target teams distribute simd // expected-error {{region cannot be nested inside 'target' region}}15916 for (int i = 0; i < 10; ++i)15917 ++a;15918 }15919 15920// DISTRIBUTE PARALLEL FOR SIMD DIRECTIVE15921#pragma omp target15922#pragma omp teams15923#pragma omp distribute parallel for simd15924 for (int i = 0; i < 10; ++i) {15925#pragma omp distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}15926 for (int i = 0; i < 10; ++i)15927 ;15928 }15929#pragma omp target15930#pragma omp teams15931#pragma omp distribute parallel for simd15932 for (int i = 0; i < 10; ++i) {15933#pragma omp distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}15934 for (int i = 0; i < 10; ++i)15935 ;15936 }15937#pragma omp target15938#pragma omp teams15939#pragma omp distribute parallel for simd15940 for (int i = 0; i < 10; ++i) {15941#pragma omp for // expected-error {{OpenMP constructs may not be nested inside a simd region}}15942 for (int i = 0; i < 10; ++i)15943 ;15944 }15945#pragma omp target15946#pragma omp teams15947#pragma omp distribute parallel for simd15948 for (int i = 0; i < 10; ++i) {15949#pragma omp simd // omp45warn-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}15950 for (int i = 0; i < 10; ++i)15951 ;15952 }15953#pragma omp target15954#pragma omp teams15955#pragma omp distribute parallel for simd15956 for (int i = 0; i < 10; ++i) {15957#pragma omp for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}15958 for (int i = 0; i < 10; ++i)15959 ;15960 }15961#pragma omp target15962#pragma omp teams15963#pragma omp distribute parallel for simd15964 for (int i = 0; i < 10; ++i) {15965#pragma omp parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}15966 for (int i = 0; i < 10; ++i)15967 ;15968 }15969#pragma omp target15970#pragma omp teams15971#pragma omp distribute parallel for simd15972 for (int i = 0; i < 10; ++i) {15973#pragma omp sections // expected-error {{OpenMP constructs may not be nested inside a simd region}}15974 {15975 bar();15976 }15977 }15978#pragma omp target15979#pragma omp teams15980#pragma omp distribute parallel for simd15981 for (int i = 0; i < 10; ++i) {15982#pragma omp section // expected-error {{OpenMP constructs may not be nested inside a simd region}}15983 {15984 bar();15985 }15986 }15987#pragma omp target15988#pragma omp teams15989#pragma omp distribute parallel for simd15990 for (int i = 0; i < 10; ++i) {15991#pragma omp single // expected-error {{OpenMP constructs may not be nested inside a simd region}}15992 {15993 bar();15994 }15995 }15996#pragma omp target15997#pragma omp teams15998#pragma omp distribute parallel for simd15999 for (int i = 0; i < 10; ++i) {16000#pragma omp master // expected-error {{OpenMP constructs may not be nested inside a simd region}}16001 {16002 bar();16003 }16004 }16005#pragma omp target16006#pragma omp teams16007#pragma omp distribute parallel for simd16008 for (int i = 0; i < 10; ++i) {16009#pragma omp critical // expected-error {{OpenMP constructs may not be nested inside a simd region}}16010 {16011 bar();16012 }16013 }16014#pragma omp target16015#pragma omp teams16016#pragma omp distribute parallel for simd16017 for (int i = 0; i < 10; ++i) {16018#pragma omp parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}16019 {16020#pragma omp single16021 {16022 bar();16023 }16024 }16025 }16026#pragma omp target16027#pragma omp teams16028#pragma omp distribute parallel for simd16029 for (int i = 0; i < 10; ++i) {16030#pragma omp parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}16031 for (int i = 0; i < 10; ++i)16032 ;16033 }16034#pragma omp target16035#pragma omp teams16036#pragma omp distribute parallel for simd16037 for (int i = 0; i < 10; ++i) {16038#pragma omp parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}16039 for (int i = 0; i < 10; ++i)16040 ;16041 }16042#pragma omp target16043#pragma omp teams16044#pragma omp distribute parallel for simd16045 for (int i = 0; i < 10; ++i) {16046#pragma omp parallel sections // expected-error {{OpenMP constructs may not be nested inside a simd region}}16047 {16048 bar();16049 }16050 }16051#pragma omp target16052#pragma omp teams16053#pragma omp distribute parallel for simd16054 for (int i = 0; i < 10; ++i) {16055#pragma omp task // expected-error {{OpenMP constructs may not be nested inside a simd region}}16056 {16057 bar();16058 }16059 }16060#pragma omp target16061#pragma omp teams16062#pragma omp distribute parallel for simd16063 for (int i = 0; i < 10; ++i) {16064#pragma omp taskyield // expected-error {{OpenMP constructs may not be nested inside a simd region}}16065 bar();16066 }16067#pragma omp target16068#pragma omp teams16069#pragma omp distribute parallel for simd16070 for (int i = 0; i < 10; ++i) {16071#pragma omp barrier // expected-error {{OpenMP constructs may not be nested inside a simd region}}16072 bar();16073 }16074#pragma omp target16075#pragma omp teams16076#pragma omp distribute parallel for simd16077 for (int i = 0; i < 10; ++i) {16078#pragma omp scan // omp45-error {{OpenMP constructs may not be nested inside a simd region}} omp50-error {{region cannot be closely nested inside 'distribute parallel for simd' region; perhaps you forget to enclose 'omp scan' directive into a for, simd, for simd, parallel for, or parallel for simd region?}} omp51-error {{region cannot be closely nested inside 'distribute parallel for simd' region; perhaps you forget to enclose 'omp scan' directive into a for, simd, for simd, parallel for, or parallel for simd region?}}16079 bar();16080 }16081#pragma omp target16082#pragma omp teams16083#pragma omp distribute parallel for simd16084 for (int i = 0; i < 10; ++i) {16085#pragma omp taskwait // expected-error {{OpenMP constructs may not be nested inside a simd region}}16086 bar();16087 }16088#pragma omp target16089#pragma omp teams16090#pragma omp distribute parallel for simd16091 for (int i = 0; i < 10; ++i) {16092#pragma omp flush // expected-error {{OpenMP constructs may not be nested inside a simd region}}16093 bar();16094 }16095#pragma omp target16096#pragma omp teams16097#pragma omp distribute parallel for simd16098 for (int i = 0; i < 10; ++i) {16099#pragma omp ordered // expected-error {{OpenMP constructs may not be nested inside a simd region}}16100 bar();16101 }16102#pragma omp target16103#pragma omp teams16104#pragma omp distribute parallel for simd16105 for (int i = 0; i < 10; ++i) {16106#pragma omp atomic // omp45-error {{OpenMP constructs may not be nested inside a simd region}}16107 ++a;16108 }16109#pragma omp target16110#pragma omp teams16111#pragma omp distribute parallel for simd16112 for (int i = 0; i < 10; ++i) {16113#pragma omp target // expected-error {{OpenMP constructs may not be nested inside a simd region}}16114 ++a;16115 }16116#pragma omp target16117#pragma omp teams16118#pragma omp distribute parallel for simd16119 for (int i = 0; i < 10; ++i) {16120#pragma omp target parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}16121 ++a;16122 }16123#pragma omp target16124#pragma omp teams16125#pragma omp distribute parallel for simd16126 for (int i = 0; i < 10; ++i) {16127#pragma omp teams // expected-error {{OpenMP constructs may not be nested inside a simd region}}16128 ++a;16129 }16130#pragma omp target16131#pragma omp teams16132#pragma omp distribute parallel for simd16133 for (int i = 0; i < 10; ++i) {16134#pragma omp target enter data map(to: a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}16135 ++a;16136 }16137#pragma omp target16138#pragma omp teams16139#pragma omp distribute parallel for simd16140 for (int i = 0; i < 10; ++i) {16141#pragma omp target exit data map(from: a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}16142 ++a;16143 }16144#pragma omp target16145#pragma omp teams16146#pragma omp distribute parallel for simd16147 for (int i = 0; i < 10; ++i) {16148#pragma omp target update to(a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}16149 ++a;16150 }16151#pragma omp target16152#pragma omp teams16153#pragma omp distribute parallel for simd16154 for (int i = 0; i < 10; ++i) {16155#pragma omp distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}16156 for (int i = 0; i < 10; ++i)16157 ;16158 }16159#pragma omp target16160#pragma omp teams16161#pragma omp distribute parallel for simd16162 for (int i = 0; i < 10; ++i) {16163#pragma omp target simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}16164 for (int i = 0; i < 10; ++i)16165 ;16166 }16167#pragma omp target16168#pragma omp teams16169#pragma omp distribute parallel for simd16170 for (int i = 0; i < 10; ++i) {16171#pragma omp teams distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}16172 for (int i = 0; i < 10; ++i)16173 ;16174 }16175#pragma omp target16176#pragma omp teams16177#pragma omp distribute parallel for simd16178 for (int i = 0; i < 10; ++i) {16179#pragma omp teams distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}16180 for (int i = 0; i < 10; ++i)16181 ;16182 }16183#pragma omp target16184#pragma omp teams16185#pragma omp distribute parallel for simd16186 for (int i = 0; i < 10; ++i) {16187#pragma omp teams distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}16188 for (int i = 0; i < 10; ++i)16189 ;16190 }16191#pragma omp target16192#pragma omp teams16193#pragma omp distribute parallel for simd16194 for (int i = 0; i < 10; ++i) {16195#pragma omp teams distribute parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}16196 for (int i = 0; i < 10; ++i)16197 ;16198 }16199#pragma omp target16200#pragma omp teams16201#pragma omp distribute parallel for simd16202 for (int i = 0; i < 10; ++i) {16203#pragma omp target teams // expected-error {{OpenMP constructs may not be nested inside a simd region}}16204 a++;16205 }16206#pragma omp target16207#pragma omp teams16208#pragma omp distribute parallel for simd16209 for (int i = 0; i < 10; ++i) {16210#pragma omp target teams distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}16211 for (int i = 0; i < 10; ++i)16212 ;16213 }16214#pragma omp target16215#pragma omp teams16216#pragma omp distribute parallel for simd16217 for (int i = 0; i < 10; ++i) {16218#pragma omp target teams distribute parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}16219 for (int i = 0; i < 10; ++i)16220 ;16221 }16222#pragma omp target16223#pragma omp teams16224#pragma omp distribute parallel for simd16225 for (int i = 0; i < 10; ++i) {16226#pragma omp target teams distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}16227 for (int i = 0; i < 10; ++i)16228 ;16229 }16230#pragma omp target16231#pragma omp teams16232#pragma omp distribute parallel for simd16233 for (int i = 0; i < 10; ++i) {16234#pragma omp target teams distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}16235 for (int i = 0; i < 10; ++i)16236 ;16237 }16238 16239// DISTRIBUTE SIMD DIRECTIVE16240#pragma omp target16241#pragma omp teams16242#pragma omp distribute simd16243 for (int i = 0; i < 10; ++i) {16244#pragma omp distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}16245 for (int i = 0; i < 10; ++i)16246 ;16247 }16248#pragma omp target16249#pragma omp teams16250#pragma omp distribute simd16251 for (int i = 0; i < 10; ++i) {16252#pragma omp distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}16253 for (int i = 0; i < 10; ++i)16254 ;16255 }16256#pragma omp target16257#pragma omp teams16258#pragma omp distribute simd16259 for (int i = 0; i < 10; ++i) {16260#pragma omp for // expected-error {{OpenMP constructs may not be nested inside a simd region}}16261 for (int i = 0; i < 10; ++i)16262 ;16263 }16264#pragma omp target16265#pragma omp teams16266#pragma omp distribute simd16267 for (int i = 0; i < 10; ++i) {16268#pragma omp simd // omp45warn-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}16269 for (int i = 0; i < 10; ++i)16270 ;16271 }16272#pragma omp target16273#pragma omp teams16274#pragma omp distribute simd16275 for (int i = 0; i < 10; ++i) {16276#pragma omp for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}16277 for (int i = 0; i < 10; ++i)16278 ;16279 }16280#pragma omp target16281#pragma omp teams16282#pragma omp distribute simd16283 for (int i = 0; i < 10; ++i) {16284#pragma omp parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}16285 for (int i = 0; i < 10; ++i)16286 ;16287 }16288#pragma omp target16289#pragma omp teams16290#pragma omp distribute simd16291 for (int i = 0; i < 10; ++i) {16292#pragma omp sections // expected-error {{OpenMP constructs may not be nested inside a simd region}}16293 {16294 bar();16295 }16296 }16297#pragma omp target16298#pragma omp teams16299#pragma omp distribute simd16300 for (int i = 0; i < 10; ++i) {16301#pragma omp section // expected-error {{OpenMP constructs may not be nested inside a simd region}}16302 {16303 bar();16304 }16305 }16306#pragma omp target16307#pragma omp teams16308#pragma omp distribute simd16309 for (int i = 0; i < 10; ++i) {16310#pragma omp single // expected-error {{OpenMP constructs may not be nested inside a simd region}}16311 {16312 bar();16313 }16314 }16315#pragma omp target16316#pragma omp teams16317#pragma omp distribute simd16318 for (int i = 0; i < 10; ++i) {16319#pragma omp master // expected-error {{OpenMP constructs may not be nested inside a simd region}}16320 {16321 bar();16322 }16323 }16324#pragma omp target16325#pragma omp teams16326#pragma omp distribute simd16327 for (int i = 0; i < 10; ++i) {16328#pragma omp critical // expected-error {{OpenMP constructs may not be nested inside a simd region}}16329 {16330 bar();16331 }16332 }16333#pragma omp target16334#pragma omp teams16335#pragma omp distribute simd16336 for (int i = 0; i < 10; ++i) {16337#pragma omp parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}16338 {16339#pragma omp single16340 {16341 bar();16342 }16343 }16344 }16345#pragma omp target16346#pragma omp teams16347#pragma omp distribute simd16348 for (int i = 0; i < 10; ++i) {16349#pragma omp parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}16350 for (int i = 0; i < 10; ++i)16351 ;16352 }16353#pragma omp target16354#pragma omp teams16355#pragma omp distribute simd16356 for (int i = 0; i < 10; ++i) {16357#pragma omp parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}16358 for (int i = 0; i < 10; ++i)16359 ;16360 }16361#pragma omp target16362#pragma omp teams16363#pragma omp distribute simd16364 for (int i = 0; i < 10; ++i) {16365#pragma omp parallel sections // expected-error {{OpenMP constructs may not be nested inside a simd region}}16366 {16367 bar();16368 }16369 }16370#pragma omp target16371#pragma omp teams16372#pragma omp distribute simd16373 for (int i = 0; i < 10; ++i) {16374#pragma omp task // expected-error {{OpenMP constructs may not be nested inside a simd region}}16375 {16376 bar();16377 }16378 }16379#pragma omp target16380#pragma omp teams16381#pragma omp distribute simd16382 for (int i = 0; i < 10; ++i) {16383#pragma omp taskyield // expected-error {{OpenMP constructs may not be nested inside a simd region}}16384 bar();16385 }16386#pragma omp target16387#pragma omp teams16388#pragma omp distribute simd16389 for (int i = 0; i < 10; ++i) {16390#pragma omp barrier // expected-error {{OpenMP constructs may not be nested inside a simd region}}16391 bar();16392 }16393#pragma omp target16394#pragma omp teams16395#pragma omp distribute simd16396 for (int i = 0; i < 10; ++i) {16397#pragma omp scan // omp45-error {{OpenMP constructs may not be nested inside a simd region}} omp50-error {{region cannot be closely nested inside 'distribute simd' region; perhaps you forget to enclose 'omp scan' directive into a for, simd, for simd, parallel for, or parallel for simd region?}} omp51-error {{region cannot be closely nested inside 'distribute simd' region; perhaps you forget to enclose 'omp scan' directive into a for, simd, for simd, parallel for, or parallel for simd region?}}16398 bar();16399 }16400#pragma omp target16401#pragma omp teams16402#pragma omp distribute simd16403 for (int i = 0; i < 10; ++i) {16404#pragma omp taskwait // expected-error {{OpenMP constructs may not be nested inside a simd region}}16405 bar();16406 }16407#pragma omp target16408#pragma omp teams16409#pragma omp distribute simd16410 for (int i = 0; i < 10; ++i) {16411#pragma omp flush // expected-error {{OpenMP constructs may not be nested inside a simd region}}16412 bar();16413 }16414#pragma omp target16415#pragma omp teams16416#pragma omp distribute simd16417 for (int i = 0; i < 10; ++i) {16418#pragma omp ordered // expected-error {{OpenMP constructs may not be nested inside a simd region}}16419 bar();16420 }16421#pragma omp target16422#pragma omp teams16423#pragma omp distribute simd16424 for (int i = 0; i < 10; ++i) {16425#pragma omp atomic // omp45-error {{OpenMP constructs may not be nested inside a simd region}}16426 ++a;16427 }16428#pragma omp target16429#pragma omp teams16430#pragma omp distribute simd16431 for (int i = 0; i < 10; ++i) {16432#pragma omp target // expected-error {{OpenMP constructs may not be nested inside a simd region}}16433 ++a;16434 }16435#pragma omp target16436#pragma omp teams16437#pragma omp distribute simd16438 for (int i = 0; i < 10; ++i) {16439#pragma omp target parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}16440 ++a;16441 }16442#pragma omp target16443#pragma omp teams16444#pragma omp distribute simd16445 for (int i = 0; i < 10; ++i) {16446#pragma omp teams // expected-error {{OpenMP constructs may not be nested inside a simd region}}16447 ++a;16448 }16449#pragma omp target16450#pragma omp teams16451#pragma omp distribute simd16452 for (int i = 0; i < 10; ++i) {16453#pragma omp target enter data map(to: a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}16454 ++a;16455 }16456#pragma omp target16457#pragma omp teams16458#pragma omp distribute simd16459 for (int i = 0; i < 10; ++i) {16460#pragma omp target exit data map(from: a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}16461 ++a;16462 }16463#pragma omp target16464#pragma omp teams16465#pragma omp distribute simd16466 for (int i = 0; i < 10; ++i) {16467#pragma omp target update to(a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}16468 ++a;16469 }16470#pragma omp target16471#pragma omp teams16472#pragma omp distribute simd16473 for (int i = 0; i < 10; ++i) {16474#pragma omp distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}16475 for (int i = 0; i < 10; ++i)16476 ;16477 }16478#pragma omp target16479#pragma omp teams16480#pragma omp distribute simd16481 for (int i = 0; i < 10; ++i) {16482#pragma omp target simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}16483 for (int i = 0; i < 10; ++i)16484 ;16485 }16486#pragma omp target16487#pragma omp teams16488#pragma omp distribute simd16489 for (int i = 0; i < 10; ++i) {16490#pragma omp teams distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}16491 for (int i = 0; i < 10; ++i)16492 ;16493 }16494#pragma omp target16495#pragma omp teams16496#pragma omp distribute simd16497 for (int i = 0; i < 10; ++i) {16498#pragma omp teams distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}16499 for (int i = 0; i < 10; ++i)16500 ;16501 }16502#pragma omp target16503#pragma omp teams16504#pragma omp distribute simd16505 for (int i = 0; i < 10; ++i) {16506#pragma omp teams distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}16507 for (int i = 0; i < 10; ++i)16508 ;16509 }16510#pragma omp target16511#pragma omp teams16512#pragma omp distribute simd16513 for (int i = 0; i < 10; ++i) {16514#pragma omp teams distribute parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}16515 for (int i = 0; i < 10; ++i)16516 ;16517 }16518#pragma omp target16519#pragma omp teams16520#pragma omp distribute simd16521 for (int i = 0; i < 10; ++i) {16522#pragma omp target teams // expected-error {{OpenMP constructs may not be nested inside a simd region}}16523 a++;16524 }16525#pragma omp target16526#pragma omp teams16527#pragma omp distribute simd16528 for (int i = 0; i < 10; ++i) {16529#pragma omp target teams distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}16530 for (int i = 0; i < 10; ++i)16531 ;16532 }16533#pragma omp target16534#pragma omp teams16535#pragma omp distribute simd16536 for (int i = 0; i < 10; ++i) {16537#pragma omp target teams distribute parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}16538 for (int i = 0; i < 10; ++i)16539 ;16540 }16541#pragma omp target16542#pragma omp teams16543#pragma omp distribute simd16544 for (int i = 0; i < 10; ++i) {16545#pragma omp target teams distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}16546 for (int i = 0; i < 10; ++i)16547 ;16548 }16549#pragma omp target16550#pragma omp teams16551#pragma omp distribute simd16552 for (int i = 0; i < 10; ++i) {16553#pragma omp target teams distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}16554 for (int i = 0; i < 10; ++i)16555 ;16556 }16557 16558// TARGET SIMD DIRECTIVE16559#pragma omp target simd16560 for (int i = 0; i < 10; ++i) {16561#pragma omp distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}16562 for (int i = 0; i < 10; ++i)16563 ;16564 }16565#pragma omp target simd16566 for (int i = 0; i < 10; ++i) {16567#pragma omp distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}16568 for (int i = 0; i < 10; ++i)16569 ;16570 }16571#pragma omp target simd16572 for (int i = 0; i < 10; ++i) {16573#pragma omp for // expected-error {{OpenMP constructs may not be nested inside a simd region}}16574 for (int i = 0; i < 10; ++i)16575 ;16576 }16577#pragma omp target simd16578 for (int i = 0; i < 10; ++i) {16579#pragma omp simd // omp45warn-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}16580 for (int i = 0; i < 10; ++i)16581 ;16582 }16583#pragma omp target simd16584 for (int i = 0; i < 10; ++i) {16585#pragma omp for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}16586 for (int i = 0; i < 10; ++i)16587 ;16588 }16589#pragma omp target simd16590 for (int i = 0; i < 10; ++i) {16591#pragma omp parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}16592 for (int i = 0; i < 10; ++i)16593 ;16594 }16595#pragma omp target simd16596 for (int i = 0; i < 10; ++i) {16597#pragma omp sections // expected-error {{OpenMP constructs may not be nested inside a simd region}}16598 {16599 bar();16600 }16601 }16602#pragma omp target simd16603 for (int i = 0; i < 10; ++i) {16604#pragma omp section // expected-error {{OpenMP constructs may not be nested inside a simd region}}16605 {16606 bar();16607 }16608 }16609#pragma omp target simd16610 for (int i = 0; i < 10; ++i) {16611#pragma omp single // expected-error {{OpenMP constructs may not be nested inside a simd region}}16612 {16613 bar();16614 }16615 }16616#pragma omp target simd16617 for (int i = 0; i < 10; ++i) {16618#pragma omp master // expected-error {{OpenMP constructs may not be nested inside a simd region}}16619 {16620 bar();16621 }16622 }16623#pragma omp target simd16624 for (int i = 0; i < 10; ++i) {16625#pragma omp critical // expected-error {{OpenMP constructs may not be nested inside a simd region}}16626 {16627 bar();16628 }16629 }16630#pragma omp target simd16631 for (int i = 0; i < 10; ++i) {16632#pragma omp parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}16633 {16634#pragma omp single16635 {16636 bar();16637 }16638 }16639 }16640#pragma omp target simd16641 for (int i = 0; i < 10; ++i) {16642#pragma omp parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}16643 for (int i = 0; i < 10; ++i)16644 ;16645 }16646#pragma omp target simd16647 for (int i = 0; i < 10; ++i) {16648#pragma omp parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}16649 for (int i = 0; i < 10; ++i)16650 ;16651 }16652#pragma omp target simd16653 for (int i = 0; i < 10; ++i) {16654#pragma omp parallel sections // expected-error {{OpenMP constructs may not be nested inside a simd region}}16655 {16656 bar();16657 }16658 }16659#pragma omp target simd16660 for (int i = 0; i < 10; ++i) {16661#pragma omp task // expected-error {{OpenMP constructs may not be nested inside a simd region}}16662 {16663 bar();16664 }16665 }16666#pragma omp target simd16667 for (int i = 0; i < 10; ++i) {16668#pragma omp taskyield // expected-error {{OpenMP constructs may not be nested inside a simd region}}16669 bar();16670 }16671#pragma omp target simd16672 for (int i = 0; i < 10; ++i) {16673#pragma omp barrier // expected-error {{OpenMP constructs may not be nested inside a simd region}}16674 bar();16675 }16676#pragma omp target simd16677 for (int i = 0; i < 10; ++i) {16678#pragma omp scan // omp45-error {{OpenMP constructs may not be nested inside a simd region}} omp50-error {{exactly one of 'inclusive' or 'exclusive' clauses is expected}} omp51-error {{exactly one of 'inclusive' or 'exclusive' clauses is expected}}16679 bar();16680 }16681#pragma omp target simd16682 for (int i = 0; i < 10; ++i) {16683#pragma omp taskwait // expected-error {{OpenMP constructs may not be nested inside a simd region}}16684 bar();16685 }16686#pragma omp target simd16687 for (int i = 0; i < 10; ++i) {16688#pragma omp flush // expected-error {{OpenMP constructs may not be nested inside a simd region}}16689 bar();16690 }16691#pragma omp target simd16692 for (int i = 0; i < 10; ++i) {16693#pragma omp ordered // expected-error {{OpenMP constructs may not be nested inside a simd region}}16694 bar();16695 }16696#pragma omp target simd16697 for (int i = 0; i < 10; ++i) {16698#pragma omp atomic // omp45-error {{OpenMP constructs may not be nested inside a simd region}}16699 ++a;16700 }16701#pragma omp target simd16702 for (int i = 0; i < 10; ++i) {16703#pragma omp target // expected-error {{OpenMP constructs may not be nested inside a simd region}}16704 ++a;16705 }16706#pragma omp target simd16707 for (int i = 0; i < 10; ++i) {16708#pragma omp target parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}16709 ++a;16710 }16711#pragma omp target simd16712 for (int i = 0; i < 10; ++i) {16713#pragma omp teams // expected-error {{OpenMP constructs may not be nested inside a simd region}}16714 ++a;16715 }16716#pragma omp target simd16717 for (int i = 0; i < 10; ++i) {16718#pragma omp target enter data map(to: a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}16719 ++a;16720 }16721#pragma omp target simd16722 for (int i = 0; i < 10; ++i) {16723#pragma omp target exit data map(from: a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}16724 ++a;16725 }16726#pragma omp target simd16727 for (int i = 0; i < 10; ++i) {16728#pragma omp target update to(a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}16729 ++a;16730 }16731#pragma omp target simd16732 for (int i = 0; i < 10; ++i) {16733#pragma omp distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}16734 for (int i = 0; i < 10; ++i)16735 ;16736 }16737#pragma omp target simd16738 for (int i = 0; i < 10; ++i) {16739#pragma omp target simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}16740 for (int i = 0; i < 10; ++i)16741 ;16742 }16743#pragma omp target simd16744 for (int i = 0; i < 10; ++i) {16745#pragma omp teams distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}16746 for (int i = 0; i < 10; ++i)16747 ;16748 }16749#pragma omp target simd16750 for (int i = 0; i < 10; ++i) {16751#pragma omp teams distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}16752 for (int i = 0; i < 10; ++i)16753 ;16754 }16755#pragma omp target simd16756 for (int i = 0; i < 10; ++i) {16757#pragma omp teams distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}16758 for (int i = 0; i < 10; ++i)16759 ;16760 }16761#pragma omp target simd16762 for (int i = 0; i < 10; ++i) {16763#pragma omp teams distribute parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}16764 for (int i = 0; i < 10; ++i)16765 ;16766 }16767#pragma omp target simd16768 for (int i = 0; i < 10; ++i) {16769#pragma omp target teams // expected-error {{OpenMP constructs may not be nested inside a simd region}}16770 a++;16771 }16772#pragma omp target simd16773 for (int i = 0; i < 10; ++i) {16774#pragma omp target teams distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}16775 for (int i = 0; i < 10; ++i)16776 ;16777 }16778#pragma omp target simd16779 for (int i = 0; i < 10; ++i) {16780#pragma omp target teams distribute parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}16781 for (int i = 0; i < 10; ++i)16782 ;16783 }16784#pragma omp target simd16785 for (int i = 0; i < 10; ++i) {16786#pragma omp target teams distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}16787 for (int i = 0; i < 10; ++i)16788 ;16789 }16790#pragma omp target simd16791 for (int i = 0; i < 10; ++i) {16792#pragma omp target teams distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}16793 for (int i = 0; i < 10; ++i)16794 ;16795 }16796 16797// TEAMS DISTRIBUTE DIRECTIVE16798#pragma omp teams distribute // omp45-error {{orphaned 'omp teams distribute' directives are prohibited; perhaps you forget to enclose the directive into a target region?}}16799 for (int i = 0; i < 10; ++i)16800 ;16801#pragma omp target16802#pragma omp teams distribute16803 for (int i = 0; i < 10; ++i) {16804#pragma omp distribute parallel for simd // expected-error {{region cannot be closely nested inside 'teams distribute' region; perhaps you forget to enclose 'omp distribute parallel for simd' directive into a teams region?}}16805 for (int i = 0; i < 10; ++i)16806 ;16807 }16808#pragma omp target16809#pragma omp teams distribute16810 for (int i = 0; i < 10; ++i) {16811#pragma omp distribute // expected-error {{region cannot be closely nested inside 'teams distribute' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}16812 for (int i = 0; i < 10; ++i)16813 ;16814 }16815#pragma omp target16816#pragma omp teams distribute16817 for (int i = 0; i < 10; ++i) {16818#pragma omp for // OK16819 for (int i = 0; i < 10; ++i)16820 ;16821 }16822#pragma omp target16823#pragma omp teams distribute16824 for (int i = 0; i < 10; ++i) {16825#pragma omp simd // OK16826 for (int i = 0; i < 10; ++i)16827 ;16828 }16829#pragma omp target16830#pragma omp teams distribute16831 for (int i = 0; i < 10; ++i) {16832#pragma omp for simd // OK16833 for (int i = 0; i < 10; ++i)16834 ;16835 }16836#pragma omp target16837#pragma omp teams distribute16838 for (int i = 0; i < 10; ++i) {16839#pragma omp parallel // OK16840 for (int i = 0; i < 10; ++i)16841 ;16842 }16843#pragma omp target16844#pragma omp teams distribute16845 for (int i = 0; i < 10; ++i) {16846#pragma omp sections // OK16847 {16848 bar();16849 }16850 }16851#pragma omp target16852#pragma omp teams distribute16853 for (int i = 0; i < 10; ++i) {16854#pragma omp section // expected-error {{'omp section' directive must be closely nested to a sections region, not a teams distribute region}}16855 {16856 bar();16857 }16858 }16859#pragma omp target16860#pragma omp teams distribute16861 for (int i = 0; i < 10; ++i) {16862#pragma omp single // OK16863 {16864 bar();16865 }16866 }16867#pragma omp target16868#pragma omp teams distribute16869 for (int i = 0; i < 10; ++i) {16870#pragma omp master // OK16871 {16872 bar();16873 }16874 }16875#pragma omp target16876#pragma omp teams distribute16877 for (int i = 0; i < 10; ++i) {16878#pragma omp critical // OK16879 {16880 bar();16881 }16882 }16883#pragma omp target16884#pragma omp teams distribute16885 for (int i = 0; i < 10; ++i) {16886#pragma omp parallel // OK16887 {16888#pragma omp single16889 {16890 bar();16891 }16892 }16893 }16894#pragma omp target16895#pragma omp teams distribute16896 for (int i = 0; i < 10; ++i) {16897#pragma omp parallel for // OK16898 for (int i = 0; i < 10; ++i)16899 ;16900 }16901#pragma omp target16902#pragma omp teams distribute16903 for (int i = 0; i < 10; ++i) {16904#pragma omp parallel for simd // OK16905 for (int i = 0; i < 10; ++i)16906 ;16907 }16908#pragma omp target16909#pragma omp teams distribute16910 for (int i = 0; i < 10; ++i) {16911#pragma omp parallel sections // OK16912 {16913 bar();16914 }16915 }16916#pragma omp target16917#pragma omp teams distribute16918 for (int i = 0; i < 10; ++i) {16919#pragma omp task // OK16920 {16921 bar();16922 }16923 }16924#pragma omp target16925#pragma omp teams distribute16926 for (int i = 0; i < 10; ++i) {16927#pragma omp taskyield // OK16928 bar();16929 }16930#pragma omp target16931#pragma omp teams distribute16932 for (int i = 0; i < 10; ++i) {16933#pragma omp barrier // OK16934 bar();16935 }16936#pragma omp target16937#pragma omp teams distribute16938 for (int i = 0; i < 10; ++i) {16939#pragma omp scan // expected-error {{region cannot be closely nested inside 'teams distribute' region; perhaps you forget to enclose 'omp scan' directive into a for, simd, for simd, parallel for, or parallel for simd region?}}16940 bar();16941 }16942#pragma omp target16943#pragma omp teams distribute16944 for (int i = 0; i < 10; ++i) {16945#pragma omp taskwait // OK16946 bar();16947 }16948#pragma omp target16949#pragma omp teams distribute16950 for (int i = 0; i < 10; ++i) {16951#pragma omp flush // OK16952 bar();16953 }16954#pragma omp target16955#pragma omp teams distribute16956 for (int i = 0; i < 10; ++i) {16957#pragma omp ordered // expected-error {{region cannot be closely nested inside 'teams distribute' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}16958 bar();16959 }16960#pragma omp target16961#pragma omp teams distribute16962 for (int i = 0; i < 10; ++i) {16963#pragma omp atomic // OK16964 ++a;16965 }16966#pragma omp target16967#pragma omp teams distribute16968 for (int i = 0; i < 10; ++i) {16969#pragma omp target // expected-error {{region cannot be nested inside 'target' region}}16970 ++a;16971 }16972#pragma omp target16973#pragma omp teams distribute16974 for (int i = 0; i < 10; ++i) {16975#pragma omp target parallel // expected-error {{region cannot be nested inside 'target' region}}16976 ++a;16977 }16978#pragma omp target16979#pragma omp teams distribute16980 for (int i = 0; i < 10; ++i) {16981#pragma omp target parallel for // expected-error {{region cannot be nested inside 'target' region}}16982 for (int i = 0; i < 10; ++i)16983 ;16984 }16985#pragma omp target16986#pragma omp teams distribute16987 for (int i = 0; i < 10; ++i) {16988#pragma omp target enter data map(to: a) // expected-error {{region cannot be nested inside 'target' region}}16989 ++a;16990 }16991#pragma omp target16992#pragma omp teams distribute16993 for (int i = 0; i < 10; ++i) {16994#pragma omp target exit data map(from: a) // expected-error {{region cannot be nested inside 'target' region}}16995 ++a;16996 }16997#pragma omp target16998#pragma omp teams distribute16999 for (int i = 0; i < 10; ++i) {17000#pragma omp teams // expected-error {{region cannot be closely nested inside 'teams distribute' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}17001 ++a;17002 }17003#pragma omp target17004#pragma omp teams distribute17005 for (int i = 0; i < 10; ++i) {17006#pragma omp target update to(a) // expected-error {{region cannot be nested inside 'target' region}}17007 ++a;17008 }17009#pragma omp target17010#pragma omp teams distribute17011 for (int i = 0; i < 10; ++i) {17012#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'teams distribute' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}17013 for (int i = 0; i < 10; ++i)17014 ++a;17015 }17016#pragma omp target17017#pragma omp teams distribute17018 for (int i = 0; i < 10; ++i) {17019#pragma omp target simd // expected-error {{region cannot be nested inside 'target' region}}17020 for (int i = 0; i < 10; ++i)17021 ++a;17022 }17023#pragma omp target17024#pragma omp teams distribute17025 for (int i = 0; i < 10; ++i) {17026#pragma omp teams distribute // expected-error {{region cannot be closely nested inside 'teams distribute' region; perhaps you forget to enclose 'omp teams distribute' directive into a target region?}}17027 for (int i = 0; i < 10; ++i)17028 ++a;17029 }17030#pragma omp target17031#pragma omp teams distribute17032 for (int i = 0; i < 10; ++i) {17033#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'teams distribute' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}17034 for (int i = 0; i < 10; ++i)17035 ++a;17036 }17037#pragma omp target17038#pragma omp teams distribute17039 for (int i = 0; i < 10; ++i) {17040#pragma omp teams distribute parallel for simd // expected-error {{region cannot be closely nested inside 'teams distribute' region; perhaps you forget to enclose 'omp teams distribute parallel for simd' directive into a target region?}}17041 for (int i = 0; i < 10; ++i)17042 ++a;17043 }17044#pragma omp target17045#pragma omp teams distribute17046 for (int i = 0; i < 10; ++i) {17047#pragma omp teams distribute parallel for // expected-error {{region cannot be closely nested inside 'teams distribute' region; perhaps you forget to enclose 'omp teams distribute parallel for' directive into a target region?}}17048 for (int i = 0; i < 10; ++i)17049 ++a;17050 }17051#pragma omp target17052#pragma omp teams distribute17053 for (int i = 0; i < 10; ++i) {17054#pragma omp target teams // expected-error {{region cannot be nested inside 'target' region}}17055 ++a;17056 }17057#pragma omp target17058#pragma omp teams distribute17059 for (int i = 0; i < 10; ++i) {17060#pragma omp target teams distribute // expected-error {{region cannot be nested inside 'target' region}}17061 for (int i = 0; i < 10; ++i)17062 ++a;17063 }17064#pragma omp target17065#pragma omp teams distribute17066 for (int i = 0; i < 10; ++i) {17067#pragma omp target teams distribute parallel for // expected-error {{region cannot be nested inside 'target' region}}17068 for (int i = 0; i < 10; ++i)17069 ++a;17070 }17071#pragma omp target17072#pragma omp teams distribute17073 for (int i = 0; i < 10; ++i) {17074#pragma omp target teams distribute parallel for simd // expected-error {{region cannot be nested inside 'target' region}}17075 for (int i = 0; i < 10; ++i)17076 ++a;17077 }17078#pragma omp target17079#pragma omp teams distribute17080 for (int i = 0; i < 10; ++i) {17081#pragma omp target teams distribute simd // expected-error {{region cannot be nested inside 'target' region}}17082 for (int i = 0; i < 10; ++i)17083 ++a;17084 }17085 17086// TEAMS DISTRIBUTE SIMD DIRECTIVE17087#pragma omp teams distribute simd // omp45-error {{orphaned 'omp teams distribute simd' directives are prohibited; perhaps you forget to enclose the directive into a target region?}}17088 for (int i = 0; i < 10; ++i)17089 ;17090#pragma omp target17091#pragma omp teams distribute simd17092 for (int i = 0; i < 10; ++i) {17093#pragma omp distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}17094 for (int i = 0; i < 10; ++i)17095 ;17096 }17097#pragma omp target17098#pragma omp teams distribute simd17099 for (int i = 0; i < 10; ++i) {17100#pragma omp distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}17101 for (int i = 0; i < 10; ++i)17102 ;17103 }17104#pragma omp target17105#pragma omp teams distribute simd17106 for (int i = 0; i < 10; ++i) {17107#pragma omp for // expected-error {{OpenMP constructs may not be nested inside a simd region}}17108 for (int i = 0; i < 10; ++i)17109 ;17110 }17111#pragma omp target17112#pragma omp teams distribute simd17113 for (int i = 0; i < 10; ++i) {17114#pragma omp simd // omp45warn-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}17115 for (int i = 0; i < 10; ++i)17116 ;17117 }17118#pragma omp target17119#pragma omp teams distribute simd17120 for (int i = 0; i < 10; ++i) {17121#pragma omp for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}17122 for (int i = 0; i < 10; ++i)17123 ;17124 }17125#pragma omp target17126#pragma omp teams distribute simd17127 for (int i = 0; i < 10; ++i) {17128#pragma omp parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}17129 for (int i = 0; i < 10; ++i)17130 ;17131 }17132#pragma omp target17133#pragma omp teams distribute simd17134 for (int i = 0; i < 10; ++i) {17135#pragma omp sections // expected-error {{OpenMP constructs may not be nested inside a simd region}}17136 {17137 bar();17138 }17139 }17140#pragma omp target17141#pragma omp teams distribute simd17142 for (int i = 0; i < 10; ++i) {17143#pragma omp section // expected-error {{OpenMP constructs may not be nested inside a simd region}}17144 {17145 bar();17146 }17147 }17148#pragma omp target17149#pragma omp teams distribute simd17150 for (int i = 0; i < 10; ++i) {17151#pragma omp single // expected-error {{OpenMP constructs may not be nested inside a simd region}}17152 {17153 bar();17154 }17155 }17156#pragma omp target17157#pragma omp teams distribute simd17158 for (int i = 0; i < 10; ++i) {17159#pragma omp master // expected-error {{OpenMP constructs may not be nested inside a simd region}}17160 {17161 bar();17162 }17163 }17164#pragma omp target17165#pragma omp teams distribute simd17166 for (int i = 0; i < 10; ++i) {17167#pragma omp critical // expected-error {{OpenMP constructs may not be nested inside a simd region}}17168 {17169 bar();17170 }17171 }17172#pragma omp target17173#pragma omp teams distribute simd17174 for (int i = 0; i < 10; ++i) {17175#pragma omp parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}17176 {17177#pragma omp single17178 {17179 bar();17180 }17181 }17182 }17183#pragma omp target17184#pragma omp teams distribute simd17185 for (int i = 0; i < 10; ++i) {17186#pragma omp parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}17187 for (int i = 0; i < 10; ++i)17188 ;17189 }17190#pragma omp target17191#pragma omp teams distribute simd17192 for (int i = 0; i < 10; ++i) {17193#pragma omp parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}17194 for (int i = 0; i < 10; ++i)17195 ;17196 }17197#pragma omp target17198#pragma omp teams distribute simd17199 for (int i = 0; i < 10; ++i) {17200#pragma omp parallel sections // expected-error {{OpenMP constructs may not be nested inside a simd region}}17201 {17202 bar();17203 }17204 }17205#pragma omp target17206#pragma omp teams distribute simd17207 for (int i = 0; i < 10; ++i) {17208#pragma omp task // expected-error {{OpenMP constructs may not be nested inside a simd region}}17209 {17210 bar();17211 }17212 }17213#pragma omp target17214#pragma omp teams distribute simd17215 for (int i = 0; i < 10; ++i) {17216#pragma omp taskyield // expected-error {{OpenMP constructs may not be nested inside a simd region}}17217 bar();17218 }17219#pragma omp target17220#pragma omp teams distribute simd17221 for (int i = 0; i < 10; ++i) {17222#pragma omp barrier // expected-error {{OpenMP constructs may not be nested inside a simd region}}17223 bar();17224 }17225#pragma omp target17226#pragma omp teams distribute simd17227 for (int i = 0; i < 10; ++i) {17228#pragma omp scan // omp45-error {{OpenMP constructs may not be nested inside a simd region}} omp50-error {{region cannot be closely nested inside 'teams distribute simd' region; perhaps you forget to enclose 'omp scan' directive into a for, simd, for simd, parallel for, or parallel for simd region?}} omp51-error {{region cannot be closely nested inside 'teams distribute simd' region; perhaps you forget to enclose 'omp scan' directive into a for, simd, for simd, parallel for, or parallel for simd region?}}17229 bar();17230 }17231#pragma omp target17232#pragma omp teams distribute simd17233 for (int i = 0; i < 10; ++i) {17234#pragma omp taskwait // expected-error {{OpenMP constructs may not be nested inside a simd region}}17235 bar();17236 }17237#pragma omp target17238#pragma omp teams distribute simd17239 for (int i = 0; i < 10; ++i) {17240#pragma omp flush // expected-error {{OpenMP constructs may not be nested inside a simd region}}17241 bar();17242 }17243#pragma omp target17244#pragma omp teams distribute simd17245 for (int i = 0; i < 10; ++i) {17246#pragma omp ordered // expected-error {{OpenMP constructs may not be nested inside a simd region}}17247 bar();17248 }17249#pragma omp target17250#pragma omp teams distribute simd17251 for (int i = 0; i < 10; ++i) {17252#pragma omp atomic // omp45-error {{OpenMP constructs may not be nested inside a simd region}}17253 ++a;17254 }17255#pragma omp target17256#pragma omp teams distribute simd17257 for (int i = 0; i < 10; ++i) {17258#pragma omp target // expected-error {{OpenMP constructs may not be nested inside a simd region}}17259 ++a;17260 }17261#pragma omp target17262#pragma omp teams distribute simd17263 for (int i = 0; i < 10; ++i) {17264#pragma omp target parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}17265 ++a;17266 }17267#pragma omp target17268#pragma omp teams distribute simd17269 for (int i = 0; i < 10; ++i) {17270#pragma omp target parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}17271 for (int i = 0; i < 10; ++i)17272 ;17273 }17274#pragma omp target17275#pragma omp teams distribute simd17276 for (int i = 0; i < 10; ++i) {17277#pragma omp target enter data map(to: a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}17278 ++a;17279 }17280#pragma omp target17281#pragma omp teams distribute simd17282 for (int i = 0; i < 10; ++i) {17283#pragma omp target exit data map(from: a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}17284 ++a;17285 }17286#pragma omp target17287#pragma omp teams distribute simd17288 for (int i = 0; i < 10; ++i) {17289#pragma omp teams // expected-error {{OpenMP constructs may not be nested inside a simd region}}17290 ++a;17291 }17292#pragma omp target17293#pragma omp teams distribute simd17294 for (int i = 0; i < 10; ++i) {17295#pragma omp target update to(a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}17296 ++a;17297 }17298#pragma omp target17299#pragma omp teams distribute simd17300 for (int i = 0; i < 10; ++i) {17301#pragma omp distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}17302 for (int i = 0; i < 10; ++i)17303 ++a;17304 }17305#pragma omp target17306#pragma omp teams distribute simd17307 for (int i = 0; i < 10; ++i) {17308#pragma omp target simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}17309 for (int i = 0; i < 10; ++i)17310 ++a;17311 }17312#pragma omp target17313#pragma omp teams distribute simd17314 for (int i = 0; i < 10; ++i) {17315#pragma omp teams distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}17316 for (int i = 0; i < 10; ++i)17317 ++a;17318 }17319#pragma omp target17320#pragma omp teams distribute simd17321 for (int i = 0; i < 10; ++i) {17322#pragma omp teams distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}17323 for (int i = 0; i < 10; ++i)17324 ++a;17325 }17326#pragma omp target17327#pragma omp teams distribute simd17328 for (int i = 0; i < 10; ++i) {17329#pragma omp teams distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}17330 for (int i = 0; i < 10; ++i)17331 ++a;17332 }17333#pragma omp target17334#pragma omp teams distribute simd17335 for (int i = 0; i < 10; ++i) {17336#pragma omp teams distribute parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}17337 for (int i = 0; i < 10; ++i)17338 ++a;17339 }17340#pragma omp target17341#pragma omp teams distribute simd17342 for (int i = 0; i < 10; ++i) {17343#pragma omp target teams // expected-error {{OpenMP constructs may not be nested inside a simd region}}17344 ++a;17345 }17346#pragma omp target17347#pragma omp teams distribute simd17348 for (int i = 0; i < 10; ++i) {17349#pragma omp target teams distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}17350 for (int i = 0; i < 10; ++i)17351 ++a;17352 }17353#pragma omp target17354#pragma omp teams distribute simd17355 for (int i = 0; i < 10; ++i) {17356#pragma omp target teams distribute parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}17357 for (int i = 0; i < 10; ++i)17358 ++a;17359 }17360#pragma omp target17361#pragma omp teams distribute simd17362 for (int i = 0; i < 10; ++i) {17363#pragma omp target teams distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}17364 for (int i = 0; i < 10; ++i)17365 ++a;17366 }17367#pragma omp target17368#pragma omp teams distribute simd17369 for (int i = 0; i < 10; ++i) {17370#pragma omp target teams distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}17371 for (int i = 0; i < 10; ++i)17372 ++a;17373 }17374 17375// TEAMS DISTRIBUTE PARALLEL FOR SIMD DIRECTIVE17376#pragma omp teams distribute parallel for simd // omp45-error {{orphaned 'omp teams distribute parallel for simd' directives are prohibited; perhaps you forget to enclose the directive into a target region?}}17377 for (int i = 0; i < 10; ++i)17378 ;17379#pragma omp target17380#pragma omp teams distribute parallel for simd17381 for (int i = 0; i < 10; ++i) {17382#pragma omp distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}17383 for (int i = 0; i < 10; ++i)17384 ;17385 }17386#pragma omp target17387#pragma omp teams distribute parallel for simd17388 for (int i = 0; i < 10; ++i) {17389#pragma omp distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}17390 for (int i = 0; i < 10; ++i)17391 ;17392 }17393#pragma omp target17394#pragma omp teams distribute parallel for simd17395 for (int i = 0; i < 10; ++i) {17396#pragma omp for // expected-error {{OpenMP constructs may not be nested inside a simd region}}17397 for (int i = 0; i < 10; ++i)17398 ;17399 }17400#pragma omp target17401#pragma omp teams distribute parallel for simd17402 for (int i = 0; i < 10; ++i) {17403#pragma omp simd // omp45warn-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}17404 for (int i = 0; i < 10; ++i)17405 ;17406 }17407#pragma omp target17408#pragma omp teams distribute parallel for simd17409 for (int i = 0; i < 10; ++i) {17410#pragma omp for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}17411 for (int i = 0; i < 10; ++i)17412 ;17413 }17414#pragma omp target17415#pragma omp teams distribute parallel for simd17416 for (int i = 0; i < 10; ++i) {17417#pragma omp parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}17418 for (int i = 0; i < 10; ++i)17419 ;17420 }17421#pragma omp target17422#pragma omp teams distribute parallel for simd17423 for (int i = 0; i < 10; ++i) {17424#pragma omp sections // expected-error {{OpenMP constructs may not be nested inside a simd region}}17425 {17426 bar();17427 }17428 }17429#pragma omp target17430#pragma omp teams distribute parallel for simd17431 for (int i = 0; i < 10; ++i) {17432#pragma omp section // expected-error {{OpenMP constructs may not be nested inside a simd region}}17433 {17434 bar();17435 }17436 }17437#pragma omp target17438#pragma omp teams distribute parallel for simd17439 for (int i = 0; i < 10; ++i) {17440#pragma omp single // expected-error {{OpenMP constructs may not be nested inside a simd region}}17441 {17442 bar();17443 }17444 }17445#pragma omp target17446#pragma omp teams distribute parallel for simd17447 for (int i = 0; i < 10; ++i) {17448#pragma omp master // expected-error {{OpenMP constructs may not be nested inside a simd region}}17449 {17450 bar();17451 }17452 }17453#pragma omp target17454#pragma omp teams distribute parallel for simd17455 for (int i = 0; i < 10; ++i) {17456#pragma omp critical // expected-error {{OpenMP constructs may not be nested inside a simd region}}17457 {17458 bar();17459 }17460 }17461#pragma omp target17462#pragma omp teams distribute parallel for simd17463 for (int i = 0; i < 10; ++i) {17464#pragma omp parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}17465 {17466#pragma omp single17467 {17468 bar();17469 }17470 }17471 }17472#pragma omp target17473#pragma omp teams distribute parallel for simd17474 for (int i = 0; i < 10; ++i) {17475#pragma omp parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}17476 for (int i = 0; i < 10; ++i)17477 ;17478 }17479#pragma omp target17480#pragma omp teams distribute parallel for simd17481 for (int i = 0; i < 10; ++i) {17482#pragma omp parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}17483 for (int i = 0; i < 10; ++i)17484 ;17485 }17486#pragma omp target17487#pragma omp teams distribute parallel for simd17488 for (int i = 0; i < 10; ++i) {17489#pragma omp parallel sections // expected-error {{OpenMP constructs may not be nested inside a simd region}}17490 {17491 bar();17492 }17493 }17494#pragma omp target17495#pragma omp teams distribute parallel for simd17496 for (int i = 0; i < 10; ++i) {17497#pragma omp task // expected-error {{OpenMP constructs may not be nested inside a simd region}}17498 {17499 bar();17500 }17501 }17502#pragma omp target17503#pragma omp teams distribute parallel for simd17504 for (int i = 0; i < 10; ++i) {17505#pragma omp taskyield // expected-error {{OpenMP constructs may not be nested inside a simd region}}17506 bar();17507 }17508#pragma omp target17509#pragma omp teams distribute parallel for simd17510 for (int i = 0; i < 10; ++i) {17511#pragma omp barrier // expected-error {{OpenMP constructs may not be nested inside a simd region}}17512 bar();17513 }17514#pragma omp target17515#pragma omp teams distribute parallel for simd17516 for (int i = 0; i < 10; ++i) {17517#pragma omp scan // omp45-error {{OpenMP constructs may not be nested inside a simd region}} omp50-error {{region cannot be closely nested inside 'teams distribute parallel for simd' region; perhaps you forget to enclose 'omp scan' directive into a for, simd, for simd, parallel for, or parallel for simd region?}} omp51-error {{region cannot be closely nested inside 'teams distribute parallel for simd' region; perhaps you forget to enclose 'omp scan' directive into a for, simd, for simd, parallel for, or parallel for simd region?}}17518 bar();17519 }17520#pragma omp target17521#pragma omp teams distribute parallel for simd17522 for (int i = 0; i < 10; ++i) {17523#pragma omp taskwait // expected-error {{OpenMP constructs may not be nested inside a simd region}}17524 bar();17525 }17526#pragma omp target17527#pragma omp teams distribute parallel for simd17528 for (int i = 0; i < 10; ++i) {17529#pragma omp flush // expected-error {{OpenMP constructs may not be nested inside a simd region}}17530 bar();17531 }17532#pragma omp target17533#pragma omp teams distribute parallel for simd17534 for (int i = 0; i < 10; ++i) {17535#pragma omp ordered // expected-error {{OpenMP constructs may not be nested inside a simd region}}17536 bar();17537 }17538#pragma omp target17539#pragma omp teams distribute parallel for simd17540 for (int i = 0; i < 10; ++i) {17541#pragma omp atomic // omp45-error {{OpenMP constructs may not be nested inside a simd region}}17542 ++a;17543 }17544#pragma omp target17545#pragma omp teams distribute parallel for simd17546 for (int i = 0; i < 10; ++i) {17547#pragma omp target // expected-error {{OpenMP constructs may not be nested inside a simd region}}17548 ++a;17549 }17550#pragma omp target17551#pragma omp teams distribute parallel for simd17552 for (int i = 0; i < 10; ++i) {17553#pragma omp target parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}17554 ++a;17555 }17556#pragma omp target17557#pragma omp teams distribute parallel for simd17558 for (int i = 0; i < 10; ++i) {17559#pragma omp target parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}17560 for (int i = 0; i < 10; ++i)17561 ;17562 }17563#pragma omp target17564#pragma omp teams distribute parallel for simd17565 for (int i = 0; i < 10; ++i) {17566#pragma omp target enter data map(to: a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}17567 ++a;17568 }17569#pragma omp target17570#pragma omp teams distribute parallel for simd17571 for (int i = 0; i < 10; ++i) {17572#pragma omp target exit data map(from: a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}17573 ++a;17574 }17575#pragma omp target17576#pragma omp teams distribute parallel for simd17577 for (int i = 0; i < 10; ++i) {17578#pragma omp teams // expected-error {{OpenMP constructs may not be nested inside a simd region}}17579 ++a;17580 }17581#pragma omp target17582#pragma omp teams distribute parallel for simd17583 for (int i = 0; i < 10; ++i) {17584#pragma omp target update to(a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}17585 ++a;17586 }17587#pragma omp target17588#pragma omp teams distribute parallel for simd17589 for (int i = 0; i < 10; ++i) {17590#pragma omp distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}17591 for (int i = 0; i < 10; ++i)17592 ++a;17593 }17594#pragma omp target17595#pragma omp teams distribute parallel for simd17596 for (int i = 0; i < 10; ++i) {17597#pragma omp target simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}17598 for (int i = 0; i < 10; ++i)17599 ++a;17600 }17601#pragma omp target17602#pragma omp teams distribute parallel for simd17603 for (int i = 0; i < 10; ++i) {17604#pragma omp teams distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}17605 for (int i = 0; i < 10; ++i)17606 ++a;17607 }17608#pragma omp target17609#pragma omp teams distribute parallel for simd17610 for (int i = 0; i < 10; ++i) {17611#pragma omp teams distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}17612 for (int i = 0; i < 10; ++i)17613 ++a;17614 }17615#pragma omp target17616#pragma omp teams distribute parallel for simd17617 for (int i = 0; i < 10; ++i) {17618#pragma omp teams distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}17619 for (int i = 0; i < 10; ++i)17620 ++a;17621 }17622#pragma omp target17623#pragma omp teams distribute parallel for simd17624 for (int i = 0; i < 10; ++i) {17625#pragma omp teams distribute parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}17626 for (int i = 0; i < 10; ++i)17627 ++a;17628 }17629#pragma omp target17630#pragma omp teams distribute parallel for simd17631 for (int i = 0; i < 10; ++i) {17632#pragma omp target teams // expected-error {{OpenMP constructs may not be nested inside a simd region}}17633 ++a;17634 }17635#pragma omp target17636#pragma omp teams distribute parallel for simd17637 for (int i = 0; i < 10; ++i) {17638#pragma omp target teams distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}17639 for (int i = 0; i < 10; ++i)17640 ++a;17641 }17642#pragma omp target17643#pragma omp teams distribute parallel for simd17644 for (int i = 0; i < 10; ++i) {17645#pragma omp target teams distribute parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}17646 for (int i = 0; i < 10; ++i)17647 ++a;17648 }17649#pragma omp target17650#pragma omp teams distribute parallel for simd17651 for (int i = 0; i < 10; ++i) {17652#pragma omp target teams distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}17653 for (int i = 0; i < 10; ++i)17654 ++a;17655 }17656#pragma omp target17657#pragma omp teams distribute parallel for simd17658 for (int i = 0; i < 10; ++i) {17659#pragma omp target teams distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}17660 for (int i = 0; i < 10; ++i)17661 ++a;17662 }17663 17664// TEAMS DISTRIBUTE PARALLEL FOR DIRECTIVE17665#pragma omp teams distribute parallel for // omp45-error {{orphaned 'omp teams distribute parallel for' directives are prohibited; perhaps you forget to enclose the directive into a target region?}}17666 for (int i = 0; i < 10; ++i)17667 ;17668#pragma omp target17669#pragma omp teams distribute parallel for17670 for (int i = 0; i < 10; ++i) {17671#pragma omp distribute parallel for simd // expected-error {{region cannot be closely nested inside 'teams distribute parallel for' region; perhaps you forget to enclose 'omp distribute parallel for simd' directive into a teams region?}}17672 for (int i = 0; i < 10; ++i)17673 ;17674 }17675#pragma omp target17676#pragma omp teams distribute parallel for17677 for (int i = 0; i < 10; ++i) {17678#pragma omp distribute // expected-error {{region cannot be closely nested inside 'teams distribute parallel for' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}17679 for (int i = 0; i < 10; ++i)17680 ;17681 }17682#pragma omp target17683#pragma omp teams distribute parallel for17684 for (int i = 0; i < 10; ++i) {17685#pragma omp for // expected-error {{region cannot be closely nested inside 'teams distribute parallel for' region; perhaps you forget to enclose 'omp for' directive into a parallel region?}}17686 for (int i = 0; i < 10; ++i)17687 ;17688 }17689#pragma omp target17690#pragma omp teams distribute parallel for17691 for (int i = 0; i < 10; ++i) {17692#pragma omp simd // OK17693 for (int i = 0; i < 10; ++i)17694 ;17695 }17696#pragma omp target17697#pragma omp teams distribute parallel for17698 for (int i = 0; i < 10; ++i) {17699#pragma omp for simd // expected-error {{region cannot be closely nested inside 'teams distribute parallel for' region; perhaps you forget to enclose 'omp for simd' directive into a parallel region?}}17700 for (int i = 0; i < 10; ++i)17701 ;17702 }17703#pragma omp target17704#pragma omp teams distribute parallel for17705 for (int i = 0; i < 10; ++i) {17706#pragma omp parallel // OK17707 for (int i = 0; i < 10; ++i)17708 ;17709 }17710#pragma omp target17711#pragma omp teams distribute parallel for17712 for (int i = 0; i < 10; ++i) {17713#pragma omp sections // expected-error {{region cannot be closely nested inside 'teams distribute parallel for' region; perhaps you forget to enclose 'omp sections' directive into a parallel region?}}17714 {17715 bar();17716 }17717 }17718#pragma omp target17719#pragma omp teams distribute parallel for17720 for (int i = 0; i < 10; ++i) {17721#pragma omp section // expected-error {{'omp section' directive must be closely nested to a sections region, not a teams distribute parallel for region}}17722 {17723 bar();17724 }17725 }17726#pragma omp target17727#pragma omp teams distribute parallel for17728 for (int i = 0; i < 10; ++i) {17729#pragma omp single // expected-error {{region cannot be closely nested inside 'teams distribute parallel for' region; perhaps you forget to enclose 'omp single' directive into a parallel region?}}17730 {17731 bar();17732 }17733 }17734#pragma omp target17735#pragma omp teams distribute parallel for17736 for (int i = 0; i < 10; ++i) {17737#pragma omp master // expected-error {{region cannot be closely nested inside 'teams distribute parallel for' region}}17738 {17739 bar();17740 }17741 }17742#pragma omp target17743#pragma omp teams distribute parallel for17744 for (int i = 0; i < 10; ++i) {17745#pragma omp critical // OK17746 {17747 bar();17748 }17749 }17750#pragma omp target17751#pragma omp teams distribute parallel for17752 for (int i = 0; i < 10; ++i) {17753#pragma omp parallel // OK17754 {17755#pragma omp single17756 {17757 bar();17758 }17759 }17760 }17761#pragma omp target17762#pragma omp teams distribute parallel for17763 for (int i = 0; i < 10; ++i) {17764#pragma omp parallel for // OK17765 for (int i = 0; i < 10; ++i)17766 ;17767 }17768#pragma omp target17769#pragma omp teams distribute parallel for17770 for (int i = 0; i < 10; ++i) {17771#pragma omp parallel for simd // OK17772 for (int i = 0; i < 10; ++i)17773 ;17774 }17775#pragma omp target17776#pragma omp teams distribute parallel for17777 for (int i = 0; i < 10; ++i) {17778#pragma omp parallel sections // OK17779 {17780 bar();17781 }17782 }17783#pragma omp target17784#pragma omp teams distribute parallel for17785 for (int i = 0; i < 10; ++i) {17786#pragma omp task // OK17787 {17788 bar();17789 }17790 }17791#pragma omp target17792#pragma omp teams distribute parallel for17793 for (int i = 0; i < 10; ++i) {17794#pragma omp taskyield // OK17795 bar();17796 }17797#pragma omp target17798#pragma omp teams distribute parallel for17799 for (int i = 0; i < 10; ++i) {17800#pragma omp barrier // expected-error {{region cannot be closely nested inside 'teams distribute parallel for' region}}17801 bar();17802 }17803#pragma omp target17804#pragma omp teams distribute parallel for17805 for (int i = 0; i < 10; ++i) {17806#pragma omp scan // expected-error {{region cannot be closely nested inside 'teams distribute parallel for' region}}17807 bar();17808 }17809#pragma omp target17810#pragma omp teams distribute parallel for17811 for (int i = 0; i < 10; ++i) {17812#pragma omp taskwait // OK17813 bar();17814 }17815#pragma omp target17816#pragma omp teams distribute parallel for17817 for (int i = 0; i < 10; ++i) {17818#pragma omp flush // OK17819 bar();17820 }17821#pragma omp target17822#pragma omp teams distribute parallel for17823 for (int i = 0; i < 10; ++i) {17824#pragma omp ordered // expected-error {{region cannot be closely nested inside 'teams distribute parallel for' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}17825 bar();17826 }17827#pragma omp target17828#pragma omp teams distribute parallel for17829 for (int i = 0; i < 10; ++i) {17830#pragma omp atomic // OK17831 ++a;17832 }17833#pragma omp target17834#pragma omp teams distribute parallel for17835 for (int i = 0; i < 10; ++i) {17836#pragma omp target // expected-error {{region cannot be nested inside 'target' region}}17837 ++a;17838 }17839#pragma omp target17840#pragma omp teams distribute parallel for17841 for (int i = 0; i < 10; ++i) {17842#pragma omp target parallel // expected-error {{region cannot be nested inside 'target' region}}17843 ++a;17844 }17845#pragma omp target17846#pragma omp teams distribute parallel for17847 for (int i = 0; i < 10; ++i) {17848#pragma omp target parallel for // expected-error {{region cannot be nested inside 'target' region}}17849 for (int i = 0; i < 10; ++i)17850 ;17851 }17852#pragma omp target17853#pragma omp teams distribute parallel for17854 for (int i = 0; i < 10; ++i) {17855#pragma omp target enter data map(to: a) // expected-error {{region cannot be nested inside 'target' region}}17856 ++a;17857 }17858#pragma omp target17859#pragma omp teams distribute parallel for17860 for (int i = 0; i < 10; ++i) {17861#pragma omp target exit data map(from: a) // expected-error {{region cannot be nested inside 'target' region}}17862 ++a;17863 }17864#pragma omp target17865#pragma omp teams distribute parallel for17866 for (int i = 0; i < 10; ++i) {17867#pragma omp teams // expected-error {{region cannot be closely nested inside 'teams distribute parallel for' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}17868 ++a;17869 }17870#pragma omp target17871#pragma omp teams distribute parallel for17872 for (int i = 0; i < 10; ++i) {17873#pragma omp target update to(a) // expected-error {{region cannot be nested inside 'target' region}}17874 ++a;17875 }17876#pragma omp target17877#pragma omp teams distribute parallel for17878 for (int i = 0; i < 10; ++i) {17879#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'teams distribute parallel for' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}17880 for (int i = 0; i < 10; ++i)17881 ++a;17882 }17883#pragma omp target17884#pragma omp teams distribute parallel for17885 for (int i = 0; i < 10; ++i) {17886#pragma omp target simd // expected-error {{region cannot be nested inside 'target' region}}17887 for (int i = 0; i < 10; ++i)17888 ++a;17889 }17890#pragma omp target17891#pragma omp teams distribute parallel for17892 for (int i = 0; i < 10; ++i) {17893#pragma omp teams distribute // expected-error {{region cannot be closely nested inside 'teams distribute parallel for' region; perhaps you forget to enclose 'omp teams distribute' directive into a target region?}}17894 for (int i = 0; i < 10; ++i)17895 ++a;17896 }17897#pragma omp target17898#pragma omp teams distribute parallel for17899 for (int i = 0; i < 10; ++i) {17900#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'teams distribute parallel for' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}17901 for (int i = 0; i < 10; ++i)17902 ++a;17903 }17904#pragma omp target17905#pragma omp teams distribute parallel for17906 for (int i = 0; i < 10; ++i) {17907#pragma omp teams distribute parallel for simd // expected-error {{region cannot be closely nested inside 'teams distribute parallel for' region; perhaps you forget to enclose 'omp teams distribute parallel for simd' directive into a target region?}}17908 for (int i = 0; i < 10; ++i)17909 ++a;17910 }17911#pragma omp target17912#pragma omp teams distribute parallel for17913 for (int i = 0; i < 10; ++i) {17914#pragma omp teams distribute parallel for // expected-error {{region cannot be closely nested inside 'teams distribute parallel for' region; perhaps you forget to enclose 'omp teams distribute parallel for' directive into a target region?}}17915 for (int i = 0; i < 10; ++i)17916 ++a;17917 }17918#pragma omp target17919#pragma omp teams distribute parallel for17920 for (int i = 0; i < 10; ++i) {17921#pragma omp target teams // expected-error {{region cannot be nested inside 'target' region}}17922 ++a;17923 }17924#pragma omp target17925#pragma omp teams distribute parallel for17926 for (int i = 0; i < 10; ++i) {17927#pragma omp target teams distribute // expected-error {{region cannot be nested inside 'target' region}}17928 for (int i = 0; i < 10; ++i)17929 ++a;17930 }17931#pragma omp target17932#pragma omp teams distribute parallel for17933 for (int i = 0; i < 10; ++i) {17934#pragma omp target teams distribute parallel for // expected-error {{region cannot be nested inside 'target' region}}17935 for (int i = 0; i < 10; ++i)17936 ++a;17937 }17938#pragma omp target17939#pragma omp teams distribute parallel for17940 for (int i = 0; i < 10; ++i) {17941#pragma omp target teams distribute parallel for simd // expected-error {{region cannot be nested inside 'target' region}}17942 for (int i = 0; i < 10; ++i)17943 ++a;17944 }17945#pragma omp target17946#pragma omp teams distribute parallel for17947 for (int i = 0; i < 10; ++i) {17948#pragma omp target teams distribute simd // expected-error {{region cannot be nested inside 'target' region}}17949 for (int i = 0; i < 10; ++i)17950 ++a;17951 }17952 17953// TARGET TEAMS DIRECTIVE17954#pragma omp target teams17955#pragma omp parallel17956 bar();17957#pragma omp target teams17958#pragma omp for // expected-error {{region cannot be closely nested inside 'target teams' region; perhaps you forget to enclose 'omp for' directive into a parallel region?}}17959 for (int i = 0; i < 10; ++i)17960 ;17961#pragma omp target teams17962#pragma omp simd // expected-error {{region cannot be closely nested inside 'target teams' region; perhaps you forget to enclose 'omp simd' directive into a parallel region?}}17963 for (int i = 0; i < 10; ++i)17964 ;17965#pragma omp target teams17966#pragma omp for simd // expected-error {{region cannot be closely nested inside 'target teams' region; perhaps you forget to enclose 'omp for simd' directive into a parallel region?}}17967 for (int i = 0; i < 10; ++i)17968 ;17969#pragma omp target teams17970#pragma omp sections // expected-error {{region cannot be closely nested inside 'target teams' region; perhaps you forget to enclose 'omp sections' directive into a parallel region?}}17971 {17972 bar();17973 }17974#pragma omp target teams17975#pragma omp section // expected-error {{'omp section' directive must be closely nested to a sections region, not a target teams region}}17976 {17977 bar();17978 }17979#pragma omp target teams17980#pragma omp single // expected-error {{region cannot be closely nested inside 'target teams' region; perhaps you forget to enclose 'omp single' directive into a parallel region?}}17981 bar();17982 17983#pragma omp target teams17984#pragma omp master // expected-error {{region cannot be closely nested inside 'target teams' region; perhaps you forget to enclose 'omp master' directive into a parallel region?}}17985 {17986 bar();17987 }17988#pragma omp target teams17989#pragma omp critical // expected-error {{region cannot be closely nested inside 'target teams' region; perhaps you forget to enclose 'omp critical' directive into a parallel region?}}17990 {17991 bar();17992 }17993#pragma omp target teams17994#pragma omp parallel for17995 for (int i = 0; i < 10; ++i)17996 ;17997#pragma omp target teams17998#pragma omp parallel for simd17999 for (int i = 0; i < 10; ++i)18000 ;18001#pragma omp target teams18002#pragma omp parallel sections18003 {18004 bar();18005 }18006#pragma omp target teams18007#pragma omp task // expected-error {{region cannot be closely nested inside 'target teams' region; perhaps you forget to enclose 'omp task' directive into a parallel region?}}18008 {18009 bar();18010 }18011#pragma omp target teams18012 {18013#pragma omp taskyield // expected-error {{region cannot be closely nested inside 'target teams' region; perhaps you forget to enclose 'omp taskyield' directive into a parallel region?}}18014 bar();18015 }18016#pragma omp target teams18017 {18018#pragma omp barrier // expected-error {{region cannot be closely nested inside 'target teams' region; perhaps you forget to enclose 'omp barrier' directive into a parallel region?}}18019 bar();18020 }18021#pragma omp target teams18022 {18023#pragma omp scan // expected-error {{region cannot be closely nested inside 'target teams' region; perhaps you forget to enclose 'omp scan' directive into a for, simd, for simd, parallel for, or parallel for simd region?}}18024 bar();18025 }18026#pragma omp target teams18027 {18028#pragma omp taskwait // expected-error {{region cannot be closely nested inside 'target teams' region; perhaps you forget to enclose 'omp taskwait' directive into a parallel region?}}18029 bar();18030 }18031#pragma omp target teams18032 {18033#pragma omp flush // expected-error {{region cannot be closely nested inside 'target teams' region; perhaps you forget to enclose 'omp flush' directive into a parallel region?}}18034 bar();18035 }18036#pragma omp target teams18037 {18038#pragma omp ordered // expected-error {{region cannot be closely nested inside 'target teams' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}18039 bar();18040 }18041#pragma omp target teams18042 {18043#pragma omp atomic // omp-error {{region cannot be closely nested inside 'target teams' region; perhaps you forget to enclose 'omp atomic' directive into a parallel region?}}18044 ++a;18045 }18046#pragma omp target teams18047 {18048#pragma omp target // expected-error {{region cannot be nested inside 'target teams' region}}18049 ++a;18050 }18051#pragma omp target teams18052 {18053#pragma omp target parallel // expected-error {{region cannot be nested inside 'target teams' region}}18054 ++a;18055 }18056#pragma omp target teams18057#pragma omp target parallel for // expected-error {{region cannot be nested inside 'target teams' region}}18058 for (int i = 0; i < 10; ++i)18059 ;18060#pragma omp target teams18061 {18062#pragma omp target enter data map(to: a) // expected-error {{region cannot be nested inside 'target teams' region}}18063 }18064#pragma omp target teams18065 {18066#pragma omp target exit data map(from: a) // expected-error {{region cannot be nested inside 'target teams' region}}18067 }18068#pragma omp target teams18069 {18070#pragma omp teams // expected-error {{region cannot be closely nested inside 'target teams' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}18071 ++a;18072 }18073#pragma omp target teams18074 {18075#pragma omp taskloop // expected-error {{region cannot be closely nested inside 'target teams' region; perhaps you forget to enclose 'omp taskloop' directive into a parallel region?}}18076 for (int i = 0; i < 10; ++i)18077 ++a;18078 }18079#pragma omp target teams18080#pragma omp distribute18081 for (int i = 0; i < 10; ++i)18082 ;18083#pragma omp target teams18084 {18085#pragma omp target update to(a) // expected-error {{region cannot be nested inside 'target teams' region}}18086 ++a;18087 }18088#pragma omp target teams18089#pragma omp distribute parallel for18090 for (int i = 0; i < 10; ++i)18091 ;18092#pragma omp target teams18093 {18094#pragma omp distribute parallel for18095 for (int i = 0; i < 10; ++i)18096 ;18097#pragma omp distribute parallel for18098 for (int j = 0; j < 10; ++j)18099 ;18100 }18101#pragma omp target teams18102 {18103#pragma omp distribute parallel for simd18104 for (int i = 0; i < 10; ++i)18105 ;18106#pragma omp distribute parallel for simd18107 for (int j = 0; j < 10; ++j)18108 ;18109 }18110#pragma omp target teams18111 {18112#pragma omp distribute simd18113 for (int i = 0; i < 10; ++i)18114 ;18115#pragma omp distribute simd18116 for (int j = 0; j < 10; ++j)18117 ;18118 }18119#pragma omp target teams18120 {18121#pragma omp target simd // expected-error {{region cannot be nested inside 'target teams' region}}18122 for (int i = 0; i < 10; ++i)18123 ;18124 }18125#pragma omp target teams18126 {18127#pragma omp teams distribute // expected-error {{region cannot be closely nested inside 'target teams' region; perhaps you forget to enclose 'omp teams distribute' directive into a target region?}}18128 for (int i = 0; i < 10; ++i)18129 ;18130 }18131#pragma omp target teams18132 {18133#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'target teams' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}18134 for (int i = 0; i < 10; ++i)18135 ;18136 }18137#pragma omp target teams18138 {18139#pragma omp teams distribute parallel for simd // expected-error {{region cannot be closely nested inside 'target teams' region; perhaps you forget to enclose 'omp teams distribute parallel for simd' directive into a target region?}}18140 for (int i = 0; i < 10; ++i)18141 ;18142 }18143#pragma omp target teams18144 {18145#pragma omp teams distribute parallel for // expected-error {{region cannot be closely nested inside 'target teams' region; perhaps you forget to enclose 'omp teams distribute parallel for' directive into a target region?}}18146 for (int i = 0; i < 10; ++i)18147 ;18148 }18149#pragma omp target teams18150 {18151#pragma omp target teams // expected-error {{region cannot be nested inside 'target teams' region}}18152 a++;18153 }18154#pragma omp target teams18155 {18156#pragma omp target teams distribute // expected-error {{region cannot be nested inside 'target teams' region}}18157 for (int i = 0; i < 10; ++i)18158 ;18159 }18160#pragma omp target teams18161 {18162#pragma omp target teams distribute parallel for // expected-error {{region cannot be nested inside 'target teams' region}}18163 for (int i = 0; i < 10; ++i)18164 ;18165 }18166#pragma omp target teams18167 {18168#pragma omp target teams distribute parallel for simd // expected-error {{region cannot be nested inside 'target teams' region}}18169 for (int i = 0; i < 10; ++i)18170 ;18171 }18172#pragma omp target teams18173 {18174#pragma omp target teams distribute simd // expected-error {{region cannot be nested inside 'target teams' region}}18175 for (int i = 0; i < 10; ++i)18176 ;18177 }18178 18179// TARGET TEAMS DISTRIBUTE DIRECTIVE18180#pragma omp target teams distribute // OK18181 for (int i = 0; i < 10; ++i)18182 ;18183#pragma omp target teams distribute18184 for (int i = 0; i < 10; ++i) {18185#pragma omp distribute parallel for simd // expected-error {{region cannot be closely nested inside 'target teams distribute' region; perhaps you forget to enclose 'omp distribute parallel for simd' directive into a teams region?}}18186 for (int i = 0; i < 10; ++i)18187 ;18188 }18189#pragma omp target teams distribute18190 for (int i = 0; i < 10; ++i) {18191#pragma omp distribute // expected-error {{region cannot be closely nested inside 'target teams distribute' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}18192 for (int i = 0; i < 10; ++i)18193 ;18194 }18195#pragma omp target teams distribute18196 for (int i = 0; i < 10; ++i) {18197#pragma omp for // OK18198 for (int i = 0; i < 10; ++i)18199 ;18200 }18201#pragma omp target teams distribute18202 for (int i = 0; i < 10; ++i) {18203#pragma omp simd // OK18204 for (int i = 0; i < 10; ++i)18205 ;18206 }18207#pragma omp target teams distribute18208 for (int i = 0; i < 10; ++i) {18209#pragma omp for simd // OK18210 for (int i = 0; i < 10; ++i)18211 ;18212 }18213#pragma omp target teams distribute18214 for (int i = 0; i < 10; ++i) {18215#pragma omp parallel // OK18216 for (int i = 0; i < 10; ++i)18217 ;18218 }18219#pragma omp target teams distribute18220 for (int i = 0; i < 10; ++i) {18221#pragma omp sections // OK18222 {18223 bar();18224 }18225 }18226#pragma omp target teams distribute18227 for (int i = 0; i < 10; ++i) {18228#pragma omp section // expected-error {{'omp section' directive must be closely nested to a sections region, not a target teams distribute region}}18229 {18230 bar();18231 }18232 }18233#pragma omp target teams distribute18234 for (int i = 0; i < 10; ++i) {18235#pragma omp single // OK18236 {18237 bar();18238 }18239 }18240#pragma omp target teams distribute18241 for (int i = 0; i < 10; ++i) {18242#pragma omp master // OK18243 {18244 bar();18245 }18246 }18247#pragma omp target teams distribute18248 for (int i = 0; i < 10; ++i) {18249#pragma omp critical // OK18250 {18251 bar();18252 }18253 }18254#pragma omp target teams distribute18255 for (int i = 0; i < 10; ++i) {18256#pragma omp parallel // OK18257 {18258#pragma omp single18259 {18260 bar();18261 }18262 }18263 }18264#pragma omp target teams distribute18265 for (int i = 0; i < 10; ++i) {18266#pragma omp parallel for // OK18267 for (int i = 0; i < 10; ++i)18268 ;18269 }18270#pragma omp target teams distribute18271 for (int i = 0; i < 10; ++i) {18272#pragma omp parallel for simd // OK18273 for (int i = 0; i < 10; ++i)18274 ;18275 }18276#pragma omp target teams distribute18277 for (int i = 0; i < 10; ++i) {18278#pragma omp parallel sections // OK18279 {18280 bar();18281 }18282 }18283#pragma omp target teams distribute18284 for (int i = 0; i < 10; ++i) {18285#pragma omp task // OK18286 {18287 bar();18288 }18289 }18290#pragma omp target teams distribute18291 for (int i = 0; i < 10; ++i) {18292#pragma omp taskyield // OK18293 bar();18294 }18295#pragma omp target teams distribute18296 for (int i = 0; i < 10; ++i) {18297#pragma omp barrier // OK18298 bar();18299 }18300#pragma omp target teams distribute18301 for (int i = 0; i < 10; ++i) {18302#pragma omp scan // expected-error {{region cannot be closely nested inside 'target teams distribute' region; perhaps you forget to enclose 'omp scan' directive into a for, simd, for simd, parallel for, or parallel for simd region?}}18303 bar();18304 }18305#pragma omp target teams distribute18306 for (int i = 0; i < 10; ++i) {18307#pragma omp taskwait // OK18308 bar();18309 }18310#pragma omp target teams distribute18311 for (int i = 0; i < 10; ++i) {18312#pragma omp flush // OK18313 bar();18314 }18315#pragma omp target teams distribute18316 for (int i = 0; i < 10; ++i) {18317#pragma omp ordered // expected-error {{region cannot be closely nested inside 'target teams distribute' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}18318 bar();18319 }18320#pragma omp target teams distribute18321 for (int i = 0; i < 10; ++i) {18322#pragma omp atomic // OK18323 ++a;18324 }18325#pragma omp target teams distribute18326 for (int i = 0; i < 10; ++i) {18327#pragma omp target // expected-error {{region cannot be nested inside 'target teams distribute' region}}18328 ++a;18329 }18330#pragma omp target teams distribute18331 for (int i = 0; i < 10; ++i) {18332#pragma omp target parallel // expected-error {{region cannot be nested inside 'target teams distribute' region}}18333 ++a;18334 }18335#pragma omp target teams distribute18336 for (int i = 0; i < 10; ++i) {18337#pragma omp target parallel for // expected-error {{region cannot be nested inside 'target teams distribute' region}}18338 for (int i = 0; i < 10; ++i)18339 ;18340 }18341#pragma omp target teams distribute18342 for (int i = 0; i < 10; ++i) {18343#pragma omp target enter data map(to: a) // expected-error {{region cannot be nested inside 'target teams distribute' region}}18344 ++a;18345 }18346#pragma omp target teams distribute18347 for (int i = 0; i < 10; ++i) {18348#pragma omp target exit data map(from: a) // expected-error {{region cannot be nested inside 'target teams distribute' region}}18349 ++a;18350 }18351#pragma omp target teams distribute18352 for (int i = 0; i < 10; ++i) {18353#pragma omp teams // expected-error {{region cannot be closely nested inside 'target teams distribute' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}18354 ++a;18355 }18356#pragma omp target teams distribute18357 for (int i = 0; i < 10; ++i) {18358#pragma omp target update to(a) // expected-error {{region cannot be nested inside 'target teams distribute' region}}18359 ++a;18360 }18361#pragma omp target teams distribute18362 for (int i = 0; i < 10; ++i) {18363#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'target teams distribute' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}18364 for (int i = 0; i < 10; ++i)18365 ++a;18366 }18367#pragma omp target teams distribute18368 for (int i = 0; i < 10; ++i) {18369#pragma omp target simd // expected-error {{region cannot be nested inside 'target teams distribute' region}}18370 for (int i = 0; i < 10; ++i)18371 ++a;18372 }18373#pragma omp target teams distribute18374 for (int i = 0; i < 10; ++i) {18375#pragma omp teams distribute // expected-error {{region cannot be closely nested inside 'target teams distribute' region; perhaps you forget to enclose 'omp teams distribute' directive into a target region?}}18376 for (int i = 0; i < 10; ++i)18377 ++a;18378 }18379#pragma omp target teams distribute18380 for (int i = 0; i < 10; ++i) {18381#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'target teams distribute' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}18382 for (int i = 0; i < 10; ++i)18383 ++a;18384 }18385#pragma omp target teams distribute18386 for (int i = 0; i < 10; ++i) {18387#pragma omp teams distribute parallel for simd // expected-error {{region cannot be closely nested inside 'target teams distribute' region; perhaps you forget to enclose 'omp teams distribute parallel for simd' directive into a target region?}}18388 for (int i = 0; i < 10; ++i)18389 ++a;18390 }18391#pragma omp target teams distribute18392 for (int i = 0; i < 10; ++i) {18393#pragma omp teams distribute parallel for // expected-error {{region cannot be closely nested inside 'target teams distribute' region; perhaps you forget to enclose 'omp teams distribute parallel for' directive into a target region?}}18394 for (int i = 0; i < 10; ++i)18395 ++a;18396 }18397#pragma omp target teams distribute18398 for (int i = 0; i < 10; ++i) {18399#pragma omp target teams // expected-error {{region cannot be nested inside 'target teams distribute' region}}18400 ++a;18401 }18402#pragma omp target teams distribute18403 for (int i = 0; i < 10; ++i) {18404#pragma omp target teams distribute // expected-error {{region cannot be nested inside 'target teams distribute' region}}18405 for (int i = 0; i < 10; ++i)18406 ++a;18407 }18408#pragma omp target teams distribute18409 for (int i = 0; i < 10; ++i) {18410#pragma omp target teams distribute parallel for // expected-error {{region cannot be nested inside 'target teams distribute' region}}18411 for (int i = 0; i < 10; ++i)18412 ++a;18413 }18414#pragma omp target teams distribute18415 for (int i = 0; i < 10; ++i) {18416#pragma omp target teams distribute parallel for simd // expected-error {{region cannot be nested inside 'target teams distribute' region}}18417 for (int i = 0; i < 10; ++i)18418 ++a;18419 }18420#pragma omp target teams distribute18421 for (int i = 0; i < 10; ++i) {18422#pragma omp target teams distribute simd // expected-error {{region cannot be nested inside 'target teams distribute' region}}18423 for (int i = 0; i < 10; ++i)18424 ++a;18425 }18426 18427// TARGET TEAMS DISTRIBUTE PARALLEL FOR DIRECTIVE18428#pragma omp target teams distribute parallel for // OK18429 for (int i = 0; i < 10; ++i)18430 ;18431#pragma omp target teams distribute parallel for18432 for (int i = 0; i < 10; ++i) {18433#pragma omp distribute parallel for simd // expected-error {{region cannot be closely nested inside 'target teams distribute parallel for' region; perhaps you forget to enclose 'omp distribute parallel for simd' directive into a teams region?}}18434 for (int i = 0; i < 10; ++i)18435 ;18436 }18437#pragma omp target teams distribute parallel for18438 for (int i = 0; i < 10; ++i) {18439#pragma omp distribute // expected-error {{region cannot be closely nested inside 'target teams distribute parallel for' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}18440 for (int i = 0; i < 10; ++i)18441 ;18442 }18443#pragma omp target teams distribute parallel for18444 for (int i = 0; i < 10; ++i) {18445#pragma omp for // expected-error {{region cannot be closely nested inside 'target teams distribute parallel for' region; perhaps you forget to enclose 'omp for' directive into a parallel region?}}18446 for (int i = 0; i < 10; ++i)18447 ;18448 }18449#pragma omp target teams distribute parallel for18450 for (int i = 0; i < 10; ++i) {18451#pragma omp simd // OK18452 for (int i = 0; i < 10; ++i)18453 ;18454 }18455#pragma omp target teams distribute parallel for18456 for (int i = 0; i < 10; ++i) {18457#pragma omp for simd // expected-error {{region cannot be closely nested inside 'target teams distribute parallel for' region; perhaps you forget to enclose 'omp for simd' directive into a parallel region?}}18458 for (int i = 0; i < 10; ++i)18459 ;18460 }18461#pragma omp target teams distribute parallel for18462 for (int i = 0; i < 10; ++i) {18463#pragma omp parallel // OK18464 for (int i = 0; i < 10; ++i)18465 ;18466 }18467#pragma omp target teams distribute parallel for18468 for (int i = 0; i < 10; ++i) {18469#pragma omp sections // expected-error {{region cannot be closely nested inside 'target teams distribute parallel for' region; perhaps you forget to enclose 'omp sections' directive into a parallel region?}}18470 {18471 bar();18472 }18473 }18474#pragma omp target teams distribute parallel for18475 for (int i = 0; i < 10; ++i) {18476#pragma omp section // expected-error {{'omp section' directive must be closely nested to a sections region, not a target teams distribute parallel for region}}18477 {18478 bar();18479 }18480 }18481#pragma omp target teams distribute parallel for18482 for (int i = 0; i < 10; ++i) {18483#pragma omp single // expected-error {{region cannot be closely nested inside 'target teams distribute parallel for' region}}18484 {18485 bar();18486 }18487 }18488#pragma omp target teams distribute parallel for18489 for (int i = 0; i < 10; ++i) {18490#pragma omp master // expected-error {{region cannot be closely nested inside 'target teams distribute parallel for' region}}18491 {18492 bar();18493 }18494 }18495#pragma omp target teams distribute parallel for18496 for (int i = 0; i < 10; ++i) {18497#pragma omp critical // OK18498 {18499 bar();18500 }18501 }18502#pragma omp target teams distribute parallel for18503 for (int i = 0; i < 10; ++i) {18504#pragma omp parallel // OK18505 {18506#pragma omp single18507 {18508 bar();18509 }18510 }18511 }18512#pragma omp target teams distribute parallel for18513 for (int i = 0; i < 10; ++i) {18514#pragma omp parallel for // OK18515 for (int i = 0; i < 10; ++i)18516 ;18517 }18518#pragma omp target teams distribute parallel for18519 for (int i = 0; i < 10; ++i) {18520#pragma omp parallel for simd // OK18521 for (int i = 0; i < 10; ++i)18522 ;18523 }18524#pragma omp target teams distribute parallel for18525 for (int i = 0; i < 10; ++i) {18526#pragma omp parallel sections // OK18527 {18528 bar();18529 }18530 }18531#pragma omp target teams distribute parallel for18532 for (int i = 0; i < 10; ++i) {18533#pragma omp task // OK18534 {18535 bar();18536 }18537 }18538#pragma omp target teams distribute parallel for18539 for (int i = 0; i < 10; ++i) {18540#pragma omp taskyield // OK18541 bar();18542 }18543#pragma omp target teams distribute parallel for18544 for (int i = 0; i < 10; ++i) {18545#pragma omp barrier // expected-error {{region cannot be closely nested inside 'target teams distribute parallel for' region}}18546 bar();18547 }18548#pragma omp target teams distribute parallel for18549 for (int i = 0; i < 10; ++i) {18550#pragma omp scan // expected-error {{region cannot be closely nested inside 'target teams distribute parallel for' region}}18551 bar();18552 }18553#pragma omp target teams distribute parallel for18554 for (int i = 0; i < 10; ++i) {18555#pragma omp taskwait // OK18556 bar();18557 }18558#pragma omp target teams distribute parallel for18559 for (int i = 0; i < 10; ++i) {18560#pragma omp flush // OK18561 bar();18562 }18563#pragma omp target teams distribute parallel for18564 for (int i = 0; i < 10; ++i) {18565#pragma omp ordered // expected-error {{region cannot be closely nested inside 'target teams distribute parallel for' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}18566 bar();18567 }18568#pragma omp target teams distribute parallel for18569 for (int i = 0; i < 10; ++i) {18570#pragma omp atomic // OK18571 ++a;18572 }18573#pragma omp target teams distribute parallel for18574 for (int i = 0; i < 10; ++i) {18575#pragma omp target // expected-error {{region cannot be nested inside 'target teams distribute parallel for' region}}18576 ++a;18577 }18578#pragma omp target teams distribute parallel for18579 for (int i = 0; i < 10; ++i) {18580#pragma omp target parallel // expected-error {{region cannot be nested inside 'target teams distribute parallel for' region}}18581 ++a;18582 }18583#pragma omp target teams distribute parallel for18584 for (int i = 0; i < 10; ++i) {18585#pragma omp target parallel for // expected-error {{region cannot be nested inside 'target teams distribute parallel for' region}}18586 for (int i = 0; i < 10; ++i)18587 ;18588 }18589#pragma omp target teams distribute parallel for18590 for (int i = 0; i < 10; ++i) {18591#pragma omp target enter data map(to: a) // expected-error {{region cannot be nested inside 'target teams distribute parallel for' region}}18592 ++a;18593 }18594#pragma omp target teams distribute parallel for18595 for (int i = 0; i < 10; ++i) {18596#pragma omp target exit data map(from: a) // expected-error {{region cannot be nested inside 'target teams distribute parallel for' region}}18597 ++a;18598 }18599#pragma omp target teams distribute parallel for18600 for (int i = 0; i < 10; ++i) {18601#pragma omp teams // expected-error {{region cannot be closely nested inside 'target teams distribute parallel for' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}18602 ++a;18603 }18604#pragma omp target teams distribute parallel for18605 for (int i = 0; i < 10; ++i) {18606#pragma omp target update to(a) // expected-error {{region cannot be nested inside 'target teams distribute parallel for' region}}18607 ++a;18608 }18609#pragma omp target teams distribute parallel for18610 for (int i = 0; i < 10; ++i) {18611#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'target teams distribute parallel for' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}18612 for (int i = 0; i < 10; ++i)18613 ++a;18614 }18615#pragma omp target teams distribute parallel for18616 for (int i = 0; i < 10; ++i) {18617#pragma omp target simd // expected-error {{region cannot be nested inside 'target teams distribute parallel for' region}}18618 for (int i = 0; i < 10; ++i)18619 ++a;18620 }18621#pragma omp target teams distribute parallel for18622 for (int i = 0; i < 10; ++i) {18623#pragma omp teams distribute // expected-error {{region cannot be closely nested inside 'target teams distribute parallel for' region; perhaps you forget to enclose 'omp teams distribute' directive into a target region?}}18624 for (int i = 0; i < 10; ++i)18625 ++a;18626 }18627#pragma omp target teams distribute parallel for18628 for (int i = 0; i < 10; ++i) {18629#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'target teams distribute parallel for' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}18630 for (int i = 0; i < 10; ++i)18631 ++a;18632 }18633#pragma omp target teams distribute parallel for18634 for (int i = 0; i < 10; ++i) {18635#pragma omp teams distribute parallel for simd // expected-error {{region cannot be closely nested inside 'target teams distribute parallel for' region; perhaps you forget to enclose 'omp teams distribute parallel for simd' directive into a target region?}}18636 for (int i = 0; i < 10; ++i)18637 ++a;18638 }18639#pragma omp target teams distribute parallel for18640 for (int i = 0; i < 10; ++i) {18641#pragma omp teams distribute parallel for // expected-error {{region cannot be closely nested inside 'target teams distribute parallel for' region; perhaps you forget to enclose 'omp teams distribute parallel for' directive into a target region?}}18642 for (int i = 0; i < 10; ++i)18643 ++a;18644 }18645#pragma omp target teams distribute parallel for18646 for (int i = 0; i < 10; ++i) {18647#pragma omp target teams // expected-error {{region cannot be nested inside 'target teams distribute parallel for' region}}18648 ++a;18649 }18650#pragma omp target teams distribute parallel for18651 for (int i = 0; i < 10; ++i) {18652#pragma omp target teams distribute // expected-error {{region cannot be nested inside 'target teams distribute parallel for' region}}18653 for (int i = 0; i < 10; ++i)18654 ++a;18655 }18656#pragma omp target teams distribute parallel for18657 for (int i = 0; i < 10; ++i) {18658#pragma omp target teams distribute parallel for // expected-error {{region cannot be nested inside 'target teams distribute parallel for' region}}18659 for (int i = 0; i < 10; ++i)18660 ++a;18661 }18662#pragma omp target teams distribute parallel for18663 for (int i = 0; i < 10; ++i) {18664#pragma omp target teams distribute parallel for simd // expected-error {{region cannot be nested inside 'target teams distribute parallel for' region}}18665 for (int i = 0; i < 10; ++i)18666 ++a;18667 }18668#pragma omp target teams distribute parallel for18669 for (int i = 0; i < 10; ++i) {18670#pragma omp target teams distribute simd // expected-error {{region cannot be nested inside 'target teams distribute parallel for' region}}18671 for (int i = 0; i < 10; ++i)18672 ++a;18673 }18674 18675// TARGET TEAMS DISTRIBUTE PARALLEL FOR SIMD DIRECTIVE18676#pragma omp target teams distribute parallel for simd // OK18677 for (int i = 0; i < 10; ++i)18678 ;18679#pragma omp target teams distribute parallel for simd18680 for (int i = 0; i < 10; ++i) {18681#pragma omp distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}18682 for (int i = 0; i < 10; ++i)18683 ;18684 }18685#pragma omp target teams distribute parallel for simd18686 for (int i = 0; i < 10; ++i) {18687#pragma omp distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}18688 for (int i = 0; i < 10; ++i)18689 ;18690 }18691#pragma omp target teams distribute parallel for simd18692 for (int i = 0; i < 10; ++i) {18693#pragma omp for // expected-error {{OpenMP constructs may not be nested inside a simd region}}18694 for (int i = 0; i < 10; ++i)18695 ;18696 }18697#pragma omp target teams distribute parallel for simd18698 for (int i = 0; i < 10; ++i) {18699#pragma omp simd // omp45warn-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}18700 for (int i = 0; i < 10; ++i)18701 ;18702 }18703#pragma omp target teams distribute parallel for simd18704 for (int i = 0; i < 10; ++i) {18705#pragma omp for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}18706 for (int i = 0; i < 10; ++i)18707 ;18708 }18709#pragma omp target teams distribute parallel for simd18710 for (int i = 0; i < 10; ++i) {18711#pragma omp parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}18712 for (int i = 0; i < 10; ++i)18713 ;18714 }18715#pragma omp target teams distribute parallel for simd18716 for (int i = 0; i < 10; ++i) {18717#pragma omp sections // expected-error {{OpenMP constructs may not be nested inside a simd region}}18718 {18719 bar();18720 }18721 }18722#pragma omp target teams distribute parallel for simd18723 for (int i = 0; i < 10; ++i) {18724#pragma omp section // expected-error {{OpenMP constructs may not be nested inside a simd region}}18725 {18726 bar();18727 }18728 }18729#pragma omp target teams distribute parallel for simd18730 for (int i = 0; i < 10; ++i) {18731#pragma omp single // expected-error {{OpenMP constructs may not be nested inside a simd region}}18732 {18733 bar();18734 }18735 }18736#pragma omp target teams distribute parallel for simd18737 for (int i = 0; i < 10; ++i) {18738#pragma omp master // expected-error {{OpenMP constructs may not be nested inside a simd region}}18739 {18740 bar();18741 }18742 }18743#pragma omp target teams distribute parallel for simd18744 for (int i = 0; i < 10; ++i) {18745#pragma omp critical // expected-error {{OpenMP constructs may not be nested inside a simd region}}18746 {18747 bar();18748 }18749 }18750#pragma omp target teams distribute parallel for simd18751 for (int i = 0; i < 10; ++i) {18752#pragma omp parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}18753 {18754#pragma omp single18755 {18756 bar();18757 }18758 }18759 }18760#pragma omp target teams distribute parallel for simd18761 for (int i = 0; i < 10; ++i) {18762#pragma omp parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}18763 for (int i = 0; i < 10; ++i)18764 ;18765 }18766#pragma omp target teams distribute parallel for simd18767 for (int i = 0; i < 10; ++i) {18768#pragma omp parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}18769 for (int i = 0; i < 10; ++i)18770 ;18771 }18772#pragma omp target teams distribute parallel for simd18773 for (int i = 0; i < 10; ++i) {18774#pragma omp parallel sections // expected-error {{OpenMP constructs may not be nested inside a simd region}}18775 {18776 bar();18777 }18778 }18779#pragma omp target teams distribute parallel for simd18780 for (int i = 0; i < 10; ++i) {18781#pragma omp task // expected-error {{OpenMP constructs may not be nested inside a simd region}}18782 {18783 bar();18784 }18785 }18786#pragma omp target teams distribute parallel for simd18787 for (int i = 0; i < 10; ++i) {18788#pragma omp taskyield // expected-error {{OpenMP constructs may not be nested inside a simd region}}18789 bar();18790 }18791#pragma omp target teams distribute parallel for simd18792 for (int i = 0; i < 10; ++i) {18793#pragma omp barrier // expected-error {{OpenMP constructs may not be nested inside a simd region}}18794 bar();18795 }18796#pragma omp target teams distribute parallel for simd18797 for (int i = 0; i < 10; ++i) {18798#pragma omp scan // omp45-error {{OpenMP constructs may not be nested inside a simd region}} omp50-error {{region cannot be closely nested inside 'target teams distribute parallel for simd' region; perhaps you forget to enclose 'omp scan' directive into a for, simd, for simd, parallel for, or parallel for simd region?}} omp51-error {{region cannot be closely nested inside 'target teams distribute parallel for simd' region; perhaps you forget to enclose 'omp scan' directive into a for, simd, for simd, parallel for, or parallel for simd region?}}18799 bar();18800 }18801#pragma omp target teams distribute parallel for simd18802 for (int i = 0; i < 10; ++i) {18803#pragma omp taskwait // expected-error {{OpenMP constructs may not be nested inside a simd region}}18804 bar();18805 }18806#pragma omp target teams distribute parallel for simd18807 for (int i = 0; i < 10; ++i) {18808#pragma omp flush // expected-error {{OpenMP constructs may not be nested inside a simd region}}18809 bar();18810 }18811#pragma omp target teams distribute parallel for simd18812 for (int i = 0; i < 10; ++i) {18813#pragma omp ordered // expected-error {{OpenMP constructs may not be nested inside a simd region}}18814 bar();18815 }18816#pragma omp target teams distribute parallel for simd18817 for (int i = 0; i < 10; ++i) {18818#pragma omp atomic // omp45-error {{OpenMP constructs may not be nested inside a simd region}}18819 ++a;18820 }18821#pragma omp target teams distribute parallel for simd18822 for (int i = 0; i < 10; ++i) {18823#pragma omp target // expected-error {{OpenMP constructs may not be nested inside a simd region}}18824 ++a;18825 }18826#pragma omp target teams distribute parallel for simd18827 for (int i = 0; i < 10; ++i) {18828#pragma omp target parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}18829 ++a;18830 }18831#pragma omp target teams distribute parallel for simd18832 for (int i = 0; i < 10; ++i) {18833#pragma omp target parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}18834 for (int i = 0; i < 10; ++i)18835 ;18836 }18837#pragma omp target teams distribute parallel for simd18838 for (int i = 0; i < 10; ++i) {18839#pragma omp target enter data map(to: a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}18840 ++a;18841 }18842#pragma omp target teams distribute parallel for simd18843 for (int i = 0; i < 10; ++i) {18844#pragma omp target exit data map(from: a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}18845 ++a;18846 }18847#pragma omp target teams distribute parallel for simd18848 for (int i = 0; i < 10; ++i) {18849#pragma omp teams // expected-error {{OpenMP constructs may not be nested inside a simd region}}18850 ++a;18851 }18852#pragma omp target teams distribute parallel for simd18853 for (int i = 0; i < 10; ++i) {18854#pragma omp target update to(a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}18855 ++a;18856 }18857#pragma omp target teams distribute parallel for simd18858 for (int i = 0; i < 10; ++i) {18859#pragma omp distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}18860 for (int i = 0; i < 10; ++i)18861 ++a;18862 }18863#pragma omp target teams distribute parallel for simd18864 for (int i = 0; i < 10; ++i) {18865#pragma omp target simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}18866 for (int i = 0; i < 10; ++i)18867 ++a;18868 }18869#pragma omp target teams distribute parallel for simd18870 for (int i = 0; i < 10; ++i) {18871#pragma omp teams distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}18872 for (int i = 0; i < 10; ++i)18873 ++a;18874 }18875#pragma omp target teams distribute parallel for simd18876 for (int i = 0; i < 10; ++i) {18877#pragma omp teams distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}18878 for (int i = 0; i < 10; ++i)18879 ++a;18880 }18881#pragma omp target teams distribute parallel for simd18882 for (int i = 0; i < 10; ++i) {18883#pragma omp teams distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}18884 for (int i = 0; i < 10; ++i)18885 ++a;18886 }18887#pragma omp target teams distribute parallel for simd18888 for (int i = 0; i < 10; ++i) {18889#pragma omp teams distribute parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}18890 for (int i = 0; i < 10; ++i)18891 ;18892 }18893#pragma omp target teams distribute parallel for simd18894 for (int i = 0; i < 10; ++i) {18895#pragma omp target teams // expected-error {{OpenMP constructs may not be nested inside a simd region}}18896 a++;18897 }18898#pragma omp target teams distribute parallel for simd18899 for (int i = 0; i < 10; ++i) {18900#pragma omp target teams distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}18901 for (int i = 0; i < 10; ++i)18902 ;18903 }18904#pragma omp target teams distribute parallel for simd18905 for (int i = 0; i < 10; ++i) {18906#pragma omp target teams distribute parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}18907 for (int i = 0; i < 10; ++i)18908 ;18909 }18910#pragma omp target teams distribute parallel for simd18911 for (int i = 0; i < 10; ++i) {18912#pragma omp target teams distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}18913 for (int i = 0; i < 10; ++i)18914 ;18915 }18916#pragma omp target teams distribute parallel for simd18917 for (int i = 0; i < 10; ++i) {18918#pragma omp target teams distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}18919 for (int i = 0; i < 10; ++i)18920 ;18921 }18922 18923// TARGET TEAMS DISTRIBUTE SIMD DIRECTIVE18924#pragma omp target teams distribute simd // OK18925 for (int i = 0; i < 10; ++i)18926 ;18927#pragma omp target teams distribute simd18928 for (int i = 0; i < 10; ++i) {18929#pragma omp distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}18930 for (int i = 0; i < 10; ++i)18931 ;18932 }18933#pragma omp target teams distribute simd18934 for (int i = 0; i < 10; ++i) {18935#pragma omp distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}18936 for (int i = 0; i < 10; ++i)18937 ;18938 }18939#pragma omp target teams distribute simd18940 for (int i = 0; i < 10; ++i) {18941#pragma omp for // expected-error {{OpenMP constructs may not be nested inside a simd region}}18942 for (int i = 0; i < 10; ++i)18943 ;18944 }18945#pragma omp target teams distribute simd18946 for (int i = 0; i < 10; ++i) {18947#pragma omp simd // omp45warn-warning {{OpenMP only allows an ordered construct with the simd clause nested in a simd construct}}18948 for (int i = 0; i < 10; ++i)18949 ;18950 }18951#pragma omp target teams distribute simd18952 for (int i = 0; i < 10; ++i) {18953#pragma omp for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}18954 for (int i = 0; i < 10; ++i)18955 ;18956 }18957#pragma omp target teams distribute simd18958 for (int i = 0; i < 10; ++i) {18959#pragma omp parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}18960 for (int i = 0; i < 10; ++i)18961 ;18962 }18963#pragma omp target teams distribute simd18964 for (int i = 0; i < 10; ++i) {18965#pragma omp sections // expected-error {{OpenMP constructs may not be nested inside a simd region}}18966 {18967 bar();18968 }18969 }18970#pragma omp target teams distribute simd18971 for (int i = 0; i < 10; ++i) {18972#pragma omp section // expected-error {{OpenMP constructs may not be nested inside a simd region}}18973 {18974 bar();18975 }18976 }18977#pragma omp target teams distribute simd18978 for (int i = 0; i < 10; ++i) {18979#pragma omp single // expected-error {{OpenMP constructs may not be nested inside a simd region}}18980 {18981 bar();18982 }18983 }18984#pragma omp target teams distribute simd18985 for (int i = 0; i < 10; ++i) {18986#pragma omp master // expected-error {{OpenMP constructs may not be nested inside a simd region}}18987 {18988 bar();18989 }18990 }18991#pragma omp target teams distribute simd18992 for (int i = 0; i < 10; ++i) {18993#pragma omp critical // expected-error {{OpenMP constructs may not be nested inside a simd region}}18994 {18995 bar();18996 }18997 }18998#pragma omp target teams distribute simd18999 for (int i = 0; i < 10; ++i) {19000#pragma omp parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}19001 {19002#pragma omp single19003 {19004 bar();19005 }19006 }19007 }19008#pragma omp target teams distribute simd19009 for (int i = 0; i < 10; ++i) {19010#pragma omp parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}19011 for (int i = 0; i < 10; ++i)19012 ;19013 }19014#pragma omp target teams distribute simd19015 for (int i = 0; i < 10; ++i) {19016#pragma omp parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}19017 for (int i = 0; i < 10; ++i)19018 ;19019 }19020#pragma omp target teams distribute simd19021 for (int i = 0; i < 10; ++i) {19022#pragma omp parallel sections // expected-error {{OpenMP constructs may not be nested inside a simd region}}19023 {19024 bar();19025 }19026 }19027#pragma omp target teams distribute simd19028 for (int i = 0; i < 10; ++i) {19029#pragma omp task // expected-error {{OpenMP constructs may not be nested inside a simd region}}19030 {19031 bar();19032 }19033 }19034#pragma omp target teams distribute simd19035 for (int i = 0; i < 10; ++i) {19036#pragma omp taskyield // expected-error {{OpenMP constructs may not be nested inside a simd region}}19037 bar();19038 }19039#pragma omp target teams distribute simd19040 for (int i = 0; i < 10; ++i) {19041#pragma omp barrier // expected-error {{OpenMP constructs may not be nested inside a simd region}}19042 bar();19043 }19044#pragma omp target teams distribute simd19045 for (int i = 0; i < 10; ++i) {19046#pragma omp scan // omp45-error {{OpenMP constructs may not be nested inside a simd region}} omp50-error {{region cannot be closely nested inside 'target teams distribute simd' region; perhaps you forget to enclose 'omp scan' directive into a for, simd, for simd, parallel for, or parallel for simd region?}} omp51-error {{region cannot be closely nested inside 'target teams distribute simd' region; perhaps you forget to enclose 'omp scan' directive into a for, simd, for simd, parallel for, or parallel for simd region?}}19047 bar();19048 }19049#pragma omp target teams distribute simd19050 for (int i = 0; i < 10; ++i) {19051#pragma omp taskwait // expected-error {{OpenMP constructs may not be nested inside a simd region}}19052 bar();19053 }19054#pragma omp target teams distribute simd19055 for (int i = 0; i < 10; ++i) {19056#pragma omp flush // expected-error {{OpenMP constructs may not be nested inside a simd region}}19057 bar();19058 }19059#pragma omp target teams distribute simd19060 for (int i = 0; i < 10; ++i) {19061#pragma omp ordered // expected-error {{OpenMP constructs may not be nested inside a simd region}}19062 bar();19063 }19064#pragma omp target teams distribute simd19065 for (int i = 0; i < 10; ++i) {19066#pragma omp atomic // omp45-error {{OpenMP constructs may not be nested inside a simd region}}19067 ++a;19068 }19069#pragma omp target teams distribute simd19070 for (int i = 0; i < 10; ++i) {19071#pragma omp target // expected-error {{OpenMP constructs may not be nested inside a simd region}}19072 ++a;19073 }19074#pragma omp target teams distribute simd19075 for (int i = 0; i < 10; ++i) {19076#pragma omp target parallel // expected-error {{OpenMP constructs may not be nested inside a simd region}}19077 ++a;19078 }19079#pragma omp target teams distribute simd19080 for (int i = 0; i < 10; ++i) {19081#pragma omp target parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}19082 for (int i = 0; i < 10; ++i)19083 ;19084 }19085#pragma omp target teams distribute simd19086 for (int i = 0; i < 10; ++i) {19087#pragma omp target enter data map(to: a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}19088 ++a;19089 }19090#pragma omp target teams distribute simd19091 for (int i = 0; i < 10; ++i) {19092#pragma omp target exit data map(from: a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}19093 ++a;19094 }19095#pragma omp target teams distribute simd19096 for (int i = 0; i < 10; ++i) {19097#pragma omp teams // expected-error {{OpenMP constructs may not be nested inside a simd region}}19098 ++a;19099 }19100#pragma omp target teams distribute simd19101 for (int i = 0; i < 10; ++i) {19102#pragma omp target update to(a) // expected-error {{OpenMP constructs may not be nested inside a simd region}}19103 ++a;19104 }19105#pragma omp target teams distribute simd19106 for (int i = 0; i < 10; ++i) {19107#pragma omp distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}19108 for (int i = 0; i < 10; ++i)19109 ++a;19110 }19111#pragma omp target teams distribute simd19112 for (int i = 0; i < 10; ++i) {19113#pragma omp target simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}19114 for (int i = 0; i < 10; ++i)19115 ++a;19116 }19117#pragma omp target teams distribute simd19118 for (int i = 0; i < 10; ++i) {19119#pragma omp teams distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}19120 for (int i = 0; i < 10; ++i)19121 ++a;19122 }19123#pragma omp target teams distribute simd19124 for (int i = 0; i < 10; ++i) {19125#pragma omp teams distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}19126 for (int i = 0; i < 10; ++i)19127 ++a;19128 }19129#pragma omp target teams distribute simd19130 for (int i = 0; i < 10; ++i) {19131#pragma omp teams distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}19132 for (int i = 0; i < 10; ++i)19133 ++a;19134 }19135#pragma omp target teams distribute simd19136 for (int i = 0; i < 10; ++i) {19137#pragma omp teams distribute parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}19138 for (int i = 0; i < 10; ++i)19139 ;19140 }19141#pragma omp target teams distribute simd19142 for (int i = 0; i < 10; ++i) {19143#pragma omp target teams // expected-error {{OpenMP constructs may not be nested inside a simd region}}19144 a++;19145 }19146#pragma omp target teams distribute simd19147 for (int i = 0; i < 10; ++i) {19148#pragma omp target teams distribute // expected-error {{OpenMP constructs may not be nested inside a simd region}}19149 for (int i = 0; i < 10; ++i)19150 ;19151 }19152#pragma omp target teams distribute simd19153 for (int i = 0; i < 10; ++i) {19154#pragma omp target teams distribute parallel for // expected-error {{OpenMP constructs may not be nested inside a simd region}}19155 for (int i = 0; i < 10; ++i)19156 ;19157 }19158#pragma omp target teams distribute simd19159 for (int i = 0; i < 10; ++i) {19160#pragma omp target teams distribute parallel for simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}19161 for (int i = 0; i < 10; ++i)19162 ;19163 }19164#pragma omp target teams distribute simd19165 for (int i = 0; i < 10; ++i) {19166#pragma omp target teams distribute simd // expected-error {{OpenMP constructs may not be nested inside a simd region}}19167 for (int i = 0; i < 10; ++i)19168 ;19169 }19170 19171 // SCOPE DIRECTIVE19172#pragma omp scope19173#pragma omp parallel // OK19174 bar();19175#pragma omp scope19176#pragma omp parallel for // OK19177 for(int i = 0; i < 10; i++)19178 ;19179#pragma omp scope19180#pragma omp parallel for simd // OK19181 for(int i = 0; i < 10; i++)19182 ;19183#pragma omp scope19184#pragma omp for19185 for (int i = 0; i < 10; ++i)19186 ;19187#pragma omp scope19188#pragma omp simd19189 for (int i = 0; i < 10; ++i)19190 ;19191#pragma omp scope19192#pragma omp for simd19193 for (int i = 0; i < 10; ++i)19194 ;19195#pragma omp scope19196#pragma omp sections19197 {19198 bar();19199 }19200#pragma omp scope19201#pragma omp section // expected-error {{'omp section' directive must be closely nested to a sections region, not a scope region}}19202 {19203 bar();19204 }19205#pragma omp scope19206#pragma omp single19207 bar();19208 19209#pragma omp scope19210#pragma omp master19211 {19212 bar();19213 }19214#pragma omp scope19215#pragma omp critical19216 {19217 bar();19218 }19219#pragma omp scope19220#pragma omp parallel sections19221 {19222 bar();19223 }19224#pragma omp scope19225#pragma omp parallel master19226 {19227 bar();19228 }19229#pragma omp scope19230#pragma omp parallel masked19231 {19232 bar();19233 }19234#pragma omp scope19235#pragma omp task19236 {19237 bar();19238 }19239#pragma omp scope19240 {19241#pragma omp taskyield19242 bar();19243 }19244#pragma omp scope19245 {19246#pragma omp barrier19247 bar();19248 }19249#pragma omp scope19250 {19251#pragma omp scan // expected-error {{region cannot be closely nested inside 'scope' region; perhaps you forget to enclose 'omp scan' directive into a for, simd, for simd, parallel for, or parallel for simd region?}}19252 bar();19253 }19254#pragma omp scope19255 {19256#pragma omp taskwait19257 bar();19258 }19259#pragma omp scope19260 {19261#pragma omp flush19262 bar();19263 }19264#pragma omp scope19265 {19266#pragma omp ordered // expected-error {{region cannot be closely nested inside 'scope' region; perhaps you forget to enclose 'omp ordered' directive into a for or a parallel for region with 'ordered' clause?}}19267 bar();19268 }19269#pragma omp scope19270 {19271#pragma omp atomic19272 ++a;19273 }19274#pragma omp scope19275 {19276#pragma omp target parallel19277 ++a;19278 }19279#pragma omp scope19280 {19281#pragma omp target parallel for19282 for (int i = 0; i < 10; ++i)19283 ;19284 }19285#pragma omp scope19286 {19287#pragma omp target enter data map(to: a)19288 ++a;19289 }19290#pragma omp scope19291 {19292#pragma omp target exit data map(from: a)19293 ++a;19294 }19295#pragma omp scope19296 {19297#pragma omp taskloop19298 for (int i = 0; i < 10; ++i)19299 ++a;19300 }19301#pragma omp scope19302 {19303#pragma omp target // OK19304 a++;19305 }19306#pragma omp scope19307 {19308#pragma omp teams // expected-error {{region cannot be closely nested inside 'scope' region; perhaps you forget to enclose 'omp teams' directive into a target region?}}19309 a++;19310 }19311#pragma omp scope19312 {19313#pragma omp target teams // OK19314 a++;19315 }19316#pragma omp scope19317 {19318#pragma omp distribute // expected-error {{region cannot be closely nested inside 'scope' region; perhaps you forget to enclose 'omp distribute' directive into a teams region?}}19319 for (int i = 0; i < 10; ++i)19320 ;19321 }19322 #pragma omp scope19323 {19324 #pragma omp distribute parallel for simd // expected-error {{region cannot be closely nested inside 'scope' region; perhaps you forget to enclose 'omp distribute parallel for simd' directive into a teams region?}}19325 for (int i = 0; i < 10; ++i)19326 ;19327 }19328#pragma omp scope19329 {19330#pragma omp distribute simd // expected-error {{region cannot be closely nested inside 'scope' region; perhaps you forget to enclose 'omp distribute simd' directive into a teams region?}}19331 for (int i = 0; i < 10; ++i)19332 ;19333 }19334#pragma omp scope19335 {19336#pragma omp target simd // OK19337 for (int i = 0; i < 10; ++i)19338 ;19339 }19340#pragma omp scope19341 {19342 #pragma omp teams distribute // expected-error {{region cannot be closely nested inside 'scope' region; perhaps you forget to enclose 'omp teams distribute' directive into a target region?}}19343 for (int i = 0; i < 10; ++i)19344 ;19345 }19346#pragma omp scope19347 {19348#pragma omp teams distribute simd // expected-error {{region cannot be closely nested inside 'scope' region; perhaps you forget to enclose 'omp teams distribute simd' directive into a target region?}}19349 for (int i = 0; i < 10; ++i)19350 ;19351 }19352#pragma omp scope19353 {19354#pragma omp teams distribute parallel for simd // expected-error {{region cannot be closely nested inside 'scope' region; perhaps you forget to enclose 'omp teams distribute parallel for simd' directive into a target region?}}19355 for (int i = 0; i < 10; ++i)19356 ;19357 }19358#pragma omp scope19359 {19360#pragma omp teams distribute parallel for // expected-error {{region cannot be closely nested inside 'scope' region; perhaps you forget to enclose 'omp teams distribute parallel for' directive into a target region?}}19361 for (int i = 0; i < 10; ++i)19362 ;19363 }19364#pragma omp scope19365 {19366#pragma omp target teams // OK19367 ++a;19368 }19369#pragma omp scope19370 {19371#pragma omp target teams distribute // OK19372 for (int i = 0; i < 10; ++i)19373 ;19374 }19375#pragma omp scope19376 {19377#pragma omp target teams distribute parallel for // OK19378 for (int i = 0; i < 10; ++i)19379 ;19380 }19381#pragma omp scope19382 {19383#pragma omp target teams distribute parallel for simd // OK19384 for (int i = 0; i < 10; ++i)19385 ;19386 }19387#pragma omp scope19388 {19389#pragma omp target teams distribute simd // OK19390 for (int i = 0; i < 10; ++i)19391 ;19392 }19393#pragma omp for19394 for (int i = 0; i < 10; ++i) {19395#pragma omp scope // expected-error {{region cannot be closely nested inside 'for' region}}19396 bar();19397 }19398 19399#pragma omp for simd19400 for (int i = 0; i < 10; ++i) {19401#pragma omp scope // expected-error {{OpenMP constructs may not be nested inside a simd region}}19402 bar();19403 }19404 19405#pragma omp sections19406 {19407#pragma omp scope // expected-error {{region cannot be closely nested inside 'sections' region}}19408 bar();19409 }19410 19411#pragma omp sections19412 {19413#pragma omp section19414 {19415#pragma omp scope // expected-error {{region cannot be closely nested inside 'section' region}}19416 bar();19417 }19418 }19419 19420#pragma omp single19421 {19422#pragma omp scope // expected-error {{region cannot be closely nested inside 'single' region}}19423 bar();19424 }19425 19426#pragma omp master19427 {19428#pragma omp scope // expected-error {{region cannot be closely nested inside 'master' region}}19429 bar();19430 }19431 19432#pragma omp critical19433 {19434#pragma omp scope // expected-error {{region cannot be closely nested inside 'critical' region}}19435 bar();19436 }19437 19438#pragma omp parallel for19439 for (int i = 0; i < 10; ++i) {19440#pragma omp scope // expected-error {{region cannot be closely nested inside 'parallel for' region}}19441 bar();19442 }19443 19444#pragma omp parallel for simd19445 for (int i = 0; i < 10; ++i) {19446#pragma omp scope // expected-error {{OpenMP constructs may not be nested inside a simd region}}19447 bar();19448 }19449 19450#pragma omp parallel master19451 {19452#pragma omp scope // expected-error {{region cannot be closely nested inside 'parallel master' region}}19453 bar();19454 }19455 19456#pragma omp parallel sections19457 {19458#pragma omp scope // expected-error {{region cannot be closely nested inside 'parallel sections' region}}19459 bar();19460 }19461 19462#pragma omp task19463 {19464#pragma omp scope // expected-error {{region cannot be closely nested inside 'task' region}}19465 bar();19466 }19467 19468#pragma omp ordered19469 {19470#pragma omp scope // expected-error {{region cannot be closely nested inside 'ordered' region}}19471 bar();19472 }19473 19474#pragma omp atomic19475 // expected-error@+2 {{the statement for 'atomic' must be an expression statement of form '++x;', '--x;', 'x++;', 'x--;', 'x binop= expr;', 'x = x binop expr' or 'x = expr binop x', where x is an lvalue expression with scalar type}}19476 // expected-note@+1 {{expected an expression statement}}19477 {19478#pragma omp scope // expected-error {{OpenMP constructs may not be nested inside an atomic region}}19479 bar();19480 }19481 19482#pragma omp target19483#pragma omp teams19484 {19485#pragma omp scope // expected-error {{region cannot be closely nested inside 'teams' region; perhaps you forget to enclose 'omp scope' directive into a parallel region?}}19486 bar();19487 }19488 19489#pragma omp taskloop19490 for (int i = 0; i < 10; ++i) {19491#pragma omp scope // expected-error {{region cannot be closely nested inside 'taskloop' region}}19492 bar();19493 }19494 19495#pragma omp target19496#pragma omp teams19497#pragma omp distribute parallel for19498 for (int i = 0; i < 10; ++i) {19499#pragma omp scope // expected-error {{region cannot be closely nested inside 'distribute parallel for' region}}19500 bar();19501 }19502 19503#pragma omp target19504#pragma omp teams19505#pragma omp distribute parallel for simd19506 for (int i = 0; i < 10; ++i) {19507#pragma omp scope // expected-error {{OpenMP constructs may not be nested inside a simd region}}19508 bar();19509 }19510 19511#pragma omp target simd19512 for (int i = 0; i < 10; ++i) {19513#pragma omp scope // expected-error {{OpenMP constructs may not be nested inside a simd region}}19514 bar();19515 }19516 19517#pragma omp target19518#pragma omp teams distribute simd19519 for (int i = 0; i < 10; ++i) {19520#pragma omp scope // expected-error {{OpenMP constructs may not be nested inside a simd region}}19521 bar();19522 }19523 19524#pragma omp target19525#pragma omp teams distribute parallel for simd19526 for (int i = 0; i < 10; ++i) {19527#pragma omp scope // expected-error {{OpenMP constructs may not be nested inside a simd region}}19528 bar();19529 }19530 19531#pragma omp target19532#pragma omp teams distribute parallel for19533 for (int i = 0; i < 10; ++i) {19534#pragma omp scope // expected-error {{region cannot be closely nested inside 'teams distribute parallel for' region}}19535 bar();19536 }19537 19538#pragma omp target teams19539 {19540#pragma omp scope // expected-error {{region cannot be closely nested inside 'target teams' region; perhaps you forget to enclose 'omp scope' directive into a parallel region?}}19541 bar();19542 }19543 19544#pragma omp target teams distribute parallel for19545 for (int i = 0; i < 10; ++i) {19546#pragma omp scope // expected-error {{region cannot be closely nested inside 'target teams distribute parallel for' region}}19547 bar();19548 }19549 19550#pragma omp target teams distribute parallel for simd19551 for (int i = 0; i < 10; ++i) {19552#pragma omp scope // expected-error {{OpenMP constructs may not be nested inside a simd region}}19553 bar();19554 }19555 19556#pragma omp target teams distribute simd19557 for (int i = 0; i < 10; ++i) {19558#pragma omp scope // expected-error {{OpenMP constructs may not be nested inside a simd region}}19559 bar();19560 }19561 19562#pragma omp simd19563 for (int i = 0; i < 10; ++i) {19564#pragma omp scope // expected-error {{OpenMP constructs may not be nested inside a simd region}}19565 bar();19566 }19567 19568 return foo<int>();19569}19570