- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks,
Victor
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
1. Use the correctness checking options of the compiler:
a. /Qdiag-enable:sc (pre-build checks)
b. /check (run-time checks)
2. Turn off risky optimizations for release build
a. (more conservative) /fp:source
b. (more aggressive, but less than default release options)
/assume:protect_parens /Qprec-div /Qprec-sqrt
3. For the 32-bit compiler, set /arch:ia32 as a temporary diagnostic step
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I test Tim's suggestion, but I still get different results.My compilecommand lines are:
1. /nologo /debug:full /DhammerXM /DdialogUI /Dcvf /fpscomp:ioformat /fpscomp:ldio_spacing /fpscomp:logicals /iface:cvf /module:"ReleaseXM/" /object:"ReleaseXM/" /traceback /check:bounds /check:uninit /libs:static /threads /winapp /c
2. /nologo /DhammerXM /DdialogUI /Dcvf /fpscomp:ioformat /fpscomp:ldio_spacing /fpscomp:logicals /iface:cvf /module:"ReleaseXM/" /object:"ReleaseXM/" /traceback /check:bounds /check:uninit /libs:static /threads /winapp /c
I got different results for the settings for my test suite.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
1. When use /check, I get"forrtl: severe (408): fort: (7): Attempt to use pointer NULL_SECURITY_ATTRIBUTES when it is not associated with a target"
2. When use /assume:protect_parens /Qprec-div /Qprec-sqrt, my program hang there.
Any suggestions?
Thanks.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
For where you have NULL_SECURITY_ATTRIBUTES, just use NULL instead.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
For where you have NULL_SECURITY_ATTRIBUTES, just use NULL instead.
I tried all the options:
1) /Qdiag-enable:sc/arch:ia32
2) /Qdiag-enable:sc/arch:ia32 /fp:source
3) /Qdiag-enable:sc/arch:ia32 /assume:protect_parens /Qprec-div /Qprec-sqrt
4) /check /arch:ia32
Thanks.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
/Qdiag-enable-sc is used for diagnostics only. If you have that set, you don't get an executable, so none of the other options would be used.
What are the differences? Can you determine the point in the program where results start to diverge?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
/Qdiag-enable-sc is used for diagnostics only. If you have that set, you don't get an executable, so none of the other options would be used.
What are the differences? Can you determine the point in the program where results start to diverge?
You can see the only difference in the command lines is if use /debug:full.
1. Can you tell me what is the main difference for using /debug:full or not?
My program repeats hundreds times.
2. when I use /arch: ia32, and run the program, it hangs there for about 190 iterations.
3. The first difference happens about 16 iterations if I only do not use /debug:full setting.
thanks.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
It sounds as if your application is very sensitive to small floating point differences.

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