[R-pkg-devel] warning: type of ‘zhpevx_’ does not match original declaration [-Wlto-type-mismatch]

Ivan Krylov kry|ov@r00t @end|ng |rom gm@||@com
Mon Jul 6 22:11:57 CEST 2020


On Fri, 3 Jul 2020 00:15:27 +0000
Pierre Lafaye de Micheaux <lafaye using unsw.edu.au> wrote:

>Found the following significant warnings:
>    myzhpevx.cpp:13:23: warning: type of _zhpevx__ does not match
> original declaration [-Wlto-type-mismatch]

I managed to reproduce the warning on R-devel r78607 built with
--enable-lto using gcc version 6.3.0 20170516 (Debian 6.3.0-18+deb9u1):

myzhpevx.cpp:13:16: warning: type of ‘zhpevx_’ does not match original declaration [-Wlto-type-mismatch]
           void F77_NAME(zhpevx)(char *jobz, char *range, char *uplo,
                ^
zhpevx.f:232:7: note: type mismatch in parameter 20
       SUBROUTINE zhpevx( JOBZ, RANGE, UPLO, N, AP, VL, VU, IL, IU,
       ^
zhpevx.f:232:7: note: type ‘int’ should match type ‘size_t’
/usr/lib/gcc/x86_64-linux-gnu/6/include/stddef.h:216:23: note: the incompatible type is defined here
 typedef __SIZE_TYPE__ size_t;
                       ^
zhpevx.f:232:7: note: ‘zhpevx’ was previously declared here
       SUBROUTINE zhpevx( JOBZ, RANGE, UPLO, N, AP, VL, VU, IL, IU,
       ^

Do you have access to the notes produced by the compiler in addition
to the warnings? Do they spell the same difference?

If yes, the warning is likely to be safe to ignore. m4/R.m4 notes that,
while gfortran < 8 uses int instead of size_t for hidden size arguments,
it doesn't make a practical difference.

-- 
Best regards,
Ivan



More information about the R-package-devel mailing list