HP OpenVMS Systems

ask the wizard
Content starts here

C and C++ compiler warnings, diagnostics?

» close window

The Question is:

I would like to know how one instructs the
OpenVMS C++ compiler to issue messages about
questionable code.
For instance, consider the following code:
extern int important(void);
void sloppy(void) {
Here I would like the compiler to warn me
that I have forgotten to use the return
value of the important() function.
If I compile this with
I get no warnings.
If I compile this with
  'cc /warn=(enable=all)'
I get a "warning" %CC-I-IGNORECALLVAL.
This is fine.
If I compile this with
I get no warning
If I compile this with
  'cxx /warn=(enable=all)'
I still get no warning. This is a bit of
a dissappointment.
If I compile this with
  'cxx /warn=(enable=IGNORECALLVAL'
the C++ compiler informs me that it does not
know anything about ident=IGNORECALLVAL and
still gives me no warning.
According to the documentation for cxx /warn
qualifer one should be able to write
However, the documentation is a bit vague
about the meaning of enable=all and also
about what 'ident' can be. The C compiler
accepts individual message identifiers as
well as message categories as ident.
If my understandinng of the C++ documentation
is correct there are no message catagories
for C++ - only individual messages can be
substituted for 'ident' on the C++ command
line. Is this correct?
I have also been unable to find a C++ manual
that lists the messages emitted by the
compiler so I don't know which values can
be legally substituted for ident.
Where can I find information about values that
can be substituted for 'ident' in the cxx
/warn qualifer?
Specifically, how do I instruct the C++ compiler
to warn me about:
  1) Ignored return values
  2) Un-used variables
  3) Use of un-initialized variables.
I have no problem in instructing the C compiler
to do this - its documentation is quite clear.
Unfortunately the C++ compiler documentation
is not all as clear.
I am using the following compiler versions:
$ cc /version
Compaq C V6.5-001 on OpenVMS Alpha V7.3
$ cxx /version
Compaq C++ V6.5-004 for OpenVMS Alpha V7.3

The Answer is :

  C has this capability, while C++ presently does not.

answer written or last revised on ( 24-NOV-2003 )

» close window