HP OpenVMS Systems

ask the wizard
Content starts here

Debugging C Coding Error?

» close window

The Question is:

 
Just installed version 6.5 of C on a Alpha Server ES47 and when trying to
 compile a C program I am getting the following error message:
 
GENC - C compile for UOQCIS
 
char *round(char *t,char *s,int decs)
.......^
%CC-E-NOTCOMPAT, In this declaration, the type of "round" is not compatible with
 the type of a previous declaration of "round" at line number 756 in file SYS$CO
MMON:[SYSLIB]DECC$RTLDEF.TLB;4.
at line number 407 in file BAN_HOME:[GENERAL.C]GUASTDF.H;8
 
Could you tell me what is going on.  I am a systems person not a programmer.
 This looks like something wrong in the program to me.  Or is it a systems
 problem.  Whatever the case please let me know what I need to do to resolve
 the problem.  Here is the i
nstall log from the C install:
 
The following products will be processed:
 
  CC V6.5
 
 
        Beginning installation of CC V6.5 at 15:23
 
%VMSINSTAL-I-RESTORE, Restoring product save set A ...
%VMSINSTAL-I-RELMOVED, Product's release notes have been moved to SYS$HELP.
 
  Compaq C Version 6.5 for OpenVMS Alpha Systems
 
  Copyright 2002 Compaq Information Technologies Group, L.P.
 
  Compaq and the Compaq logo are trademarks of Compaq Information
  Technologies Group, L.P. in the U.S. and/or other countries.
 
  Confidential computer software. Valid license from Compaq required for
  possession, use or copying. Consistent with FAR 12.211 and 12.212,
  Commercial Computer Software, Computer Software Documentation, and
  Technical Data for Commercial Items are licensed to the U.S. Government
  under vendor's standard commercial license.
 
 
    A C V6.5-001 compiler was found on your system.
    Type YES to keep this compiler on your system either as
    the default system compiler or as an alternate compiler.
    Type NO to supersede C V6.5-001.
 
* Should the existing V6.5-001 system compiler be preserved [NO]: no
 
 
        Product:      C
        Producer:     DEC
        Version:      6.5
        Release Date: 01-NOV-2001
 
 
* Does this product have an authorization key registered and loaded? yes
 
    This kit contains an Installation Verification Procedure (IVP)
    to verify the correct installation of Compaq C.  The IVP will
    be left in:
 
        SYS$TEST:DECC$IVP.COM
 
    After the installation is complete, you can invoke the command
    file at any time to verify that Compaq C is installed and
    working correctly.
 
 
* Do you want to run the IVP after the installation [YES]?
 
    HTML, postscript and text versions of the Compaq C Users Guide,
    Language Reference Manual and RTL Reference Manual may be optionally
    installed into SYS$COMMON:[SYSHLP.CC$ALPHA_HELP_065].
    These documents consume approximately 60000 blocks.
 
* Should these manuals be provided [NO]: yes
 
    This kit contains a file summarizing the new features, changes,
    restrictions, and compatibility issues in this release of Compaq C.
    This file is named CC065.RELEASE_NOTES and has been placed in
    SYS$HELP:.
 
    This file contains information valuable to Compaq C programmers.
    Please inform your user community of this file's existence.
 
* Do you want to purge files replaced by this installation [YES]?
 
    You have answered all of the questions for this installation.  The
    installation will now execute in 5 to 15 minutes without further
    intervention, depending on your configuration, installation media,
    and so forth.
 
 
     The existing version of ALPHA$LIBRARY:DECC$RTLDEF.TLB has a
     later creation date than the one on this installation kit.
     Installation of the kit version will not be performed.
 
 
        The CXXDEMANGLE utility appears on this system.
        Installation of the kit version will not be performed.
 
