What problems have been fixed in PGI 2017?

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 /
24748 17.9 Fortran ICE "print_token(): missing token" when using OpenMP task on Power
Corrected the compiler
24744 17.9 Fortran OpenPOWER fails backwards loop with -mp
Corrected the handling of backwards loops with OpenMP
24730 17.9 PGI Accelerator User code with loop step values and increasing starting value gets errors
Corrected the trip-count calculation
24722 17.9 Fortran OpenPOWER regression, gen_llvm_expr(): bad match type for operand
Corrected the compiler
24704 17.9 Fortran matmul intrinsic seems to rely on valid numbers in LHS of assignment
Corrected the matmul library routine
24694 17.9 C/C++ Undefined nans and nansf
Added nans, nansf, and other values to limits.h
24692 17.9 PGI Accelerator Bitwise Not not supported with unsigned long
Corrected the compiler to handle bitwise not of unsigned longs
24682 17.9 PGI Accelerator New deepcopy capability gets runtime failure
Corrected the compiler
24669 17.9 C/C++ PGI 17.7 segfaults when compiling Open MPI 2.1.1 on OpenPOWER
Corrected an issue with C++ static initialization
24649 17.9 Fortran -mp creates executable that aborts.
Corrected the compiler to initialize allocatable private members
24648 17.9 C/C++ pgcc execution abort "Assertion `! ((uintptr_t)(&(((struct foo *)0)->i)))' failed."
Corrected the compiler to treat &0 as a static value
24627 17.9 Fortran Nested procedure calls passing optional string arrays fail
Corrected the compiler's passing of assumed size character
24385 17.9 Fortran OpenPOWER ICE "gen_llvm_expr:bad match type for operand.
Corrected the compiler
24359 17.9 CUDA Fortran CUDA Fortran failure with -Mcuda=8.0 "ptxas fatal : Internal error: section not found"
Corrected in CUDA 9
24347 17.9 Fortran Reference to derived type required
Corrected the compiler's handling of the type of a procedure pointer
24236 17.9 Fortran ICE add_arg_ili :bad ili for BYVAL
Corrected the compiler
24113 17.9 Fortran Module problems resolving generics
Corrected the compiler
23787 17.9 Fortran OpenMP program segfaults "call sim%run(5)"
Corrected an issue propagating types with -Mlarge_arrays option
23715 17.9 C/C++ On OpenPOWER, pgcc fails with 'incorrect endian' msg
Corrected several header files
23666 17.9 PGI Accelerator OpenACC program fails with unified binary "parse invalid redefinition of function 'rot_shift_42_gpu'
Corrected the naming routine in the compiler
23067 17.9 Fortran Allocatables may cause valgrind error
Corrected the compiler to avoid uninitialized memory
22768 17.9 Fortran Severe error with Keyword form of argument illegal in this context for lisfg
Corrected the compiler
22682 17.9 Fortran Dynamic type of dummy args cannot be determined
Corrected the compiler
22681 17.9 Fortran Severe error 'Passed object dummy argument' improperly declared
Improved the handling of overloading type bound procedure binding names
22020 17.9 Fortran Generic Type Bound Procedure problem
Corrected the compiler's name management
21565 17.9 PGI Accelerator Using "-tp=x64" causes device redefinition errors
Corrected the naming routine in the compiler
14209 17.9 C/C++ pgc++ example fails with OpenMP ICE 'bad reg num value: -1'
Corrected the generation of DWARF information
24514 17.7 C/C++ Problem compiling certain OpenPOWER inline atomics
Corrected the code generator
24500 17.7 Fortran OpenPOWER ICE "print_token(): missing token 0"
Corrected the OpenMP code generator
24461 17.7 PGI Accelerator GPU info messages missing compared to 16.10
Corrected the compiler
24422 17.7 Fortran Severe error 'Intrinsic not supported in initialization: ior'
Added support for IOR, IEOR, and IAND
24419 17.7 PGI Accelerator OpenACC generates kernel with empty body
Corrected the compiler
24416 17.7 Fortran OpenPOWER -Mlarge_arrays example seg faults.
Corrected the compiler and runtime to expect 64-bit values
24353 17.7 C/C++ Example fails on macOS
Corrected the handling of macOS include files
24344 17.7 Fortran Program fails to run on OpenPOWER
Corrected the handling of uplevel references to polymorphic pointers
24343 17.7 All Support -Msummary option
Document -Msummary and remove the "beta" label
24329 17.7 Fortran Support -Mnosecond_underscore on OpenPOWER
Enhanced the compiler
24307 17.7 C/C++ ICE "scope for routine is NULL"
Corrected the compiler
24293 17.7 PGI Accelerator OpenPOWER error "parse '%li29' defined with type 'i64'"
Corrected the compiler
24277 17.7 C/C++ Failure when querying an InfiniBand device (64-bit enums)
Implemented C 64-bit enumeration values
24205 17.7 Fortran Executable exits without proper 'FINALIZATION'
Corrected the compiler
24151 17.7 PGI Accelerator "FATAL ERROR: data in PRESENT clause was not found on device 1"
Corrected the handling of zero-sized arrays
24148 17.7 PGI Accelerator nvlink error : Undefined reference to '_mode_mnh_zwork_16'
Corrected the compiler
24102 17.7 Fortran ICE "Errors in ILM file"
Corrected the compiler
23944 17.7 PGI Accelerator OpenPOWER ICE gen_sptr()
Corrected the compiler
23910 17.7 PGI Accelerator Incorrect present check for descriptor in OpenACC data region
Corrected the compiler
23833 17.7 Fortran A pure function returning complex get a seg fault
Corrected the compiler
23825 17.7 Fortran Error reported for "iso_c_binding, only : c_sizeof"
Corrected the compiler
23769 17.7 Fortran Intrinsic storage_size returns 0 for unlimited polymorphic class
Corrected the compiler
23675 17.7 Fortran Severe error "name is use-associated from modules, and cannot be accessed"
Corrected the compiler
23216 17.7 Fortran Name resolution errors
Corrected the compiler
22753 17.7 C/C++ C program gives wrong answers for 64-bit enums
Implemented C 64-bit enumeration values
22562 17.7 Fortran Option -pgc++libs with -Bstatic_pgi does not remove all dynamic library references
Corrected the compiler driver
22416 17.7 Fortran Object-oriented example segfaults
Corrected the compiler
22383 17.7 PGI Accelerator Error message refers to 'Could not resolve generic procedure'
Corrected the compiler
22104 17.7 PGI Accelerator OpenACC C++ with multicore cause ICE when using MAX to determine bounds
Corrected the compiler
22042 17.7 Fortran Wrong results when initializing a parameter array
Corrected the compiler
21179 17.7 Fortran ICE when using TRANSFER intrinsic in a PARAMETER
Corrected the compiler
21100 17.7 Fortran ICE attempting to fuse complex loops with -fast
Corrected the compiler
18773 17.7 All -Minfo says "Generated vector sse code for the loop" for AVX causes confusion
Messages now uses "simd" in place of "sse"
17298 17.7 Fortran OpenMP task missing implied FLUSH at the end of a task region
Corrected the compiler
16759 17.7 C/C++ OpenMP C yields poor compile-time msgs for non-conforming programs
Improved the compiler's error messages
16717 17.7 Fortran Failure to catch illegal OpenMP atomic code
Corrected the compiler
16217 17.7 Fortran OpenMP omp_get_ancestor_thread_num(i) results incorrect
Implemented the runtime routine
14287 17.7 C/C++ Can't recognize OpenMP THREADPRIVATE at block level
Corrected the compiler
4264 17.7 Fortran Fails to detect error in $OMP ATOMIC format
Corrected the compiler
4242 17.7 C/C++ Compiler does not support THREADPRIVATE for static block scope variables
Corrected the compiler
4199 17.7 Fortran Ordering of contained sections may cause Severe Error 'not explicitly declared'
Corrected the compiler
4174 17.7 Fortran OpenMP copyin of THREADPRIVATE variable fails
Corrected the compiler
4122 17.7 Fortran OpenMP error on THREADPRIVATE handling
Corrected the compiler
24276 17.5 Fortran OpenMP macro _OPENMP should be set to indicate 3.1 OpenMP, and not 3.0 OpenMP
Corrected the preprocessor to predefine _OPENMP to the correct value, 201307.
24240 17.5 Fortran Memory leak
Corrected the compiler to free allocatable members.
24238/9 17.5 Fortran Valgrind error when an actual argument is a function returning a pointer to an array
Corrected the compiler.
24206 17.5 C++ Error reading binary file on OpenPOWER when vectorization is used.
The issue is not related to file i/o. Corrected the compiler to properly vectorize logical right shift.
24160 17.5 Fortran MPI routine gets unsupported datatype errors with OpenACC
Corrected the compiler to handle Fortran pointer-to-procedure in OpenACC
24085 17.5 Fortran SIZE() example fails using initialized integer variables instead of initialize integer PARAMETERS
Corrected the compiler to correctly compute the number of elements for array constructors with two levels of implied DO loops.
24049 17.5 C++ OpenPOWER inline assembly failure
Corrected the compiler to handle I, y, and Z constraints.
24044 17.5 PGI Accelerator OpenPOWER CUDA Fortran large pinned array gets a segv
Corrected the compiler to handle large arrays.
23910 17.5 PGI Accelerator Incorrect present check for descriptor in OpenACC data region
Corrected the present check.
23833 17.5 Fortran PURE function returning complex gets a seg fault
Corrected the compiler to properly return complex data from a PURE function.
23249 17.5 Fortran Program with derived type i/o seg faults
Corrected the compiler.
21912 17.5 Fortran OpenMP example ICE 'IM_BASE op#2 not based sym '
Corrected the handling of adjustable and assumed length character variables that are referenced, PRIVATE or FIRSTPRIVATE in parallel regions.
24111 17.4 CUDA Fortran CUF cudaMemset with c_devptr does not work properly
Corrected cudaMemset and added support for cudaMemsetAsync
24096 17.4 PGI Accelerator OpenACC array assignments are running very slowly. Improved the optimizer dependency analysis for the accelerator to allow faster execution
24093 17.4 PGI Accelerator OpenPOWER - ICE "size_of: bad dtype"
Corrected the accelerator code generator
24089 17.4 Fortran Unified binary example hangs with -Minline
Corrected the inliner to better handle inlining when generating code for unified binaries
24028 17.4 Fortran Memory leak using array operations
Corrected the compiler front end
24026 17.4 PGI Accelerator ICE "mark_ilitree: visit" in application
Corrected the OpenACC code generator
24011 17.4 Fortran -Mallocatable=03 example fails with bounds checking.
Corrected the compiler
23997 17.4 CUDA Fortran Regression using ASSOCIATE on device
Corrected the compiler when ASSOCIATION requires storage allocation on the device
23974 17.4 Fortran Store of 64-bit value into dummy arg type descriptor incorrectly overwrites memory
Corrected the compiler to allocate space for the type descriptor
23947 17.4 Fortran Seg fault during call after ASSOCIATE
Corrected the compiler to create a type descriptor
23927 17.4 OpenMP omp_get_ancestor_thread_num(level) is not implemented
Added omp_get_ancestor_thread_num to the runtime library
23868 17.4 CUDA Fortran Regression calling device function from CUF Kernel
Corrected the compiler.
23821 17.4 CUDA Fortran CUF support for Warp-Vote Operations is incomplete
Implemented the missing operations
23779 17.4 PGI Accelerator Code using device-side assumed shape arguments fails
Corrected the compiler to correcly pass the descriptor to the device
23707 17.4 PGI Accelerator Error --ta=tesla:lineinfo is only supported on linux86-64 targets
Added support on OpenPOWER
23646 17.4 PGI Accelerator OpenACC lacks support for 'ROUND(i)'
Added support to runtime library
23606 17.4 C/C++ OpenBLAS gets wrong answers on Haswell with dblat3 test in cudafor_correct
Corrected the compiler to handle complex inline assembly sequences
22692 17.4 PGI Accelerator OpenACC routine seq gets Unexpected load datatype
Corrected the code generator
22679 17.4 Fortran "Illegal attribute - conflict with value" LOGICAL, OPTIONAL, VALUE :: l
Corrected the compiler
21342 17.4 PGI Accelerator pgcc -acc : isnan() not yet supported
Added support to runtime library for isnan, isfinite, and isinf
4339 17.3 Fortran Large File Fortran I/O with implied do's fails on Windows
Corrected certain cases of implied do's.
17000 17.3 C/C++ Autoinline fails on cast of function result
Corrected the inliner.
19506 17.3 C/C++ Source file too large to compile at this optimization level
Increased the capacity of the inliner.
19985 17.3 Fortran ICE -Mallocatable=03 'PGF90-F-0000-ICE conv_deallocate: unexpected ast 49 (line 8)
Improved the handling of allocatable assignments.
21076 17.3 Libraries Prebuilt libnetcdf downloads also need libhdf5 and libzlib
The libraries are now available from pgroup.com.
21766 17.3 Fortran OpenMP atomics produces severe errors, seg fault.
Corrected the runtime.
22185 17.3 Fortran User code gets segv when assigning an array of derived types to an array of derived types
Corrected the assignment of arrays of derived types.
22212 17.3 Fortran Example fails runtime error detection 'Attempting to allocate already allocated array'
Corrected the compiler interface to the runtime.
22305 17.3 C/C++ Severe error "*_callback is not a member of this struct or union"
Corrected the compiler.
22362 17.3 Libraries Problem with env.sh from OpenMPI installation
Changed how libraries are built so the problematic part of the script is no longer required.
22746 17.3 C/C++ Inconsistent impl of constexpr
Updated the C++ 11 implementation.
22909 17.3 Fortran ICE "Lowering Error: array lower bound is not a symbol for datatype 88"
Improved the handling of the ASSOCIATE construct.
22948 17.3 Fortran Example link failure "undefined reference to `m_t_td_ft_'"
Corrected the compiler code generation for final subroutines.
22981 17.3 Fortran ASSOCIATE example seg faults or has -Mbounds violations
Improved the handling of the ASSOCIATE construct.
23042 17.3 C/C++ Mixing PGI OpenACC multicore (which uses OpenMP runtime) with Intel OpenMP causes segv
Resolved several internal naming conflicts to allow the two runtimes to coexist.
23173 17.3 Fortran Using iso_c_binding causes compilation error
Corrected a symbol table lookup issue.
23215 17.3 Fortran Array ubound wrong size
Corrected ubound for an adjustable array in an automatic array.
23290 17.3 OpenPOWER
Bad $ operand number in inline asm string
Corrected the OpenPOWER code generator.
23327 17.3 C/C++ Mac OS -O2 ICE "gasm_process_constraint: (loc2) Could not find store associated with output item"
Corrected the inliner.
23367 17.3 PVF 16.10 PVF crashes when accessing Properties->Fortran->Target Accelerators
Corrected the configuration properties dialogs.
23368 17.3 PVF PVF cannot find CUDA 8.0 components
Corrected the setup scripts to reference CUDA 8.0.
23597 17.3 OpenPOWER
Small test using OpenBLAS on OpenPOWER fails
Corrected in OpenBLAS 0.2.19.
23625 17.3 C/C++ OSX86-64 - Undefined symbol (x86_64): "_inf, referenced from: ___inline_isinfd "
Corrected the compiler to recognize _inf as a built-in function.
23628 17.3 Fortran Program does not recognize as a rank 3 real array in a call
Corrected the type descriptor associated with the dummy argument.
23638 17.3 PGI Accelerator Reshape of 2D device array error
Corrected the index into a static array.
23656 17.3 Fortran Compiler hangs when -O2 is used
Corrected the generation of flow graphs.
23665 17.3 Fortran Argument mismatch reported for procedure names implicitly typed as integer
Corrected the compiler.
23708 17.3 OpenPOWER
ICE "gen_llvm_expr(): no incoming ili 0" on OpenPOWER
Improved the handling of ISO C binding.
23724 17.3 OpenPOWER
Code compiles on x86-64, but not on OpenPOWER Derived type object error
Corrected a code generation error on OpenPOWER.
23730 17.3 Fortran Code crashes with -mp in Fortran 2003 finalization
Corrected the handling of finalization where the objects are otherwise unreferenced.
23763 17.3 Fortran Lowering error when assigning an unlimited polymorphic pointer to the procedure result
Corrected the compiler to generate a type descriptor for the actual argument.
23768 17.3 C/C++ Code gets runtime segfault at -O2, works with -Mnovect
Corrected the optimizer's tracking of structs with exactly two doubles.
23784 17.3 Fortran OpenMP atomic update fails with -fast -mp
Corrected the optimizer to have more information about critical sections.
23795 17.3 OpenPOWER
Compiler crash when compiling kokkos on OpenPOWER
Corrected an internal inconsistency in the compiler.
23576 17.1 OpenPOWER
OpenPOWER gets ICE, write_operand(): no sptr when expected
Corrected the OpenPOWER compiler to handle long double zero, min, and max values.
23532 17.1 Fortran Implicit do variables in write statement, compiled with -i8, cause errors
Corrected the compiler to better handle implicit do loops with -i8.
23335 17.1 PGI Accelerator Unexpected behavior from acc_get_num_devices when no NVIDIA devices
Now returns 0 when -acc is not used.
23326 17.1 C/C++ OS X compile pgc++ error optimizing _OSSwapInt32
Corrected the handling of inline assembly in this case.
23321 17.1 PGI Accelerator OpenACC data movement on OpenPOWER causes LLVM opt error
Corrected the code generator.
23299 17.1 Installation Installer fails to add cuda 8.0 libs to pgi.bat and pgi_dos.bat on Windows
Corrected the bat files to include cuda to the path.
23295 17.1 All Inline assembly compilation controlled by "if(0)" fails.
Corrected the compiler to keep labels in assembly code.
23291 17.1 OpenPOWER
pgcc can compile "void foo(void) { __asm__ __volatile__ ( "nop" : : : "cr0"); }" pgc++ cannot
Corrected the OpenPOWER compiler's handling of inline assembly.
23270 17.1 PGI Accelerator Caching works when size is a parameter, not when passed in.
Caching now works when the size is passed in.
23260 17.1 PGI Accelerator Feature Request: add option to initialize device allocated data to zero
Added the environment variable PGI_ACC_DATAINIT to control initialization of device data.
23237 17.1 OpenPOWER
POWER - assembly error 'error: use of undefined value '%bfcubf' %368 = bitcast double* %bfcubf to i8
Corrected the compiler.
23211 17.1 Fortran real(DOUBLE),parameter::EPSLIST(10)=[(0.5_DOUBLE**k,k=12,21)] brings wrong answers
Corrected the case where an iterator in an array constructor and the item expression is x**k, x is single or double and k is the index variable.
23122 17.1 Fortran Program runs by changing "ALLOCATABLE" to "POINTER" and/or "r = new_b(ff)" with "r%f => ff"
Corrected the handling of allocatable in this case.
23035 17.1 Fortran Warning "No overriding procedure specified for DEFERRED type bound procedure"
Corrected a case of a type bound procedure that return either a polymorphic pointer or allocatable object.
22981 17.1 Fortran example seg faults or has -Mbounds violations with ASSOCIATE
Corrected several errors with the ASSOCIATE construct.
22895 17.1 Fortran Benchmark shows some deficiencies in pow
Updated pow for processor targets that support conditional vectorization; haswell, piledriver, sandybridge, et al.
22712 17.1 Fortran Seg faults when using tbp with private implementation
Corrected the handling of overloaded symbols when the overloaded symbol is declared private.
22636 17.1 PGI Accelerator Kernel with caching uses only 4 threads to load cache
Improved the behavior of the cache directive in general, including the runtime performance of this case.
22565 17.1 PGI Accelerator SEGFAULT in host code in presence of Fortran pointers
The compiler now better differentiates between host and device pointers.
22542 17.1 PGI Accelerator Using C++ stl::complex in OpenACC compute regions error "loop contains unsupported statement type"
Improved support for small structures and std::complex in particular.
22499 17.1 OpenPOWER
pgc++ --c++11 thread support missing
Corrected the OpenPOWER compiler to properly handle the include file.
22157 17.1 PGI Accelerator Fortran optional arguments on the device
Corrected the case where NULL was not handled properly.
20058 17.1 C/C++ Compiler ignoring inline __attribute__((__always_inline__))
Improved the handling of __always_inline__ to inline as much as possible until internal compiler limits are reached.
17289 17.1 C/C++ OpenMP pgCC not analyzing example correctly
Corrected the a parsing error to handle these cases.
Click me