PGI Release 2016 Technical Problem Reports
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 |