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 /
16570 18.10 OpenMP OpenMP omp_set_max_active_levels(0) not setting the ICV
Corrected the runtime to honor the active levels value
18800 18.10 Accelerator Unsupported branch type with switch statements
Corrected the compiler to support large switch statements
19986 18.10 Accelerator Long compile times for accelerator code
Reimplemented several slow algorithms
21386 18.10 Accelerator C++ error "coalesce_and_lookup_generalized_identifier: not identifier" with array of structs
Corrected the compiler to better integrate array indexing and subarray indexing in accelerator pragmas
21390 18.10 OpenMP Memory deallocation failure when OpenMP used
Corrected the compilers tracking of allocated data
21697 18.10 CUDA Fortran Please remove 32-bit CUDA-Fortran-Book tests that do not build from examples directory
Removed the examples because 32-bit targets are no longer supported
21982 18.10 OpenMP OMP_MAX_ACTIVE_LEVELS should be a large number by default
Changed the default setting to INT_MAX
22158 18.10 Accelerator Fortran calls requiring array reshaping are not supported
Improved the support for reshape in accelerator regions
22492 18.10 Accelerator Auto reduction in vector routine causes ICE "Load of NULL symbol"
Corrected the compiler to initialize the reduction variable
22607 18.10 Accelerator Trouble accessing member elements of struct
Corrected the compiler
23160 18.10 Fortran pgfortran -Mallocatable=03 compiler internal error in lowering
Corrected how the compiler handles shallow copies of array
23404 18.10 Optimization Address issues with results differing on CPUs because of FMA
Added informational messages when FMA instructions are generated
23562 18.10 Accelerator Calling both cudaSetDevice and acc_set_device_num in OpenMP gets context creation error
Changed the runtime to retain the primary context
23764 18.10 Fortran ICE - Lowering Error: symbol a$sd is an inconsistent array descriptor
Corrected the handling of array descriptors
24392 18.10 Accelerator Severe Error - 'Clause 'DEVICEPTR' not allowed in ACC DECLARE '
Implemented additional features in the DECLARE directive
24608 18.10 Fortran Behavior of -Ktrap signals in Fortran not consistent.
Corrected the handling of traps in the runtime
24639 18.10 Accelerator Relocation truncation error when putting multicore in shared object
Changed generated code to use a @PLT reference
24677 18.10 Fortran Application segmentation faults on execution.
Corrected the virtual function table
24680 18.10 Fortran OpenPOWER compile gets use of undefined value %verbose
Corrected the symbol table for module names
24817 18.10 Fortran pgfortran does not read or post strings properly allocated from a namelist.
Corrected the handling of the internal namelist descriptor
24875 18.10 Accelerator Relocation truncation error when putting OpenACC and CUDA in shared object; pgimport problem
Implemented PIC code generation for registration objects
24933 18.10 Installation Please make Windows CE version installable anywhere the Professional compilers can be installed
This restriction has been lifted
25053 18.10 OpenMP Fortran example fails when 'allocatable' replaced with 'pointer' type.
Corrected the handling of arrays in the WORKSHARE construct
25695 18.10 Fortran ICE: insert_sym: bad hash
Corrected the compiler
25846 18.10 Fortran Compiling gives IL_RES of ILI is incompatible with context
Corrected the context :)
25999 18.10 All Add -static as a synonym to -Bstatic to help with libtool
Added a new command-line option -static
26003 18.10 Fortran The defined "elemental" final routine is not called on deallocation
Corrected the guard so the final routine is called
26015 18.10 Accelerator Add "guided" schedule for OpenACC multicore
Implemented the feature
26060 18.10 Fortran Add special case for small matrices to 'matmul' intrinsic function.
Optimized handling of matrices that number in the low thousands of elements
26092 18.10 Fortran Program cannot access PRIVATE type bound procedure
Corrected the compiler
26103 18.10 Fortran Problems with allocatable character arrays
Reimplemented much of the handling of allocatable array of character constructors
26136 18.10 Fortran Optimization introduces phantom assignments that cause SIGSEGV
Corrected the conditional assignment optimization to avoid read-only memory
26152 18.10 C/C++ Add symbol hiding via attribute "visibility" and compiler command line options
Implemented __attribute__((visibility)) and the command-line options -fvisibility and -fvisibility-inlines-hidden
26157 18.10 Runtime Fortran floating point exception with 0 to a power
Corrected the implementation of dpow
26181 18.10 Fortran Compiler fails to call a private type-bound procedure
Corrected the implementation of forward references to type-bound procedures
26184 18.10 Fortran Code fails to compile atomic operations to derived type members
Corrected the internal storage class of derived type members
26196 18.10 C/C++ u_int64_t undefined with some include files
Adjusted the header files to work better with GCC 4.7 and 4.8
26234 18.10 Fortran Fortran floating point exception
Corrected the analysis for chained-conditional optimizations
26242 18.10 Runtime Haswell FPE with zero base
Corrected the implementation of dpow to avoid the floating-point exception
26338 18.10 Accelerator "no .eh_frame_hdr table" when compiling NVIDIA OpenACC training course lab #2
Corrected the code generator
26368 18.10 Accelerator Shared-library code fails with -Mllvm with managed memory in a C++ shared library
Corrected the compiler
26374 18.10 Accelerator Code fails mixing CUDA Fortran pinned with tesla:managed
Corrected the pool allocator to work properly when mixing pinned and managed memory
26378 18.10 Fortran Application produces NaNs at -O2, okay with -Mvect=nocond
Corrected a problem with complex conditional optimization
26079 18.7 C/C++ Missing debug info for typedefs and type aliases
Corrected the compiler's DWARF generation
25979 18.7 Fortran NAMELIST read fails at run time when members are pointers to derived types
Corrected the compiler and runtime to handle this case
25886 18.7 Accelerator Make -Mcudalib=cufft work with -Bstatic_pgi for CUDA 9.x and up
Added the library libcufft_static.a to the release package
25873 18.7 Fortran Code causes compiler failure with procedure arguments
Corrected the compiler to handle inner procedure arguments
25863 18.7 Fortran TRANSFER intrinsic causes an internal compiler error
Corrected the compiler to handle cases where a function is used as a parameter
25859 18.7 Fortran Link error with 17.5 and later
Corrected the compiler to restrict external references to type descriptors
25851 18.7 Fortran Symbols ending in __td_ causing code to not link
Corrected the compiler to restrict external references to type descriptors
25693 18.7 Fortran Structure constructor with allocatable component rejected
Reworked how structure constructors are handled
25675 18.7 Fortran Empty constructor causes syntax error
Reworked how structure constructors are handled
25606 18.7 Fortran Debugger issues with arrays, local variables, and offsets off by one
Corrected the handling of negative offsets when generating DWARF
25604 18.7 C/C++ Member variable debug info missing when same name as class
Corrected how the compiler generates DWARF in this case
25603 18.7 C/C++ C++ references are reported as pointers in the debugger
Corrected the compiler to correctly mark references when generating DWARF
25591 18.7 Fortran Passing an internal subprogram as argument
Corrected the compiler to handle internal subprogram descriptors as arguments
25574 18.7 C/C++ C11 test gets ICE: mkexpr: bad id -99
Implemented the _Generic macro and related support
25555 18.7 Accelerator Call back routines when the program encounters an OpenACC runtime error
Document existing API acc_set_error_routine
25554 18.7 Fortran F2003 code gets ICE: "insert_sym: bad hash"
Corrected the resolution of associate symbols
25467 18.7 Accelerator OpenPOWER 'pghpf_instance_i8' has no acc routine information
Corrected the compiler to always inline this routine
25328 18.7 Accelerator Mixing OpenACC and OpenMP code on Windows causes device num to change after data region
Added OpenMP support to Windows library
25306 18.7 Fortran Very long comment line causes fixed format Fortran to fail
Corrected the compiler to handle much longer lines
25284 18.7 Fortran Applications get an LLVM error when using a SAVE statement in a module
Corrected an underlying problem with static descriptors
25084 18.7 Fortran Empty structure constructors are not handled correctly
Reworked how structure constructors are handled
24973 18.7 Fortran Generic class and type casting problem
Corrected the handling of CLASS(*) dummy arguments
24845 18.7 Accelerator Array constructors in OpenACC parallel loop get wrong answers
Corrected the creation of array constructors in parallel regions
24599 18.7 Accelerator An acc routine vector with 2d temp arrays gets launch failures
Implement better error reporting in the runtime
23598 18.7 Accelerator A seq routine with seq loops fail
Implemented named constant arrays in device code
22345 18.7 Accelerator Using switch statement with a case label of 0 gets wrong answers
Corrected the handling of C case statements
22221 18.7 Fortran Add support for Submodules
Implemented support for SUBMODULE
22158 18.7 Accelerator Fortran calls require array reshaping in OpenACC
Corrected the compiler to generate a contiguous array
19910 18.7 Fortran Fortran 2003 allocatable semantics should be the default behavior
Switched the default behavior to 2003 semantics from 1995 semantics
17292 18.7 C/C++ PGCC-S-0155-#pragma omp for does not match canonical form
Implement handling of C++ iterators with OpenMP
16163 18.7 C/C++ Syntax error for #pragma omp
Corrected the parser to handle standalone directives
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
Cookie Consent

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