Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
HP.com home

HP OpenVMS Systems

C Programming Language
Content starts here dec_c_help.HLP

ABSTRACTDCL

Message Invalid abstract declarator. Description An identifier was encountered in an abstract declarator. An abstract declarator is used to specify a type only and must not contain an identifier that specifies a declarator. User Action Correct the abstract declarator.

ADDRARRAY

Message <Context> & before array "<expression>" is ignored. Description In certain modes, HP C will ignore an address-of operator used on an entire array. This is for compatibility with other compilers that have this behavior. User Action Remove the address-of operator.

ADDRCONSTEXT

Message <Context> "<name>" does not have a constant address, but occurs in a context that requires an address constant. This is an extension of the language. Description The C89 standard requires that an initializer for a pointer-type member of an automatic aggregate or union-type object have an initializer that is an address constant. Other C compilers might not successfully compile a program that uses this extension. User Action Be aware of this if you wish to port the program.

ADDRESSOFVOID

Message <Context> taking the address of a void type is a language extension. Description The HP C compiler will allow taking the address of a void type for compatibility with other compilers. This is an extension to the standard. Other compilers may reject this. User Action Be aware of this if you plan to port this source to another compiler.

ADDRSUBCONST

Message <Context> accepting the expression "<expr>" as a constant is a language extension. Description In many cases HP C accepts the subtraction of two addresses within the same array or struct/union as a constant. The C standard does not consider such an expression to be a constant. Therefore, this program does not conform to the standard and may be rejected by other compilers. User Action Change the expression to be a constant.

ALIGNCONFLICT

Message <Context> the address "<expr>" has alignment of <align> which is less than the alignment requirements of the destination pointer. Dereferencing the destination pointer may cause an alignment fault. Description The compiler has detected a situation where a pointer to an aligned data type is being assigned an address that may not be properly aligned. A later dereference of this pointer could cause an alignment fault. User Action There are a number of possible actions. The best is to correct the condition that is causing the source to have the wrong alignment, as access to an unaligned data structure involves additional run-time overhead. Other options would be to modify the declaration of the destination pointer such that its referenced type has the __unaligned type qualifier, or use the compiler option that tells the compiler to assume all pointer references are unaligned. It is also possible to cast the source to the destination type to silence this message. However, that solution will not correct any unaligned access.

ALIGNCONFLICT1

Message <Context> the address "<expr>" has alignment of <align> which is less than the alignment requirements of the pointer type it is cast to. Dereferencing the resulting pointer may cause an alignment fault. Description The compiler has detected a situation where an address is being cast to a pointer type with a greater alignment requirement than the type of the address expression implies. A later dereference of this pointer type value could cause an alignment fault. User Action There are a number of possible actions. The best is to correct the condition that is causing the source to have the wrong alignment, as access to an unaligned data structure involves additional run-time overhead. Other options would be to change the type of the pointer used in the cast such that its referenced type has the __unaligned type qualifier, or use the compiler option that tells the compiler to assume all pointer references are unaligned. It is also possible to cast the address expression to (void *) before casting it to the specified type to silence this message. However, that solution will not correct any unaligned access.

ALIGNCONST

Message Integer constant alignment <number> is not necessarily supported on all platforms. Description Although the specified alignment value is valid on this system, it might not be valid on other systems. For example, 16 is a valid alignment value on Alpha systems but would not be valid on VAX systems. User Action Be aware of this potential portability issue.

ALIGNEXT

Message _align is a language extension. Description The _align storage class modifier is a language extension of HP C. Other C compilers might not successfully compile a program that uses the extension. User Action Be aware of this extension if you wish to port the code.

ALIGNPOP

Message This "restore" has underflowed the member alignment's stack. No corresponding "save" was found. Description The member_alignment stack, managed by the #pragma member_alignment and #pragma environment directives, contains more restores than saves. This could signify a coding or logic error in the program. User Action Make sure each restore has a corresponding save.

ALREADYTLS

Message The identifier "<name>" has already appeared in an omp threadprivate directive. Description The same identifier appears more than once in a single omp threadprivate directive, or appears in more than one omp threadprivate clause. User Action Remove the duplicate identifiers

ANSIALIASCAST

Message <Context> a pointer to <type1> is being cast to a pointer to <type2>. Using ANSI aliasing rules, the compiler may subsequently assume that the two pointer types are pointing to different storage locations. Description The C standard allows a compiler to assume that these two pointer types will point to different storage locations. The compiler will make this assumption whenever ansi aliasing is enabled on the command line, either directly or via another switch. The cast in itself does not violate aliasing rules, e.g. you might cast the pointer value back to an allowed type before you use it to access memory. But the compiler cannot generally determine whether or not you do that. If your code accesses the memory designated by this pointer value using both of these pointer types, you may get unexpected results when ansi aliasing is enabled. User Action Casting through pointer to void will silence this message. But if the end result is that the same memory still gets accessed through different types that are not permitted under the aliasing rules, you may still get unexpected results. If compiling without ansi aliasing corrects the behavior of your program, your code almost certainly violates the aliasing rules in a way that the compiler cannot detect.

ARGADDR

Message <Context> taking the address of the constant expression "<expression>" in an argument list is a language extension. Description The HP C compiler will allow the address of a constant to be passed as an argument to a function call. This is an extension to standard C. Other C compilers might not successfully compile a program that uses this extension. User Action Assign the constant to a variable, and pass the address of the variable.

ARGLISGTR255

Message <Context> the function call specifies an argument list whose length exceeds maximum specified by the calling standard. Any use of va_count by the called function will be wrong. Description The OpenVMS calling standard uses a byte-sized field to specify the size of the argument list. The argument list to this function call requires more storage than can be represented in this size. As a result, any use of va_count in the called function will return inaccurate information. User Action Either reduce the size of the argument list, or do not use va_count in the called function.

ARGLISTOOLONG

Message <Context> the function call specifies an argument list whose length exceeds the VAX architecture limit. This call allocates stack space that is never deallocated by the called program. Description The OpenVMS VAX Calling Standard requires that the called program deallocate the storage allocated for its arguments. This is done by looking at the byte-size value that holds the argument list size. However, the argument list to this function call requires more storage than can be represented in a byte. As a result, the called function will not deallocate the proper amount of storage. This could result in unpredictable behavior. User Action Reduce the size of the argument list.

ARGSIZE

Message <Context> the argument being passed to this function is too small. Description A function parameter of array type has been declared with the keyword "static" in its outermost bound to indicate that the function may generate code that assumes that when it is called the actual argument will have at least as many elements as specified in the parameter declaration. The argument provided in this call has fewer array elements than specified in the parameter declaration with static bound. User Action Check the size of the argument passed to the function and/or modify or remove the static bound on the function parameter.

ARRAYBRACE

Message <Context> a required set of braces is missing. Description The initializer for this array was not enclosed in braces. While some compilers allow this, standard C requires braces around the initializer. User Action Enclose the initializer in braces.

ARRAYLIMITSUP

Message <Context> HP C provides only limited support for array types larger than <n> bytes. Description This array type is larger than can be represented by size_t. While HP C will allow a type declared to be this size, uses of the type are not fully supported and may cause unpredictable behavior. User Action Reduce the size of the array type. It may be possible to use a pointer type instead of a large array. The storage can still be accessed using array syntax.

ARRAYOVERFLOW

Message Integer overflow occurred when computing the size of an array type. Description An array type is larger than allowed on this platform. User Action Reduce the size of the array type. It may be possible to use a pointer type instead of a large array. The storage can still be accessed using array syntax.

ARRNOTLVALUE

Message <Context> accepting a non-lvalue array in a subscript operator is an extension to the C89 standard. Description The C89 standard states that one of the operands to the subscript operator must be a pointer. However, the array used in this operator could not be converted to a pointer because it is not an lvalue. Therefore this code does not conform to the C89 standard and may not be accepted by other compilers. Note that the C99 standard allows this because all arrays are converted to pointers, not just lvalue arrays. User Action Be aware of this difference if you plan to port this source to another compiler.

ASMCOMEXP

Message Comma expected while processing <text> instruction Description The asm directive parser was expecting a comma, but one was not found. User Action Correct the asm directive.

ASMENDEXP

Message Semicolon or asm end expected while processing <text> instruction Description The asm directive parser was expecting a semicolon to end an instruction, but one was not found. User Action Correct the asm directive.

ASMFIMMDOTS

