HP C/aC++ Version 6 Features to Improve Developer Productivity
5
"lock.c", line 12: warning #20223-D: Trying to unlock a
lock held conditionally
+wperfadvice
This option enables performance advisory messages. It offers both integrity-specific and
architecture-independent performance advice. The advice emitted is dependent on the optimization
options used for compilation.
Example
$ cat large.c
struct X{
int i;
int arr[1000];
} x;
int foo( struct X);
int main() {
foo (x);
}
$ cc –c +wperfadvice large.c
"large.c", line 8: warning #4319-D: performance
advice: passing a
large (4004 bytes) parameter by value is
inefficient, consider passing
by reference
foo (x);
^
+w
Enable all warnings about potentially questionable constructs in the compiler. This includes
warnings such as +wlint and +w64bit warnings. The number of warnings with this option may be
up to 5-10 times more than those emitted with +wlint. Some examples of warnings enabled with
+w option:
• Variable is declared but never referenced
• Comparison of unsigned integer with signed integer
• Padding size of structure to alignment boundary
• Argument is incompatible with corresponding format string conversion
+Oinfo
This option displays informational messages about the optimization process. It may be helpful in
understanding what optimizations are occurring. These messages are not emitted with the +w
option.
+Oinitcheck
This option enables warnings about local variables that may be used before they are defined. Many
of the warnings generated with this option may be false positives.
Security Diagnostics
+wsecurity
This option enables compile time diagnostics for potential security vulnerabilities. Security flaws are
not only very costly to fix, but also can lead to a potential loss of customers and reputation. Most
developers are not trained to detect security vulnerabilities.
With the +wsecurity option, warnings are emitted for scenarios where untrusted (tainted) data
may reach a critical reference point in the program. This is based on cross-module analysis
performed by the compiler, which is much more powerful compared to simple scanning and parsing
tools. The +wsecurity option implicitly enables a limited form of cross module analysis, even if -