%VMSINSTAL-I-RESTORE, Restoring product save set B ...
 
    Your OpenVMS system will now be modified to include the
    following new and modified files:
 
    [SYSEXE]DECC$COMPILER.EXE             [new]
    [SYSMSG]DECC$COMPILER_MSG.EXE         [new]
    [SYSLIB]DCLTABLES.EXE                 [modified]
    [SYSHLP]HELPLIB.HLB                   [modified]
    [SYSHLP]CC$HELP*.HTML                 [new]
    [SYSHLP.CC$ALPHA_HELP_065]            [new]
    [SYSHLP]CC065.RELEASE_NOTES           [new]
    [SYSHLP]CC065_RELEASE_NOTES.PS        [new]
    [SYSLIB]DECC$CRTL.OLB                 [new]
    [SYSLIB]DECC$CRTL.EXE                 [new]
    [SYSLIB]DECC$CRTL.README              [new]
    [SYS$STARTUP]DECC$STARTUP.COM         [modified]
    [SYSEXE]DECC$SET_VERSION.COM          [new]
    [SYSEXE]DECC$SHOW_VERSIONS.COM        [new]
    [SYSTEST]DECC$IVP.COM                 [new]
 
 
    The file SYS$STARTUP:DECC$STARTUP.COM contains commands to be
    executed at system startup to allow for the best compilation
    performance.  You may want to invoke this command file from your
    system's site-specific start up file.  This command file does not
    have to be invoked for correct operation of Compaq C.
 
%VMSINSTAL-I-MOVEFILES, Files will now be moved to their target directories...
 
    Copyright 2002 Compaq Information Technologies Group, L.P.
 
    Compaq and the Compaq logo are trademarks of Compaq Information
    Technologies Group, L.P. in the U.S. and/or other countries.
 
    Confidential computer software. Valid license from Compaq required for
    possession, use or copying. Consistent with FAR 12.211 and 12.212,
    Commercial Computer Software, Computer Software Documentation, and
    Technical Data for Commercial Items are licensed to the U.S. Government
    under vendor's standard commercial license.
 
 
    Beginning COMPAQ C V6.5 Installation Verification Procedure
    Image Check Complete
    License Check Complete
    Version Check Complete
    Message Check Complete
    Header Check Complete
    Run Time Library Check Complete
 
    COMPAQ C V6.5 Installation Verification Procedure Successful
 
 
        Installation of CC V6.5 completed at 15:24
 
    Adding history entry in VMI$ROOT:[SYSUPD]VMSINSTAL.HISTORY
 
    Creating installation data file: VMI$ROOT:[SYSUPD]CC065.VMI_DATA
 
 
        VMSINSTAL procedure done at 15:24
 
 
 
Please let me now.  Obligation ID is SMT18887.
 
Thanks in advance.
 
 


The Answer is :

 
  The compiler has flagged a coding error within the application, and
  specifically a case where the specified declaration does not match
  a previous declaration of the same name.  (Newer versions of C are
  better at detecting and reporting latent errors.)  In this case, the
  programming error involves the errant use of a function call name
  (round) that is reserved as part of the C99 standard.
 
  Without details of the code and the colliding definition -- probably
  the declaration of round() within math.h -- the OpenVMS Wizard cannot
  provide a more specific response.  If this is round(), you can rename
  all existing calls to round() to another name -- specifically all calls
  not intending to call the C99 version of round(), obviously.  Other
  workarounds are certainly possible, but the OpenVMS Wizard would not
  generally recommend them.  (This particular name collision is also
  why the OpenVMS Wizard recommends using symbol prefixes on all code,
  as described in the Programming Concepts and the Modular Programming
  manuals.  The prefixes reduce the likelyhood of naming collisions.)
 
  You or your designee will need to resolve this C coding error.
 
  To enable more extensive diagnostic messages, use the C compiler
  qualifier /WARN=VERBOSE.  For details on the C compiler and
  the C programming language, please review the C manual.
 
  For assistance in debugging or recoding applications, please contact
  HP professional services organization.
 
 

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

» close window