Message Floating point load-immediate instructions require a .s file Description Using a floating point load immediate instruction in this asm directive will require the compiler to produce an .s file and invoke the assembler to process this source. User Action Do not use floating point load immediate instructions in asm directives.

ASMFREGEXP

Message Float register expected while processing <text> instruction Description The asm directive parser was expecting a valid floating register, but one was not found. User Action Correct the asm directive.

ASMHINTDOTS

Message Hint on <text> instruction requires a .s file Description Using a hint in a transfer instruction in this asm directive will require the compiler to produce an .s file and invoke the assembler to process this source. User Action Do not use hints in asm directives.

ASMICONEXP

Message Integer constant expected while processing <text> instruction Description The asm directive parser was expecting a valid integer constant, but one was not found. User Action Correct the asm directive.

ASMIDEXP

Message Identifier expected while processing <text> instruction Description The asm directive parser was expecting an identifier, but one was not found. User Action Correct the asm directive.

ASMINSTEXP

Message Instruction mnemonic expected (found <text>) Description The asm directive parser was expecting an instruction mnemonic, but one was not found. User Action Correct the asm directive.

ASMLABEXP

Message Label expected while processing <text> instruction Description The asm directive parser was expecting a label, but one was not found. User Action Correct the asm directive.

ASMLABMULDEF

Message Multiple definitions of label in asm (<text>) Description The asm directive parser has detected the same label defined more than once. User Action Change one of the label names.

ASMLABUNDEF

Message Reference to undefined label in asm (<text>) Description The asm directive parser has detected a reference to an undefined label. User Action Correct the asm directive.

ASMLDGPDOTS

Message Unusual ldgp requires a .s file Description This indicates that a ldgp pseudo-instruction was encountered in an unusual place or with unusual arguments. The assembler will be invoked on the .s file. User Action Correct the asm directive.

ASMLPAREXP

Message Left paren expected while processing <text> instruction Description The asm directive parser was expecting a left paren, but one was not found. User Action Correct the asm directive.

ASMNOTAVAIL

Message In-line assembly code directive <name> is not available on this platform. Description In-line assembly code is not available on the IA64 platform. User Action See documentation for alternatives.

ASMNOTINST

Message <text> instruction is not supported in asms on <text> Description The asm directive parser does not recognizes a pseudo-opcode on this platform. User Action Correct the asm directive.

ASMNOTREG

Message <text> is not a register name on <text> Description The asm directive parser has noticed that a special register used in the directive is not valid on this platform. User Action Correct the asm directive.

ASMNOTSUP

Message Support for <text> (<text>) in asms is not implemented on <text> Description The asm directive parser does not support the feature in question on this platform. User Action Rewrite the asm so that the feature is not used.

ASMPALTRUNC

Message PALcode function has been truncated to <number> Description The asm directive call_pal instruction is followed by an integer beyond the range of call_pal values expected by the compiler. User Action Use a valid call_pal argument.

ASMRAWREG

Message <text> uses <text> before it is defined Description The asm directive parser has noticed that an instruction uses a register as a source before it is given a value. User Action Correct the asm directive.

ASMREGEXP

Message Fixed register expected while processing <text> instruction Description The asm directive parser was expecting a valid integer register, but one was not found. User Action Correct the asm directive.

ASMREGOVRLAPSC

Message Destination register overlaps input for <text> (software completion) instruction Description An asm directive contains an instruction that may require a software completion routine in case of a runtime exception. Such an instruction requires that the result register be different than any input register. User Action Modify the asm so that the destination register is different than the sources.

ASMRPAREXP

Message Right paren expected while processing <text> instruction Description The asm directive parser was expecting a right paren, but one was not found. User Action Correct the asm directive.

ASMSYMDOTS

Message Use of symbolic addresses with <text> instruction requires a .s file Description Using a symbolic operand in this asm directive will require the compiler to produce an .s file and invoke the assembler to process this source. User Action Do not use symbolic operands in asm directives.

ASMUNKNOWNARCH

Message Unknown architecture (<text>) specified in <text> assembler directive Description The asm directive parser has detected an unexpected argument to a .tune or .arch directive. User Action Correct the asm directive.

ASMUNKSETOPT

Message Unsupported or illegal .set option (<text>) Description The asm directive parser has detected an unexpected argument to a .set directive. User Action Correct the asm directive.

ASSERTFAIL

Message The assertion "<assertion>" was not true, <reason>. Description The expression in a #pragma assert non_zero(expression) directive was found to be zero. User Action Correct the condition that caused the expression to be zero.

ASSERTION

Message <text> Description This message is emitted by the code generator. It should never be output when compiling a C program. User Action Please submit a problem report if you encounter this message when compiling a C program.

ASSIGNEXT

Message <Context> relaxed struct or union type compatibility is a language extension. Description In certain modes, the compiler will allow assignments or comparisons between structs or unions of different types if their sizes are the same. This is an extension to standard C. Other C compilers might not successfully compile a program that uses this extension. User Action Recode the operation to use one of the memxxx run-time library functions.

ASSUMEONEELEM

Message The type of the tentatively-defined array "<name>" is incomplete at the end of the compilation unit. The compiler will assume one array element. Description The C standard requires that the type of all tentative definitions must be completed before the end of the compilation unit. For compatibility with some other C compilers, HP C will give the array one element. User Action Complete the type.

AUTOALIGN

Message The alignment boundary of an automatic cannot be greater than longword. Description For automatic variables, the storage class modifier _align cannot specify an alignment greater than longword on VAX systems. The alignment will be set to longword. User Action Decrease the alignment. If a larger alignment is required, declare the variable with static storage class.

AUTOEXTERNAL

Message <Context> a storage class of "auto" or "register" is illegal at file scope. Description The storage classes auto and register can only be used in a declaration that appears inside a function. They cannot be used in a declaration at file scope. User Action Remove the storage class specifier or move the declaration inside a function body.

BADALIAS

Message Reference through restricted pointer <text> uses a pointer value based on different restricted pointer, <text> Description The C language requires that restricted pointers always point to different storage. The compiler has detected a case where an access using a restricted pointer is referencing memory pointed to a different restricted pointer. This may cause unexpected behavior. User Action Make sure restricted pointers point at unique storage.

BADALIGN

Message Invalid alignment boundary. Description The _align storage class modifier was given an invalid value. See documentation for valid values on each platform. User Action Supply a correct value or remove the _align storage class modifier.

BADANSIALIAS

Message This statement accesses an object <frag1>. The statement at <loc> accesses the same storage location <frag2>. Description The standard allows a compiler to assume that since these two statements use different types, these two statements reference different storage locations. The HP C compiler does so whenever ansi aliasing is enabled. Since your code relies on these two statements accessing the same storage location you should disable ansi aliasing. If you do not do so, optimization may cause your program to behave unexpectedly. User Action Specify noansi_alias on the command line.

BADBOUNDCHK

Message <Context> pointer arithmetic was performed more than once in computing an array element. The bounds checking code output by the compiler will only verify the "<expr>" expression. Description When an array is accessed using pointer arithmetic and run-time array bounds checking is enabled, the HP C compiler is only able to output the checking code for the first pointer arithmetic operation performed on the array. This can result in an incorrect check if the resulting pointer value is again operated on by pointer arithmetic. Consider the expression a = b + c - d; where a is a pointer, b an array, and c and d integers. When bounds checking is enabled the compiler will output a check to verify that c within the bounds of the array. This will lead to an incorrect runtime trap in cases where c is outside the bounds of the array and c - d is not. User Action Recode the pointer expression so that the integer part is in parenthesis. This way the expression will contain only one pointer arithmetic operation. In the earlier example the expression would be changed to a = b + (c - d);

BADBOUNDS

Message <Context> the array bounds are incorrectly specified. Description A multi-dimensional array declaration contains a missing dimension specifier in a dimension other than the first. User Action Correct the declaration.

BADBREAK

Message This break statement is not within a for, while, do, or switch statement. Description A break statement can only appear inside a for, while, do, or switch statement. User Action Remove the break statement, or replace it with a goto statement.

BADC99PRAGOP

Message Invalid syntax for the C99 _Pragma operator, its operands cannot be recognized. Description After macro expansion and whitespace has been removed, the C99 _Pragma keyword must be followed by exactly three tokens: left-parenthesis, string-literal (or wide-string), right-parenthesis. Any other sequence cannot be processed, and will likely produce other spurious compile-time diagnostics. User Action Correct the syntax, or compile in a language mode that does not recognize the C99_Pragma operator (e.g. if your code has used this reserved identifier for some other purpose).

