What problems have been fixed in PGI 2018?

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 /
25131 18.1 Fortran Legal code caused diagnostic "Illegal use of symbol r8 - not public entity of module"
Corrected the compiler
25123 18.1 Installation macOS 17.10 com.pgroup.flexlm.plist points to '2016' and not '2017'
Corrected the file to refer to the proper release
25101 18.1 Fortran Application gets a double free or corruption in process_final_procedures
Corrected the implementation of final procedures
25098 18.1 Fortran Application regression in 17.10; worked in 17.4 and 17.5
Corrected the initialization of polymorphic array objects
25024 18.1 Fortran Erroneous compilation error optimizing ASSOCIATE with OpenMP
Corrected the handling of uplevel addresses for ASSOCIATE in parallel regions
25023 18.1 Fortran OpenPOWER compilation errors with OpenMP and optimization or when debugging is enabled
Corrected the LLVM code generator
25002 18.1 Fortran Return inside OpenMP parallel regions gets error on OpenPOWER
Corrected the compiler to issue an error message in this case
24989 18.1 Accelerator pgc++ complains Invalid accelerator region: branching into or out of region is not allowed
Corrected the compiler to ignore exceptions in device code
24979 18.1 Accelerator ICE IL_RES of ILI is incompatible with context 0
Corrected the handling of 8-byte integer induction variables
24968 18.1 Accelerator OpenACC cudaGetSymbolAddress error when calling acini when using "declare" and compiling -Mcuda
Corrected the kernel launch sequence
24956 18.1 C/C++ pgc++ is very slow compiling a class with 71 base classes and 25 levels of inheritance
Optimized the algorithm used to process the inheritance hierarchy
24944 18.1 Fortran Polymorphism problems with procedure pointers
Corrected the compiler analysis of functions that return arrays
24935 18.1 C/C++ Compilation fails when testing a constructor with zero length
Changed the compiler to allow this g++ extension
24931 18.1 Fortran Variable initialization fails when using SHIFT intrinsics
Implemented compile-time evaluation of LSHIFT, ISHFT, and RSHIFT intrinsics
24923 18.1 C/C++ std::to_string fails on OpenPOWER
Corrected the handling of __builtin_va_start with some versions of GCC
24918 18.1 All Compiler outputting extra verbiage with ishft "iliutil.c: case IL_KISHFT:"
Disabled the extraneous output
24914 18.1 Fortran PGF90-S-0000- ICE "check_member: member arrived with wrong derived type"
Corrected the handling of derived types
24884 18.1 Fortran OpenPOWER OpenMP running with 2 threads hangs in simple test
Eliminated a race condition in the runtime library
24872 18.1 C/C++ OpenMP 4.5 test gets error: use of undefined value '%L.B0017'
Corrected the compiler
24865 18.1 Fortran Separate compilation affects how function calls are compiled
Corrected the compiler to always compile function calls the same way
24863 18.1 Debugger Enable 64-bit pgdbg to handle 32-bit executables with resilience.
The debugger now exits with a message
24857 18.1 Fortran Example get ICE at -O2 "search_ivuse: iv not found"
Corrected a problem in the optimizer
24825 18.1 Fortran Code on OpenPOWER gets seg fault
Corrected the initialization of type descriptors
24804 18.1 Fortran Application on OpenPOWER gets seg fault with -g
Corrected the compiler
24793 18.1 Fortran Generated code error with empty C binding name
Corrected the compiler to properly create an empty binding name
24736 18.1 C/C++ TERMINATED by signal 11 with addition of -mp switch
Corrected the compiler to issue a diagnostic that STL iterators are not support in OpenMP loops
24731 18.1 C/C++ TERMINATED by signal 11 with -O2
Corrected the compiler
24720 18.1 Fortran Request to support MERGE intrinsic in data initialization
Implemented the feature
24716 18.1 Fortran Intrinsics EOSHIFT and CSHIFT on RHS of allocatable=03 statement seg faults
Corrected the compiler to allocate the LHS when needed
24689 18.1 Fortran ICE compiling IDATE
Corrected the handling of IDATE and JDATE
24672 18.1 Fortran Array bounds not set correctly after assignment
Changed the compiler to always set the bounds of a section to 1:extent
24587 18.1 Fortran Simple loop with Fortran SIGN intrinsic not vectorized on OpenPOWER
Implemented vectorization of SIGN
24584 18.1 Accelerator Routine fails with explicit data directive, works when not.
Corrected the compiler
24543 18.1 Fortran Object-oriented code gets several lowering errors
Corrected the handling complex derived types
24494 18.1 Fortran ICE " Errors in ILM file" "ILM file: can't find intrinsic ..sqrt"
Corrected the handling of move_alloc; sqrt was unrelated to the actual ICE
24489 18.1 Fortran Example demonstrates memory leak
Corrected the runtime when deallocating an unlimited polymorphic pointer to also deallocate members
24369 18.1 Accelerator CUDA Fortran: pgf902 segv when using parameter arrays
Corrected the compiler
24226 18.1 Fortran Incorrect message PGF90-S-0034-Syntax error at or near ::
Corrected the compiler to allow :: on PROCEDURE and MODULE PROCEDURE statements
24207 18.1 Accelerator Fatal Compiler Crash "Ptx assembly aborted due to errors" with -g
Corrected in CUDA 8.0
24036 18.1 C/C++ __builtin_abs is not a member of this struct or union
Corrected the include file to properly implement __builtin_abs
23964 18.1 Fortran Severe error for constructor for derived type bug "too few data constants"
Corrected the handling of extensions to type bound procedures
23870 18.1 Fortran Program seg faults "aa = [a(:j-1), a(j+1:)]"
Corrected a problem with the layout descriptor for polymorphic types
23807 18.1 C/C++ TERMINATED by signal 6 with header
Corrected parsing a lambda expression with an implicit return type
23783 18.1 C/C++ Neither __thread nor __Thread_local are set with -c11 or -c1x
Set the value of __STDC_VERSION__ for C11.
23318 18.1 C/C++ macOS "no instance of overloaded function "std::make_shared""
Corrected the handling of variadics on different versions of macOS
23158 18.1 Fortran pgfortran "Lowering Error: symbol c$sd is an inconsistent array descriptor"
Corrected the handling of array descriptors
22700 18.1 Fortran Wrong results with -O2
Enhanced the optimizer data analysis for array sections
22445 18.1 C/C++ Application causes pggpp2 segv
Corrected the compiler
22370 18.1 C/C++ C++11 atomic/thread error
Application must use -latomic
22317 18.1 Accelerator Internal error when using a class member
Corrected the compiler
22200 18.1 Accelerator CUDA Fortran: User code gets pgf902 segv when using constant on parameter array
Corrected the compiler
22097 18.1 C/C++ ICE "flowgraph: node is zero"
Corrected the flow graph analyzer
18743 18.1 C/C++ Compile-time slowdown with function-call statements
Corrected the compiler
17107 18.1 C/C++ Regression with -O2 setting an address of a global pointer to const char
Corrected the compiler
Click me