Each release of the PGI compilers brings a number of technical corrections to problems discovered by PGI and by users. Problems found can be emailed directly to PGI Technical Support or submitted through the web-based 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.
Inconsistent evaluation of logical IF and logical .EQV.
Correct situations where 'IF(lvar)' yield different results than 'IF(lvar .EQV. .TRUE.)'
Dead store elimination causes wrong answer in OpenMP critical section.
Stores to non-PRIVATE variables cannot be deleted from critical sections.
"NULL() as an actual argument causes type mismatch error.
Corrected the compiler to treat the type, type parameters, and rank of the result of NULL() as those of the corresponding dummy argument."
OSX licensing fails.
The install on OSX needs to ensure that pgroupd has execute permissions.
pgcc -Mipa=fast fails on code containing fscanf.
Fixed IPA to set the arguments to fscanf as being modified.
pgf90 compilation fails with "bad ast optype in expression".
The compiler did not properly handle the use of the present intrinsic in calls to the any intrinsic.
PVF fails when Visual Studio is installed.
Corrected the PVF installer to properly detect that Visual Studio is already installed.
pgcc -Mipa=fast fails with "struct-transpose: assigning unknown function".
Corrected IPA to detect the use of calloc calls returning space for structs which are transposed."
PVF fails if installed on a drive other than the system drive.
Corrected the PVF installer to properly setup the installation when installed on a non-system drive.
|15108||7.2-4||32/64-bit C/C++||pgCC aborts with the error "new_symbol_id: bad dtype" when inlining a function
The c++ compiler failed to correctly inline certain uses of variables of the type wchar_t
|15096||7.2-4||32/64-bit Fortran||pgf90 example fails with ICE 'bld_lhs, ast nyd'
Corrected the processing of an array section, arr(L:U:L), passed to maxloc where U is a constant and L is not a constant
|15080||7.2-4||Installation||Install on SUA failed due to the unexpected result from "uname -m"
Corrected the installer to recognize results from the uname command which are unique to SUA
|15079||7.2-4||64-bit C/C++||pgCC example fails for 64-bit -fast
The compiler cannot arbitrarily replace a conditional controlling a loop with the check of unsigned induction variables discovered in the loop
|15069||7.2-4||32/64-bit Fortran||New switch request -pgCClibs or -pgcpplibs to support linking with pgf77 and pgf90
Added switches, -pgCClibs and -pgcpplibs, which include the c++/c PGI libraries when linking with pgf77 or pgf90
|15068||7.2-4||64-bit C/C++||pgcc on 64-bit SUA fails with with -tp x64
SUA pgcc generated a reference to a symbol which is valid only on 32-bit targets
|15066||7.2-4||All||Install script fails on Ubuntu 8.04
Fixed the installer to workaround the lack of the "arch" command on Ubuntu
|15057||7.2-4||32/64-bit Fortran||c$pragma C fails for character arguments
Fixed the fortran compilers to pass character arguments by reference to subprograms appearing in the c$pragma C directive
|15051||7.2-4||32/64-bit C/C++||pgcc -E terminated by signal 13(SIGPIPE) on Windows SUA
Corrected the C compiler when the output of the preprocessor is sent to a pipe
|15049||7.2-4||All||Installation for mpich fails with missing rsh or ssh
Fixed the mpich install script to include the existing PATH which contains rsh or ssh
|15043||7.2-4||32/64-bit Fortran||OpenMP program fails with: "size_of:bad dtype"
The compiler did not properly process the OpenMP COPYIN clause of a variable with the POINTER attribute
|15042||7.2-4||32/64-bit Fortran||Nested barriers hang on 1 thread, work on 2 threads
Fixed a race condition in the barrier run-time
|15041||7.2-4||All||temp filenames on multinode executions are not unique
Improved the method for naming temporary files.
|15040||7.2-4||64-bit Fortran||Link failure when trying to use 7.2-2 with the ACML library
Fixed the unified binary version of the ACML library
|14960||7.2-4||32/64-bit Fortran||f90 example causes ICE 'mk_subscr: bad numdim'
Corrected the assignment of an array-valued SUM where the array portion of the left-hand side is derived type
|14958||7.2-4||32/64-bit Fortran||pgf90 issues false error 'arguments do not match'
Corrected the checking of procedure arguments which are logical-valued functions
|14900||7.2-4||32/64-bit C/C++||pgcc fails with "Missing braces for array.."
Fixed the initialization of a local variable which is pointer to a struct which has the packed attribute
|14843||7.2-4||32-bit C/C++||pgcpp on 32-bit windows incorrectly computing the argument size
Corrected the size computation of struct arguments in the c++ compiler
|14754||7.2-4||All||SUA installation fails on Vista
Fixed the installer on SUA to create the localrc files
|4362||7.2-4||32/64-bit Fortran||pgf90 - minloc(x) does not handle array x=huge(data type of x)
Corrected minloc of an array which is assigned the result of the HUGE intrinsic
|4351||7.2-4||32/64-bit C/C++||pgcpp issues an error for the chunk size in an OpenMP schedule clause
The c++ compiler did not allow a non-constant expression as the chunk expression
|4273||7.2-4||64-bit Fortran||F90 array section indexes do not use or ignore the -i8 compiler switch
Corrected the subscripting of array sections when the triplet expressions are 64-bit integers
|4035||7.2-4||32-bit Fortran||Request for other -Minfo diagnostics about data usage
Added a message under -Minfo that reports a possible copy-in/copy-out of F90 POINTER arguments.
|3871||7.2-4||32/64-bit Fortran||PGDBG does not print values of certain derived type components correctly
Corrected the debug information of POINTER objects which are declared as OpenMP PRIVATE objects.
C$PRAGMA C directive no longer working.
Corrected the argument passing for routines appearing in the C$PRAGMA C directive.
pgCC cannot find strtoll() prototype, pgcc can
Added the prototypes for strtoll and strtoull to pgCC's stdlib.h.
Compiler incapable of really long constant parsing
Removed the limit from the compiler.
pgf90 example fails with 7.1, 7.2, passes with 7.0, gfortran, sun f90
Corrected assigning the result of the function to an allocatable array.
PRIVATE variable in module is visible to main program
Corrected the compiler to issue an error for PRIVATE module symbols which appear in the ONLY clause of a USE statement.
pgf90 example creates severe error 'PGF90-S-0151-Empty STRUCTURE, UNION, or MAP
Corrected the size computation of a derived type larger than 2GB.
pgf90 example severe error "-Could not resolve generic procedure"
Corrected the compiler to process user generics which were specified in an ONLY clause of a USE statement.
VISTA - Installation CD fails on 32-bit system
The installer is fixed to correctly install on 32-bit VISTA systems.
Linking unified binary object with main not compiled that way gets occasional error
Corrected the unified binary selection process when executed in an mp program.
ADJUSTR intrinsic is altering its argument, which is wrong
Corrected the processing of the ADJUSTR intrinsic when its argument is a substring.
ILM errors in large file compilation
Corrected the compiler when processing the min intrinsic being passed more than 100 arguments.
OSX PGI and makelocalrc scripts need updating for 7.2
Correct the version number in the PGI script used for starting the license service.
OSX64: Large Fortran static memory program gets rel32 out of range error
Corrected how static objects are addressed on 64-bit OSX.
C compiler gets unresolved reference to __builtin_expect
pgcc now recognizes the gcc extension, __builtin_expect()
Error reported for a continuation line beginning with a %
Allow a continuation to begin with '%' in free form.
SetFilePointerEx@16 error, should be SetFilePointerEx@20
Corrected the size computation of a record when passed by value.
- pgCC example acts different with "no -mp" than with "-mp and NCPUS=1"
Corrected the handling of continue statements within parallel for loops.
pgf90 example fails with 'symbol b$sd is an inconsistent array descriptor'
Corrected the processing of assigning the result of minval to an allocatable component.
|14721||7.2-1||64-bit C/C++||Boost C++ build gets Internal error: name operator const boost::mpl truncated
Long names were not always being truncated properly when -g was present.
|14720||7.2-1||32-bit C/C++||Compiling boost test without -D__PGI_NOADV gets warning
Correct the definition of the advance template optimization.
|14719||7.2-1||64-bit C/C++||pgCC does not define IOV_MAX by default
User needs to add -D__need_IOV_MAX to effect the definition of IOV_MAX.
Program fails or gives wrong answers with ?O2, uses allocated arrays
The initial allocation status for local allocatable arrays wasn't always set correctly.
Documentation Errors in User?s Guide
7.2 Versions updated and corrected.
Windows 7.1 does not pass strings ?xx? in ?-Wl,xx? to the linker, like 7.0 did
A response file appearing as the option to -Wl was not properly passed to LINK.
pgf90 example fails, works with gfortran; ?Segmentation fault?
Incorrect code was generated for the SUM intrinsic of an array section with negative stride.
cpgi$g does not work in a file
Global-scoped directives were not being propagated by pgf90.
Simple test case gives different answer -O2 vs -O2 -Mvect=sse
Incorrect code was generated when vectorizing the conversion of a single precision ABS intrinsic to double precision.
Very long compile time with ?g
The 32-bit compiler would loop forever when generating debug information for internal procedures.
SUA: ar -ru creates new library, doesn't replace existing elements
The test for object file existence was incorrect on SUA.
namelist problem - example fails with 'entity name is not member of group'
Namelist member names containing the '$' character were not found.
Namelist example fails with pgf90, works with pgf77 - did not fail with 6.2
Namelist output failed on 32-bit when the main program was written in C/C++.
Compiler drivers leaving object debris
An object file was created when the command to perform a compile and link of a single file included the -lm option.
|14435||7.2-1||64-bit C/C++||C++ doesn't honor prefetch pragma every time
Prefetch pragmas appearing at the beginning of lexical blocks were ignored by pgCC.
pgf90 fails w/ 'Ambiguous interfaces for generic procedure ferror', works with 7.0-7
Correct the search for ambiguous interfaces of a generic
pgf90 Missing ISO_C_BINDING routine c_f_pointer()
Add the support of the ISO C routine, c_f_pointer().
7.1 CDK does not properly install PBS (aka Torque)
Correct the install of PBS on all of its target nodes.
|14408||7.2-1||64-bit C/C++||Adding --no_using_std gives the error: the global scope has no "type_info"
The user needs to add to the code checks for the PGI STL in places where there are checks for other vendors.
Better error detection needed for a missing operator overload of a user defined type
Issue an appropriate error message when an operator of a derived type is not defined.
pgf90 does not propagate array dimensions in contained subroutines
Correct the passing of a host adjustable array to an internal procedure corresponding to an assumed shape array.
Need PXFFILENO - returns the file descriptor for a specified unit
Add the support for the 3F routine, PXFFILENO.
windows dll creation fails with 'pgcc -pgf90libs'
When -Mmakedll is present, always include the fortran libaries.
programs compiled -tp=k8-64,barcelona fail on intel products
If one of the chosen targets is compatible with the execution target, then allow the combination.
allocatable dummy arguments returning size(b)=0
Correct the size computation of a dummy allocatable array.
OSX OpenMP limited to 4 threads on PGI 7.0-7 x64
Remove the limit of the number of threads on OSX
logical(1), dimension(x) print 0 instead of F or T
Correct the list-directive formatting of logical(kind=1) data
pgcpp fails to call constructordestructor when class declared as private in parallel region
Correct the support of C++ classes declared in PRIVATE, FIRSTPRIVATE, LASTPRIVATE clauses.
dflib missing splitpathqq
Added support for the DFLIB splitpathqq routine to Win32 and Windows x64.
MPI2 does not have a man-page associated with mpirun
Added a man page for mpirun and updated the man page for mpiexec.
module.skel script variable crashes in bash
Delete the use of C++ as an environment variable in the module script files.
minloc(x) does not handle array x=huge(data type of x)
The value of minloc was incorrect for an array assigned the value of HUGE.
Internal compiler error: non-conformable
Fixed a bug with computing the SPREAD intrinsic when its argument is an array containing a vector subcript.
Fortran program takes a huge amount of time to compile ? block data.
Improved the processing of multiple implied-do initializers for the same array.
DATE_AND_TIME runs backwards when NCPUS > cpu count
The DATE_AND_TIME intrinsic returned incorrect values when called from an OpenMP parallel region.
|4285||7.2-1||64-bit C/C++||Performance issue with SSE intrinsics
Improved the code generation when storing the result of an 128-bit SSE intrinsic.
Lack of support of C99 VLA as routine parameters
A C99 VLA declaration was not allowed for a formal argument.
THREADPRIVATE support via DWARF information lacking
Corrected the debug information produced by the compilers for threadprivate data objects.
OpenMP test SCHEDULE(GUIDED) fails
Corrected the distribution of the iterations when chunk size is not present for the guided schedule.