BADCHARSINHDR

Message Illegal characters after header name. Description While processing an #include directive whose argument did not start with either a '<' or '"' character, the compiler encountered a character it did not expect. This most often occurs when the directive argument is a macro and there is an error during the expansion of that macro. User Action Correct the argument to the #include directive.

BADCMMNTPSTNG

Message Token concatenation with comments might not be portable -- use ## operator. Description A macro body contains a comment between two tokens with no white space either before or after the comment. Older C compilers allowed this as a form of token pasting. This type of token pasting might not give the desired results with newer compilers. User Action Use the standard C form of token pasting by replacing the comment with the ## token pasting operator.

BADCOMLITTYPE

Message <Context> the type "<type>" cannot be used to specify the type of a compound literal. Description The type of a compound literal must be an object type or an array of unknown size. User Action Use a valid type.

BADCOMPLEXTYPE

Message <Context> "<spelling>" is an invalid complex type specifier. Description The valid complex type specifiers are float _Complex, double _Complex, and long double _Complex. User Action Use on of the valid complex type specifiers.

BADCONDIT

Message <Context> a common type could not be determined for the 2nd and 3rd operands ("<true expression>" and "<false expression>") of a conditional operator. Description The types of the second and third operands of the conditional operator must conform to a set of rules that define what the type of the result of the conditional operator itself will be. If the types of these operands do not conform to those rules, the compiler cannot determine the type of the result, which is an error. Refer to the language documentation for a complete list of valid combinations of types for the second and third operands of the conditional operator. User Action Modify the conditional expression so that the types of the second and third operands conform to the language rules.

BADCONSTEXPR

Message Syntax error in constant expression. Description A preprocessing constant expression contained a syntax error. The preprocessor was expecting to find a constant value or a left parenthesis. The preprocessor will assume a value of zero was encountered. User Action Correct the preprocessing constant expression.

BADCONTINUE

Message This continue statement is not within a for, while, or do statement. Description A continue statement can only appear inside a for, while, or do statement. User Action Remove the continue statement, or replace it with a goto statement.

BADCONVSPEC

Message <Context> this argument to <function name> contains a bad conversion specification "<incorrect conversion>" that will cause unpredictable behavior. Description The compiler has detected an illformed conversion specification (flags, width, precision, length modifier) or an unknown conversion specifier (not diouxefgcspn...) that will cause unpredictable behavior. This might not have been what you intended. User Action Review the documentation for this function and modify the conversion specification as appropriate.

BADDCL

Message The name "<name>" cannot be undefined. Description The code has tried to #undef a macro that is predefined by the C standard. This is not allowed. The #undef will be ignored. User Action Remove the #undef directive.

BADDECLSPEC

Message Invalid argument to __declspec. Valid arguments are "thread" or "__thread". Description The only valid arguments to the __declspec storage class modifier are "thread" or "__thread". User Action Either use one of the valid arguments, or remove the storage class modifier.

BADDEFARG

Message Bad argument for "defined" operator. Description The defined preprocessing operator was given an invalid argument. The operator expects an identifier optionally enclosed in parenthesis. The value of the operator is undefined. User Action Supply a valid argument to the preprocessing operator.

BADENUM

Message Invalid enumerator. Description While processing an enumerator list, the compiler was expecting to encounter an identifier, but it found something else instead. User Action Correct the program syntax.

BADENUMREDECL

Message <Context> the enum "<tag>" cannot be given a type other than signed int because the tag was declared earlier at <where>. Description This enum tag would normally be given a type other than signed int because the enumeration constants used in the declaration exceed the range of signed int. The compiler cannot use the extended type because the enum tag was declared earlier, and given signed int type at that point. User Action Remove the earlier tag declaration.

BADEXPR

Message Invalid expression. Description An invalid expression was encountered. User Action Correct the program syntax.

BADFATCOMMENT

Message The compiler cannot recover. Description In certain cases, the compiler cannot proceed after an unterminated comment. In these cases this message will be issued. Note that this message is always output after the opencomment error has been output. User Action Terminate the comment before the end-of-file.

BADFBDAT

Message <text> contains invalid feedback data Description A feedback file contains data, but it was corrupt and could not be used. User Action Create a new feedback file.

BADFBFILE

Message Invalid feedback file: <text> Description The compiler was unable to read information from the specified feedback file. User Action Make sure the feedback file contains valid feedback information.

BADFBTYP

Message Unexpected file type for feedback file <text> Description The file specified in the -feedback option does not have the file type expected by the compiler. User Action Use a valid feedback file.

BADFLOATTYPE

Message <Context> this floating point type "<type>" is not supported on this platform. Description The IEEE floating types __s_float and __t_float are not supported on the VAX platform. User Action Change the type to a floating type that is supported on VAX, or compile the application on a platform that does support IEEE floating.

BADFORMALPARM

Message This token may not appear in a formal parameter list. Description While processing the formal parameter list of a macro definition, the compiler encountered an invalid formal parameter specifier. The macro will be be defined and this token will ignored, but that may not have been what you intended. User Action Correct the formal parameter list so that it consists of a comma separated list of identifiers.

BADFORSTOCLS

Message The declaration in a for loop can only have storage class auto or register. Description The declaration in a for loop contains a storage class specifier other than auto or register. This is not allowed. User Action Correct the storage class.

BADFUNCSTOCLS

Message The storage class of function <name> cannot be <storage_class>. This storage class has been changed to 'extern'. Description The globalref storage class cannot be used with a function declaration. The compiler will use the storage class extern. User Action Remove the globalref storage class from the function declaration.

BADGLOBALTYPE

Message This declaration has type "<type>", which is invalid for a globalvalue. The extern_model strict_refdef will be used instead. Description An object with globalvalue storage class can only have a type of integer, enum, or pointer type. In other cases, the compiler will change the storage class from globalvalue to strict_refdef. User Action Change the data type to be one that is valid for a globalvalue.

BADHEADERNM

Message Invalid include file or header name specification. Description An #include directive was not followed by a valid argument. The directive will be ignored. The #include directive should be followed by either a file specification enclosed in angle brackets, a file specification enclosed in quotes, or an identifier that specifies a text module (OpenVMS only), or a macro to be expanded. User Action Supply a valid argument to the #include directive.

BADHEXCONST

Message Hex constant value too large. Description A hex constant used in a preprocessor directive is too large. The value of the constant will be undefined. User Action Decrease the value of the constant.

BADIDENTUCN

Message Invalid UCN encountered in an identifier. Description An identifier contained a Universal Character Name (UCN) that did not conform to the requirements of C99 Annex D for use of UCNs in identifiers. User Action Specify a valid UCN sequence.

BADIFDEF

Message An #ifdef or #ifndef is not followed by an identifier. Description An #ifdef or #ifndef preprocessing directive was not followed by an identifier. The compiler will consider the preprocessor argument to be an identifier that is not defined. Therefore, in these cases an #ifdef will always be FALSE, and an #ifndef will always be TRUE. User Action Supply a valid identifier to the directive.

BADIFNDEFARG

Message #ifndef argument is not an identifier. Description An #ifndef preprocessing directive was not followed by an identifier. The compiler will consider this to be a TRUE condition. User Action Supply a valid identifier to the directive.

BADINCLDIR

Message The #pragma include_directory must not appear after an #include directive or in a /FIRST_INCLUDE file after the first /FIRST_INCLUDE file has been processed. The directive will be ignored. Description There are several restrictions on the placement of the #pragma include_directory directive. It must not appear after any #include directive has been encountered. Also, if /FIRST_INCLUDE is specified on the command line, all #pragma include_directory directives must be placed in the first file in the /FIRST_INCLUDE list (if there is more than one in the list) or in the the main source before any #include directives (if there is only one file in the /FIRST_INCLUDE list). User Action Place the directive in a valid location.

BADINCLDIRSIZE

Message The include_directory string length must be at least one and must be less than <max>. The directive will be ignored. Description The #pragma include_directory directive does not support an empty string argument. Also the directory must not exceed the longest directory specification supported on this platform. User Action Specify a valid length string.

BADINCLUDE

Message An #include directive has illegal syntax. Description An #include directive was not followed by a valid argument. This message occurs when the argument starts with a '<' or '"' character, but does not end with a matching delimiter. In this case the compiler will add the matching delimiter to the end of the argument and process the directive normally. User Action Correct the argument to the #include directive.

