I am trying to run the SSA (2013) on a project of ours in VS 2010. When I build for static analysis the build completes but I do not get a results file. I do have some link warnings (see below):
1>message.obj : warning LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library
1>library.obj : warning LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library
Are these warnings preventing the static analysis from running? Is there something I can do about this?
My linker warnings were a red herring (one of many I ran into).
Turns out that in order for SSA to properly run and generate results you need to have the Interprocedural Optimization (/q[no]ipo) option set to Yes.
Firstly, I would like to point out to you that SSA is no longer supported in the Intel Compiler and is presently a deprecated feature. That said, in previous versions where SSA was supported choosing Build Solution For Intel Static Analysis would automatically set up the necessary settings that's needed and it should work and setting ipo wasn't a mandatory setting needed that I recall. So, are you saying that it worked for you after setting ipo for your issue? Thanks.
When I chose "Build Solution For Intel Static Analysis" for the first time I was asked to set up the configuration based on an existing configuration. I used the existing debug build config for the project (which had this option turned off). My SSA config appeared to replicate that config and had this option turned off too. Once I manually turned it on, SSA started writing out results.
Also, I am aware that SSA is being dropped in future versions which I think is a shame as we think it can be quite useful. Is Intel thinking of adding in more features to any other application (Inspector etc.) to compensate for this in any way?
Raj, thanks for confirming that enabling ipo worked. Although SSA follows the same methodology as that of IPO it wasn't mandatory to turn on ipo other than using the diag-enable=sc option or choosing the Build option for SSA from IDE. I'll let you know if choosing ipo was needed after I confirm with the developers. Thanks for your feedback on SSA feature being dropped which I'll pass on as well to the product team and update you accordingly.
I checked with our developers and I verified as well that ipo is turned on by default when SSA is enabled. That said, what you encountered could might as well be a bug that needs investigation. If you can attach a test reproducer (a preprocessed file) I can try to reproduce and file an issue with the developers? Of course, as mentioned earlier it's a deprecated feature in the latest release of the compiler. I've passed on your feedback on that feature drop and will update you on any new update accordingly, appreciate much.