From: Tobias Burnus Date: Wed, 22 Feb 2023 11:35:29 +0000 (+0100) Subject: Fix: Fortran/OpenMP: align/allocator modifiers to the allocate clause X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cbd92239ae10fdc8abc69355fd4397473cdf5950;p=thirdparty%2Fgcc.git Fix: Fortran/OpenMP: align/allocator modifiers to the allocate clause When merging r13-4584-gb2e1c49b4a4 to OG12 as commit 58e0579ed87, the 'align' handling seemingly ended up in the wrong clause. (Result: libgomp.fortran/allocate-2a.f90 FAILED; now fixed.) gcc/fortran/ * trans-openmp.cc (gfc_trans_omp_clauses): Move align modifier handling from OMP_LIST_ALLOCATOR to OMP_LIST_ALLOCATE. --- diff --git a/gcc/fortran/ChangeLog.omp b/gcc/fortran/ChangeLog.omp index f6ee8726c8da..672bc02e2f61 100644 --- a/gcc/fortran/ChangeLog.omp +++ b/gcc/fortran/ChangeLog.omp @@ -1,3 +1,8 @@ +2023-02-22 Tobias Burnus + + * trans-openmp.cc (gfc_trans_omp_clauses): Move align modifier + handling from OMP_LIST_ALLOCATOR to OMP_LIST_ALLOCATE. + 2023-02-15 Tobias Burnus Backported from master: diff --git a/gcc/fortran/trans-openmp.cc b/gcc/fortran/trans-openmp.cc index de42fe48de4e..9188a31dcbfa 100644 --- a/gcc/fortran/trans-openmp.cc +++ b/gcc/fortran/trans-openmp.cc @@ -4104,6 +4104,14 @@ gfc_trans_omp_clauses (stmtblock_t *block, gfc_omp_clauses *clauses, } OMP_CLAUSE_ALLOCATE_ALLOCATOR (node) = allocator_; } + if (n->u.align) + { + tree align_; + gfc_init_se (&se, NULL); + gfc_conv_expr (&se, n->u.align); + align_ = gfc_evaluate_now (se.expr, block); + OMP_CLAUSE_ALLOCATE_ALIGN (node) = align_; + } omp_clauses = gfc_trans_add_clause (node, omp_clauses); } } @@ -4126,14 +4134,6 @@ gfc_trans_omp_clauses (stmtblock_t *block, gfc_omp_clauses *clauses, allocator_ = gfc_evaluate_now (se.expr, block); OMP_ALLOCATE_ALLOCATOR (node) = allocator_; } - if (n->u.align) - { - tree align_; - gfc_init_se (&se, NULL); - gfc_conv_expr (&se, n->u.align); - align_ = gfc_evaluate_now (se.expr, block); - OMP_CLAUSE_ALLOCATE_ALIGN (node) = align_; - } omp_clauses = gfc_trans_add_clause (node, omp_clauses); } }