BADLINEDIR

Message Missing argument for #line directive. Description An argument was not supplied to a #line preprocessing directive. This directive must be followed by a digit sequence that specifies the line number or a macro that expands to a digit sequence. The directive will be ignored. User Action Supply a valid argument to the directive.

BADLINEDIRTV

Message Illegal token in #line directive. Description A #line directive was followed by an invalid argument. The #line directive should be followed by either a digit sequence or a digit sequence followed by a string literal. The #line directive will be ignored. User Action Supply a valid argument to the #line directive.

BADLINKREG

Message Invalid register "<register>" for linkage pragma. Pragma is ignored. Description The compiler encountered bad register specifier in a #pragma linkage directive. The message should point at the offending specifier. The compiler will ignore the entire pragma. User Action Correct the directive.

BADLINNUM

Message Ignoring the line number for the #line directive -- too small. Description A #line preprocessing directive specified a line value that is either zero or less than zero. This is not valid. The directive will be ignored. User Action Either remove the directive or supply a positive value to the line specifier.

BADLOCALE

Message The compiler could not set its locale to either the locale-specific native environment or the "C" locale. Description During start-up, the compiler was unable to set its locale. As part of its initialization, the compiler will issue the call setlocale(LC_ALL, ""). If this call fails, the compiler will try to issue the call setlocale(LC_ALL, "C"). If this call also fails, the compiler will issue this message and abort. User Action The best way to determine why the compiler is failing is to write a small program that contains the same library calls the compiler is making and then examine the return values.

BADMACROINLN

Message Illegal token from macro call in #line directive. Description A #line directive was followed by a macro whose expansion did not form a valid argument to the directive. The #line directive should be followed by either a digit sequence or a digit sequence followed by a string literal. The #line directive will be ignored. User Action Supply a valid argument to the #line directive.

BADMACRONAME

Message "<directive>" directive is not followed by an identifier and is being ignored. Description A #define or #undef preprocessing directive was not followed by an identifier. The first argument to these directives must be an identifier that specifies the macro to define or undefine. The compiler will ignore the directive. User Action Correct the argument to the preprocessing directive.

BADMBCOMMENT

Message An invalid multibyte character was encountered in a comment. Description An invalid multibyte character was found in a comment. While this will not affect the program execution, it might not have been what you intended. User Action Correct the multibyte character.

BADMCRORECURS

Message Recursive expansion of macro "<name>" exceeded <num> levels and was terminated. Description In certain cases, the compiler will allow a macro to be recursively expanded. In these cases, the compiler limits the level of the recursion to prevent the compiler from looping to the point where it consumes all available memory. When this level has been reached, this message is output. User Action Rewrite either the macro definition or the macro invocation so that the recursion ends before the compiler limit is reached. Note that the use of recursive macros is not a feature of the C standard, and most other C compilers will not support this.

BADMEMBER

Message Invalid member declaration. Description A struct or union contains an invalid member declaration. In most cases this error occurs when a semi-colon was omitted from the previous member declaration. User Action Correct the declaration.

BADMEMOFF

Message <Context> multiple definitions of member "<name>" found with different offsets. Description In certain modes, the compiler will allow a struct or union reference whose right operand is not a member of the struct or union type of the left operand. This is allowed for compatibility with other compilers. However, in these cases the right operand must specify a member name that is declared with the same type and at the same offset in every struct or union type that declares it. This message is issued when the compiler finds member name it is looking for declared with a different offset in more than one struct or union type. User Action HP recommends that the left operand or a struct or union reference specify a member that is a member of the type of the struct or union specified by the right operand. If this modification cannot be made then the member specified by the left operand must be declared at the same offset and with the same data type in all struct or union declarations that declare that member.

BADMEMTYP

Message <Context> multiple definitions of member "<name>" found with different types. Description In certain modes, the compiler will allow a struct or union reference whose right operand is not a member of the struct or union type of the left operand. This is allowed for compatibility with other compilers. However, in these cases the right operand must specify a member name that is declared with the same type and at the same offset in every struct or union type that declares it. This message is issued when the compiler finds a member name it is looking for declared at the same offset but with different types in more than one struct or union type. User Action HP recommends that the left operand or a struct or union reference specify a member that is a member of the type of the struct or union specified by the right operand. If this modification cannot be made then the member specified by the left operand must be declared at the same offset and with the same data type in all struct or union declarations that declare that member.

BADMODULEID

Message Invalid identifier found immediately following "#pragma module" or "#module" directive. Description The #pragma module or #module directive must be followed by an identifier that specifies the module name used by the linker. User Action Correct the directive.

BADMULTIBYTE

Message An invalid multibyte character was encountered <in type of construction>. Description An invalid multibyte character was encountered. The message will provide additional information about the location and attempted use of the character. User Action Correct the multibyte character.

BADNUM

Message <text> Qualifier value '<text>' is not an integer Description This message is emitted by the code generator. It should never be output when compiling a C program. User Action Please submit a problem report if you encounter this message when compiling a C program.

BADOCTCONST

Message Octal constant value too large. Description An octal constant used in a preprocessor directive is too large. The value of the constant will be undefined. User Action Decrease the value of the constant.

BADOPCCAP

Message <text> instruction used is not in the selected instruction set Description The compiler has output an instruction that is not in the instruction set selected on the command line. One way this can happen is to compile a program which contains a floating point operation and specifying that no floating point instructions should be generated. User Action Either modify the source so the instruction will not be necessary, or use a different instruction set.

BADOPENBRACE

Message This open brace may be missing a close brace and causing the syntax error at <location>. Description This message is always output to the terminal after another syntax error. It is intended to provide the programmer with additional information that may identify the cause of the syntax error. This message may, or may not, provide useful information. In general, the more consistent the coding style in the source function, the more likely this message will be accurate. User Action Correct the program syntax.

BADPARSEDECL

Message In this declaration, "<id>" must specify a type. Description In processing a declaration, the type of the declarator has not been declared as a typedef. User Action Either declare the type as a typedef, or correct the spelling of the type specifier in this declaration.

BADPARSEPARAM

Message In this parameter list, "<param>" must either be a type or must be followed by a ",". Description In processing a function declaration, the compiler has found a case where the parameter list begins with two identifiers not separated by a comma and where the first identifier is not a type specifier. If this is an old-style declaration the two identifiers must be separated by a comma. If this is a prototype declaration, the first identifier must specify a type. User Action Correct the function parameter specifiers.

BADPPDIR

Message File ends in an unfinished pp directive. Description An unexpected end-of-file was encountered during a preprocessing directive. User Action Correct the directive.

BADPRAGMAARG

Message Unexpected or missing argument to #pragma <pragma name>. Pragma is ignored. Description An argument to a #pragma preprocessing directive is either missing or is not correct. The compiler will ignore the directive. User Action Correct the directive.

BADPRAGMAARG1

Message Unexpected token encountered in pragma. Found "<found>" when expecting <expecting>. The pragma will be ignored. Description While parsing a #pragma directive, the compiler has encountered something unexpected. The message will contain information about what the compiler was expecting as well as what it found. User Action Correct the offending directive.

BADPRAGMALINK

Message A bad linkage pragma was specified. Pragma is ignored. Description The compiler encountered a bad #pragma linkage directive. The error message should point to the place in the pragma that the compiler considers bad. The compiler will ignore the entire pragma. User Action Correct the directive.

BADPRAGNAMES

Message Invalid argument to the pragma names directive. Pragma is ignored. Description An invalid argument has been specified for the #pragma names preprocessing directive. User Action Correct the argument to the pragma.

BADPREFIX

Message Argument to extern_prefix is not a recognized keyword or a quoted string. Pragma is ignored. Description An invalid argument has been specified for the #pragma extern_prefix preprocessing directive. The directive expects either the identifiers "save", "__save", "restore", "__restore", or a string constant that specifies the external prefix to use. The compiler will ignore the pragma. User Action Correct the argument to the pragma.

BADPROTYP

Message Unexpected file type for profile file <text> Description The file specified in the -feedback option does not have the file type expected by the compiler. User Action Use a valid feedback file.

BADPTRARITH

Message <Context> performing pointer arithmetic on a pointer to void or a pointer to function is not allowed. The compiler will treat the type as if it were pointer to char. Description Pointer arithmetic is not allowed on pointers to function or void types For compatibility with some other compilers, an output file is still created. The result produced will be the same as if the pointer were a pointer to char. This may or may not be compatible with other compilers that accept this syntax. User Action Cast the pointer type to a pointer to object type before performing the arithmetic.

