Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

Debug Flags: Am I duplicating myself?


Intel Fortran Gurus,

I recently encountered an ICE with Intel 2018 when a certain flag (-ftrapuv) is enabled. I've asked our computing center to pass along the reproducer (they have the license, etc., not me), but it got me thinking: do I need that flag?

Due to institutional memory, our current set of flags we set for debugging with Intel is:

-g -O0 -ftz -align all -fno-alias -traceback -debug -nolib-inline -fno-inline-functions -assume protect_parens,minus0 -prec-div -prec-sqrt -check bounds -check uninit -fp-stack-check -ftrapuv -warn unused  -init=snan,arrays -traceback -assume realloc_lhs      -fPIC -fpe0 -fp-model source -heap-arrays 32 -assume noold_maxminloc  -align dcommons

Well, the first part of that is. We sort of concatenate a lot of flags.

My question is with: -ftrapuv -check uninit -init=snan,arrays. From my reading of the ifort man page, I think some imply others (-ftrapuv implies -init=snan, for example), but I wondered if just "-check uninit -init=snan,arrays" does as much as all three? If so, I could safely leave out that flag and I think avoid our ICE.

Thanks for any advice.

PS: I suppose I should also ask: what might I be missing? Anything new in Intel 18 I should be adding? Removing? Note that standards conformance flags are a no-go at present, but I'm trying to use NAG Fortran to make our code comply!

0 Kudos
2 Replies
Black Belt Retired Employee

-ftrapuv does nothing useful and I recommend against using it.  It does NOT imply -init=snan, despite the confusing description. Once upon a time, that was perhaps what it was supposed to do, but it ended up being something very different. Its major effect is to disable a couple of optimizations and to initialize some REAL values to an "unusual" value - not a NaN. Use -init instead.

That said, an ICE is always a compiler bug and I am sure the Intel folks would appreciate a test case.


It looks like -init=snan,arrays triggers the same ICE. I've asked our admins to update the bug report with Intel.