From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 8BE7F3857B89; Fri, 4 Nov 2022 08:31:32 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 8BE7F3857B89 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1667550692; bh=VLspRuuM+LsAUo8CAbn0GS2mIS6JqiVNbOtPUPiD29E=; h=From:To:Subject:Date:In-Reply-To:References:From; b=aHbeaVafVxENNYzysBo2ckJ8jSF+Oal+LkQbgA18BhQncsbfR/0d0D8YBLn3gI377 JlPi/Vwx9rtU32n2U93PaeTsjCOlRZ0wXk8aff4jIcUf9znTuc7tnpDOD1Pq1vJOWO BTKeLKViC6pWQ1q2umnLoTVLN+N2N9VLgVaiefZA= From: "cvs-commit at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug c/107001] ICE in expand_gimple_stmt_1, at cfgexpand.cc:4017 since r9-3941-g28567c40e2c7c88e Date: Fri, 04 Nov 2022 08:31:15 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: c X-Bugzilla-Version: 13.0 X-Bugzilla-Keywords: ice-on-valid-code, openmp X-Bugzilla-Severity: normal X-Bugzilla-Who: cvs-commit at gcc dot gnu.org X-Bugzilla-Status: ASSIGNED X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: jakub at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 List-Id: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D107001 --- Comment #5 from CVS Commits --- The releases/gcc-11 branch has been updated by Jakub Jelinek : https://gcc.gnu.org/g:8693cafd8975364ef9b409c18ddfc233e66345d8 commit r11-10360-g8693cafd8975364ef9b409c18ddfc233e66345d8 Author: Jakub Jelinek Date: Sat Sep 24 09:24:26 2022 +0200 openmp: Fix ICE with taskgroup at -O0 -fexceptions [PR107001] The following testcase ICEs because with -O0 -fexceptions GOMP_taskgroup_end call isn't directly followed by GOMP_RETURN statement, but there are so= me conditionals to handle exceptions and we fail to find the correct GOMP_RETURN. The fix is to treat taskgroup similarly to target data, both of these constructs emit a try { body } finally { end_call } around the construct's body du= ring gimplification and we need to see proper construct nesting during gimplification and omp lowering (including nesting of regions checks), but during omp expansion we don't really need their nesting anymore, all we need is emit somethi= ng at the start of the region and the end of the region is the end API call w= e've already emitted during gimplification. For target data, we weren't add= ing GOMP_RETURN statement during omp lowering, so after that pass it is tre= ated merely like stand-alone omp directives. This patch does the same for taskgroup too. 2022-09-24 Jakub Jelinek PR c/107001 * omp-low.c (lower_omp_taskgroup): Don't add GOMP_RETURN statem= ent at the end. * omp-expand.c (build_omp_regions_1): Clarify GF_OMP_TARGET_KIND_DATA is not stand-alone directive. For GIMPLE_OMP_TASKGROUP, also d= on't update parent. (omp_make_gimple_edges) : Reset cur_region back after new_omp_region. * c-c++-common/gomp/pr107001.c: New test. (cherry picked from commit ad2aab5c816a6fd56b46210c0a4a4c6243da1de9)=