BADREGISTER

Message <Context> "<name>" has register storage class, but occurs in a context that precludes register storage. The storage class has been changed to auto. Description An object that was declared with register storage class has been referenced in a way that is not valid for a register. The most common example is taking the address of an object declared with register storage class. As certain array accesses also require taking the address of an array, this message can also be output for accessing the element of an array declared with register storage class. The compiler will change the storage class from register to auto. User Action Either remove the register storage class from the declaration, or change the reference to be one that is valid for objects with register storage class.

BADRETURNTYPE

Message <Context> a function cannot return <type> type. Description A function return type cannot be an array or function type. User Action Correct the function declaration so that the return type is valid.

BADSEVERITY

Message The severity of message id <name> cannot be made less severe. The severity for this message was not changed. Description The severities of the compiler's error and fatal messages cannot be changed to a severity that is less severe. The compiler's fatal messages cannot be changed to any other severity. The compiler's error messages can only be changed to fatals. User Action Remove the pragma or compiler option that tried to change the severity.

BADSTATICCVT

Message <Context> the address cannot be converted to the destination type. Description A static initialization tried to convert a link-time address to another type. However, the linker on this platform will not support such a conversion. User Action Rewrite the static initialization, or perform the initialization using runtime code.

BADSTDLINKAGE

Message If standard_linkage is used, it must be the only characteristic specified. Description The standard_linkage characteristic cannot be used with any other linkage characteristic. User Action Correct the pragma.

BADSTMT

Message Invalid statement. Description An invalid statement was encountered. The most common cause of this error is when a declaration appears after the first statement in a compound statement. User Action Correct the program syntax.

BADSTMT1

Message Invalid statement. This condition may have been caused by an open brace without a matching close brace. The compiler will attempt to identify open braces that might be missing a close brace. Description An invalid statement was encountered. This condition may have been caused missing close brace. This message is followed by some number of additional messages that attempt to identify User Action Correct the program syntax.

BADSUBSCRIPT

Message <Context> an array subscript expression is either less than zero or greater than the largest value that can be represented by the size_t type. Description The compiler has detected an array subscript expression that is outside the bounds of any valid array. The array access might cause unpredictable behavior. User Action Specify a valid array subscript.

BADTARGMACRO

Message The target macro "<name>" does not match the compiler's target. This will likely cause incorrect code paths to be taken. Description On OpenVMS I64, some users have tried defining the macro __ALPHA explicitly using /DEFINE or a #define in a /FIRST_INCLUDE file as a quick way to deal with source code conditionals that assume that if __ALPHA is not defined then the target must be a VAX. Defining __ALPHA will cause many of the CRTL and other OpenVMS headers to take the wrong path for I64. User Action Remove any definitions of Alpha target macros, and if necessary correct the preprocessor conditionals that seemed to require an Alpha target macro to get the desired effect. E.g. change "#ifdef __ALPHA" to "#ifndef __VAX" or "#if defined(__ALPHA) || defined(__ia64)".

BADTKEN

Message Lexically invalid token. Description An invalid token was encountered in a preprocessing directive. User Action Correct the preprocessing directive.

BADUNKNOWNVLA

Message <Context> a "*" bounds specifier is invalid. Using a "*" to specify a variable-length array of unknown size is only valid in declarations with function prototype scope. Description Using a "*" as a bounds specifier to designate a variable-length array with unknown size is only valid in declarations with function prototype scope. User Action Supply a valid bound specifier.

BADUNROLLVAL

Message The #pragma unroll directive takes a value from zero to 255. The value "<val>" is outside that range. The directive will be ignored. Description The value supplied to a #pragma unroll is outside the range allowed for the directive. The #pragma directive will be ignored. User Action Use a valid value for the unroll count.

BADUSELINK

Message A bad use_linkage pragma was specified. Pragma is ignored. Description The compiler encountered a bad #pragma use_linkage directive. The error message should point to the place in the pragma that the compiler considers bad. The compiler will ignore the entire pragma. User Action Correct the directive.

BADUSERMACRO

Message The name "<name>" cannot be a user-defined macro. Description The code has tried to #define either a macro that is predefined by the C standard or the DEFINED preprocessing keyword. This is not allowed. The #define will be ignored. User Action Remove the #define directive.

BADVASTART

Message <Context> old-style parameter "<name>", with type that requires default argument promotion, cannot be used with va_start. Description It is invalid for the parameter specified in va_start to be one that requires default argument promotion. User Action The recommended fix is to recode the function definition to use a prototype-format definition. It is also possible to change the parameter declaration to use one of the default types, for example double.

BIFENABLED

Message The function "<routine name>" is a builtin function reserved to the compiler, and does not require a #pragma intrinsic. The function will continue to be treated as a builtin. Description A function identifier specified in a #pragma function intrinsic is the name of a builtin function. These functions cannot be explicitly enabled, they are always handled as builtin functions. User Action Remove the inappropriate use of the pragma.

BIFNEEDSSTD

Message <Context> use of "<function>" is not allowed in a function with a non-standard linkage. This function was given the linkage "<name>" by a #pragma use_linkage directive. Description Certain built-ins that return information about a function call require that the function be called with standard linkage. Because this function appears in a #pragma use_linkage directive naming a linkage that specifies attributes other than standard_linkage, these builtins cannot be called from this function. User Action Use a standard linkage on this function, remove the calls to the builtins, or move them to a different function that is called with standard linkage.

BIFNOTAVAIL

Message Built-in function <name> is not available on this platform. Description This Alpha built-in function is not available on the IA64 platform. User Action See documentation for alternatives.

BIFPROTO

Message <Context> the built-in function, "<name>", requires a prototype declaration from <filename>. Description Invoking a built-in function requires that the function be declared before it is invoked. This should be done by including the header file noted in the message. User Action Include the header file before the function is invoked.

BITARRAY

Message The CDD description for <name> specifies that it is an array of bitfields; It has been converted to a scalar bitfield. Description HP C does not allow arrays of bitfields. The resulting C declaration will be a bitfield of the same total size as that specified in the CDD description. User Action If a bitfield type is acceptable, then no user action is necessary. If, however, the bitfield type is not acceptable, then the CDD description should be altered.

BITBADREP

Message <Context> the bitfield type is not an integral type. Description A bitfield has been declared with a non-integral type. Standard C requires that all bitfields be declared with either int, unsigned int, or signed int type. User Action Change the type of the bitfield.

BITCONSTSIGN

Message <Context> the integer constant "<constant>" does not have the same sign as the 1-bit bitfield it is being converted to. Description Either an unsigned 1-bit bitfield was assigned -1, or a signed 1-bit bitfield was assigned 1. This may not be what you intended. User Action Change the constant to be the appropriate sign.

BITFIELDSIZE

Message The CDD description for bitfield <name> specifies a size greater than 32; The excess is declared separately. Description HP C does not allow individual bitfields larger than 32. As a result, a series of bitfields have been declared whose total size matches that of the CDD definition. User Action If the generated definitions are acceptable, then no user action is necessary. If, however, the generated definitions are not acceptable, then the CDD description should be altered.

BITNOTINT

Message <Context> the bitfield type is not an int, signed int, unsigned int or _Bool. Description A bitfield has been declared with a type other than int, signed int, unsigned int or _Bool. This is not allowed by the C standard. User Action Change the declaration to use one of the allowed types or compile with a standard mode that allows this behavior.

BITWIDTH

Message <Context> the bitfield width expression "<expression>" is outside the range <lower> to <upper>. Description A bitfield width specifier was either less than zero, or is greater than the number of bits in an int. In some modes, the compiler will assume a width specifier equal to the number of bits in an int. User Action Use a valid bitfield width specifier.

BITWIDTHTYP

Message <Context> the bitfield width expression "<expression>" does not have an integral type. Description A bitfield width specifier does not have an integral type. A bitfield width specifier must be an integral constant expression. User Action Correct the width specifier.

BLOCKEXTVLA

Message <Context> the block scope identifier "<name>" cannot be declared with a variably modified type because it has extern storage class. Description Only ordinary identifiers with block scope and without storage class extern, or ordinary identifiers with function prototype scope can be declared with a variably modified type. User Action Correct the declaration.

BLOCKINL

Message Block level declarations of inline functions are not allowed. Description In C99 standard, block level declaration of inline functions are prohibited. User Action Move the inline function declaration to file scope.

BLTINARGCNT

Message <Context> an incorrect number of arguments were passed to the builtin function, "<function expression>". Description This message is output on OpenVMS systems when the number of arguments passed to the builtin function is not one. User Action Correct the call to the builtin function.

BLTINIMPLRET

Message <Context> for the function "<name>", the implicit return type of "<type>" is not consistent with the expected type of "<type>". It will be treated as an ordinary implicitly defined external function. Description A function that could be handled internally by the compiler has not been declared, so an implicit declaration has been created for the function. The return value for the function is being used, and the implicit return type does not agree with what the compiler expected to see. In such cases, the function will not be handled internally, but will instead be called at run time in the usual manner. This could result in a performance loss, or possibly incorrect results if the implicit return type is incorrect. User Action If the function is intended to refer to the runtime library routine, the appropriate header file should be included in the source. Alternatively, a correct prototype could be provided privately in the source file. If the function is intended to be a replacement for the runtime library routine, disable the intrinsic version by specifying "#pragma function(function_name)" in the source file.

BOOLEXT

Message The _Bool data type is a new feature in the C99 standard. Other C compilers may not support this feature. Description This is a new language feature in C99. While having a standard specification for portability, the feature may not yet be available in all of the compilers you use. User Action Determine whether or not the use of this feature will cause portability problems for this code.

BOOLNA

Message The _Bool keyword is not supported in this language mode. It will be treated as an identifier in this compilation. Description Support for the _Bool keyword is only available in certain language modes. Support is not present when the compiler is in VAX C, K & R (common), or strict ANSI89 standard modes. In these language modes _Bool will be treated as an identifier. User Action Compile using one of the other compilation modes.

BOUNDADJ

Message The CDD description for <name> specifies non-zero-origin dimension bound(s); The bound(s) are adjusted to zero-origin. Description The CDD description specifies lower bounds(s) for an array that is non-zero. The resulting C definition will have the upper bound(s) adjusted for lower bound(s) of zero. User Action Verify that all subscript expressions are referencing the correct array element(s).

BOUNDNOTINT

Message <Context> the array bound "<expression>" does not have an integral type. Description The compiler has encountered an array-bounds specifier that is not an integral type. Array-bounds specifiers must be positive integer constants. User Action Correct the array-bounds specifier

BUGCHECK

Message Compiler bugcheck. Submit a problem report with a problem description. Description An unexpected condition occurred in the compiler. This is most likely caused by a compiler bug. User Action Reduce the program that is causing the failure as much as possible. This often leads to a small test case. Please submit a problem report containing enough information for Engineering to reproduce the problem. The problem report should include the small test case.

CALLNEEDSFUNC

Message <Context> "<expression>" is not a function. Description In what appears to be a function call, the expression denoting the the function to call is neither the identifier for a function nor an expression of type pointer to function. User Action Correct the expression denoting the function. If the expression is a simple identifier, perhaps a function-like macro definition is missing.

CANNOTREDEF

Message Cannot #define a macro that is currently expanding. Description The program is trying to #define the same macro it is currently expanding. The #define will be ignored. User Action Remove the #define, or move it after the expansion of the macro.

CANNOTUNDEF

Message Cannot #undef a macro that is currently expanding. Description The program is trying to #undef the same macro it is currently expanding. The #undef will be ignored. User Action Remove the #undef, or move it after the expansion of the macro.

CANTDISABLE

Message The message id <name> cannot be disabled. Description The compiler's error and fatal messages cannot be disabled. User Action Remove this message id from the list of messages being disabled on the command line or in the #pragma message line.

CANTMKRPSTORY

Message Attempt to create repository "<string>" for shortend names failed; OpenVMS status: <reason>. Description A compilation that used the /NAMES=SHORTENED qualifier could not open the repository used to store the shortened names. This could be because an invalid name was specified in the /REPOSITORY qualifier. The message will give additional information about the failure. User Action Correct whatever caused the failure.

CDDATTR

Message One or more field descriptions in this CDD record specify an attribute that is being ignored. Description The CDD description specifies an attribute that is not supported in HP C. The attribute is ignored. User Action No action is required.

CDDBADID

Message An invalid identifier, <name>, is being ignored in the dictionary directive. Description An unexpected identifier follows the dictionary pathname in a dictionary preprocessing directive. The identifier is ignored. User Action Remove the invalid identifier(s) in the dictionary directive.

CDDEXT

Message #dictionary is a language extension. Description The #dictionary directive is an extension of HP C on OpenVMS. The program might not compile with other compilers or on other platforms. User Action Be aware of this if you wish to port the program.

CDDPATH

Message A valid CDD pathname was not found. The CDD directive has been ignored. Description The #dictionary preprocessing directive was not followed by an argument. The directive must be followed by a character string that gives the path name of a CDD record, or a macro that expands to the path name of the record. User Action Supply a valid argument to #dictionary. HP also recommends that the #dictionary preprocessing directive be replaced by the #pragma dictionary operator.

CDDTOODEEP

Message The attributes for the Common Data Dictionary record description <name> exceed the implementation's limit for record complexity. Description The CDD description specifies more attributes than the interface between the CDD and the compiler can handle. User Action Simplify the record description.

CHARCONST

Message Ill-formed character constant. Description An invalid character constant was encountered. User Action Correct the character constant.

CHAROVERFL

Message A character constant value requires more than sizeof(int) bytes of storage. Description A character constant is too long to fit in an int. The compiler will ignore the extra characters. User Action Remove the extra characters from the character constant.

CHKEXPAND

Message <number> integrity check error(s) after IL expansion of routine <text> Description This message is emitted by the code generator. It should never be output when compiling a C program. User Action Please submit a problem report if you encounter this message when compiling a C program.

CHKINIT

Message <number> integrity check error(s) in initial IL & ST for module <text> Description This message is emitted by the code generator. It should never be output when compiling a C program. User Action Please submit a problem report if you encounter this message when compiling a C program.

CHKOPT

Message <number> integrity check error(s) after <text> optimization phase for routine <text> Description This message is emitted by the code generator. It should never be output when compiling a C program. User Action Please submit a problem report if you encounter this message when compiling a C program.

CLASSNOINIT

Message <Context> the struct or union object "<name>" is uninitialized and has a const member. Description An object of struct or union type has a const member and has not been initialized. This might not have been what you intended. HP recommends that you initialize all objects with the const attribute. The missing initializer will make this an invalid declaration in C++. User Action Initialize the struct or union object.

CLOSBRACKET

Message Missing "]". Description The compiler was expecting a closing bracket, but one was not found. User Action Correct the program syntax.

CLOSEBRACE

Message Missing "}". Description The compiler was expecting a closing brace, but one was not found. User Action Correct the program syntax.

CLOSECOMMENT

Message This unmatched comment delimiter is ignored. Description An unmatched comment delimiter (*/) is an illegal combination of unary indirection and binary division operators that would have caused your compilation to fail. User Action Remove the comment delimiter.

CLOSEPAREN

Message Missing ")". Description The compiler was expecting a closing parenthesis, but one was not found. User Action Correct the program syntax.

CMPPTRFUNVOID

Message <Context> accepting the [in]equality comparison of a pointer to void and a pointer to function type is a language extension. Description Under the C standard, it is a constraint violation to perform an [in]equality comparison between a pointer to void and a pointer to function type. Therefore this code may not be accepted by other compilers. User Action Cast one of the pointers to the type of the other.

COLMAJOR

Message The CDD description for <name> specifies that it is a column-major array; It has been converted to a one-dimensional array. Description The HP C compiler supports only row-major arrays. Therefore the column-major array description in the CDD has been converted to a one-dimensional array of the same total size and with the same total number of elements. User Action Verify that all subscript references to the array reference the correct array element.

COMMANDMACRO

Message Extraneous text "<text>" at the end of the command line macro "<macro>" is ignored. Description A command line macro define contains an invalid macro name. The compiler will define the macro name listed in the message. User Action Correct the command line invocation.

COMPILERBUG

Message Bug found in compiler: <bug>. Description This message indicates that the compiler detected a bug within itself. User Action Please report the compiler bug and include an example program that reproduces the problem.

COMPLEXEXT

Message The complex data type is a new feature in the C99 standard. Other C compilers may not support this extension. Description This is a new language feature in the C99 revision of the standard. While having a standard specification for portability, the feature may not yet be available in all of the compilers you use. User Action Determine whether or not the use of this feature will cause portability problems for this code.

