HP OpenVMS Systems

ask the wizard
Content starts here

Reporting a C bug?

» close window

The Question is:

I converting an application form VAX C to ANSI C and I running in to following
The current Compaq C define BYTE as
"typedef unsigned char BYTE"
and the old code using VAX C define BYTE as
"typedef char BYTE"
As result when I try to compile the application following error show up
typedef unsigned char           BYTE;
%CC-E-NOLINKAGE, In this declaration, "BYTE" has no linkage and has a prior decl
aration in this scope at line number 207 in file $5$DKA0:[DEV.DET.V0700.J.SRC]DM
And I can not just change the type of BYTE because the application use a lot of
 old module that use  "typedef char BYTE" and the new compaq c routine use
 "typedef unsigned char BYTE" so is there any way to fix this.

The Answer is :

  Without details of the header file(s) involved and without some sort
  of reproducer, a specific answer is difficult -- the OpenVMS Wizard
  has tried to locate any existing typedef references, and has tried
  a (successful) trial build of an application (see below, braces
  replaced with brackets) containing this typedef.
  Please contact the Compaq Customer Support Center for assistance
  in locating and resolving this particular problem.
$ cc x
$ lin x
$ r x
hello ?
$ ty x.c
#include [stdio.h]
typedef char BYTE;
  printf("hello %c\n",(BYTE) 63);
  return 1;
$ cc/ver
Compaq C V6.4-004 on OpenVMS Alpha V7.2-1

answer written or last revised on ( 7-MAY-2001 )

» close window