- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I'm somewhat confused with how individual files' settings are inherited from the parent project.
I have a project where the runtime settings are set to checks:all for Debug config. Now I want to switch off only Array bounds checking for one file (inheriting the remainder of the settings from the parent project). So I bring up the Run-time section and change "Runtime Error Checking" to Custom, and set "Check Array and String Bounds" to "Yes". Now all the other checks under Custom inherit from the parent, but are set to "No", whereas the parent project has all checking on. This is confusing me. Do I have to manually change all the checks to "Yes"? Why does it not inherit the "Yes" from the parent project?
I have a project where the runtime settings are set to checks:all for Debug config. Now I want to switch off only Array bounds checking for one file (inheriting the remainder of the settings from the parent project). So I bring up the Run-time section and change "Runtime Error Checking" to Custom, and set "Check Array and String Bounds" to "Yes". Now all the other checks under Custom inherit from the parent, but are set to "No", whereas the parent project has all checking on. This is confusing me. Do I have to manually change all the checks to "Yes"? Why does it not inherit the "Yes" from the parent project?
Link Copied
9 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
If you change from All to Custom, that resets all of the values to what the initial defaults are for a Debug configuration. The property you changed was the "Runtime Error Checking", sort of a combination option, and you lose the rest of the implied Yes settings when you change that. I agree this looks strange.
What you can do is set all the individual options to Yes at the project level and then disable bounds checking for that one file.
I will ask our developers if this can be improved.
What you can do is set all the individual options to Yes at the project level and then disable bounds checking for that one file.
I will ask our developers if this can be improved.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks, Steve, I did that.
But I guess I'm still a bit confused as to how my project has worked in the past as Array Bounds checking needs to be off for this one file for the program to work. It has Checks:All on, but Bounds Checking off (which you can't see unless Checks:All is changed to Checks:Custom). The vfproj file has "BoundsCheck = False" on this file, but the command line only says /check:all. I had always assumed that BoundsCheck was off, but looking at the command line it appears to be on, and hence I've no idea how my program worked.
Adrian
But I guess I'm still a bit confused as to how my project has worked in the past as Array Bounds checking needs to be off for this one file for the program to work. It has Checks:All on, but Bounds Checking off (which you can't see unless Checks:All is changed to Checks:Custom). The vfproj file has "BoundsCheck = False" on this file, but the command line only says /check:all. I had always assumed that BoundsCheck was off, but looking at the command line it appears to be on, and hence I've no idea how my program worked.
Adrian
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I tried what you describe but I see for the file where I overrode the project settings, no /check option is supplied for that file. You would see /check:all for the other files.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Yes correct. However the VFPROJ line for this file shows BoundsCheck=False, but the command line shows nothing.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I'm not sure what you're saying here - please attach the .vfproj file and the buildlog.htm
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Here is the vfproj + buildlog file (ignore the link failure).
The file is aqprop.for and has Custom for runtime + Bounds check= No
The parent has checks:all on
The vfproj file shows Boundscheck = False for this file
The buildlog shows the commandline to be:
ifort /nologo /debug:full /Od /fpp /I"..\..\..\mod\Debug\Aspen\2006.5" /I"..\..\..\mod\Debug\" /I"..\..\asap" /I"cmns\2006.5" /I"." /DWIN32 /DAWINNTN /DDEBUG /free /warn:interfaces /assume:dummy_aliases /fpe:0 /fp:source /names:uppercase /iface:cvf /module:"..\..\..\mod\Debug\Aspen\2006.5\" /object:"..\..\..\tmp\Debug\Aspen\2006.5\" /traceback /libs:dll /threads /dbglibs /c /Qvc9 /Qlocation,link,"C:\Program Files\Microsoft Visual Studio 9.0\VC\bin" "D:\Devl.OLI\OLIEnginesF\src\Alliance\Aspen\not_in_asap\pre-73\aqprop.for"
Which has lost the BoundsCheck = False
Changing BoundsCheck = Inherit (ie. Yes) gives exactly the same commandline.
The file is aqprop.for and has Custom for runtime + Bounds check= No
The parent has checks:all on
The vfproj file shows Boundscheck = False for this file
The buildlog shows the commandline to be:
ifort /nologo /debug:full /Od /fpp /I"..\..\..\mod\Debug\Aspen\2006.5" /I"..\..\..\mod\Debug\" /I"..\..\asap" /I"cmns\2006.5" /I"." /DWIN32 /DAWINNTN /DDEBUG /free /warn:interfaces /assume:dummy_aliases /fpe:0 /fp:source /names:uppercase /iface:cvf /module:"..\..\..\mod\Debug\Aspen\2006.5\" /object:"..\..\..\tmp\Debug\Aspen\2006.5\" /traceback /libs:dll /threads /dbglibs /c /Qvc9 /Qlocation,link,"C:\Program Files\Microsoft Visual Studio 9.0\VC\bin" "D:\Devl.OLI\OLIEnginesF\src\Alliance\Aspen\not_in_asap\pre-73\aqprop.for"
Which has lost the BoundsCheck = False
Changing BoundsCheck = Inherit (ie. Yes) gives exactly the same commandline.
ifort /nologo /debug:full /Od /fpp /I"..\..\..\mod\Debug\Aspen\2006.5" /I"..\..\..\mod\Debug\" /I"..\..\asap" /I"cmns\2006.5" /I"." /DWIN32 /DAWINNTN /DDEBUG /free /warn:interfaces /assume:dummy_aliases /fpe:0 /fp:source /names:uppercase /iface:cvf /module:"..\..\..\mod\Debug\Aspen\2006.5\" /object:"..\..\..\tmp\Debug\Aspen\2006.5\" /traceback /libs:dll /threads /dbglibs /c /Qvc9 /Qlocation,link,"C:\Program Files\Microsoft Visual Studio 9.0\VC\bin" "D:\Devl.OLI\OLIEnginesF\src\Alliance\Aspen\not_in_asap\pre-73\aqprop.for" AspenOLIEngine_2006.5 - 0 error(s), 0 warning(s)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I think you need to look again. The line you show does not include /check:all and if you look at the list of commands in the build log, you'll see one line that is different, the one for aqprop.for. All the rest have /check:all but that one does not.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
aqprop.for needs BoundsCheck=False but this does not appear on the commandline (it does in the vfproj file)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
No it doesn't. The command line default is no run-time checking, so the absence of /check in any form reflects what you set for its properties.

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