- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I made some modifications in my code and now I'm having different behaviour in the optimized version. I found that with the option "-check all" I have a different result.
When I use that option, the results is correct, but without it the behaviour of the code change, and the result is wrong.
Some one can make me some suggestion about what can be the problem, because the run-time checker don't found any problem!!!
I'm using ifort 11.0.069.
(ifort -O3 -no-prec-div -xT -check all -warn all -nogen-interface -heap-arrays ...)
thanks
I made some modifications in my code and now I'm having different behaviour in the optimized version. I found that with the option "-check all" I have a different result.
When I use that option, the results is correct, but without it the behaviour of the code change, and the result is wrong.
Some one can make me some suggestion about what can be the problem, because the run-time checker don't found any problem!!!
I'm using ifort 11.0.069.
(ifort -O3 -no-prec-div -xT -check all -warn all -nogen-interface -heap-arrays ...)
thanks
Link Copied
3 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The -check options do alter the generated code.
You weren't specific if you had tried this or not, so try dropping -check alland using less optimization. Start with -O0 and step up to -O1, then -O2. If you receive correct results at these levels, then it is possible there's a bug at -O3. If the results are incorrect at any other opt-level thenthat may point to an application bug.
If the results are incorrect at lower opt-levels, without using any -check options, try -fp-stack-check also. Maybe there's some accidental floating-point stack corruption.
You might also try each specific -check option just to determine which influence the results.
If you haven't already tried (although I see you explicitly disable interface generation) the -gen-interfaces -warn interfaces might catch a mis-match.
I noted you are using 11.0.069. If this is a compiler bug, you might consider trying the latest Linux 11.1 update (11.1.056).
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you Kevin!
I tried with different levels of optimization, and always was the same. I will try with each specific check option. Maybe I can to obtain a most clear idea about the problem.
About the "interfaces", I'm using the options because it is a old code who give sometimes the array arguments as scalars, and I can't use the 11.1 version of the compiler, because a bug with some character arguments....
I will make some test and I will post the results.
I tried with different levels of optimization, and always was the same. I will try with each specific check option. Maybe I can to obtain a most clear idea about the problem.
About the "interfaces", I'm using the options because it is a old code who give sometimes the array arguments as scalars, and I can't use the 11.1 version of the compiler, because a bug with some character arguments....
I will make some test and I will post the results.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
As your source code expects compilers not to distinguish dummy arrays from scalars, it should not be surprising if -check bounds would affect the results, or if other assumptions such as character type mis-match have been made in violation of standard.

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page