What problems have been fixed in PGI 2019?

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 /
26950 19.3 Fortran Constant argument parameter gets written even when guarded
Tightened the compiler rules for optimizing conditional moves
26889 19.3 Accelerator CUDA changed cudaPointerAttributes struct in CUDA 10; CUF needs to follow
Updated the CUF module with the new layout
26885 19.3 Fortran FPE with write
Avoided generating a vcvttsd2si instruction because it causes a floating point exception
26878 19.3 Fortran Value does not match function result type i64
Corrected the implementation of BIND( C ) for i64 function results
26877 19.3 Fortran ICE with ILM file with -Mllvm
Corrected the handling of module files for compilers using the LLVM code generator
26817 19.3 Accelerator A struct member int as a kernel loop size prevents parallel execution
Improved the analysis of loop index expression
26784 19.3 Accelerator Run time error "ALLOCATE: copyin Symbol Memcpy FAILED:13" when compiling with "-tp knl"
Removed device code support for Knights Landing host systems.
26718 19.3 Accelerator Generated gpu code omits comparison within MERGE intrinsic
Corrected a bug in the optimizer
26596 19.3 Accelerator ICE "parse integer constant must have integer type"
Corrected a type error in the compiler
25243 19.3 Accelerator Using type members in host_data mangles the type's parent address
Corrected ordering of mangling for array descriptors
24145 19.3 Accelerator ICE "size_of: attempt to get size of assumed size character"
Corrected the compiler to handle this case
24041 19.3 Accelerator Intercept cudaSetDevice calls
Implemented synchronization between cudaSetDevice and acc_set_device_num
22166 19.3 Accelerator User code gets wrong answers when using maxval within another loop
Corrected the handling of this reduction
19674 19.1 Fortran ICE "Errors in Lowering" with contained subroutine in module
Corrected the compiler
20337 19.1 C/C++ OSX gives directory not found warning when linking with -fPIC
Remove the obsolete library libso from the command line
20425 19.1 C/C++ User requests PGI-compiled MAGMA library
The MAGMA libraries are available for download on pgicompilers.com
24234 19.1 CUDA Fortran Managed memory at module scope gets undefined references
Add symhandle copyin and copyout routines to the cudafor runtime
24263 19.1 Fortran ICE "get_const_from_ast: can't get const value"
Handle more cases of constant scalar expressions in parameter statements
24317 19.1 Accelerator GPU code generation is missing zero-trip test causing wrong answers in user code
Corrected the code generator
25041 19.1 Fortran Performance differences with pointers in structs and array syntax
Enhanced the compiler pointer disambiguation code to better handle structs
25957 19.1 Accelerator OpenACC RFE: recognize __finite routines
26016 19.1 Fortran An include file causes a line length failure when the source file is deep in the source tree
Updated the compiler to accommodate much longer paths
26065 19.1 Fortran Interface constructor fails when renaming
Corrected the compiler to recognize the case where a constructor is being renamed
26066 19.1 Accelerator With -ta=multicore, ICE: size_of: attempt to size assumed size character 0
Corrected the compiler to handle the size_of cases when compiling for multicore
26097 19.1 C/C++ Using -fPIC, a matrix matrix multiply causes an ICE
Implemented GCC style -mask=att support
26187 19.1 Fortran Support OpenMP 4.0 SEQ_CST qualifier
Added support for SEQ_CST to the compiler
26191 19.1 Accelerator OpenACC: runtime failure temp array not present due to -Mallocatable=03
With -Mallocatable=03, the runtime now recognizes that temps are created on the device
26274 19.1 Fortran ICE: interf:new_symbol not found with submodules
Corrected the internal handling of separate module procedures and dummy arguments
26282 19.1 Accelerator Using managed memory with Thrust causes error header file errors
Extend the C solution for using Thrust with OpenACC to C++
26289 19.1 Accelerator Managed memory getting undefined reference to pgi_delete_managed in device code
Corrected how the compiler handles passing pointers to memory-allocation functions
26300 19.1 Fortran ICE: compiling libxc-3.0.0 :: Errors in Lowering
Corrected the compiler to handle complex dummy parameters to c_associated
26327 19.1 Fortran ICE: missing subtype for pointer datatype 68
Corrected the handling of a CHARACTER type with the same name as its enclosing subprogram
26366 19.1 C/C++ Code fails with a Boost include
Prevent the compiler from generating code in a non-evaluated context
26376 19.1 C/C++ Compiler fails with an internal error
Corrected the internal error in the compiler
26403 19.1 Fortran Found a problem with derived type data initialization
Corrected the compiler to correctly handle complex cases of type-descriptor initialization
26410 19.1 Fortran Segfault in type-bound function with pointer return value
Corrected the compiler to track dummy argument descriptors
26470 19.1 Accelerator C++ code fails at run time
Corrected the compiler to handle cases where arrays assigned in a loop are arriving to the kernel as live
26540 19.1 Fortran ICE: Operand type mismach for AVX instructions
When using -Mlarge_arrays, change the compiler to carefully track the types used to values
26550 19.1 Accelerator acc kernel from std::thread has an invalid context
The code worked well with -mp, so in PGI 19.1, all OpenACC support libraries are compiled with -mp
26552 19.1 Fortran A derived type C binding fails for a C++ object
Pass interface objects by value, not by reference; note pointers are passed by value as addresses
26588 19.1 C/C++ Missing -Meh_frame option for OpenPOWER
Implemented the -Meh_frame and -Mnoeh_frame options for OpenPOWER
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.