Correct the reported line number in Fortran combined OpenACC directives
gcc/fortran/ * trans-openmp.c (gfc_trans_oacc_combined_directive): Set the location of combined acc loops. gcc/testsuite/ * gfortran.dg/goacc/combined-directives-3.f90: New file. Reviewed-by: Thomas Schwinge <thomas@codesourcery.com> From-SVN: r266924
This commit is contained in:
parent
65b5f49699
commit
5d62bfc3e7
@ -1,3 +1,8 @@
|
||||
2018-12-09 Cesar Philippidis <cesar@codesourcery.com>
|
||||
|
||||
* trans-openmp.c (gfc_trans_oacc_combined_directive): Set the
|
||||
location of combined acc loops.
|
||||
|
||||
2018-12-09 Thomas Schwinge <thomas@codesourcery.com>
|
||||
|
||||
* openmp.c (resolve_oacc_loop_blocks): Remove checking of OpenACC
|
||||
|
@ -3878,6 +3878,7 @@ gfc_trans_oacc_combined_directive (gfc_code *code)
|
||||
gfc_omp_clauses construct_clauses, loop_clauses;
|
||||
tree stmt, oacc_clauses = NULL_TREE;
|
||||
enum tree_code construct_code;
|
||||
location_t loc = input_location;
|
||||
|
||||
switch (code->op)
|
||||
{
|
||||
@ -3939,12 +3940,12 @@ gfc_trans_oacc_combined_directive (gfc_code *code)
|
||||
else
|
||||
pushlevel ();
|
||||
stmt = gfc_trans_omp_do (code, EXEC_OACC_LOOP, pblock, &loop_clauses, NULL);
|
||||
protected_set_expr_location (stmt, loc);
|
||||
if (TREE_CODE (stmt) != BIND_EXPR)
|
||||
stmt = build3_v (BIND_EXPR, NULL, stmt, poplevel (1, 0));
|
||||
else
|
||||
poplevel (0, 0);
|
||||
stmt = build2_loc (input_location, construct_code, void_type_node, stmt,
|
||||
oacc_clauses);
|
||||
stmt = build2_loc (loc, construct_code, void_type_node, stmt, oacc_clauses);
|
||||
gfc_add_expr_to_block (&block, stmt);
|
||||
return gfc_finish_block (&block);
|
||||
}
|
||||
|
@ -1,3 +1,7 @@
|
||||
2018-12-09 Thomas Schwinge <thomas@codesourcery.com>
|
||||
|
||||
* gfortran.dg/goacc/combined-directives-3.f90: New file.
|
||||
|
||||
2018-12-09 Cesar Philippidis <cesar@codesourcery.com>
|
||||
|
||||
* c-c++-common/goacc/combined-directives-3.c: New test.
|
||||
|
@ -1,5 +1,6 @@
|
||||
/* Verify the accuracy of the line number associated with combined
|
||||
constructs. */
|
||||
/* See also "../../gfortran.dg/goacc/combined-directives-3.f90". */
|
||||
|
||||
int
|
||||
main ()
|
||||
|
26
gcc/testsuite/gfortran.dg/goacc/combined-directives-3.f90
Normal file
26
gcc/testsuite/gfortran.dg/goacc/combined-directives-3.f90
Normal file
@ -0,0 +1,26 @@
|
||||
! Verify the accuracy of the line number associated with combined constructs.
|
||||
! See "../../c-c++-common/goacc/combined-directives-3.c".
|
||||
|
||||
subroutine test
|
||||
implicit none
|
||||
integer x, y, z
|
||||
|
||||
!$acc parallel loop seq auto ! { dg-error "'seq' overrides other OpenACC loop specifiers" }
|
||||
do x = 0, 10
|
||||
!$acc loop
|
||||
do y = 0, 10
|
||||
end do
|
||||
end do
|
||||
!$acc end parallel loop
|
||||
|
||||
!$acc parallel loop gang auto ! { dg-error "'auto' conflicts with other OpenACC loop specifiers" }
|
||||
do x = 0, 10
|
||||
!$acc loop worker auto ! { dg-error "'auto' conflicts with other OpenACC loop specifiers" }
|
||||
do y = 0, 10
|
||||
!$acc loop vector
|
||||
do z = 0, 10
|
||||
end do
|
||||
end do
|
||||
end do
|
||||
!$acc end parallel loop
|
||||
end subroutine test
|
Loading…
Reference in New Issue
Block a user