What problems have been fixed in PGI 2020?

Each release of the PGI compilers brings a number of technical corrections to problems discovered by PGI and by users. Submit problems found using our online technical support request form. PGI refers to all such reports as Technical Problem Reports , or TPRs.

The following table is a list of problems that have been fixed in each release. Descriptions as provided may be incomplete due to proprietary nature of the sample code. In such cases simple replacement examples may not be available.

Note: ICE stands for Internal Compiler Error.

TPR Version Affected
Symptoms /
28033 20.1 C/C++ LLVM opt mismatch compiling mpich 3.3.2
Corrected the compiler's handling of hidden thread-local variables
28031 20.1 C/C++ Add support for std::launder
Implemented std::launder
27996 20.1 Fortran ICE "transform_call:Array Expression can't be here" when passing an array expression to norm2
Corrected the handling of array expressions for NORM2
27946 20.1 Fortran ICE: llc invalid forward reference with SELECTED_INT_KIND
Corrected an entry in the virtual function table
27934 20.1 Accelerator User code causes pggpp2-llvm to segv when compiled with "-ta=telsa:nordc -Mcuda"
Corrected a coding error in the compiler
27910 20.1 Fortran ICE bitcast with differing sizes
Corrected how the compiler allocates certain local variables
27894 20.1 Accelerator Dwarf generation for static array gives double indirection
Corrected the compiler to generate correct LLVM metadata
27871 20.1 Fortran Overlapping data initialization with bind(C) leads to incorrectly initialized values
Corrected the LLVM code generator to handle initialization with BIND(C)
27850 20.1 C/C++ Bogus warning "offsetof applied to non-POD types is nonstandard"
Corrected the implementation of __builtin_offsetof
27840 20.1 Fortran ICE: Incompatible ILI with loop vectorization and real*8
Corrected the implementation of mixed-type vectorization
27816 20.1 Accelerator Application crashes in large kernel, blocksize (-1,1,1) gridsize (-2,1,1)
Increased the size of argptr_array to match the CUDA maximum
27790 20.1 Accelerator Using 64-bit integers in acc routines causes ptxas failure with -g
Corrected the generated ptx
27787 20.1 Accelerator CUDA Fortran ICE "Unsupported IPOPPAR"
Implemented IPOPPAR for CUDA Fortran
27724 20.1 Fortran Program terminates with runtime error when allocating already allocated array even with STAT
Corrected the runtime behavior to not terminate if STAT is present
27672 20.1 Fortran ICE "mark_ilitree: visit != val" new in 19.7
Corrected the implementation of mixed-type vectorization
27620 20.1 C/C++ ICE: OMP runtime scheduling processing error 0
Corrected the handling of the schedule clause.
27606 20.1 Accelerator A copy clause on loop construct overrides previous unstructured data movement
Corrected the compiler not to force a copy for certain reductions
27549 20.1 Fortran Syntax error with kind and underscore prefix
Corrected the lexical scanner
27508 20.1 C/C++ Multicore OpenACC application fails when target is tp=zen
Updated the pre-defined macros used with built-in intrinsics
27395 20.1 Fortran Overloading constructor yields undeclared derived type
Corrected the symbol table entry for derived-type constructors
27115 20.1 Fortran User code causes pgf901 to crash with a double free when using OpenMP
Corrected the bookkeeping for firstprivate
27078 20.1 Accelerator OpenACC invalid thread id with PGI_ACC_TIME=1
Corrected the thread-private declaration and the OpenACC runtime
26937 20.1 Fortran USE variable declared in other module is undefined in function declaration
Corrected the expansion of parameters
26930 20.1 Accelerator OpenACC kernel does not pick up new loop bounds
Corrected the compiler to better track changes in loop bounds
26838 20.1 Fortran Memory leak with allocatable types
Corrected the runtime to free components that were not freed in finalization
26715 20.1 Fortran Using "DEC ATTRIBUTES" directive from User's Guide example 11.7.1 causes pgf902 error
Corrected a system interface to Windows
26692 20.1 C/C++ Multiple definitions of the same prototype give error when "restrict" is used in square brackets
Corrected as part of the pgcc update
26626 20.1 Fortran Failure to pass argument to type-bound procedure with only an 'END' statement
Corrected the handling of tbp arguments
26402 20.1 Fortran Incorrect results with similarly named subroutine
Corrected an issue with overload resolution
26275 20.1 C/C++ OpenMPI 3.1.2 failing to build with PGI 18.7
Corrected as part of the pgcc upgrade
26263 20.1 C/C++ Improperly handling macro expansion with #elif
Corrected as part of the pgcc upgrade
26152 20.1 C/C++ Add symbol hiding via attribute "visibility" and compiler command line options
Implemented the GCC-compatible visibility attributes and command-line options
25526 20.1 C/C++ OpenACC reduction clauses give incorrect results with multicore
Corrected several issues with reduction clauses
25277 20.1 C/C++ Support for IBM C99 extension "__real__" and "__imag__" operators
Implemented the __real__ and __imag__ operators
24946 20.1 Fortran Pointers with strides causing copy-in errors.
Corrected the check for contiguous targets
24666 20.1 C/C++ Support for SSE 4.1 intrinsics
Implemented the SSE 4.1 intrinsics
24608 20.1 Fortran Behavior of -Ktrap signals in Fortran not consistent.
Corrected the behavior of -Ktrap signals when using the -Kieee option
24592 20.1 Accelerator OpenACC Add support for calling C99 Complex Intrinsics in device code.
Implemented the C99 complex intrinsic in device code
23962 20.1 Accelerator OpenACC with host_data and unstructured data region problems
Corrected how the compiler determines a region in on-device memory
22685 20.1 C/C++ Undefined reference to `_mm_cvtsi128_si64'
Implemented this intrinsic function
22324 20.1 C/C++ Missing intrinsics
Implemented _mm_cvtss_si64 and related intrinsic functions
21474 20.1 Fortran Reduction example on inner seq loop gets incorrect answers
Insure that reductions are not moved from parallel to sequential regions
20424 20.1 Fortran Requests support of BLOCK construct
Implemented the Fortran 2008 BLOCK construct
19681 20.1 Accelerator Using reductions with both a worker and vector loop fails
Corrected the compilers handling of mixed-parallelism reductions
14594 20.1 C/C++ Request for type-generic macros support in pgcc/pgc++
Corrected as part of the pgcc upgrade
3883 20.1 C/C++ Example does not accept arrays subscript declarations in prototypes
Corrected as part of the pgcc upgrade
Click me
Cookie Consent

This site uses cookies to store information on your computer. See our cookie policy for further details on how to block cookies.