11c91d9bdSPeter Klausler! RUN: %python %S/../test_errors.py %s %flang -fopenmp -Werror -pedantic 23323a4bdSKiran Chandramohan! OpenMP Version 5.0 33323a4bdSKiran Chandramohan! 2.19.4.4 firstprivate Clause 43323a4bdSKiran Chandramohan! 2.19.4.5 lastprivate Clause 53323a4bdSKiran Chandramohan! 2.19.6.1 copyin Clause 63323a4bdSKiran Chandramohan! 2.19.6.2 copyprivate Clause 73323a4bdSKiran Chandramohan! If the list item is a polymorphic variable with the allocatable attribute, 83323a4bdSKiran Chandramohan! the behavior is unspecified. 93323a4bdSKiran Chandramohan 103323a4bdSKiran Chandramohansubroutine firstprivate() 113323a4bdSKiran Chandramohan class(*), allocatable, save :: x 123323a4bdSKiran Chandramohan 133323a4bdSKiran Chandramohan !PORTABILITY: If a polymorphic variable with allocatable attribute 'x' is in FIRSTPRIVATE clause, the behavior is unspecified 143323a4bdSKiran Chandramohan !$omp parallel firstprivate(x) 153323a4bdSKiran Chandramohan call sub() 163323a4bdSKiran Chandramohan !$omp end parallel 173323a4bdSKiran Chandramohan 183323a4bdSKiran Chandramohanend 193323a4bdSKiran Chandramohan 203323a4bdSKiran Chandramohansubroutine lastprivate() 213323a4bdSKiran Chandramohan class(*), allocatable, save :: x 223323a4bdSKiran Chandramohan 233323a4bdSKiran Chandramohan !PORTABILITY: If a polymorphic variable with allocatable attribute 'x' is in LASTPRIVATE clause, the behavior is unspecified 243323a4bdSKiran Chandramohan !$omp do lastprivate(x) 253323a4bdSKiran Chandramohan do i = 1, 10 263323a4bdSKiran Chandramohan call sub() 273323a4bdSKiran Chandramohan enddo 283323a4bdSKiran Chandramohan !$omp end do 293323a4bdSKiran Chandramohan 303323a4bdSKiran Chandramohanend 313323a4bdSKiran Chandramohan 323323a4bdSKiran Chandramohansubroutine copyin() 333323a4bdSKiran Chandramohan class(*), allocatable, save :: x 343323a4bdSKiran Chandramohan !$omp threadprivate(x) 353323a4bdSKiran Chandramohan 363323a4bdSKiran Chandramohan !PORTABILITY: If a polymorphic variable with allocatable attribute 'x' is in COPYIN clause, the behavior is unspecified 373323a4bdSKiran Chandramohan !$omp parallel copyin(x) 383323a4bdSKiran Chandramohan call sub() 393323a4bdSKiran Chandramohan !$omp end parallel 403323a4bdSKiran Chandramohan 413323a4bdSKiran Chandramohanend 423323a4bdSKiran Chandramohan 433323a4bdSKiran Chandramohansubroutine copyprivate() 443323a4bdSKiran Chandramohan class(*), allocatable, save :: x 453323a4bdSKiran Chandramohan !$omp threadprivate(x) 463323a4bdSKiran Chandramohan 47*666a6197SKiran Kumar T P !$omp single 483323a4bdSKiran Chandramohan call sub() 49*666a6197SKiran Kumar T P !PORTABILITY: If a polymorphic variable with allocatable attribute 'x' is in COPYPRIVATE clause, the behavior is unspecified 50*666a6197SKiran Kumar T P !$omp end single copyprivate(x) 513323a4bdSKiran Chandramohan 523323a4bdSKiran Chandramohanend 53