What problems have been fixed in PGI 2016?

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
Component
Symptoms /
Actions
23120 16.10 Fortran DEFAULT(NONE) errors are reported for THREADPRIVATE variables
Corrected the processing of THREADPRIVATE variables declared in a module
23088 16.10 Fortran Windows OpenMP program linked -Bdynamic fails with the error, "invalid thread id"
Corrected the DLLs associated with OpenMP execution
23069 16.10 Fortran NAMELIST I/O fails when the group contains a POINTER object
Corrected the processing of a module NAMELIST containing a POINTER object
23018 16.10 PGI Accelerator OpenACC: pgc++ compilation fails on an acc pragma containing the "wait" and "if_present" clauses
Corrected the handling of the "if_present" clause
22992 16.10 Fortran pgfortran reports the error, "Keyword form of argument illegal in this context for x"
Corrected the keyword argument form of C_LOC.
22636 16.10 PGI Accelerator OpenACC: Improve cache utilization with more threads
Corrected the accelerator code generator for determining the number of threads used to load the shared memory and how to divide the work across those threads
22531 16.10 PGI Accelerator pgfortran -ta=tesla -Minline fails with "Common block variables are not supported in acc routine"
Corrected the inlining of module routines marked acc routine containing use-associated variables
22505 16.10 PGI Accelerator OpenACC: Errors occur with functions returning struct
Corrected the accelerator code generator for returning the value of a struct function and passing structs as arguments
22493 16.10 PGI Accelerator OpenACC: pgfortran reports the error, "parse invalid cast opcode for cast from 'double' to 'double*'", in a device routine
Corrected the accelerator code generator when processing expressions containing uses of complex variables
22450 16.10 PGI Accelerator OpenACC: pgc++ reports the error, "compiler failed to translate accelerator region ... Unsupported local variable"
Corrected the accelerator code generator when inlining functions containing struct pointer arguments
21870 16.10 PGI Accelerator OpenACC: atomic update containing multiple assignment statements
Corrected the compiler to report an error if more than one statement appears in an update construct
22832 16.9 Fortran pgfortran reports the error, "Cannot override PUBLIC type bound procedure with PRIVATE type bound procedure"
Corrected the application of the PRIVATE statement after CONTAINS in a derived type
22816 16.9 C/C++ netcdf-cxx-4.4.3.0 fails to configure
Corrected the implementation of the switch, -nostdlib
22788 16.9 Fortran pgfortran derived type formatted output fails
Corrected the processing of character constants appearing in a FORMAT statement before the DT edit specifier
22786 16.9 Fortran Error with common blocks appearing in a module contained subprogram
Corrected the declaration of a common block in a module procedure when a member appears in the declaration of an adjustable array
22781 16.9 PGI Accelerator OpenACC: pgcc -acc reports the error, "Internal compiler error. lili redefinition."
Corrected the acc load/store struct optimization
22775 16.9 OpenMPI OpenMPI mpif90 fails on some systems
Corrected the build of opal_wrapper which is invoked by the MPI drivers, such as mpif90 and mpicc
22711 16.9 64-bit C/C++ pgcc reports the error, "Non-constant expression in initializer", for math.h's INFINITY
Corrected the handling of INFINITY appearing in multiple initializers
22709 16.9 64-bit Fortran pgfortran TYPE(C_PTR) function returns an incorrect value
Corrected the return of TYPE(C_PTR) function to be a pointer value
22701 16.9 C/C++ pgc++ -E fails on files with the .hpp suffix
Added .hpp and .h as suffixes for c++ source files
22597 16.9 PGI Accelerator OpenACC loop count failure when the count is a variable appearing as an actual argument
Corrected the computation of loop count expressions containing variables which also appear as actual arguments
22581 16.9 PGI Accelerator pgfortran -acc compilation fails on code from the FUN3D application suite
Corrected an acc optimization error
22579 16.9 Fortran pgfortran initialization of a component array is incorrect
Corrected the initialization of a component array in a parameterized derived type whose extents contain length type parameters
22560 16.9 Fortran pgfortran reports the error, "Internal compiler error. Errors in Lowering", for a parameterized derived type
Corrected the declaration of a component array in a parameterized derived type whose extents uses length type parameters
22531 16.9 PGI Accelerator pgfortran -acc -Minline reports the error, "Common block variables are not supported in acc routine"
Corrected the inlining of routines containing module variables with the DEVICE attribute
22505 16.9 PGI Accelerator pgcc -acc reports errors with struct arguments or functions returning structs
Corrected passing structs to device routines and calling struct-valued device routines
22461 16.9 Fortran pgfortran fails on test containing c_loc() and c_f_pointer()
Corrected the processing of c_loc() appearing as an actual argument to c_f_pointer()
22181 16.9 Fortran pgfortran reports the error, "Array array should be declared SEQUENCE", when !DIR$ IGNORE_TKR is used
Corrected the application of !DIR$ IGNORE_TKR to an assumed-size array of a subroutine specified in a generic interface
22765 16.7 Fortran pgfortran reports the error, "Left hand side of assignment cannot be polymorphic"
Corrected the processing of TYPEIS within a SELECT YPE of a CLASS object
22694 16.7 PGI Accelerator OpenACC test fails when the vector_length clause is present
Corrected the handling of an OpenACC region containing a vector_lengh clause and a loop nest with the collapse clause
22640 16.7 PGI Accelerator OpenACC pgc++ test fails with an illegal address error
Corrected the handling of a "this" pointer with the "const" specifier in data directives
22723 16.7 Licensing Spurious licensing errors may occur when using a non-accelerator license
Corrected the licensing error message when the number of simultaneous compiles exceeds the allowed limit
22694 16.7 PGI Accelerator OpenACC test fails when the vector_length clause is present
Corrected the handling of an OpenACC region containing a vector_lengh clause and a loop nest with the collapse clause
22678 16.7 Fortran pgfortran reports an error for TYPEIS(double precision)
Corrected the processing of TYPEIS of the types, DOUBLE PRECISION and DOUBLE COMPLEX when the source form is freeform
22657 16.7 Fortran pgfortran test fails when compiled -O
Corrected a loop fusion error of consecutive array assignments
22639 16.7 Installation Install of Open MPI fails
Corrected the PGI CDK install script for OpenMPI
22614 16.7 Fortran pgfortran reports the error "Internal compiler error. fill_argt: dimensionality doesn't match"
Corrected an error with source allocation when the source expression is an array with a vector subscript
22598 16.7 Fortran pgfortran incorrectly reports end-of-file for a non-advancing formatted read
Corrected the detection of an end-of-record versus an end-of-file when performing a non-advancing formatted read operation
22587 16.7 PGI Accelerator OpenACC IF(ACC_On_Device(ACC_Device_Not_Host)) fails
Corrected the host and device processing of the IF(ACC_on_DEVICE()) conditional
22527 16.7 PGI Accelerator pgc++ code causes the compiler to fault
Corrected a memory error when compiling a c++ function with a very long name
22479 16.7 PGI Accelerator OpenACC execution error occurs for code using a gang private array in CUDA shared memory
Corrected how values were sent to shared memory for acc kernels
22463 16.7 Fortran pgfortran code containing generic type bound procedures faults during execution
Corrected the processing of a generic type procedure whose implementation is a module subprogram
22454 16.7 PGI Accelerator Automatic arrays in an ACC routine vector are not optimally placed
Corrected the default allocation of automatic arrays to be consistent with the allocation of fixed-size arrays
22434 16.7 PGI Accelerator OpenACC: Using -Ktrap=fp with PGI_ACC_TIME=1 triggers a float point exception in the CUPTI library
Corrected the failure in CUDA version 8.0
22384 16.7 Fortran pgfortran compilation fails to complete at -O
Corrected the data flow analysis of a subprogram containing a large number of branches produced from multiple arithmetic IFs and computed GOTOs
22313 16.7 Fortran pgfortran fails to optimize loops containing certain conversions
Improved the vectorizer to optimize loops containing multiple uses of the SNGL intrinsic
21969 16.7 C/C++ pgc++ reports an error for the use of the ! (not) operator in an OpenACC and OpenMP if clause
Corrected the parsing of the expression in an if clause
21527 16.7 Fortran pgfortran compilation faults with -fast
Corrected the data dependency analysis when attempting to fuse loops
20747 16.7 PGI Accelerator OpenACC pgc++ fails to compile -O3
Corrected the handling of the use of the libm floor function
20694 16.7 PGI Accelerator OpenACC c/c++ struct containing a pointer to a device address is not copied back to the host
Corrected the data sharing analysis for structs assigned in a parallel loop
17573 16.7 CUDA Fortran CUDA Fortran does not allow the use of transfer intrinsic in device code
Added the support for the transfer intrinsic to the compiler and run-time
22525 16.5 PGI Accelerator pgc++ -acc reports the error, "nvvmCompileProgram error: 9 ... parse expected '=' after instruction name"
Corrected an overflow in the generated code for the device
22524 16.5 Fortran pgfortran I/O fails with "illegal asynchronous I/O operation"
Corrected the I/O run-time to handle asynchronous I/O on direct access files
22523 16.5 Fortran pgfortran reports the error, "Multiple declaration for symbol …"
Corrected the processing of an explicit private/public statement of an entity whose name is the same as a use-associated type bound procedure
22520 16.5 Fortran pgfortran file permissions are readwrite for OPEN with STATUS='OLD and ACTION='READ'
Set the file permissions to readonly for existing files opened for 'READ'
22514 16.5 PGI Accelerator OpenACC min reduction fails
Corrected the handling of a reduction which appears in a reduction clause of the loop and is auto-detected by the compiler
22502 16.5 Documentation -Bstatic may fail to produce a static executable with -mp or -mp=numa
Updated the Linux Portability section in the User's Guide to document the limitation of -Bstatic and -mp
22498 16.5 64-bit Fortran pgfortran reports the error, "Lowering Error: nonconstant upper bound for dimension 0"
Corrected the processing of an ASSOCIATE expression consisting of a member whose parent is an array section
22497 16.5 64-bit Fortran pgfortran reports an error with ASSOCIATE
Corrected the processing of an ASSOCIATE expression which contains a whole array section
22487 16.5 PGI Accelerator OpenACC reduction fails when using managed data
Corrected the handling of a reduction which appears in a reduction clause of the loop and is auto-detected by the compiler
22478 16.5 64-bit Fortran pgfortran fails to compile code containing use-associated generics
Corrected resolving references of generics interfacing to module procedures
22477 16.5 PGI Accelerator Error in OpenACC profiling interface
Corrected the definitions of acc_devapi_t and devapi
22472 16.5 Fortran pgfortran maxloc fails
Corrected the evaluation of maxloc when the mask is present and false and the rank of the input array is 1
22449 16.5 64-bit Fortran OpenACC problems with the cache directive
Corrected the handling of whole arrays and variable size arrays appearing in the cache directive
22427 16.5 Fortran pgfortran allocate error of a polymorphic type
Corrected the handling of the MOLD specifier in the ALLOCATE statement
22419 16.5 PGI Accelerator OpenACC reports the error, "Procedures called in a compute region must have acc routine information: pgf90_alloc04p"
Corrected the handling of the calls to the pinned allocate and deallocate routines
22417 16.5 Installation User scripts and configure steps expect pgCC
pgCC is no longer installed; uses of pgCC need to be replaced with pgc++
22363 16.5 MPI Problem with the Open MPI installation
Corrected the install script to properly substitute the Open MPI components
22347 16.5 PGI Accelerator pgcc -ta=multicore reports the error, "Internal compiler error. unexpected reduction operator 154"
Corrected the implementation of reductions for unsigned int and unsigned long data types
22346 16.5 PGI Accelerator pgcc -ta=multicore reports the error, "PGI Accelerator restriction: array accessed with too many dimensions, possibly due to inlining"
Corrected the processing of array sections in acc regions when targeting multicore
22341 16.5 MPI Open MPI prints warnings if the CUDA or OFED libraries are not installed
Added the necessary components to the installation required to support Open MPI
22293 16.5 Fortran pgfortran reports the error, "Internal compiler error. mk_mem_ptr_shape: lwb not sdsc"
Corrected the processing of derived types and type bound procedures where multiple types contain a component with the same name
22280 16.5 Fortran pgfortran reports the error, "Illegal use of derived type" when using inherited class assignments
Corrected the processing of the assignment operator overloaded across multiple modules
22121 16.5 PGI Accelerator Excessive compilation time with OpenACC.
Improved the compile-time of the algorithms used for array section analysis
21910 16.5 Fortran OpenMP example fails to execute
Corrected the implementation for allocatable objects appearing in the copyin clause
21177 16.5 C/C++ pgcc reports the error "Sizeof dimensionless array required" for VLA pointers
Corrected pointer arithmetic on VLA pointers
22420 16.4 Fortran maxloc() fails when c/c++ programs are mixed with fortran
Corrected the setup of maxloc() when the c/c++ program calls fortran subprograms
22403 16.4 Fortran pgfortran emits the message, "Lowering error" "bad ast optype in expression"
Corrected the evaluation of the sum intrinsic when it appears in the right-hand side of a pointer assignment
22368 16.4 C++ Use of -pgcpplibs produces an incorrect message
Corrected the warning message when -pgcpplibs is used
22342 16.4 PGI Accelerator OpenACC reports the error, "unsupported procedure - pgf90_dev_chksect"
Corrected the handling of sections of an array with the device, shared, or constant attribute
22330 16.4 PGI Accelerator OpenACC reports the error, "Unsupported local variable"
Corrected the handling of arrays in certain contexts of accelerator regions
22314 16.4 PVF Unable to view/set properties on individual source files in a project.
Corrected the handling of properties on files using a mix of FORTRAN suffixes
22297 16.4 Fortran pgfortran -O2 fails on code containing pointer array assignments
Corrected the processing of assigning pointer array components when there is a possible overlap between the left-hand and right-hand side
22294 16.4 Fortran pgfortran emits the message, "Internal compiler error. assem.c-put_skip old, new not in sync"
Corrected the initialization of a pointer component with the same name as a module pointer variable
22286 16.4 Fortran pgfortran -fast -tp haswell reports the error, "Error: operand type mismatch for 'vmovddup'"
Corrected the vectorization of loops containing comparisons of 64-bit integers
22277 16.4 64-bit Fortran pgfortran code containing array pointer assignments fail when compiled -O2
Corrected detecting a data dependency between the left-hand and right-hand sides of an array pointer assignment
22274 16.4 Fortran pgfortran code containing parameterized derived types reports the error, "Too many type parameter specifiers "
Corrected the processing of recursively typed components which have type parameters
22268
22252
16.4 Fortran pgfortran reports the severe error, "Illegal implied DO expression"
Corrected the evaluation of a dinit expression containing a subscripted use of an array parameter
22237 16.4 Fortran pgfortran reports the error, "Internal compiler error: interf:new_symbol_and_link, symbol not found" when using a contained function
Corrected the processing of an array-valued internal procedure whose size depends on a variable defined in the host subprogram
22222 16.4 Fortran Missing optimizations for complex multiplication and division
Improved the performance of multiplying a complex by a real and dividing a complex by a real
22195 16.4 Fortran pgfortran reports the error, "Illegal number or type of arguments to c_f_pointer - keyword argument cptr"
Corrected the processing of c_f_pointer appearing in a module-contained procedure and referencing variables from the same module
22304 16.3 C/C++ pgc++ -c++11 reports an internal error for #include
Corrected the handling of nested aggregates when processing constants
22285 16.3 Installation -Mlfs fails to create files larger than 2GB
Corrected the install of the "liblf" library directory
22284 16.3 Fortran pgfortran reports the error, "Interface is not compatible with parent's interface for type bound procedure"
Corrected the interface check between parent and child types
22281 16.3 C/C++ Linking fails when -pgcpplibs is used
Updated the driver to treat -pgcpplibs as an alias of -pgc++libs and to issue a warning
22271 16.3 PGI Accelerator OpenACC performance regression with vector reductions
Improved the use of barriers for certain vector reductions
22264 16.3 PGI Accelerator OpenACC pgc++ reports the error, "illegal address during kernel execution", when using host_data before a class variable declaration
Corrected the handling of host_data regions with respect to the class' constructors
22226 16.3 64-bit C/C++ The type _int64_t is not defined when gcc 4.7 and 4.8 is installed
Corrected sys/types.h to accommodate gcc versions 4.7 and 4.8
22210 16.3 C/C++ Compilation errors occur when VLAs are used in OpenMP clauses
Corrected the support of VLAs when private in an OpenMP region
22208 16.3 Fortran Missing warning for an overflow in a constant expression
Detect an overflow when evaluating an integer ** operation
22205 16.3 64-bit Fortran pgfortran -mcmodel = medium reports the error, "sym_of_ast: unexpected ast"
Corrected the handling of certain dimension specification expressions when compiling -mcmodel=medium
22170 16.3 Fortran pgfortran code compiled -fast produces incorrect results
Corrected an error with multi-dimension arrays and the loop-carried redundancy elimination optimization
22126 16.3 PGI Accelerator OpenACC fails to report an error for an incorrect reduction
Detect unexpected reduction operator-type combinations
22027 16.3 PGI Accelerator Incorrect index computations for a collapsed loop in a kernel
Corrected the handling of certain index variables of an outer loop containing a kernel collapsed loop
21891 16.3 Fortran pgfortran code containing a NAMELIST of a POINTER entity fails at execution
Corrected the support of a scalar pointer as a NAMELIST item
22187 16.1 Fortran pgfortran - inheritance failure with extended derived types
Corrected the visibility of a procedure component of an extended type whose base type contains a component of the same name
22182 16.1 Fortran pgfortran reports the error, "derived type array section with member array section:
Corrected the processing of an associate selector when it's a variable other than an array section having a vector subscript
22180 16.1 Fortran pgfortran reports a "not been explicitly declared" error for a procedure pointer without an explicit interface
Corrected the "implicit none" check for a procedure pointer without an interface
22178 16.1 Fortran pgfortran vectorization failure on sandybridge
Corrected a failure with conditional vectorization when an array element is not assigned in both cases of a branch
22177 16.1 Fortran pgfortran reports the error, "Internal compiler error. emit_alnd: descriptor does not exist"
Corrected an error when a non-pointer actual argument corresponds to a formal argument with the INTENT(IN) and POINTER attributes
22176 16.1 Fortran pgfortran ISO_C_BINDING argument passing failure
Corrected passing an argument by value when invoking a function via a procedure pointer
22171 16.1 PGI Accelerator OpenACC compilation of an acc routine seq
Corrected the processing of certain FORTRAN IF statements within an acc routine
22136 16.1 Fortran pgfortran fails to compile a PARAMETER expression containing iachar
Corrected the conversion of iachar to an integer(8) value
22110 16.1 PGI Accelerator OpenACC present fails when multiple OpenMP threads and async clauses are used
Corrected accessing the present table concurrently
22109 16.1 Fortran pgfortran reports the error, "Internal compiler error. emit_alnd: descriptor does not exist"
Corrected the handling of subprograms with INTENT(IN) class arguments
22066 16.1 Fortran pgfortran INQUIRE with size fails
Corrected INQUIRE of a file which exists but is not opened
22065 16.1 C/C++ pgc++ --c++11 fails with undefined references "isfinite"
Added std:isfinite to cmath
22036 16.1 Fortran pgfortran vectorization fails with the assembly error, "operand type mismatch for 'vmovss' "
Corrected vectorization of loops containing IF statements
22030 16.1 Fortran pgfortran -Minline faults during compilation
Corrected passing the command line option to the inlining extractor
22001 16.1 Fortran pgfortran code containing parameterized derived types fails during execution
Corrected the handling of arrays of parameterized derived types
21999 16.1 Fortran pgfortran reports an error for the statement consisting of MODULE PROCEDURES
Corrected the parsing of MODULE PROCEDURES when the source is fixed form
21947 16.1 Fortran pgfortran reports a bogus SEQUENCE error for assumed-size arrays
Deleted the HPF-specific check for SEQUENCE actual arguments
21946 16.1 PGI Accelerator Incorrect results for an OpenACC kernels
Corrected the handling of the kernels collapse clause
21798 16.1 PGI Accelerator pgfortran -Mcuda -acc fails to compile example containing mix of CUDA Fortran and OpenACC
Corrected certain compiler internal data structures used to collect information for CUDA Fortran and OpenACC expressions
21747 16.1 Fortran pgfortran code containing parameterized derived types fails during execution
Corrected the handling of arrays of parameterized derived types
21716 16.1 Documentation Update the OS X installation notes and documentation reflect the absence of StartupItems
Corrected the instructions to setup the server and daemon in LaunchDaemons
21628 16.1 CUDA Fortran CUDA Fortran emits the error, argument of type :const signed char *" is incompatible with parameter of type "signed char *"
Corrected the handling of INTENT(IN) arguments in CUDA Fortran
21555 16.1 PGI Accelerator pgfortran -acc emits the error, "Compiler failed to translate accelerator region (see -Minfo messages): Load of NULL symbol"
Corrected the processing of certain OpenACC schedule clauses
21534 16.1 Fortran pgfortran reports the error, "Missing interface for type bound procedure composite_get_prototype_index'"
Corrected the inheritance and overloading of type bound procedures
21359 16.1 PGI Accelerator pgc++ -acc is incorrectly hoisting variables local to a compute region
Corrected the scoping of local variables within compute regions
21340 16.1 Fortran pgfortran reports the error, "Illegal procedure interface - cleanup_model_proc"
Corrected the handling of procedure pointers whose interfaces are abstract interfaces in the same module
21013 16.1 Fortran pgfortran reports the error, "Internal compiler error. procym_of_ast:unexp.ast 42"
Corrected the invocation an internal adjustable-length character function whose length is computed as len_trim() of an actual argument
20871 16.1 Fortran Non-standard free-from continuation line syntax should be detected
Corrected -Mstandard to report an warning if a line to be continued does not end with '&'
20831 16.1 PGI Accelerator OpenACC kernels containing f90 pointers produces incorrect results
Corrected the processing of pointers when there are possible conflicts
20606 16.1 PGI Accelerator OpenACC: Improve the error reporting when placing a variable in an update directive
Updated the run-time to detect and report an error for an update directive where the data is not present
17103 16.1 PGI Accelerator OpenACC: Local arrays in routines which are inlined should be privatized
Corrected the scoping of local arrays of routines when inlined into a kernel region
4033 16.1 PGDBG Debugger Fortran common blocks cannot be printed when debugging
Implemented support for common blocks in the debugger so that they can be referenced by name
Click me