COMPLEXNA

Message The complex data types are not supported in this language mode. This will be treated as an identifier in this compilation. Description Support for the complex data types is only available in certain language modes. Support is not present when the compiler is in VAX C, K & R (common), or strict ANSI89 standard modes. In these language modes _Complex and _Complex_I will be treated as identifiers. User Action Compile using one of the other compilation modes.

COMPLEXNA1

Message The complex data types are not supported on this platform. This will be treated as an identifier in this compilation. Description The complex data type is not supported on the VAX platform. User Action Remove use of the complex types or compile the application on a platform that does support the complex data types.

CONFLICTHINTS

Message <Context> this hint value contridicts a related hint at <where>. The hints will be ignored. Description This program has supplied hints for either both branches of an if/else or both the second and third operand of a conditional operator. In these cases the two hint values must add to one. User Action Correct the hints.

CONLINKREG

Message Conflicting register usage between "<first set>" and "<second set>". Pragma is ignored. Description The same register was specified in two different register lists of a #pragma linkage directive. The compiler will ignore the entire pragma. User Action Correct the directive.

CONPSECTATTR

Message Conflicting psect attribute overrides previous attribute. Description A psect attribute specified in a #pragma extern_model directive contradicts an attribute specified earlier in the directive. This attribute will override the one specified earlier. User Action Remove one of the contradictory psect attributes.

CONSTCOMPLIT

Message <Context> accepting a compound literal as a constant is a language extension. The compound literal will be treated as a cast expression. Description A compound literal appears in a context where a constant expression is required. The C standard does not list compound literals as a form of operand that is allowed in a constant expression, so using a compound literal in this context is not maximally portable. The compiler will treat the compound literal as if it were a cast expression, which is a form of operand that the standard lists as being allowed in constant expressions. User Action For maximum portability, replace the compound literal with a cast expression.

CONSTFOLDNS

Message <Context> the libraries on this platform do not yet support compile-time evaluation of the constant expression "<expression>". Description Compile-time evaluation of constant expressions requires underlying support in the libraries available to the compiler at compile-time, and this expression contains an operator that is not yet implemented in those libraries. User Action If possible, replace part of the constant expression with a variable of the same value.

CONSTFUNC

Message Ignoring const type qualifier in declaration of <name>. Description The const type qualifier cannot be used with a function type. The compiler will ignore the type qualifier. User Action Remove the type qualifier.

CONSTINWRT

Message Const variable resides in wrt extern model. Description The current extern model places all external objects in a modifiable section. Placing an object with a const type qualifier in such a section means that there is no run-time protection against writing to the object. This might not have been what you intended. User Action Place const objects in sections that cannot be modified.

CONSTNOINIT

Message <Context> the const object "<name>" is uninitialized. Description A defined or tentatively-defined const object has not been initialized. This would not be valid in C++. It is also considered good programming practice to initialize all const objects with their value. User Action Either remove the const type modifier, or supply an initializer for the object.

CONSTSTOCLS

Message <Context> the const object "<name>" has no explicit storage class. In C, its storage class defaults to "extern"; in C++, it defaults to "static". Add an explicit "extern" or "static" keyword. Description One of the more signifcant and confusing differences between C and C++ is their treatment of file scope const objects declared without a storage class. C will give the object extern storage class, making the object visible in other compilation units. C++ will give the object static storage class. This can cause an undefined symbol error when other compilation units try to reference the symbol. User Action Add an explicit "extern" or "static" keyword to the declaration.

CONTFILE

Message A file ends with a continuation character. Description All source files, even those included via the #include preprocessing directive, must not end with a backslash continuation character. User Action Either remove the continuation character or add an additional line to the source program that does not end in a continuation character.

CONTROLASSIGN

Message <Context> the assignment expression "<expression>" is used as the controlling expression of an if, while or for statement. Description A common user mistake is to accidentally use assignment operator "=" instead of the equality operator "==" in an expression that controls a transfer. For example saying if (a = b) instead of if (a == b). While using the assignment operator is valid, it is often not what was intended. When this message is enabled, the compiler will detect these cases at compile-time. This can often avoid long debugging sessions needed to find the bug in the user's program. User Action Make sure that the assignment operator is what is expected.

CONVARASLIT

Message <Context> the use of the const variable "<name>" in place of a literal constant is a language extension. Description HP C will allow a non-volatile const variable that has been initialized to be used in contexts where a constant is required. For example, as the bounds specifier to a file scope array. This is an extension to standard C. Other C compilers might not successfully compile a program that uses this extension. User Action Use the constant value instead of the variable.

CRXCOND

Message Common Data Dictionary description extraction condition. Description Something went wrong while trying to get the CDD record description from the CDD. The error message that follows gives more information about the nature of the problem. User Action If necessary, correct the indicated condition in the CDD record description or with the user environment.

CVIDXOVFL

Message module uses more than 65536 CodeView type indices Description This message is emitted by the code generator. It should never be output when compiling a C program. User Action Please submit a problem report if you encounter this message when compiling a C program.

CVTDIFTYPES

Message <Context> "<expression>" of type "<type>", is being converted to "<target type>". Description In certain modes, the compiler will allow assignments or comparisons between pointer and integer types. This is an extension to standard C. Other C compilers might not successfully compile a program that uses this extension. User Action Use a cast operator to convert one operand to the other.

CVTU32TO64

Message <Context> an unsigned 32-bit integer constant that has its high-order bit set has been converted to a signed 64-bit type. The conversion will not sign-extend. Description This message indicates a conversion that may produce unexpected results on this platform because the destination type is a 64-bit type instead of a 32-bit type. User Action If this is the intended behavior, first cast the constant to an unsigned 64-bit type.

CXXCOMMENT

