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 /
25612 18.5 Accelerator Windows C compiler, using -Mcuda, cannot open file 'libcudapgi.lib'
Corrected the Windows installation packages to include libcudapgi.lib.
25599 18.5 Fortran User code gets incorrect error "Expression must be character type" using "ubound" param init
Corrected the compiler's handling of ubound.
25572 18.5 Accelerator User code gets ICE with OpenACC+OpenMP using Lin+LLVM backend
Added recognition of __kmpc_global_thread_num in compiler's backend.
25570 18.5 Accelerator OpenACC: undefined reference error when using ISO_C_BINDING in a function with a kernel
Corrected the compiler's handling of BIND(C).
25535 18.5 Fortran User test gets segfault on OpenPOWER
Corrected the compiler's loading of a class descriptor.
25459 18.5 Fortran MOVE_ALLOC with polymorphic arguments loses dynamic type
Corrected the compiler's handling of a dynamic type member in a descriptor embedded in a derived type.
24877 18.5 Accelerator pgf90 -c -ta=multicore ICE "Unhandled DTY case in load_var"
Corrected the compiler's handling of loop trip counts.
24141 18.5 Fortran BIND(C) reference is being name mangled.
Corrected the compiler's handling of BIND(C).
23781 18.5 Accelerator OpenACC: MPI program will create multiple context on device 0 calling acc_get_device_type
Corrected the compiler's creation of contexts.
21314 18.5 C/C++ pgcpp example gives wrong answers with optimization (-fast, -O2, etc)
PGI C++ compiler (pgc++) compiles the provided test case without error.
25514 18.4 Fortran LLVM reports undefined value with -mp
Corrected the compiler
25400 18.4 Accelerator Small C++ example code compiles forever
Corrected the compiler
25377 18.4 C/C++ Missing support for "#pragma GCC warning" and "#pragma GCC error"
Implemented these pragmas
25373 18.4 Accelerator Application does not link with -Bstatic_pgi on OpenPOWER like it does on x86
Corrected the driver
25372 18.4 C/C++ Add support for constants declared with appended 'd/D' like 1.234D
Implemented this GCC extension
25365 18.4 Fortran Using Fortran accessors from C++ routine to access PARAMETER values get wrong value
Corrected the compiler
25355 18.4 Fortran Compilation error with logical(8) ::f =.true.
Corrected the compiler's error checking logic
25352 18.4 Fortran Compiler reports ambiguous interface error for move_list
Corrected the compiler
25351 18.4 Fortran Compiler incorrectly reports too few data constants in initialization statement
Corrected the compiler
25316 18.4 Libraries The library libpgm conflicts Linux libpgm
Renamed libpgm to be libpgmath
25268 18.4 Fortran Object-oriented code works at -O1, fails at -O2 in pgf90_dealloc_poly03 and final procedure
Properly initialize descriptors
25250 18.4 Accelerator Building application with "managed" gets an LLVM error on OpenPOWER
Corrected the compiler
25217 18.4 Accelerator Application gets an LLVM error on OpenPOWER: "use of undefined value"
Corrected the compiler
25176 18.4 C/C++ ICE "lowering of xx to ILI of this kind not yet implemented"
Implemented the missing lowering functionality
25067 18.4 Fortran Derived type i/o example gives segmentation fault
Corrected the compiler and runtime library
24995 18.4 Fortran Compilation error using TRANSFER with unlimited polymorphism
Corrected the compiler
24932 18.4 Fortran Compiler incorrectly reports syntax error on type definition
Corrected the compiler
24665 18.4 C/C++ The include file immintrin.h has typos
Corrected the typos
24182 18.4 Accelerator C++ code gets error when calling device routine and "parallel" is missing scoping brackets
Corrected the compiler
24048 18.4 CUDA Fortran CUDA Fortran reports an LLVM parse error when using "\r" in a string initializer for a module parameter
Corrected the compiler
25249 18.3 Accelerator Illegal memory error in 17.10 when using "cudaLaunchKernel"
Corrected the compiler
25298 18.3 C/C++ C parameter is set using the double precision literal "d"
Corrected the compiler to accept this GCC extension
25223 18.3 Accelerator Accelerated Loop Block in fails at run time
Corrected the compiler to handle conditional out-of-bounds references
25176 18.3 C/C++ ICE "lowering of xx to ILI of this kind not yet implemented"
Corrected the compiler
25016 18.3 C/C++ Please support GCC extension '__builtin_return_address'
Added __builtin_return_address and __builtin_frame_address to the PGI+LLVM compilers
24870 18.3 Accelerator ICE "Unhandled DTY case in load_var" with -ta=multicore
Corrected the the compiler
25230 18.3 Fortran ICE on OpenPower: internal routine gets bad address for outer variable
Corrected the compiler
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

This site uses cookies to store information on your computer. See our cookie policy for further details on how to block cookies.