Skip to content

Compiler warnings about incorrect abs functions #6

@manodeep

Description

@manodeep

Describe the bug
When compiling with oneAPI 2025.0.4, I get warnings about mis-matched function parameters for the abs family of functions.

Here are all the compiler warnings:

/home/593/ms2335/codes/oneapi_compilation_dir/access-nri-fms/mosaic/create_xgrid.c:2427:8: warning: using integer absolute value function 'abs' when argument is of floating point type [-Wabsolute-value]
 2427 |     if(abs(dphi2 -dphi1) < M_PI) {
      |        ^
/home/593/ms2335/codes/oneapi_compilation_dir/access-nri-fms/mosaic/create_xgrid.c:2427:8: note: use function 'fabs' instead
 2427 |     if(abs(dphi2 -dphi1) < M_PI) {
      |        ^~~
      |        fabs
/home/593/ms2335/codes/oneapi_compilation_dir/access-nri-fms/mosaic/create_xgrid.c:2435:39: warning: using integer absolute value function 'abs' when argument is of floating point type [-Wabsolute-value]
 2435 |       fint = f1 + (f2-f1)*(fac-dphi1)/abs(dphi);
      |                                       ^
/home/593/ms2335/codes/oneapi_compilation_dir/access-nri-fms/mosaic/create_xgrid.c:2435:39: note: use function 'fabs' instead
 2435 |       fint = f1 + (f2-f1)*(fac-dphi1)/abs(dphi);
      |                                       ^~~
      |                                       fabs
/home/593/ms2335/codes/oneapi_compilation_dir/access-nri-fms/mosaic/mosaic_util.c:584:9: warning: absolute value function 'fabs' given an argument of type 'long double' but has parameter of type 'double' which may cause truncation of value [-Wabsolute-value]
  584 |     if( ABS_(ddd-1) < EPSLN30 ) ddd = 1;
      |         ^
/home/593/ms2335/codes/oneapi_compilation_dir/access-nri-fms/mosaic/mosaic_util.c:564:14: note: expanded from macro 'ABS_'
  564 | #define ABS_ fabs
      |              ^
/home/593/ms2335/codes/oneapi_compilation_dir/access-nri-fms/mosaic/mosaic_util.c:584:9: note: use function 'fabsl' instead
  584 |     if( ABS_(ddd-1) < EPSLN30 ) ddd = 1;
      |         ^~~~
      |         fabsl
/home/593/ms2335/codes/oneapi_compilation_dir/access-nri-fms/mosaic/mosaic_util.c:564:14: note: expanded from macro 'ABS_'
  564 | #define ABS_ fabs
      |              ^
/home/593/ms2335/codes/oneapi_compilation_dir/access-nri-fms/mosaic/mosaic_util.c:585:9: warning: absolute value function 'fabs' given an argument of type 'long double' but has parameter of type 'double' which may cause truncation of value [-Wabsolute-value]
  585 |     if( ABS_(ddd+1) < EPSLN30 ) ddd = -1;
      |         ^
/home/593/ms2335/codes/oneapi_compilation_dir/access-nri-fms/mosaic/mosaic_util.c:564:14: note: expanded from macro 'ABS_'
  564 | #define ABS_ fabs
      |              ^
/home/593/ms2335/codes/oneapi_compilation_dir/access-nri-fms/mosaic/mosaic_util.c:585:9: note: use function 'fabsl' instead
  585 |     if( ABS_(ddd+1) < EPSLN30 ) ddd = -1;
      |         ^~~~
      |         fabsl
/home/593/ms2335/codes/oneapi_compilation_dir/access-nri-fms/mosaic/mosaic_util.c:564:14: note: expanded from macro 'ABS_'
  564 | #define ABS_ fabs
      |              ^
2 warnings generated.

To Reproduce
Compile with oneAPI 2025.0.4. The steps that work for me are:

git clone git@github.com:ACCESS-NRI/FMS.git access-nri-fms
cd access-nri-fms
git checkout development
rm -Rf build && mkdir build && cd build
module purge
module load intel-compiler-llvm/2025.0.4
module load openmpi/5.0.5
module load netcdf/4.9.2p
module prepend-path PKG_CONFIG_PATH "${NETCDF_BASE}/lib/Intel/pkgconfig/"
cmake -DCMAKE_PREFIX_PATH=$OMPI_ROOT/include/Intel -DMPI_C_HEADER_DIR=$OMPI_ROOT/include/Intel ../
make -j4

Expected behavior
The correct abs function should be used

System Environment
I was compiling on gadi with oneAPI/2025.0.4 openmpi/5.0.5 netcdf/4.9.2p

Details for building are listed in the steps to reproduce above.

Additional context
N/A

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions