Where did warning variable used before value defined go?

Where did warning variable used before value defined go?

Much to our surprise when we went back to our old friend VF6 (for AMD support), we discovered our code generated

Warning: Variable XXX is used before its value has been defined.

The compile setting appears to be the absence of /warn:nouninitialized

This seems to be missing from the latest Intel Visual Fortran settings?

We found something similar in the runtime checking in the lastest Intel VF which is on by default for Debug mode and off for Release mode (to speed things up). Please compare and contrast the option to the new?

The moral of the story being there is no such thing as too much testing.

We also discovered that the old Visual Studio 6 has a handy export project as makefile feature that is also missing from the new version.

"Incompatible upgrade has fewer features" was not part of our reasons to upgrade. At least the Intel Release notes explained the new incompatible Microsoft 2010 linker so all is working again.

8 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.
Best Reply

Are you referring to /check:uninit? This will do runtime checking for certaintypes of uninitialized variables. If an uninitialized variable is used before it is initialized, the program will abort with the error message "forrtl: severe (193): Run-Time Check Failure. The variable XXX is being used without being defined"

Regards,
Annalee

Also, I will add your name to the feature request for compile-time uninitialized variable checking. The feature request # is DPD200015579.

Is there a way to see / browse these feature requests? I tried search at intel.com and google with no luck. I was able to find my own post here and that's it. Thanks!

p.s. how long has this been a feature request? It's been awhile since the feature was removed or moved from a compiler warning to a runtime check.

This feature request has been around for about 5 years. I would not expect it to be implemented in the near future, but we do take customer requests into consideration when deciding what features to implement.

There is no external database of feature requests, but other people within Intel will be able to look it up using the rest #. We also publish a list issues the issues that have been fixed and features that have been implemented for each version. You are the only forum poster tied to this particular feature request, but we have had other customers request it through premier support.

If you want more information about the differences between Compaq* Visual Fortran and Intel Visual Fortran, I would suggest checking out this article.

The "Variable used but not defined" compile-time check was a very nice feature of CVF and I am very disappointed not to see it in IVF. Is there a technical reason for not performing this check at compile time (which checks all logic paths in one go, unlike the run-time check)? In my view, it is a step back. I join Darrell in requesting that this feature be added in future versions of IVF.

Perhaps the option is there, but I have not found it. I would be very pleased to be corrected if this is the case.

Thanks

Gabriel

Now, about this forum: it is bad. The window to write comments is very narrow (5 lines). Do you want to encourage terse responses?

You have been added to the feature request. Uninitialized variable checking was implemented in the back end of the CVF compiler. The Intel compiler uses a different back end and this feature has not been implemented in it.

The comment window can be re-sized by clicking a dragging the bar at the bottom of it.

Annalee

The "Static Analysis" feature of Intel Fortran Studio XE (or Intel Parallel Studio XE) provides whole-program build-time uninitialized variable detection - even better than what CVF did. There is a limited-time discounted upgrade to Intel Fortran Studio XE available.

Steve - Intel Developer Support

Leave a Comment

Please sign in to add a comment. Not a member? Join today