I wonder if it is necessary (or useful) to specify -xanalyze=code with every compilation in a large project where source files are compiled separately to objects and libraries. I see only an empty section .previse added to the objects; the analyzing step seems to happen only at link time if -xanalyze=code is specifed there (or am I missing something?)
The documentation and man pages are quite short and don't tell anything about what is really going on there "behind the scenes".
Yes -xanalyze=code needs to be specified for each compilation because the static analysis is done during compilation time. The .previse section may be 0 bytes because no static errors were found for those modules.