From patchwork Fri Dec 6 18:33:35 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Thomas Schwinge X-Patchwork-Id: 298184 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 1E7272C00BA for ; Sat, 7 Dec 2013 05:34:27 +1100 (EST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:cc:subject:in-reply-to:references:date:message-id :mime-version:content-type; q=dns; s=default; b=Pb3p216oHwOAnsYj 0mdZJ+wmHpP2MX2QtipTFOBOpoipS0owTPE7PgLqFJTB1ZF+xgpbV3M5FjoZ9oza Lc85vbOuwy5ws0S8He8r3gQSHcw10uqcJI3gFj6qDJWKVCrOmiRfrt5sohCVw2f+ eYCgxdqjC8Pyz4/jELTxSN4jDis= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:cc:subject:in-reply-to:references:date:message-id :mime-version:content-type; s=default; bh=47NVkH3OxUaUTNACW9gqFJ OfbA8=; b=fnxWkEY6QXmPr01/2hEkXL8EEGFNbNkdPf9PvbyeWN7C5NnsOdBE8v fuMF7J97T9SlM6m1MLqGQRQZ6a2ONoYLlAUdzwVBtfKn6XcS/AKAgOHNP1qZAlSp TBQWzaCjgxo0jpthfId56n4dgB2pk81xvRSRv9hTjp4RNkfCigm/o= Received: (qmail 24997 invoked by alias); 6 Dec 2013 18:34:21 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 24985 invoked by uid 89); 6 Dec 2013 18:34:20 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.1 required=5.0 tests=AWL, BAYES_00 autolearn=ham version=3.3.2 X-HELO: relay1.mentorg.com Received: from Unknown (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 06 Dec 2013 18:34:18 +0000 Received: from svr-orw-exc-10.mgc.mentorg.com ([147.34.98.58]) by relay1.mentorg.com with esmtp id 1Vp0Dx-0002zl-6h from Thomas_Schwinge@mentor.com ; Fri, 06 Dec 2013 10:34:01 -0800 Received: from SVR-IES-FEM-02.mgc.mentorg.com ([137.202.0.106]) by SVR-ORW-EXC-10.mgc.mentorg.com with Microsoft SMTPSVC(6.0.3790.4675); Fri, 6 Dec 2013 10:33:56 -0800 Received: from feldtkeller.schwinge.homeip.net (137.202.0.76) by SVR-IES-FEM-02.mgc.mentorg.com (137.202.0.106) with Microsoft SMTP Server id 14.2.247.3; Fri, 6 Dec 2013 18:33:54 +0000 From: Thomas Schwinge To: Aldy Hernandez , Jakub Jelinek CC: Jason Merrill , gcc-patches , "Iyer, Balaji V" Subject: Re: PING: Fwd: Re: [patch] implement Cilk Plus simd loops on trunk In-Reply-To: <528695CD.5080705@redhat.com> References: <521B8ECA.70806@redhat.com> <521D060E.9030601@redhat.com> <524C95F2.1010802@redhat.com> <52618287.8010705@redhat.com> <52740D59.50104@redhat.com> <5284FF25.7020401@redhat.com> <20131114170553.GD27813@tucnak.zalov.cz> <52850AB6.2070408@redhat.com> <20131114180147.GE27813@tucnak.zalov.cz> <5285790E.9050000@redhat.com> <20131115073757.GA892@tucnak.redhat.com> <52863CB4.50900@redhat.com> <528695CD.5080705@redhat.com> User-Agent: Notmuch/0.9-101-g81dad07 (http://notmuchmail.org) Emacs/23.4.1 (i486-pc-linux-gnu) Date: Fri, 6 Dec 2013 19:33:35 +0100 Message-ID: <87fvq5n81s.fsf@kepler.schwinge.homeip.net> MIME-Version: 1.0 Hi! On Fri, 15 Nov 2013 14:44:45 -0700, Aldy Hernandez wrote: > I fixed a few nits Jason pointed out off-line, and both him and Jakub > have approved the patch for trunk. > > In running the final round of tests I noticed a few problems with my > choice of bit numbers for the GF_OMP_* masks. I fixed them, and re-ran > tests on x86-64 Linux. > > Attached is the final version of the patch I have committed to trunk. (As r204863, that is.) > --- a/gcc/omp-low.c > +++ b/gcc/omp-low.c > @@ -10177,12 +10210,33 @@ diagnose_sb_0 (gimple_stmt_iterator *gsi_p, > error ("invalid entry to OpenMP structured block"); > #endif > > + bool cilkplus_block = false; > + if (flag_enable_cilkplus) > + { > + if ((branch_ctx > + && gimple_code (branch_ctx) == GIMPLE_OMP_FOR > + && gimple_omp_for_kind (branch_ctx) == GF_OMP_FOR_KIND_CILKSIMD) > + || (gimple_code (label_ctx) == GIMPLE_OMP_FOR > + && gimple_omp_for_kind (label_ctx) == GF_OMP_FOR_KIND_CILKSIMD)) > + cilkplus_block = true; > + } There is one issue here: consider the following code: void baz() { bad1: #pragma omp parallel goto bad1; } Then, if both -fcilkplus and -fopenmp are specified, that will run into a SIGSEGV/ICE because of label_ctx == NULL. The fix is simple enough; OK for trunk and gomp-4_0-branch (after full testing)? The testcase is basically a concatenation of gcc.dg/cilk-plus/jump.c and gcc.dg/gomp/block-1.c -- should this be done differently/better? commit eee16f8aad4527b705d327476b00bf9f5ba6dcce Author: Thomas Schwinge Date: Fri Dec 6 18:55:41 2013 +0100 Fix possible ICE (null pointer dereference) introduced in r204863. gcc/ * omp-low.c (diagnose_sb_0): Make sure label_ctx is valid to dereference. gcc/testsuite/ * gcc.dg/cilk-plus/jump-openmp.c: New file. Grüße, Thomas diff --git gcc/omp-low.c gcc/omp-low.c index e0f7d1d..91221c0 100644 --- gcc/omp-low.c +++ gcc/omp-low.c @@ -10865,7 +10865,8 @@ diagnose_sb_0 (gimple_stmt_iterator *gsi_p, if ((branch_ctx && gimple_code (branch_ctx) == GIMPLE_OMP_FOR && gimple_omp_for_kind (branch_ctx) == GF_OMP_FOR_KIND_CILKSIMD) - || (gimple_code (label_ctx) == GIMPLE_OMP_FOR + || (label_ctx + && gimple_code (label_ctx) == GIMPLE_OMP_FOR && gimple_omp_for_kind (label_ctx) == GF_OMP_FOR_KIND_CILKSIMD)) cilkplus_block = true; } diff --git gcc/testsuite/gcc.dg/cilk-plus/jump-openmp.c gcc/testsuite/gcc.dg/cilk-plus/jump-openmp.c new file mode 100644 index 0000000..95e6b2d --- /dev/null +++ gcc/testsuite/gcc.dg/cilk-plus/jump-openmp.c @@ -0,0 +1,49 @@ +/* { dg-do compile } */ +/* { dg-options "-fcilkplus -fopenmp" } */ +/* { dg-require-effective-target fopenmp } */ + +int *a, *b, c; + +void foo() +{ +#pragma simd + for (int i=0; i < 1000; ++i) + { + a[i] = b[i]; + if (c == 5) + return; /* { dg-error "invalid branch to/from a Cilk Plus structured block" } */ + } +} + +void bar() +{ +#pragma simd + for (int i=0; i < 1000; ++i) + { + lab: + a[i] = b[i]; + } + if (c == 6) + goto lab; /* { dg-error "invalid entry to Cilk Plus structured block" } */ +} + +void baz() +{ + bad1: + #pragma omp parallel + goto bad1; /* { dg-error "invalid branch to/from an OpenMP structured block" } */ + + goto bad2; /* { dg-error "invalid entry to OpenMP structured block" } */ + #pragma omp parallel + { + bad2: ; + } + + #pragma omp parallel + { + int i; + goto ok1; + for (i = 0; i < 10; ++i) + { ok1: break; } + } +} > /* If it's obvious we have an invalid entry, be specific about the error. */ > if (branch_ctx == NULL) > - error ("invalid entry to OpenMP structured block"); > + { > + if (cilkplus_block) > + error ("invalid entry to Cilk Plus structured block"); > + else > + error ("invalid entry to OpenMP structured block"); > + } > else > - /* Otherwise, be vague and lazy, but efficient. */ > - error ("invalid branch to/from an OpenMP structured block"); > + { > + /* Otherwise, be vague and lazy, but efficient. */ > + if (cilkplus_block) > + error ("invalid branch to/from a Cilk Plus structured block"); > + else > + error ("invalid branch to/from an OpenMP structured block"); > + } In fact, and keeping in mind that we're currently adding OpenACC support, I'd suggest to do this differently; OK for trunk and gomp-4_0-branch? commit 367dabfcc94a3e96d63b48c38d0dd94ca9f517f8 Author: Thomas Schwinge Date: Fri Dec 6 19:23:47 2013 +0100 Generalize diagnose_omp_blocks' structured block logic. gcc/ * omp-low.c (diagnose_sb_0): Generalize detection which kind of structured block we're in. gcc/testsuite/ * g++.dg/gomp/block-1.C: Adjust to changed error message and/or be tighten matching rules. * g++.dg/gomp/block-2.C: Likewise. * g++.dg/gomp/block-3.C: Likewise. * g++.dg/gomp/block-5.C: Likewise. * g++.dg/gomp/target-1.C: Likewise. * g++.dg/gomp/target-2.C: Likewise. * g++.dg/gomp/taskgroup-1.C: Likewise. * g++.dg/gomp/teams-1.C: Likewise. * gcc.dg/cilk-plus/jump-openmp.c: Likewise. * gcc.dg/cilk-plus/jump.c: Likewise. * gcc.dg/gomp/block-1.c: Likewise. * gcc.dg/gomp/block-10.c: Likewise. * gcc.dg/gomp/block-2.c: Likewise. * gcc.dg/gomp/block-3.c: Likewise. * gcc.dg/gomp/block-4.c: Likewise. * gcc.dg/gomp/block-5.c: Likewise. * gcc.dg/gomp/block-6.c: Likewise. * gcc.dg/gomp/block-7.c: Likewise. * gcc.dg/gomp/block-8.c: Likewise. * gcc.dg/gomp/block-9.c: Likewise. * gcc.dg/gomp/target-1.c: Likewise. * gcc.dg/gomp/target-2.c: Likewise. * gcc.dg/gomp/taskgroup-1.c: Likewise. * gcc.dg/gomp/teams-1.c: Likewise. diff --git gcc/omp-low.c gcc/omp-low.c index 91221c0..f55a1ea 100644 --- gcc/omp-low.c +++ gcc/omp-low.c @@ -10822,6 +10822,23 @@ diagnose_sb_0 (gimple_stmt_iterator *gsi_p, if (label_ctx == branch_ctx) return false; + const char* kind = NULL; + + if (flag_enable_cilkplus) + { + if ((branch_ctx + && gimple_code (branch_ctx) == GIMPLE_OMP_FOR + && gimple_omp_for_kind (branch_ctx) == GF_OMP_FOR_KIND_CILKSIMD) + || (label_ctx + && gimple_code (label_ctx) == GIMPLE_OMP_FOR + && gimple_omp_for_kind (label_ctx) == GF_OMP_FOR_KIND_CILKSIMD)) + kind = "Cilk Plus"; + } + if (kind == NULL) + { + gcc_assert (flag_openmp); + kind = "OpenMP"; + } /* Previously we kept track of the label's entire context in diagnose_sb_[12] @@ -10854,38 +10871,18 @@ diagnose_sb_0 (gimple_stmt_iterator *gsi_p, } if (exit_p) - error ("invalid exit from OpenMP structured block"); + error ("invalid exit from %s structured block", kind); else - error ("invalid entry to OpenMP structured block"); + error ("invalid entry to %s structured block", kind); #endif - bool cilkplus_block = false; - if (flag_enable_cilkplus) - { - if ((branch_ctx - && gimple_code (branch_ctx) == GIMPLE_OMP_FOR - && gimple_omp_for_kind (branch_ctx) == GF_OMP_FOR_KIND_CILKSIMD) - || (label_ctx - && gimple_code (label_ctx) == GIMPLE_OMP_FOR - && gimple_omp_for_kind (label_ctx) == GF_OMP_FOR_KIND_CILKSIMD)) - cilkplus_block = true; - } - /* If it's obvious we have an invalid entry, be specific about the error. */ if (branch_ctx == NULL) - { - if (cilkplus_block) - error ("invalid entry to Cilk Plus structured block"); - else - error ("invalid entry to OpenMP structured block"); - } + error ("invalid entry to %s structured block", kind); else { /* Otherwise, be vague and lazy, but efficient. */ - if (cilkplus_block) - error ("invalid branch to/from a Cilk Plus structured block"); - else - error ("invalid branch to/from an OpenMP structured block"); + error ("invalid branch to/from %s structured block", kind); } gsi_replace (gsi_p, gimple_build_nop (), false); diff --git gcc/testsuite/g++.dg/gomp/block-1.C gcc/testsuite/g++.dg/gomp/block-1.C index d2b8664..f4badaf 100644 --- gcc/testsuite/g++.dg/gomp/block-1.C +++ gcc/testsuite/g++.dg/gomp/block-1.C @@ -21,5 +21,5 @@ void foo() } } -// { dg-message "error: invalid branch to/from an OpenMP structured block" "" { target *-*-* } 7 } +// { dg-message "error: invalid branch to/from OpenMP structured block" "" { target *-*-* } 7 } // { dg-message "error: invalid entry to OpenMP structured block" "" { target *-*-* } 9 } diff --git gcc/testsuite/g++.dg/gomp/block-2.C gcc/testsuite/g++.dg/gomp/block-2.C index 17d98d8..02f5f83d 100644 --- gcc/testsuite/g++.dg/gomp/block-2.C +++ gcc/testsuite/g++.dg/gomp/block-2.C @@ -31,5 +31,5 @@ void foo() continue; } -// { dg-message "error: invalid branch to/from an OpenMP structured block" "" { target *-*-* } 14 } +// { dg-message "error: invalid branch to/from OpenMP structured block" "" { target *-*-* } 14 } // { dg-message "error: invalid entry to OpenMP structured block" "" { target *-*-* } 16 } diff --git gcc/testsuite/g++.dg/gomp/block-3.C gcc/testsuite/g++.dg/gomp/block-3.C index ff28175..bb54166 100644 --- gcc/testsuite/g++.dg/gomp/block-3.C +++ gcc/testsuite/g++.dg/gomp/block-3.C @@ -58,6 +58,6 @@ void foo() } } -// { dg-message "error: invalid branch to/from an OpenMP structured block" "" { target *-*-* } 21 } -// { dg-message "error: invalid branch to/from an OpenMP structured block" "" { target *-*-* } 26 } +// { dg-message "error: invalid branch to/from OpenMP structured block" "" { target *-*-* } 21 } +// { dg-message "error: invalid branch to/from OpenMP structured block" "" { target *-*-* } 26 } // { dg-message "error: invalid entry to OpenMP structured block" "" { target *-*-* } 30 } diff --git gcc/testsuite/g++.dg/gomp/block-5.C gcc/testsuite/g++.dg/gomp/block-5.C index 391f8b6..0aa23a4 100644 --- gcc/testsuite/g++.dg/gomp/block-5.C +++ gcc/testsuite/g++.dg/gomp/block-5.C @@ -14,4 +14,4 @@ void foo() } } -// { dg-message "error: invalid branch to/from an OpenMP structured block" "" { target *-*-* } 7 } +// { dg-message "error: invalid branch to/from OpenMP structured block" "" { target *-*-* } 7 } diff --git gcc/testsuite/g++.dg/gomp/target-1.C gcc/testsuite/g++.dg/gomp/target-1.C index b6ed4f8..767661f 100644 --- gcc/testsuite/g++.dg/gomp/target-1.C +++ gcc/testsuite/g++.dg/gomp/target-1.C @@ -28,5 +28,5 @@ foo (int x) } } -// { dg-error "invalid branch to/from an OpenMP structured block" "" { target *-*-* } 8 } +// { dg-error "invalid branch to/from OpenMP structured block" "" { target *-*-* } 8 } // { dg-error "invalid entry to OpenMP structured block" "" { target *-*-* } 10 } diff --git gcc/testsuite/g++.dg/gomp/target-2.C gcc/testsuite/g++.dg/gomp/target-2.C index 6a14f53..5a40dd4 100644 --- gcc/testsuite/g++.dg/gomp/target-2.C +++ gcc/testsuite/g++.dg/gomp/target-2.C @@ -28,5 +28,5 @@ foo (int x, int y) } } -// { dg-error "invalid branch to/from an OpenMP structured block" "" { target *-*-* } 8 } +// { dg-error "invalid branch to/from OpenMP structured block" "" { target *-*-* } 8 } // { dg-error "invalid entry to OpenMP structured block" "" { target *-*-* } 10 } diff --git gcc/testsuite/g++.dg/gomp/taskgroup-1.C gcc/testsuite/g++.dg/gomp/taskgroup-1.C index dcab0bb..a06edf1 100644 --- gcc/testsuite/g++.dg/gomp/taskgroup-1.C +++ gcc/testsuite/g++.dg/gomp/taskgroup-1.C @@ -28,5 +28,5 @@ foo (int x) } } -// { dg-error "invalid branch to/from an OpenMP structured block" "" { target *-*-* } 8 } +// { dg-error "invalid branch to/from OpenMP structured block" "" { target *-*-* } 8 } // { dg-error "invalid entry to OpenMP structured block" "" { target *-*-* } 10 } diff --git gcc/testsuite/g++.dg/gomp/teams-1.C gcc/testsuite/g++.dg/gomp/teams-1.C index ce40b55..05f1a7e 100644 --- gcc/testsuite/g++.dg/gomp/teams-1.C +++ gcc/testsuite/g++.dg/gomp/teams-1.C @@ -60,7 +60,7 @@ bar (int x) } } -// { dg-error "invalid branch to/from an OpenMP structured block" "" { target *-*-* } 8 } +// { dg-error "invalid branch to/from OpenMP structured block" "" { target *-*-* } 8 } // { dg-error "invalid entry to OpenMP structured block" "" { target *-*-* } 10 } -// { dg-error "invalid branch to/from an OpenMP structured block" "" { target *-*-* } 37 } +// { dg-error "invalid branch to/from OpenMP structured block" "" { target *-*-* } 37 } // { dg-error "invalid entry to OpenMP structured block" "" { target *-*-* } 39 } diff --git gcc/testsuite/gcc.dg/cilk-plus/jump-openmp.c gcc/testsuite/gcc.dg/cilk-plus/jump-openmp.c index 95e6b2d..6adabf4 100644 --- gcc/testsuite/gcc.dg/cilk-plus/jump-openmp.c +++ gcc/testsuite/gcc.dg/cilk-plus/jump-openmp.c @@ -11,7 +11,7 @@ void foo() { a[i] = b[i]; if (c == 5) - return; /* { dg-error "invalid branch to/from a Cilk Plus structured block" } */ + return; /* { dg-error "invalid branch to/from Cilk Plus structured block" } */ } } @@ -31,7 +31,7 @@ void baz() { bad1: #pragma omp parallel - goto bad1; /* { dg-error "invalid branch to/from an OpenMP structured block" } */ + goto bad1; /* { dg-error "invalid branch to/from OpenMP structured block" } */ goto bad2; /* { dg-error "invalid entry to OpenMP structured block" } */ #pragma omp parallel diff --git gcc/testsuite/gcc.dg/cilk-plus/jump.c gcc/testsuite/gcc.dg/cilk-plus/jump.c index 9ec3293..1ca886a 100644 --- gcc/testsuite/gcc.dg/cilk-plus/jump.c +++ gcc/testsuite/gcc.dg/cilk-plus/jump.c @@ -10,7 +10,7 @@ void foo() { a[i] = b[i]; if (c == 5) - return; /* { dg-error "invalid branch to.from a Cilk" } */ + return; /* { dg-error "invalid branch to/from Cilk Plus structured block" } */ } } @@ -23,5 +23,5 @@ void bar() a[i] = b[i]; } if (c == 6) - goto lab; /* { dg-error "invalid entry to Cilk Plus" } */ + goto lab; /* { dg-error "invalid entry to Cilk Plus structured block" } */ } diff --git gcc/testsuite/gcc.dg/gomp/block-1.c gcc/testsuite/gcc.dg/gomp/block-1.c index dd7fe77..e67e6c3 100644 --- gcc/testsuite/gcc.dg/gomp/block-1.c +++ gcc/testsuite/gcc.dg/gomp/block-1.c @@ -4,9 +4,9 @@ void foo() { bad1: #pragma omp parallel - goto bad1; // { dg-error "invalid branch" } + goto bad1; // { dg-error "invalid branch to/from OpenMP structured block" } - goto bad2; // { dg-error "invalid entry" } + goto bad2; // { dg-error "invalid entry to OpenMP structured block" } #pragma omp parallel { bad2: ; diff --git gcc/testsuite/gcc.dg/gomp/block-10.c gcc/testsuite/gcc.dg/gomp/block-10.c index 76ee397..69ae3c0 100644 --- gcc/testsuite/gcc.dg/gomp/block-10.c +++ gcc/testsuite/gcc.dg/gomp/block-10.c @@ -3,28 +3,28 @@ void foo(int i) { int j; - switch (i) // { dg-error "invalid entry" } + switch (i) // { dg-error "invalid entry to OpenMP structured block" } { #pragma omp parallel { case 0:; } } - switch (i) // { dg-error "invalid entry" } + switch (i) // { dg-error "invalid entry to OpenMP structured block" } { #pragma omp for for (j = 0; j < 10; ++ j) { case 1:; } } - switch (i) // { dg-error "invalid entry" } + switch (i) // { dg-error "invalid entry to OpenMP structured block" } { #pragma omp critical { case 2:; } } - switch (i) // { dg-error "invalid entry" } + switch (i) // { dg-error "invalid entry to OpenMP structured block" } { #pragma omp master { case 3:; } } - switch (i) // { dg-error "invalid entry" } + switch (i) // { dg-error "invalid entry to OpenMP structured block" } { #pragma omp sections { case 4:; @@ -32,7 +32,7 @@ void foo(int i) { case 5:; } } } - switch (i) // { dg-error "invalid entry" } + switch (i) // { dg-error "invalid entry to OpenMP structured block" } { #pragma omp ordered { default:; } diff --git gcc/testsuite/gcc.dg/gomp/block-2.c gcc/testsuite/gcc.dg/gomp/block-2.c index 4c56add..5c01463 100644 --- gcc/testsuite/gcc.dg/gomp/block-2.c +++ gcc/testsuite/gcc.dg/gomp/block-2.c @@ -11,9 +11,9 @@ void foo() bad1: #pragma omp for for (i = 0; i < 10; ++i) - goto bad1; // { dg-error "invalid branch" } + goto bad1; // { dg-error "invalid branch to/from OpenMP structured block" } - goto bad2; // { dg-error "invalid entry" } + goto bad2; // { dg-error "invalid entry to OpenMP structured block" } #pragma omp for for (i = 0; i < 10; ++i) { diff --git gcc/testsuite/gcc.dg/gomp/block-3.c gcc/testsuite/gcc.dg/gomp/block-3.c index b4530e9..3be15fb 100644 --- gcc/testsuite/gcc.dg/gomp/block-3.c +++ gcc/testsuite/gcc.dg/gomp/block-3.c @@ -18,16 +18,16 @@ void foo() #pragma omp section { bad1: ; } #pragma omp section - goto bad1; // { dg-error "invalid branch" } + goto bad1; // { dg-error "invalid branch to/from OpenMP structured block" } } #pragma omp sections { - goto bad2; // { dg-error "invalid branch" } + goto bad2; // { dg-error "invalid branch to/from OpenMP structured block" } } bad2:; - goto bad3; // { dg-error "invalid entry" } + goto bad3; // { dg-error "invalid entry to OpenMP structured block" } #pragma omp sections { bad3: ; diff --git gcc/testsuite/gcc.dg/gomp/block-4.c gcc/testsuite/gcc.dg/gomp/block-4.c index 61f490c..b2ef9b1 100644 --- gcc/testsuite/gcc.dg/gomp/block-4.c +++ gcc/testsuite/gcc.dg/gomp/block-4.c @@ -4,6 +4,6 @@ void foo() { #pragma omp critical { - return; // { dg-error "invalid branch" } + return; // { dg-error "invalid branch to/from OpenMP structured block" } } } diff --git gcc/testsuite/gcc.dg/gomp/block-5.c gcc/testsuite/gcc.dg/gomp/block-5.c index 741049f..7f3b37c 100644 --- gcc/testsuite/gcc.dg/gomp/block-5.c +++ gcc/testsuite/gcc.dg/gomp/block-5.c @@ -4,12 +4,12 @@ void foo() { #pragma omp master { - goto bad1; // { dg-error "invalid branch" } + goto bad1; // { dg-error "invalid branch to/from OpenMP structured block" } } #pragma omp master { bad1: - return; // { dg-error "invalid branch" } + return; // { dg-error "invalid branch to/from OpenMP structured block" } } } diff --git gcc/testsuite/gcc.dg/gomp/block-6.c gcc/testsuite/gcc.dg/gomp/block-6.c index 87e6392..fc9fdc8 100644 --- gcc/testsuite/gcc.dg/gomp/block-6.c +++ gcc/testsuite/gcc.dg/gomp/block-6.c @@ -4,6 +4,6 @@ void foo() { #pragma omp ordered { - return; // { dg-error "invalid branch" } + return; // { dg-error "invalid branch to/from OpenMP structured block" } } } diff --git gcc/testsuite/gcc.dg/gomp/block-7.c gcc/testsuite/gcc.dg/gomp/block-7.c index 2bc1cdb..6219e7e 100644 --- gcc/testsuite/gcc.dg/gomp/block-7.c +++ gcc/testsuite/gcc.dg/gomp/block-7.c @@ -6,15 +6,15 @@ void foo() for (i = 0; i < 10; ++i) { #pragma omp for - for (j = ({ continue; 0; }); // { dg-error "invalid branch" } - j < ({ continue; 10; }); // { dg-error "invalid branch" } - j += ({ continue; 1; })) // { dg-error "invalid branch" } + for (j = ({ continue; 0; }); // { dg-error "invalid branch to/from OpenMP structured block" } + j < ({ continue; 10; }); // { dg-error "invalid branch to/from OpenMP structured block" } + j += ({ continue; 1; })) // { dg-error "invalid branch to/from OpenMP structured block" } continue; #pragma omp for - for (j = ({ break; 0; }); // { dg-error "invalid branch" } - j < ({ break; 10; }); // { dg-error "invalid branch" } - j += ({ break; 1; })) // { dg-error "invalid branch" } + for (j = ({ break; 0; }); // { dg-error "invalid branch to/from OpenMP structured block" } + j < ({ break; 10; }); // { dg-error "invalid branch to/from OpenMP structured block" } + j += ({ break; 1; })) // { dg-error "invalid branch to/from OpenMP structured block" } break; // { dg-error "break" } } } diff --git gcc/testsuite/gcc.dg/gomp/block-8.c gcc/testsuite/gcc.dg/gomp/block-8.c index 3c717d9..f410070 100644 --- gcc/testsuite/gcc.dg/gomp/block-8.c +++ gcc/testsuite/gcc.dg/gomp/block-8.c @@ -7,5 +7,5 @@ int foo() #pragma omp parallel for for (i = 0; i < 10; ++i) - return 0; // { dg-error "invalid branch" } + return 0; // { dg-error "invalid branch to/from OpenMP structured block" } } diff --git gcc/testsuite/gcc.dg/gomp/block-9.c gcc/testsuite/gcc.dg/gomp/block-9.c index 9217cb7..2fae3de 100644 --- gcc/testsuite/gcc.dg/gomp/block-9.c +++ gcc/testsuite/gcc.dg/gomp/block-9.c @@ -3,7 +3,7 @@ void foo(int i) { int j; - switch (i) // { dg-error "invalid entry" } + switch (i) // { dg-error "invalid entry to OpenMP structured block" } { #pragma omp parallel { case 0:; } diff --git gcc/testsuite/gcc.dg/gomp/target-1.c gcc/testsuite/gcc.dg/gomp/target-1.c index 09e65bd..aaa6a14 100644 --- gcc/testsuite/gcc.dg/gomp/target-1.c +++ gcc/testsuite/gcc.dg/gomp/target-1.c @@ -5,9 +5,9 @@ foo (int x) { bad1: #pragma omp target - goto bad1; /* { dg-error "invalid branch" } */ + goto bad1; // { dg-error "invalid branch to/from OpenMP structured block" } - goto bad2; /* { dg-error "invalid entry" } */ + goto bad2; // { dg-error "invalid entry to OpenMP structured block" } #pragma omp target { bad2: ; @@ -21,7 +21,7 @@ foo (int x) { ok1: break; } } - switch (x) /* { dg-error "invalid entry" } */ + switch (x) // { dg-error "invalid entry to OpenMP structured block" } { #pragma omp target { case 0:; } diff --git gcc/testsuite/gcc.dg/gomp/target-2.c gcc/testsuite/gcc.dg/gomp/target-2.c index 546a1d0..3a7afc4 100644 --- gcc/testsuite/gcc.dg/gomp/target-2.c +++ gcc/testsuite/gcc.dg/gomp/target-2.c @@ -5,9 +5,9 @@ foo (int x, int y) { bad1: #pragma omp target data map(tofrom: y) - goto bad1; /* { dg-error "invalid branch" } */ + goto bad1; // { dg-error "invalid branch to/from OpenMP structured block" } - goto bad2; /* { dg-error "invalid entry" } */ + goto bad2; // { dg-error "invalid entry to OpenMP structured block" } #pragma omp target data map(tofrom: y) { bad2: ; @@ -21,7 +21,7 @@ foo (int x, int y) { ok1: break; } } - switch (x) /* { dg-error "invalid entry" } */ + switch (x) // { dg-error "invalid entry to OpenMP structured block" } { #pragma omp target data map(tofrom: y) { case 0:; } diff --git gcc/testsuite/gcc.dg/gomp/taskgroup-1.c gcc/testsuite/gcc.dg/gomp/taskgroup-1.c index e301efc..1997e0c 100644 --- gcc/testsuite/gcc.dg/gomp/taskgroup-1.c +++ gcc/testsuite/gcc.dg/gomp/taskgroup-1.c @@ -5,9 +5,9 @@ foo (int x) { bad1: #pragma omp taskgroup - goto bad1; /* { dg-error "invalid branch" } */ + goto bad1; // { dg-error "invalid branch to/from OpenMP structured block" } - goto bad2; /* { dg-error "invalid entry" } */ + goto bad2; // { dg-error "invalid entry to OpenMP structured block" } #pragma omp taskgroup { bad2: ; @@ -21,7 +21,7 @@ foo (int x) { ok1: break; } } - switch (x) /* { dg-error "invalid entry" } */ + switch (x) // { dg-error "invalid entry to OpenMP structured block" } { #pragma omp taskgroup { case 0:; } diff --git gcc/testsuite/gcc.dg/gomp/teams-1.c gcc/testsuite/gcc.dg/gomp/teams-1.c index 73c00de..ad5b100 100644 --- gcc/testsuite/gcc.dg/gomp/teams-1.c +++ gcc/testsuite/gcc.dg/gomp/teams-1.c @@ -5,9 +5,9 @@ foo (int x) { bad1: #pragma omp target teams - goto bad1; /* { dg-error "invalid branch" } */ + goto bad1; // { dg-error "invalid branch to/from OpenMP structured block" } - goto bad2; /* { dg-error "invalid entry" } */ + goto bad2; // { dg-error "invalid entry to OpenMP structured block" } #pragma omp target teams { bad2: ; @@ -21,7 +21,7 @@ foo (int x) { ok1: break; } } - switch (x) /* { dg-error "invalid entry" } */ + switch (x) // { dg-error "invalid entry to OpenMP structured block" } { #pragma omp target teams { case 0:; } @@ -34,9 +34,9 @@ bar (int x) bad1: #pragma omp target #pragma omp teams - goto bad1; /* { dg-error "invalid branch" } */ + goto bad1; // { dg-error "invalid branch to/from OpenMP structured block" } - goto bad2; /* { dg-error "invalid entry" } */ + goto bad2; // { dg-error "invalid entry to OpenMP structured block" } #pragma omp target #pragma omp teams { @@ -52,7 +52,7 @@ bar (int x) { ok1: break; } } - switch (x) /* { dg-error "invalid entry" } */ + switch (x) // { dg-error "invalid entry to OpenMP structured block" } { #pragma omp target #pragma omp teams