Issue with stdlib and Intel OneAPI Fortran compiler (ifx 2024.0 )

Did someone try to compile stdlib with ifx 2024.0 and checks enabled?

I am updating the CI of stdlib to compile it with the Intel OneAPI Fortran Compiler 2024.0 (ifx 2024.0). See the following PR.

Compilation and tests go well with the Release mode, but almost all tests failed with the following Debug options:

-DCMAKE_BUILD_TYPE=Debug
-DCMAKE_Fortran_FLAGS_DEBUG="-warn all -check all -error-limit 1 -O0 -g -assume byterecl -standard-semantics -traceback"

I got these flags from fpm

The messages are similar for all tests, and look like:

...
Check failed.
Uninitialized bytes in write at offset 0 inside [0x725000000000, 15)

WARNING: MemorySanitizer: use-of-uninitialized-value
...

Any idea what is the issue?

It’s an ifx bug. See if removing uninit compiler flag (from check and warn) resolves it. I have encountered it before and has been discussed here in the forum too.intel team is working on a patch.

1 Like

According to the Intel Fortran Compiler Release Notes Page, this bug should be fixed as of version 2024.0.1.

1 Like

Thank all for your reply.

It seems that it installed 2024.0.2 (following this log). I’ll try the workaround.

I have the same issue on my computer with the following version:

$ ifx --version
ifx (IFX) 2024.0.2 20231213
Copyright (C) 1985-2023 Intel Corporation. All rights reserved.

@jeremie.vandenplas, see this thread. In fpm, the workaround to use -check all,nouninit is being introduced (see PR)

2 Likes

Thank you @FedericoPerini . Indeed, it solved the issue. However, this means that the bug has not been fully solved in the newest Intel version.

1 Like

Indeed not. @Greenrongreen told us it will be fixed in ifx 2024.1, which will be later than 2024.0.anything.

1 Like

The bug is still there with the 2024.2.1 version.
Even, with a minimal code:

write(*,*) 'hello'

END

you have the error when it is compile with the option -check all