silence compiler warnings, avoid integer or buffer overflows

This commit is contained in:
Axel Kohlmeyer
2022-10-05 10:52:17 -04:00
parent 7fa020e574
commit 80da4c307c
4 changed files with 23 additions and 30 deletions

View File

@ -1134,7 +1134,7 @@ CONTAINS
TYPE(lammps_variable_data) :: variable_data TYPE(lammps_variable_data) :: variable_data
TYPE(c_ptr) :: Cptr, Cname, Cgroup, Cveclength TYPE(c_ptr) :: Cptr, Cname, Cgroup, Cveclength
INTEGER :: length, i INTEGER(c_size_t) :: length, i
CHARACTER(KIND=c_char, LEN=1), DIMENSION(:), POINTER :: Cstring CHARACTER(KIND=c_char, LEN=1), DIMENSION(:), POINTER :: Cstring
INTEGER(c_int) :: datatype INTEGER(c_int) :: datatype
REAL(c_double), POINTER :: double => NULL() REAL(c_double), POINTER :: double => NULL()
@ -1370,7 +1370,6 @@ CONTAINS
INTEGER(c_int) :: ndata INTEGER(c_int) :: ndata
TYPE(c_ptr) :: Cdata, Cname, Cids TYPE(c_ptr) :: Cdata, Cname, Cids
INTEGER(c_int), PARAMETER :: Ctype = 0_c_int INTEGER(c_int), PARAMETER :: Ctype = 0_c_int
CHARACTER(LEN=100) :: error_msg
IF (count /= 1 .AND. count /= 3) THEN IF (count /= 1 .AND. count /= 3) THEN
CALL lmp_error(self, LMP_ERROR_ALL + LMP_ERROR_WORLD, & CALL lmp_error(self, LMP_ERROR_ALL + LMP_ERROR_WORLD, &
@ -1401,7 +1400,6 @@ CONTAINS
INTEGER(c_int) :: ndata INTEGER(c_int) :: ndata
TYPE(c_ptr) :: Cdata, Cname, Cids TYPE(c_ptr) :: Cdata, Cname, Cids
INTEGER(c_int), PARAMETER :: Ctype = 1_c_int INTEGER(c_int), PARAMETER :: Ctype = 1_c_int
CHARACTER(LEN=100) :: error_msg
IF (count /= 1 .AND. count /= 3) THEN IF (count /= 1 .AND. count /= 3) THEN
CALL lmp_error(self, LMP_ERROR_ALL + LMP_ERROR_WORLD, & CALL lmp_error(self, LMP_ERROR_ALL + LMP_ERROR_WORLD, &
@ -1494,7 +1492,6 @@ CONTAINS
INTEGER(c_int), PARAMETER :: Ctype = 0_c_int INTEGER(c_int), PARAMETER :: Ctype = 0_c_int
INTEGER(c_int) :: Cndata, Ccount INTEGER(c_int) :: Cndata, Ccount
TYPE(c_ptr) :: Cdata, Cname, Cids TYPE(c_ptr) :: Cdata, Cname, Cids
CHARACTER(LEN=100) :: error_msg
Cndata = SIZE(ids, KIND=c_int) Cndata = SIZE(ids, KIND=c_int)
Ccount = SIZE(data, KIND=c_int) / Cndata Ccount = SIZE(data, KIND=c_int) / Cndata
@ -1519,7 +1516,6 @@ CONTAINS
INTEGER(c_int), PARAMETER :: Ctype = 1_c_int INTEGER(c_int), PARAMETER :: Ctype = 1_c_int
INTEGER(c_int) :: Cndata, Ccount INTEGER(c_int) :: Cndata, Ccount
TYPE(c_ptr) :: Cdata, Cname, Cids TYPE(c_ptr) :: Cdata, Cname, Cids
CHARACTER(LEN=100) :: error_msg
Cndata = SIZE(ids, KIND=c_int) Cndata = SIZE(ids, KIND=c_int)
Ccount = SIZE(data, KIND=c_int) / Cndata Ccount = SIZE(data, KIND=c_int) / Cndata
@ -1628,7 +1624,7 @@ CONTAINS
INTEGER(c_int) :: Cidx, Csuccess INTEGER(c_int) :: Cidx, Csuccess
TYPE(c_ptr) :: Cptr TYPE(c_ptr) :: Cptr
CHARACTER(LEN=1,KIND=c_char), TARGET :: Cbuffer(LEN(buffer)+1) CHARACTER(LEN=1,KIND=c_char), TARGET :: Cbuffer(LEN(buffer)+1)
INTEGER :: i, strlen INTEGER(c_size_t) :: i, strlen
Cidx = idx - 1 Cidx = idx - 1
Cptr = C_LOC(Cbuffer(1)) Cptr = C_LOC(Cbuffer(1))
@ -1698,8 +1694,8 @@ CONTAINS
CLASS(lammps), INTENT(IN) :: self CLASS(lammps), INTENT(IN) :: self
CHARACTER(LEN=*), INTENT(OUT) :: buffer CHARACTER(LEN=*), INTENT(OUT) :: buffer
INTEGER, INTENT(OUT), OPTIONAL :: status INTEGER, INTENT(OUT), OPTIONAL :: status
INTEGER(c_int) :: buflen, Cstatus, i INTEGER(c_int) :: buflen, Cstatus
INTEGER(c_size_t) :: length INTEGER(c_size_t) :: i, length
TYPE(c_ptr) :: Cptr TYPE(c_ptr) :: Cptr
CHARACTER(LEN=1, KIND=c_char), POINTER :: c_string(:) CHARACTER(LEN=1, KIND=c_char), POINTER :: c_string(:)

View File

@ -33,8 +33,7 @@ CONTAINS
CHARACTER(LEN=256) :: test_input_directory CHARACTER(LEN=256) :: test_input_directory
TYPE(c_ptr) :: c_test_input_directory, c_absolute_path, c_filename TYPE(c_ptr) :: c_test_input_directory, c_absolute_path, c_filename
CHARACTER(LEN=1,KIND=c_char), DIMENSION(:), POINTER :: F_absolute_path CHARACTER(LEN=1,KIND=c_char), DIMENSION(:), POINTER :: F_absolute_path
INTEGER :: i INTEGER(c_size_t) :: i, length
INTEGER(c_size_t) :: length
test_input_directory = lmp%extract_variable('input_dir') test_input_directory = lmp%extract_variable('input_dir')
c_test_input_directory = f2c_string(test_input_directory) c_test_input_directory = f2c_string(test_input_directory)
@ -91,10 +90,10 @@ FUNCTION f_lammps_with_C_args(argc, argv) BIND(C)
TYPE(c_ptr) :: f_lammps_with_C_args TYPE(c_ptr) :: f_lammps_with_C_args
CHARACTER(LEN=ARG_LENGTH), DIMENSION(argc) :: args CHARACTER(LEN=ARG_LENGTH), DIMENSION(argc) :: args
CHARACTER(LEN=1,KIND=c_char), DIMENSION(:), POINTER :: Cstr CHARACTER(LEN=1,KIND=c_char), DIMENSION(:), POINTER :: Cstr
INTEGER :: i, length, j INTEGER(c_size_t):: i, length, j
INTERFACE INTERFACE
FUNCTION c_strlen (str) BIND(C,name='strlen') FUNCTION c_strlen(str) BIND(C,name='strlen')
IMPORT :: c_ptr, c_size_t IMPORT :: c_ptr, c_size_t
IMPLICIT NONE IMPLICIT NONE
TYPE(c_ptr), INTENT(IN), VALUE :: str TYPE(c_ptr), INTENT(IN), VALUE :: str
@ -126,7 +125,7 @@ SUBROUTINE f_lammps_close() BIND(C)
lmp%handle = c_null_ptr lmp%handle = c_null_ptr
END SUBROUTINE f_lammps_close END SUBROUTINE f_lammps_close
SUBROUTINE f_lammps_setup_extract_variable () BIND(C) SUBROUTINE f_lammps_setup_extract_variable() BIND(C)
USE LIBLAMMPS USE LIBLAMMPS
USE keepstuff, ONLY : lmp, big_input, cont_input, more_input, pair_input USE keepstuff, ONLY : lmp, big_input, cont_input, more_input, pair_input
USE keepvar, ONLY : absolute_path USE keepvar, ONLY : absolute_path
@ -173,7 +172,7 @@ SUBROUTINE f_lammps_setup_extract_variable () BIND(C)
CALL lmp%command("run 0") ! so c_COM and v_center have values CALL lmp%command("run 0") ! so c_COM and v_center have values
END SUBROUTINE f_lammps_setup_extract_variable END SUBROUTINE f_lammps_setup_extract_variable
FUNCTION f_lammps_extract_variable_index_1 () BIND(C) FUNCTION f_lammps_extract_variable_index_1() BIND(C)
USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_int USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_int
USE LIBLAMMPS USE LIBLAMMPS
USE keepstuff, ONLY : lmp USE keepstuff, ONLY : lmp
@ -189,7 +188,7 @@ FUNCTION f_lammps_extract_variable_index_1 () BIND(C)
END IF END IF
END FUNCTION f_lammps_extract_variable_index_1 END FUNCTION f_lammps_extract_variable_index_1
FUNCTION f_lammps_extract_variable_index_2 () BIND(C) FUNCTION f_lammps_extract_variable_index_2() BIND(C)
USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_int USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_int
USE LIBLAMMPS USE LIBLAMMPS
USE keepstuff, ONLY : lmp USE keepstuff, ONLY : lmp
@ -205,7 +204,7 @@ FUNCTION f_lammps_extract_variable_index_2 () BIND(C)
END IF END IF
END FUNCTION f_lammps_extract_variable_index_2 END FUNCTION f_lammps_extract_variable_index_2
FUNCTION f_lammps_extract_variable_loop () BIND(C) FUNCTION f_lammps_extract_variable_loop() BIND(C)
USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_int, c_double USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_int, c_double
USE LIBLAMMPS USE LIBLAMMPS
USE keepstuff, ONLY : lmp USE keepstuff, ONLY : lmp
@ -217,7 +216,7 @@ FUNCTION f_lammps_extract_variable_loop () BIND(C)
READ(loop,*) f_lammps_extract_variable_loop READ(loop,*) f_lammps_extract_variable_loop
END FUNCTION f_lammps_extract_variable_loop END FUNCTION f_lammps_extract_variable_loop
FUNCTION f_lammps_extract_variable_loop_pad () BIND(C) FUNCTION f_lammps_extract_variable_loop_pad() BIND(C)
USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr
USE LIBLAMMPS USE LIBLAMMPS
USE keepstuff, ONLY : lmp USE keepstuff, ONLY : lmp
@ -230,7 +229,7 @@ FUNCTION f_lammps_extract_variable_loop_pad () BIND(C)
f_lammps_extract_variable_loop_pad = f2c_string(loop) f_lammps_extract_variable_loop_pad = f2c_string(loop)
END FUNCTION f_lammps_extract_variable_loop_pad END FUNCTION f_lammps_extract_variable_loop_pad
FUNCTION f_lammps_extract_variable_world () BIND(C) FUNCTION f_lammps_extract_variable_world() BIND(C)
USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr
USE LIBLAMMPS USE LIBLAMMPS
USE keepstuff, ONLY : lmp USE keepstuff, ONLY : lmp
@ -243,7 +242,7 @@ FUNCTION f_lammps_extract_variable_world () BIND(C)
f_lammps_extract_variable_world = f2c_string(world) f_lammps_extract_variable_world = f2c_string(world)
END FUNCTION f_lammps_extract_variable_world END FUNCTION f_lammps_extract_variable_world
FUNCTION f_lammps_extract_variable_universe () BIND(C) FUNCTION f_lammps_extract_variable_universe() BIND(C)
USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr
USE LIBLAMMPS USE LIBLAMMPS
USE keepstuff, ONLY : lmp USE keepstuff, ONLY : lmp
@ -256,7 +255,7 @@ FUNCTION f_lammps_extract_variable_universe () BIND(C)
f_lammps_extract_variable_universe = f2c_string(universe) f_lammps_extract_variable_universe = f2c_string(universe)
END FUNCTION f_lammps_extract_variable_universe END FUNCTION f_lammps_extract_variable_universe
FUNCTION f_lammps_extract_variable_uloop () BIND(C) FUNCTION f_lammps_extract_variable_uloop() BIND(C)
USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_int USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_int
USE LIBLAMMPS USE LIBLAMMPS
USE keepstuff, ONLY : lmp USE keepstuff, ONLY : lmp
@ -268,7 +267,7 @@ FUNCTION f_lammps_extract_variable_uloop () BIND(C)
READ(uloop,*) f_lammps_extract_variable_uloop READ(uloop,*) f_lammps_extract_variable_uloop
END FUNCTION f_lammps_extract_variable_uloop END FUNCTION f_lammps_extract_variable_uloop
FUNCTION f_lammps_extract_variable_string () BIND(C) FUNCTION f_lammps_extract_variable_string() BIND(C)
USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr
USE LIBLAMMPS USE LIBLAMMPS
USE keepstuff, ONLY : lmp USE keepstuff, ONLY : lmp
@ -281,7 +280,7 @@ FUNCTION f_lammps_extract_variable_string () BIND(C)
f_lammps_extract_variable_string = f2c_string(string) f_lammps_extract_variable_string = f2c_string(string)
END FUNCTION f_lammps_extract_variable_string END FUNCTION f_lammps_extract_variable_string
FUNCTION f_lammps_extract_variable_format () BIND(C) FUNCTION f_lammps_extract_variable_format() BIND(C)
USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr
USE LIBLAMMPS USE LIBLAMMPS
USE keepstuff, ONLY : lmp USE keepstuff, ONLY : lmp
@ -294,7 +293,7 @@ FUNCTION f_lammps_extract_variable_format () BIND(C)
f_lammps_extract_variable_format = f2c_string(form) f_lammps_extract_variable_format = f2c_string(form)
END FUNCTION f_lammps_extract_variable_format END FUNCTION f_lammps_extract_variable_format
FUNCTION f_lammps_extract_variable_format_pad () BIND(C) FUNCTION f_lammps_extract_variable_format_pad() BIND(C)
USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr
USE LIBLAMMPS USE LIBLAMMPS
USE keepstuff, ONLY : lmp USE keepstuff, ONLY : lmp
@ -307,7 +306,7 @@ FUNCTION f_lammps_extract_variable_format_pad () BIND(C)
f_lammps_extract_variable_format_pad = f2c_string(form) f_lammps_extract_variable_format_pad = f2c_string(form)
END FUNCTION f_lammps_extract_variable_format_pad END FUNCTION f_lammps_extract_variable_format_pad
FUNCTION f_lammps_extract_variable_getenv () BIND(C) FUNCTION f_lammps_extract_variable_getenv() BIND(C)
USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr
USE LIBLAMMPS USE LIBLAMMPS
USE keepstuff, ONLY : lmp USE keepstuff, ONLY : lmp
@ -320,7 +319,7 @@ FUNCTION f_lammps_extract_variable_getenv () BIND(C)
f_lammps_extract_variable_getenv = f2c_string(string) f_lammps_extract_variable_getenv = f2c_string(string)
END FUNCTION f_lammps_extract_variable_getenv END FUNCTION f_lammps_extract_variable_getenv
FUNCTION f_lammps_extract_variable_file () BIND(C) FUNCTION f_lammps_extract_variable_file() BIND(C)
USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_ptr
USE LIBLAMMPS USE LIBLAMMPS
USE keepstuff, ONLY : lmp USE keepstuff, ONLY : lmp
@ -346,12 +345,11 @@ FUNCTION f_lammps_extract_variable_atomfile(i) BIND(C)
f_lammps_extract_variable_atomfile = atom_data(i) f_lammps_extract_variable_atomfile = atom_data(i)
END FUNCTION f_lammps_extract_variable_atomfile END FUNCTION f_lammps_extract_variable_atomfile
FUNCTION f_lammps_extract_variable_python(i) BIND(C) FUNCTION f_lammps_extract_variable_python() BIND(C)
USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_int, c_double USE, INTRINSIC :: ISO_C_BINDING, ONLY : c_int, c_double
USE LIBLAMMPS USE LIBLAMMPS
USE keepstuff, ONLY : lmp USE keepstuff, ONLY : lmp
IMPLICIT NONE IMPLICIT NONE
INTEGER(c_int), INTENT(IN), VALUE :: i
REAL(c_double) :: f_lammps_extract_variable_python REAL(c_double) :: f_lammps_extract_variable_python
f_lammps_extract_variable_python = lmp%extract_variable('py') f_lammps_extract_variable_python = lmp%extract_variable('py')

View File

@ -190,7 +190,6 @@ SUBROUTINE f_lammps_scatter_atoms_subset_mask() BIND(C)
INTEGER(c_int), DIMENSION(:), ALLOCATABLE :: all_masks INTEGER(c_int), DIMENSION(:), ALLOCATABLE :: all_masks
INTEGER(c_int), DIMENSION(*), PARAMETER :: tags = [3,1] INTEGER(c_int), DIMENSION(*), PARAMETER :: tags = [3,1]
INTEGER(c_int), DIMENSION(2) :: masks INTEGER(c_int), DIMENSION(2) :: masks
INTEGER(c_int) :: swap
CALL lmp%gather_atoms('mask', 1_c_int, all_masks) CALL lmp%gather_atoms('mask', 1_c_int, all_masks)

View File

@ -165,7 +165,7 @@ TEST_F(LAMMPS_extract_variable, format)
{ {
f_lammps_setup_extract_variable(); f_lammps_setup_extract_variable();
int i; int i;
char str[10]; char str[16];
char *fstr; char *fstr;
for (i = 1; i <= 10; i++) { for (i = 1; i <= 10; i++) {
std::sprintf(str, "%.6G", std::exp(i)); std::sprintf(str, "%.6G", std::exp(i));
@ -180,7 +180,7 @@ TEST_F(LAMMPS_extract_variable, format_pad)
{ {
f_lammps_setup_extract_variable(); f_lammps_setup_extract_variable();
int i; int i;
char str[10]; char str[16];
char *fstr; char *fstr;
for (i = 1; i <= 10; i++) { for (i = 1; i <= 10; i++) {
std::sprintf(str, "%08.6G", std::exp(i)); std::sprintf(str, "%08.6G", std::exp(i));