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 /
28139 20.4 All LLVM vector length mismatch
Corrected the conditional vectorizer for size differences between operands and masks
28252 20.4 All Unknown variable references linking with -Mipa and -mp
Corrected the setting for arguments to outlined functions
28184 20.4 All LLVM opt use of undefined value with -fast
Corrected the inlining of functions with VLAs
28169 20.4 C/C++ ICE building MPICH 3.3.2: read_memory_region: not all expected entries were read
Corrected the folding of statement-expressions
28168 20.4 Fortran pgfortran allows private attribute in public namelist
Added a check under the -Mstandard flag.
28112 20.4 Accelerator pgnvd fails if user has non-default named GNU compilers (i.e. gcc is renamed)
Updated makelocalrc to handle non-default named GNU compilers
28085 20.4 C/C++ std::byte fails equality assertion
Corrected the underlying type to be signed
28078 20.4 Accelerator Switch statement in OpenACC compute region is off-by one
Corrected the generation of jump tables in the C compiler
28053 20.4 Fortran User code causes pgf901 to hang in "subr_call2" at line 3705 of semfunc.c
Corrected a coding error in pgf901
28047 20.4 Accelerator OpenMP redeclaration error w/ for loop index variable declaration, private clause
Corrected the handling of scopes for index variables
28025 20.4 All Autoinline optimization gives wrong answers
Corrected the def/use chains for complex operands
28014 20.4 Accelerator OpenACC ICE - "Internal accelerator LILI consistency check failure"
Corrected the generation of LILIs
28013 20.4 Accelerator OpenACC application fails "Unknown variable ref" when performing a struct copy
Corrected the handling in invariant bounds
27994 20.4 Fortran Allocating an array of a derived type in a submodule gives an undefined reference error
Corrected the compiler to correctly handle derived types defined in submodules
27930 20.4 Accelerator Application for loop w/ compound condition zero-trip test only checks second condition
Corrected the handling of zero-trip loops that are not countable
27876 20.4 Fortran Significant performance deficit with PGI when using "transfer"
Greatly improved the performance of TRANSFER for contiguous arrays
27786 20.4 Accelerator OpenACC with if statements and generation of kernels
Corrected the computation of use-def chains
27685 20.4 Fortran Improper handling of integer underflow
Corrected the intrinsic functions
27432 20.4 Accelerator OpenACC code gets wrong results due to bad initial loop bounds index
Corrected the computation of use-def chains
27427 20.4 Accelerator Application test fails when compiled with OpenMP
Corrected the compiler to mark certain indexes as internal
27311 20.4 Fortran Failure to parse assumed length character and pointer on dummy arguments
Corrected the compiler to allow assumed shape character array actual argument to be passed to assumed length dummy argument.
26926 20.4 Fortran ICE "interf:new_symbol, symbol not found" when module uses ENTRY from other module
Corrected the handling of symbols in a module that are not to be brought in with a USE ONLY statement
26781 20.4 Fortran Undefined symbol "_m2_f1_"
Corrected the name selection when the type bound procedure and internal procedure have the same name
26514 20.4 C/C++ Failure to convert explicit 0 to NULL pointer in ternary operator
Updated the C compiler
26476 20.4 Fortran Request for adding debug information for function inlining
Implemented for Fortran
26209 20.4 Accelerator acc_copyin not using "present_or" semantics
Updated the compiler to use present_or semantics
25056 20.4 Accelerator OpenACC: User wavefront code gets wrong answers, loop bounds calculated incorrectly
Corrected the computation of use-def chains
24592 20.4 Accelerator OpenACC - Add support for calling C99 Complex Intrinsics in device code
Added support for C99 complex intrinsics
22339 20.4 Accelerator Code gets wrong answer when loop bounds variable assigned in conditional expr
Corrected the computation of use-def chains
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.