Message C++ style comments (//) may not be portable. Description C++ style comments have been detected on this line. Although they have been accepted by HP C in this language mode, they will not be accepted by all compilers or by HP C in strict C89 standard mode. User Action Replace C++ style line comments (//) with equivalent C comments (/* ... */) if portability is a concern.

CXXKEYWORD

Message "<C++ keyword>" is a keyword in C++. Using it as an identifier in your C program will prevent porting your program to C++. Description This identifier is a keyword in C++. The program is, therefore, not a valid C++ program. User Action Choose a different name for the identifier.

CXXPRAGMANA

Message The HP C++ pragma "<pragma name>" is not supported by HP C. The pragma will be ignored. Description The compiler has encountered a pragma that is supported by HP C++ but is not supported by HP C. The compiler will ignore the pragma. User Action Remove the pragma or compile the program with HP C++.

DCLMISMATLNK

Message The declaration of "<name>" has <number> parameter(s) but its linkage "<name>" has <number>. Standard linkage will be used. Description The number of parameters specified in a declaration does not match the number of parameters specified by the special linkage associated with this function or typedef. The special linkage was specified via the #pragma use_linkage directive. Because of this mismatch, the compiler will ignore the special linkage and use the standard linkage instead. User Action Make sure the number of parameters specified by the special linkage match the number of parameters in the function.

DCLMISMATLNK0

Message The declaration of "<name>" has an unknown number of parameters and cannot be used with the linkage "<name>". Standard linkage will be used. Description If a special linkage specifies parameter information, the declaration must not specify an unknown or variable number of parameters. The special linkage was specified via the #pragma use_linkage directive. Because of this mismatch, the compiler will ignore the special linkage and use the standard linkage instead. User Action Make sure the number of parameters specified by the special linkage match the number of parameters in the function type.

DCLMISMATLNK1

Message <where> "<name>" <modifier>has a floating type but its linkage "<name>" specifies an integer register. Standard linkage will be used. Description A parameter or return value of a function type is a floating type, but the corresponding parameter or return value in the special linkage specifies an integer register. The special linkage was specified via the #pragma use_linkage directive. Because of this mismatch, the compiler will ignore the special linkage and use the standard linkage instead. User Action Make sure the register specified by the special linkage matches the type of of the corresponding parameter and return value of the function type.

DCLMISMATLNK2

Message <where> "<name>" <modifier>requires an integer register but its linkage "<name>" specifies a floating register. Standard linkage will be used. Description A parameter or return value of a function type is an integer type, but the corresponding parameter or return value in the special linkage specifies a floating register. The special linkage was specified via the #pragma use_linkage directive. Because of this mismatch, the compiler will ignore the special linkage and use the standard linkage instead. User Action Make sure the register specified by the special linkage matches the type of of the corresponding parameter and return value of the function type.

DCLMISMATLNK3

Message <where> "<name>" has a size that is incompatible with the number of registers specified by its linkage "<name>". Standard linkage will be used. Description The size of a parameter or return value of a function type is incompatible with the size specified by the special linkage. The special linkage was specified via the #pragma use_linkage directive. Because of this mismatch, the compiler will ignore the special linkage and use the standard linkage instead. User Action Make sure the number of registers specified by the special linkage match the type of the corresponding parameter and return value.

DCLMISMATLNK4

Message <where> "<name>" <modifier>has a type that is not allowed because the it has the linkage "<name>". Standard linkage will be used. Description Using a special linkage places certain restrictions on the type of a function's parameters and return value. In general, the type must be a scalar type that can be represented by a register or registers on this platform. In cases where some other type is used, the compiler will ignore the special linkage and use the standard linkage instead. User Action Either remove the name from the #pragma use_linkage directive that specified the special linkage, or modify the type to be acceptable to the special linkage.

DCLMISMATLNK5

Message "<name>" has a void return type but its linkage "<name>" specifies a return location. Standard linkage will be used. Description If a special linkage specifies return value information, the declaration must not specify a void return type. The special linkage was specified via the #pragma use_linkage directive. Because of this mismatch, the compiler will ignore the special linkage and use the standard linkage instead. User Action Make sure the return value specified by the special linkage matches the return type.

DCLMISMATLNK6

Message <where> "<name>" <modifier>has float _Complex or double _Complex type. The corresponding floating point registers in linkage "<name>" must be consecutive. Standard linkage will be used. Description Using a special linkage places certain restrictions on the type of a function's parameters and return value. Whenever float _Complex or double _Complex types are used, they linkage must specify two consecutive floating point registers. The compiler will ignore the special linkage and use the standard linkage instead. User Action Either remove the name from the #pragma use_linkage directive that specified the special linkage, or modify the linkage to use consecutive floating point registers.

DECCONSTLARGE

Message Decimal constant value too large. Description A decimal constant used in a preprocessor directive is too large. The value of the constant will be undefined. User Action Decrease the value of the constant.

DECLAFTERSTMT

Message Placing a declaration after a statement is a new feature in the C99 standard. Other C compilers may not support this feature. Description This is a new language feature in the C99 revision of the standard. While having a standard specification for portability, the feature may not yet be available in all of the compilers you use. User Action Determine whether or not the use of this feature will cause portability problems for this code.

DECLARATOR

Message Invalid declarator. Description A declaration did not contain an identifier that specifies the item to be declared. User Action Specify a declarator in the declaration.

DECLINFOR

Message Placing a declaration in a for loop is a new feature in the C99 standard. Other C compilers may not support this extension. Description This is a new language feature in the C99 revision of the standard. While having a standard specification for portability, the feature may not yet be available in all of the compilers you use. User Action Determine whether or not the use of this feature will cause portability problems for this code.

DECLSPECEXT

Message __declspec is a language extension. Description The __declspec storage class modifier is a language extension of HP C. Other C compilers might not successfully compile a program that uses the extension. User Action Be aware of this extension if you wish to port the code.

DEFINOTHER

Message Another file in this compilation contains an external definition of a function named "<name>", or declares it as a variable with external linkage, at <where>. Description In a compilation where interfile optimization has been selected (-ifo on UNIX, /PLUS_LIST_OPTIMIZE on OpenVMS), the compiler has detected more than one definition of a function using the same external name, or has found that a function and a variable have the same external name. An external function can have only a single definition. And a given identifier with external linkage can refer either to a function or to a variable, but not both. User Action Remove or rename one of the names.

DEFINOTHER1

Message The external variable "<name>" was defined as an external function in another module of this compilation at <where>. Description In a compilation where interfile optimization has been selected (-ifo on UNIX, /PLUS_LIST_OPTIMIZE on OpenVMS), the compiler has detected a name with external linkage defined as a variable in one compilation unit and a function in another. User Action Remove or rename one of the definitions.

DEFINOTHER2

Message This declaration of "<name>" specifies a different type than the declaration in another module of this compilation at <where>. Description In a compilation where interfile optimization has been selected (-ifo on UNIX, /PLUS_LIST_OPTIMIZE on OpenVMS), the compiler has detected a name with external linkage declared with different types in two different modules. Although the runtime behavior may be as intended and match the behavior when the modules are separately compiled without interfile optimization, the behavior is not well defined unless the types are compatible. User Action Modify one or more of the declarations to make the types compatible.

DEFINOTHER3

Message This declaration of "<name>" specifies a different thread-local attribute than a declaration in another module of this compilation at <where>. Description In a compilation where interfile optimization has been selected (-ifo on UNIX, /PLUS_LIST_OPTIMIZE on OpenVMS), the compiler has detected a name with external linkage declared thread-local in one module and not thread-local in another. This can lead to unexpected results at runtime. User Action Modify one the declarations to make the thread-local attributes match.

DEFPARMTYPE

Message There is no declaration for the old-style function parameter "<name>". Type defaulted to int. This is a violation of the C99 standard. Description The parameter of an old-style function definition was not declared. It will default to int type. Omitting the type specifier is not valid in C99, and is often considered poor programming practice. User Action Declare the parameter. HP also recommends that old-style function definitions be replaced by prototype-format definitions.

DEFRETURNTYPE

Message The type of the function <name> defaults to "int". Description A function definition did not include a type specifier for the function's return value. It will default to int. This might not be what you intend. This is also a violation of the C99 Standard. User Action It is a good programming practice to give all function definitions explicit return types.

DESIGBADARR

Message <Context> , a struct/union designator cannot be used with an object of array type. Description An initialization designator must match the type of the object being initialized. In this initialization, the current object is an array so a struct/union designator is not allowed. User Action Correct the initialization.

DESIGBADCOMP

Message <Context> , an array designator cannot be used with an object of struct or union type. Description An initialization designator must match the type of the object being initialized. In this initialization, the current object is a struct or union, so an array designator is not allowed. User Action Correct the initialization.

DESIGBADIND

Message <Context> , the constant expression "<expression>" in an array element designator is not a positive integer. Description An array-element designator must be an constant expression that yields a positive integer value. User Action Correct the element designator.

DESIGBADIND1

Message <Context> , the array element designator "[<expression>]" specifies an element beyond the end of the array. Description An array element designator must specify a valid array element. User Action Correct the element designator.

DESIGNATIONNA

Message The use of a designation in an initializer list is not supported in this compilation mode. Description Initializer lists that contain designations are a new feature in the C99 revision of the C standard. HP C will only support this extension in relaxed mode and strict c99 mode. User Action Use a compilation mode that supports the use of designations.

DESIGNATORUSE

Message The use of a designation in an initializer list is a new feature in the C99 standard. Description Initializer lists that contain designations are a new feature in the C99 revision of the C standard. Other compilers may not support this feature. User Action Be aware of this portablility issue.

DESIGNOMEMB

Message <Context> , the component designator "<name>" is not a member of the current structure or union object being initialized. Description An initialization designator specifies a struct or union member that is not a member of the current struct or union object. User Action Correct the initialization.

DESIGSCALAR

Message <Context> , a designator cannot be used with an object of scalar type. Description An initialization designator can only be used on objects of array, structure, or union type. In this initialization, the current object being initialized is a scalar type so a designator is not allowed. User Action Correct the initialization.

DIFFEXMODEL

Message This redeclaration of "<name>" specifies a different extern model than a previous declaration of the variable at <location>. Description Two declarations of the same variable use different extern models. The extern model is specified by a #pragma extern_model directive that appears before the declaration in the source. This redeclaration may cause unexpected behavior. User Action All declarations of a variable should use the same extern model.

DIFFTYPEQUALS

Message <Context> the type of "<name>" has different type qualifiers than the previous declaration at <location>. The resulting type will be the composite of the two types. Description The C standard permits redeclaration and formation of a composite type only when the two types being considered are compatible, and types with different type qualifiers are not compatible. HP C allows this redeclaration for consistency with some other C compilers, and will form a composite type with all of the type qualifiers from both declarations. Be aware that these declarations may not be accepted by other C compilers. User Action Modify the declarations so that they use identically qualified types.

DIRECTVNOCPP

Message "<Directive text>" is not recognized as a preprocessing di