/* DCMSG.ENG */
/* Y.L. Noyelle, Supelec, France 1994 */

/************************************************************************/
/*			ERRORS/WARNINGS MESSAGES			*/
/************************************************************************/
/* @x (x>0) tells where message parameter number x should be inserted; @0
   indicates portions of text to be skipped if not in "verbose" mode. */

	"WArning (lvl. ",				/* Warning */
	"ERror",					/* Error */
	"bool/signed char/.../unsigned long",		/* Arithm */
	"@0",						/* At0 */
	"component of ",				/* ComponOf */
	"composite of ",				/* ComposOf */
	" (file already included ?)",			/* DblIncldFile */
	" (e.g. ...*const...)",				/* EGConstPtr */
	"empty",					/* Empty */
	"",						/* EmptyTxt */
	"\nCompilation unit \"@1\": total number of \
lines processed = @2\n",				/* EndMsg */
	"@1 error(s) and @2 warning(s) reported.\n",	/* ErrWarn */
	" of file \"@4\"",				/* File */
	"included by",					/* IncldBy */
	"\nLast tokens: ",				/* LastToks */
	"left ",					/* Left */
	" line ",					/* Line */
	"may occur (through assignment to non 'const' \
pointer)",						/* MayM */
	"No error or warning reported.\n",		/* NoErrWarn */
	" or just before",				/* OrJustBef */
	"Press <return> to go on",			/* ProceedMsg */
	"ran out of memory.."				/*~zif __index!=RanOutOfMem "Misplaced 'RanOutOfMem'" */,
	"right ",					/* Right */
	"######\n",					/* SeparMsg */
	"===>Press <return> after each message to go on,\n\
          e<return> => MORE INFORMATIVE MESSAGE (see \
options '+zlt', '+zvve'),\n\
          #<return> => no more stopping (see also option \
'-zsam').\n    Option '+zae' causes every error to show\
.\n===>The command 'dcc' alone (without argument) lists\
 all options.\n",					/* StopAftMsgBanner */
	"sub",						/* SubPre */
	"C programs checker, version 2.5f. Copyright \
1995 Ecole Superieure d'Electrici-\nte, France.\n\
Usage: dcc {options} compilation_unit_name(s)\n\
options:  -zac  no missing 'const' qualifier check,\n\
          -zbo  no 'bool' type check,\n\
          -zcc	do not call compiler,\n\
          -zcw	call compiler only if no warning/error,\n\
	  -zfci do not check first character of identifiers,\n\
          -zfrt no unnamed function return type check,\n\
          -zgpr no check of \"good programming practices\",\n\
          -zinc no '#include' position check,\n\
          -zind no indentation check,\n\
          -znui	no check of unused identifiers,\n\
          -znup	no check of unused function parameters,\n\
          -znw  start in \"no warning\" mode,\n\
          -zpe  no check of various possible errors,\n\
          -zpo  no portability check,\n\
          -zrd  no readability check,\n\
          -zsam no stopping after each message,\n\
          -ztr	no trailer,\n\
          -zuc  no check of unnamed constants,\n\
          -zwa	no warnings,\n",	/* Use1 */
"          -zwr	no forced newline at @3 characters,\n\
          +zae	report all errors (default is report merely first error of\n\
                current statement/declaration),\n\
          +zafn	always display current file name in error/warning messages,\n\
	  +zctn check first character of (created) type names (if '-zfci'),\n\
          +zdol allows '$' in identifiers,\n\
          +zepl warn on empty formal parameter list,\n\
          +zkwm keywords redefinable (via macro),\n\
          +zlt/+zlt'x' list last tokens processed before error/warning ('x' =\n\
                buffer length),\n\
          +zmcc check all pointers for missing 'const' qualifier,\n\
          +zmic more index type checking,\n\
          +zmsg'x'  'x': maximum number of emitted messages,\n\
          +zpnt check that function parameters are of named type,\n\
          +zsy	print each block's symbol table,\n\
          +ztab'x'  'x': tab spacing (for indentation purposes; @2 is default),\n\
          +zusg give 'usage',\n\
          +zve	output more informative error/warning messages,\n\
          +zvve	idem '+zve', plus output type descriptions in full.\n\
Options not beginning with '+z'/'-z' are transmitted to\
 compiler (but @4 options are heeded)."			/*~zif __index!=Use2 "Misplaced 'Use2'" */,
	"\n***** WArning(s)/ERror(s) found in \
compilation unit \"",					/* WarnErrInFile */
	"will occur@0 (through cast or non 'const' \
pointer field)@0",					/* WillM */

	"Actual parameter should be array@0 (type of \
formal parameter: \"@2\"; type of actual parameter: \
\"@3\").",						/* ActParNotArray */
	"Adjectives should come first.",		/* AdjectvFrst */
	"Identifier \"@1\" already declared/defined \
line @6@3@7@8@0 (declared type: \"@2\"; current type: \
\"@5\").",						/* AlrdDefId */
	"Label already defined line @6@3@7.",		/* AlrdDefLabel */
	"Type already qualified with same qualifier.",	/* AlrdQual */
	"Option \"@1\" already positioned.",		/* AlrdSeenOpt */
	"Tag \"@1\" already /*~Undef*/ined.",		/* AlrdUndef */
	"Case value (@1) already used in same switch \
statement.",						/* AlrdUsedCaseVal */
        "Missing ')' at end of macro \"@1\" argument \
list (calling macro \"@2\", call on line @6@3@7).",	/* ArgCollGetsOutMacBody */
	"Specification \"@1\" expects an array@0 (type \
of argument: \"@2\").",					/* ArrExptd */
	"Array of incomplete/void or function \
elements@0 (element type: \"@2\").",			/* ArrOfIncplOrFctElt */
	"Function cannot return array nor function@0 \
(return type: \"@1\").",				/* ArrOrFctCantBeRet */
	"Arrow '->' expected.",				/* ArrowExptd */
	"Function \"@2\": elements of array \
\"@1\"@0 (defined line @6@3@7)@0 should be \
qualified 'const'@5.",					/* ArrShdBeConst */
	"\"@2\" not large enough for maximum number of \
characters readeable by specification \"@1\".",		/* ArrTooSmall */
	"To convert array to pointer, use construct \
&array[0][0]..@0. (expression type: \"@2\"; cast \
type: \"@3\").",					/* ArrToPtr */
	"Assignment of address of 'auto' object to \
remanent variable (if really correct, use /*~LocalAdr*/\
 d-pragma).",						/* AsgnGblWLclAd */
	"A variadic function must have at least one \
parameter.",						/* AtLeastOnePar */
	"Backwards branch (if really justified, use \
/*~BackBranch*/ d-pragma).",				/* BackwdBranch */
	"Bad number of actual parameters@0 (function \
\"@1\", declared/defined line @6@3@7)@0.",		/* BadActParListLgth */
	"Bad attribute@0 (can be 'static', 'extern', \
'typedef', 'register', 'auto', or empty).",		/* BadAttrib */
	"'main' should have no attribute.",		/* BadAttribForMain */
	"Bad syntax, or text too long, for "
#ifdef VMS
"'/def'|'/undef'"
#else
"-D/-U"
#endif
" compiler option (\"@1\").",				/* BadDOption */
	"Illegal @5 d-pragma for parameter \"@1\"@0 \
(declared line @6@3@7)@0 of function \"@2\".",		/* BadDPForFctPar */
	"Operator '@3': bad expression type@0 (\"@2\") \
for sink type \"@1\"@0.@5",				/* BadForLftType */
	"Indentation inconsistent with current block\
/substatement level@0: indentation pitch (@3) x \
current level (@2) != current indentation (@1 spaces \
from beginning of line).",				/* BadIndent */
	"Bad indentation from line @1@3 to previous \
line.",							/* BadIndent1 */
	"Bad index/addend type for array/pointer \"@1\"\
@0 (declared/defined line @6@3@7); expected \
type: \"@2\", index/addend type: \"@5\". If necessary, \
use /*~IndexType <type>*/ d-pragma in declaration/\
definition to specify index type.",			/* BadIndexType */
	"Bad index type@0 (\"@2\")@0 for array/pointer \
\"@1\".",						/* BadIndexType1 */
	"Missing integral type; 'int' assumed.",	/* BadIntgrlType */
	"Header file \"@2\" should be included \
in compilation unit body@0 (because \
\"@1\" is provided by service \"@2\", and used \
services should be mentionned -at the beginning of- \
each compilation unit). If used by a header file, \
include it also in that header file. In case of \
composed header file, use /*~ComposingHdr*/ d-pragma.",	/* BadlyIncldHdrFile */
	"Bad type@0 (\"@2\")@0 for 'main' parameter \
\"@1\".",						/* BadParForMain */
	"Return type@0 \"@2\"@0 incompatible with \
function type@0 \"@1\"@0.@5",				/* BadRetType */
	"'main' return type must be 'int'.",		/* BadRetTypeForMain */
	"Value of '__dcc' symbol not string literal.",	/* BadUUdcc */
	"Second statement included in loop or \
'if'/'else' arm? (if so, use a block, else put \
second statement on next line)."			/*~zif __index!=BlockQM "Misplaced 'BlockQM'" */,
	"Bound of array \"@1\" should be a named \
constant@0 (via '#define' or enum); name may \
also be used in array overflow checking.",		/* BndShdBeNamed */
	"Bound of array \"@1\"@0 (declared \
line @6@3@7)@0 should be of named type, \
or use /*~IndexType*/ d-pragma in declaration@0 \
(index type: \"@5\"; bound type: \"@2\").",		/* BndShdBeOfNamedType */
	"Boolean expected by operator '@1'@0 (type = \
\"@2\").",						/* BoolExptd */
	"Function with /*~ResultType*/ parameter(s) \
can't be @1; @1 ignored.",				/* CantBeGeneUtil */
	"Adjustment file cannot change type/kind of \
identifiers (identifier \"@1\"; previous type: \"@2\", \
proposed type: \"@3\").",				/* CantChgMnng */
	"Cannot initialize typedef.",			/* CantInitTpdf */
	"'case' expected.",				/* CaseExptd */
	" (if really useless, cast it to 'void')",	/* CastToVoid */
	"Checking for 'volatile' qualifier inside \
setjmp range disabled.",				/* ChkSetjmpDsbld */
	"Non portable (check upper/lower case in \
header file name).",					/* ChkUcLc */
	"@5 at end of declaration started line @6@3.",	/* CmplSColE1 */
	"Header file \"@1\" cannot be a \
/*~ComposingHdr*/ of itself (via file \"@2\").",	/* CmpsgHdrWithSelf */
	"':' expected.",				/* ColExptd */
	"',' expected.",				/* CommaExptd */
	"',' or @1",					/* CommaOr */
	"Attempt to compile a header file (\"@1\").",	/* CompHdrFile */
	"Operator '##' must be followed by token; \
';' token added.",					/* ConcOprIlgLast */
	"'const'/'volatile' mismatch in pointers for \
operator '@1'@0 (expected @4type \"@2\", expression \
@4type \"@3\").",					/* ConstQalNotHeeded1 */
	"'const'/'volatile' mismatch in pointer/array \
parameters@0 (actual @1type \"@3\", formal @1type \
\"@2\").",						/* ConstQalNotHeeded2 */
	"Left operand of which at least one \
member is 'const'@0 (@5struct/union \"@1\", \
declared/defined line @6@3@7); type = \"@2\".",		/* ConstStrun */
	"Operator '@1': @4operand converted to \
'unsigned' (so possible sign lost)@0; left operand \
type: \"@2\", right operand type: \"@3\".",		/* ConvToUnsig */
	"Operator '@1': expression converted to \
'unsigned' (so possible sign lost)@0; expression \
type: \"@3\", sink type: \"@2\".",			/* ConvToUnsig1 */
/*	"Do you really want to make a copy of a 'vola\
tile' variable ?@0 (variable \"@1\", type: \"@2\"); if \
so, cast it to non 'volatile'.",			* CopyVolat */
	"Concatenation buffer overflow (increment \
'MaxConcatLvl' constant in file \"configdc.th\", and \
recompile dcc).",					/* CrtdTokTooLong */
	"Constant boolean @1expression; if really \
needed, use /*~NonConstExp*/ d-pragma (after a right \
parenthesis).",						/* CstBoolExp */
	"Constant expression expected.",		/* CstExpExptd */
	"Constant operand should be on right side, for \
easier understandability (operator '@1').",		/* CstOnLftSide */
	"Constant switch driving expression.",		/* CstSwitchExp */
	"Member name \"@1\" already used in same \
struct/union.",						/* DblDefMember */
	"Struct/union \"@1\" already defined@0 on \
line @6@3@7.",						/* DblDefStrun */
	"dcc cannot process macro definition while \
collecting arguments (collecting for macro \"@1\", \
called line @6@3@7); definition ignored.",		/* DccCantProcDef */
	"Declaration expected.",			/* DeclExptd */
	"'default' clause expected at end of switch \
statement (or use /*~NoDefault*/ d-pragma).",		/* DefaultExptd */
	"Attempt to substract two incompatible pointers\
@0 (left: \"@2\"; right: \"@3\").",			/* DiffIncptblPtr */
	"Directive name expected.",			/* DirNameExptd */
	"'.c' files should be compiled separately, not \
included..@0. (file \"@1\").",				/* DontInclBodyFile */
	"Identifier should not be split.",		/* DontSplitIdent */
	"Specification \"@1\" tries to write into \
'const' variable@0 (variable type: \"@2\").",		/* DontWriteIntoConst */
	"D-pragma name expected.",			/* DPragNameExptd */
	"@1*/ d-pragma only authorized in header \
file; ignored.",					/* DPragNotAlwd */
	"The 'while' corresponding to a 'do' should \
not be lined up with it (to avoid confusion with a \
while loop). Use '{','}' ?",				/* DWhileNotLinedUp */
	"'#else' already seen.",			/* ElseAlrdSeen */
	"A function cannot be defined inside another \
function.",						/* EmbdFctNotAlwd */
	"Empty @1argument for '##' operator.",		/* EmptyConcArg */
	"Empty loop or 'if'/'else' arm; if really \
meant, replace ';' by empty block.",			/* EmptyStmt */
	"Empty struct/union.",				/* EmptyStrun */
	"'*/' (end of d-pragma) expected.",		/* EndDPExptd */
	"Excess characters at end of line discarded.",	/* EndOfLineIgnd */
	"Error directive encountered.",			/* ErrorDir */
	"'extern' declarations should be in header \
files.",						/* ExtDeclBeInHdrFile */
	"External variable/function \"@1\" declared@0 \
line @6@3@7,@0 but not defined.",			/* ExtObjNotDef */
	"Extraneous '}' ignored.",			/* ExtraRBra */
	"Extraneous ';' at end of macro \"@1\" ?@0 \
(defined line @6@3@7).",				/* ExtraSColAtEndMac */
	"In header files, only attributes expected \
are 'extern' and 'typedef'.",				/* ExtrnExptd */
	"A function cannot be initialized.",		/* FctCantBeInit */
	"Function declaration/definition illegal inside\
 struct/union.",					/* FctDeclNotAlwd */
	"In function definition, function name \
(\"@1\") may not achieve function type via type \
identifier.",						/* FctDefViaTpdf */
	"Open failure (non-existant or inaccessible \
\"@1\" file).",						/* FileOpenFail */
	"Field not allowed outside of struct/union.",	/* FldNotAlwd */
	"Incorrect field size@0 (negative, zero, or \
larger than the width of an 'int').",			/* FldSizIncor */
	"Equality generally ill-defined on floating \
quantities (operator '@1'); if guaranteed well defined \
here, use /*~ExactCmp*/ d-pragma.",			/* FltNotEq */
	"Format string exhausted.",			/* FmtExhstd */
	"Qualifiers should be grouped together.",	/* GroupQual */
	"Hazardous conversion@0 (expression type: \
\"@2\"; cast type: \"@3\")@0; if really meant, use \
/*~OddCast*/ d-pragma."					/*~zif __index!=HzrdConv "Misplaced 'HzrdConv'" */,
	"Hazardous conversion to less qualified \
type@0 (expression type: \"@2\"; cast type: \
\"@3\")@0; if really meant, use /*~OddCast*/ d-pragma.",/* HzrdConv1 */
	"Identifier expected.",				/* IdExptd */
	"Identifier or ';' expected@2",			/* IdOrSColExptd */
        " (in case of keyword, use '+zkwm' option)",	/* IfKW */
	"Ignored character(s) at end of option \"@1\".",/* IgndCharsOpt */
	"Invalid array size@0 (@1).",			/* IlgArraySize */
	"Illegal attribute for identifier \"@1\".",	/* IlgAttrib */
	"Only 'static' attribute (or none) legal for \
function definition (\"@1\").",				/* IlgAttribForFct */
	"Invalid 'bool' type definition (should be \
'unsigned int').",					/* IlgBoolDef */
	"Type@0 \"@1\"@0 can't be cast.",		/* IlgCastSource */
	"Type@0 \"@1\"@0 is an illegal cast target.",	/* IlgCastTarget */
	"Type@0 \"@1\"@0 is an illegal cast target; \
use /*~CastTo*/ d-pragma.",				/* IlgCastTarget1 */
	"Illegal /*~CastTo*/ d-pragma@0 (types do not \
have same representation type)@0; ignored (use real \
cast)@0 (expression type: \"@3\"; target type: \
\"@2\").",						/* IlgCastTo */
	"Illegal character: '@1' (perhaps non-\
printing)@0. Code: 0x@2.",				/* IlgChar */
	"Illegal character: '$' (can be legalized in \
identifiers by using /*~DollarSign*/ d-pragma at \
beginning of compilation unit, or option '+zdol').",	/* IlgCharD */
	"/*~ComposingHdr*/ d-pragma illegal in 'body' \
file, or for including non header file; ignored.",	/* IlgCmpsgHdr */
	"File \"@1\" should not be marked \
/*~ComposingHdr*/.",					/* IlgCmpsgHdr1 */
	"Strange hierarchy of file inclusions.",	/* IlgCmpsgHdr2 */
	"Operator '##' creates invalid token `@1`. \
@2 Replaced by a ';' token.",				/* IlgCrtdTok */
	"/*~DccCompliant*/ d-pragma should only be \
used in system header files.",				/* IlgDccCmpl */
	"Invalid directive name; directive ignored.",	/* IlgDirName */
	"Ill-used @1 d-pragma; ignored.",		/* IlgDPrag */
	"Invalid escape sequence@0 (escape code: \
0x@1).",						/* IlgEscSeq */
	"Unknown conversion character in specification \
\"@1\".",						/* IlgFmtSpe */
	"Identifier \"@1\" does not name variable or \
function or enum constant.",				/* IlgId */
	"Illegal '#include' argument.",			/* IlgInclArg */
	"Illegal in '#if' expression.",			/* IlgInIfExp */
	"Variable \"@1\": initialization not \
allowed (external declaration).",			/* IlgInit */
	"/*~Init*/ d-pragma: nonsense use for variable \
\"@1\".",						/* IlgInitBU */
	"Operator '@1': illegal left type@0 (\"@2\").",	/* IlgLftType */
	"Illegal octal digit@0 (code: 0x@1).",		/* IlgOctDig */
	"Illegal operand for '@1'@0 (\"@2\").",		/* IlgOpndType */
	"Specification \"@1\": invalid flag/length \
modifier.",						/* IlgOptForSpe */
	"Specification \"@1\": bad 'precision' field.",	/* IlgPrecFld */
	"Operator '@1': illegal right type@0 (\"@2\").",/* IlgRhtType */
	"Specification \"@1\" invalid for type \
\"@2\".",						/* IlgSpeForType */
	"Illegal syntax.",				/* IlgSynt */
	"'%' operator not defined on floating type@0 (\
left: \"@2\", right: \"@3\").",				/* IlgTCModOpnd */
	"One of '+ - * / %' operators expected.",	/* IlgTCOptr */
	"Illegal type@0: \"@1\".",			/* IlgType */
	"Specification \"@1\": illegal type@0 (\"@2\")\
@0 for width/precision.",				/* IlgTypeForFld */
	"Operator '@1': illegal operand types@0 (left: \
\"@2\"; right: \"@3\").",				/* IlgTypes */
	"Ill-parenthetized macro body or parameter ? \
(operator '@1').",					/* IllParenMacro */
	"Declaration cannot be after statement.",	/* IllPositDecl */
	"/*~Undef{Tag}*/ d-pragma to be used only \
outside functions."					/*~zif __index!=IllUndef "Misplaced 'IllUndef'" */,
	"File \"@2\" should be included after file \"@3\
\" (because redeclares variable/function \"@1\").",	/* IncldAfter */
	"Directive only valid inside included file.",	/* InclNxtIlg */
	"Type of parameter #@1 incoherent with function\
 return type; @4 d-pragma ignored@0 (parameter type: \
\"@2\"; return type: \"@3\").",				/* IncohResultType */
	"/*~NeverReturns*/ function \"@1\" does return \
...",							/* IncorNevRet */
	"Result type for '%' should be type of left \
operand.",						/* IncorTCModRes */
	"Specified result type@0 (\"@1\")@0 not \
coherent with C conversion rules@0 (operand types: \
\"@2\", \"@3\").",					/* IncorTCResTyp */
	"Array \"@1\"@0 (declared line @6@3@7)@0: \
elements of incomplete/void or function type@0 \
(\"@2\").",						/* IncplArray */
	"Macro \"@1\": incomplete parameter.",		/* IncplPar */
	"Pointer \"@1\"@0 (declared/defined line \
@6@3@7)@0: pointed elements of incomplete/void or \
function type@0 (\"@2\").",				/* IncplPtr */
	"Function \"@1\": incomplete or function \
return type@0 (\"@2\").",				/* IncplRetType */
	"Operator '@5': incomplete type@0 (\"@2\")@0 \
for struct/union \"@1\"@0 (declared line @6@3@7).",	/* IncplStrunType */
	"Identifier \"@1\": incomplete/void or \
function type@0 (\"@2\").",				/* IncplType */
	"Function \"@1\": attribute should be @2 (cf \
declaration line @6@3@7).",				/* IncptblAttrib */
	"Function \"@1\"@0 (declared/defined line \
@6@3@7)@0: incompatible actual/formal parameters@0 \
(type of actual parameter: \"@2\"; type of formal \
parameter: \"@5\").",					/* IncptblPar */
	"Operator '@1': incompatible operand types@0 \
(left: \"@2\"; right: \"@3\").@4",			/* IncptblTypes */
	"Array \"@1\"@0 (declared/defined line \
@6@3@7)@0: index type@0 (\"@2\")@0 too small for \
bound value@0 (@5).",					/* IndexTypeTooSmall */
	"Index value (@1) greater or equal to \
bound (@2).",						/* IndexValTooBig */
	"Call to function \"@1\" passed as parameter \
to macro using it several times@0: inefficient at best,\
 multiple side effects at worst.",			/* IneffOrSideEff */
	"; if normal, use /*~Init <var>*/ d-pragma",	/* InitDP */
	"Read error (on file \"@1\").",			/* InptFileErr */
	"Non portable bit-field type (depending on \
platforms, plain 'int' is interpreted either as signed \
or unsigned)@0; type = \"@1\".",			/* IntBitField */
	"Integral or bool type expected.",		/* IntgrlTypeExptd */
	"Unsigned integer expected (1-32767).",		/* IntgrNbExptd */
	"'{' expected.",				/* LBraExptd */
	"Operators '#' and '##' only allowed inside \
macro definition; ignored.",				/* LegalOnlyInMac */
	"Length of character constant not equal to \
1.",							/* LgtCharCstNotOne */
	"Variable/function name @0(\"@1\") @0should \
begin with lowercase letter.",				/* LoCaseObjName */
	"To indicate header file, use 'h', not 'H'.",	/* LowerCaseH */
	"'(' expected.",				/* LParExptd */
	"Left parenthesis should be outside macro.",	/* LParOutsideMac */
	"Macro \"@1\" already defined line \
@6@3@7@8; new definition ignored.",			/* MacAlrdDef */
	"Following error may be due to macro \
interfering with included file (macro \"@1\", defined \
line @6@3@7).",						/* MacBefIncl */
	"Macro name expected@1.",			/* MacNameExptd */
	"Modifications @5 via formal parameter \
\"@1\"@0 (defined line @6@3@7)@0 of function \"@2\"\
@0; if normal, use /*~MayModify*/ d-pragma.",		/* MayModify */
	"A member cannot be initialized.",		/* MemberCantBeInit */
	"Labels should be placed in front of \
statements.",						/* MisplaLbl */
	"Bizarre values for pointer operands ?",	/* MnlsPtrDiff */
	"External variable \"@1\" already declared \
(on line @6@3@7) with more stringent or \
incompatible type@0 (declaration type: \"@2\"; current \
type: \"@5\")@0; current declaration ignored.",		/* MoreStrngType */
	"More than one attribute.",			/* MoreThanOneAttrib */
	"Missing 'break'? (if really meant, use \
/*~NoBreak*/ d-pragma).",				/* MsngBreak */
	"Operator '##' must be preceded by token; \
ignored.",						/* MsngConcOpnd */
	", or missing 'const' qualifier in formal \
parameter to which address of \"@1\" is passed",	/* MsngConstQM */
	"Missing '#endif'.",				/* MsngEndif */
	"Missing '==' ?",				/* MsngEqual */
	"Missing expression.",				/* MsngExp */
	" (missing 'extern' or 'typedef' ?)",		/* MsngExtTpdf */
	"Declaration of function \"@1\": missing \
attribute ('static' assumed).",				/* MsngFctAttrib */
	"Missing function name.",			/* MsngFctName */
	"Missing parenthesis after function name ?",	/* MsngFctParen */
	"Specification \"@1\" should indicate a width \
limit, to prevent overflow of receiving array.",	/* MsngFldWdth */
	"Specification \"@1\" should indicate a width \
limit, to prevent overflow of receiving array (if \
overflow guaranteed not possible, use /*~SizeOK*/ \
d-pragma).",						/* MsngFldWdth1 */
	"Missing 'if' (or forgotten '}' ?).",		/* MsngIF */
	"Array/struct/union initialization: missing '{'\
 (before expression).",					/* MsngLBra */
	"Macro \"@1\": missing argument(s); \
replaced by empty one(s)@0 (macro defined line \
@6@3@7)."						/*~ zif __index!=MsngMacArg "Misplaced 'MsngMacArg'" */,
	"Missing member name.",	 			/* MsngMembName */
	"Function \"@1\" should be marked \
/*~NeverReturns*/.",					/* MsngNevRet */
	"Missing variable/function/type name.",		/* MsngObjTypName */
	"Missing space ?",				/* MsngSpace */
	"Variable/function \"@1\": missing 'static' \
attribute ?@0 (or, if really external, should be \
declared as 'extern' in a \"@2.h\" header file, which \
is to be included).",					/* MsngStati */
	"Missing 'struct'/'union'/'enum' keyword ?",	/* MsngStrunEnum */
	"'void' should be used to specify empty \
parameter list.",					/* MsngVoid */
	"Variable \"@1\" should be declared 'volatile' \
(or else declared in more inner block). See also \
/*~EndLongjmpCallable*/ d-pragma.",			/* MsngVolatQual */
	"Name \"@1\" already in use (defined on \
line @6@3@7); redefined (if that is really what \
was wanted, use /*~Masking*/ d-pragma).",		/* NameAlrdInUse */
	"Name of symbol \"@1\" should not start by \
lower-case letter.",					/* NameSymbLoCase */
	"Negative index value.",			/* NegIndexVal */
	"No attribute allowed.",			/* NoAttribAlwd */
	"No compilation unit name given.",		/* NoCUName */
	"There should be no variable/function \
definition in a header file@1.",			/* NoDefInHdrFile */
	"No preprocessor directive allowed inside \
d-pragma; ignored.",					/* NoDirInDPrag */
	"There is no \"higher\" type among the \
/*~ResultType*/ actual parameters of this function \
call@0 (previous resultType: \"@2\", current actual \
parameter type: \"@3\").",				/* NoHghrTyp */
	"Object name (\"@1\") not allowed in type \
definition.",						/* NoIdAlwdInType */
	"First token of function (after opening \
brace) should be on new line, and not at beginning \
of it, to indicate chosen indentation pitch.",		/* NoIndentIndct */
	"Use of d-pragmas not coherent between function\
 \"@1\" definition and declaration@0 (on line \
@6@3@7)@0; declaration wins.",				/* NonCoheDPInFct*/
	"Operator not commutative.",			/* NonCommutOper */
	"Meaningless cast.",				/* NonNumCantBeCast */
	"Non portable cast ?@0 (expression type: \
\"@2\"; cast type: \"@3\"); if really meant, use \
/*~PortableQM*/ d-pragma or, if in fact guaranteed \
always portable, /*~OddCast*/ d-pragma.",		/* NonPortCastQM */
	"Operator '@1': non portable assignment@0 \
(expression type: \"@3\"; sink type: \"@2\").",		/* NonPortCmbn */
	"Non portable file name ?",			/* NonPortFName */
	"Operator '@1': non portable right operand@0 \
(\"@2\")@0 for left operand@0 (\"@3\").",		/* NonPortOpnd */
	"Non portable type combination@0 (could yield \
\"unsigned @1\").",					/* NonPortTC */
	"Macro \"@1\" may not be undefined.",		/* NonUndfnblMac */
	"Label \"@1\"@0 (defined line @6@3@7)@0 \
not visible from here.",				/* NonVisiLabel */
	"Operator '@1': no order relation between \
pointers on 'void' or function@0 (left type: \"@2\"; \
right type: \"@3\").",					/* NoOrderRel */
	"No preceding '#if'.",				/* NoPrecIf */
	"No qualifier allowed.",			/* NoQualifAlwd */
	"No 'return' at end of function \"@1\".",	/* NoRetAtEnd */
	"Body of which function ?",			/* NotAFct */
	"Function '__index' used outside array \
initialization."					/*~ zif __index!=NotArrInit "Misplaced 'NotArrInit'" */,
	"Arrays can't be cast to integral type@0 \
(expression type: \"@2\"; cast type: \"@3\").",		/* NotArrToNum */
	"Not ASCII character (may be invisible; \
code: 0x@1).",						/* NotASCIIChar */
	"No /*~TypeCombination*/ provided for \"@1@2\
@3\".",							/* NoTCAllows */
	"Tag \"@1\" not defined.",			/* NotDefTag */
	"Function '__extent': identifier \"@1\" \
neither type naming an enum, nor enum tag.",		/* NotEnumTypeOrTag */
	"Operator '@3': bad expression type@0 (\"@2\");\
 expected type: \"@1\".",				/* NotExptdType */
	"Identifier \"@1\" does not name a function.",	/* NotFctId */
	"Local variable \"@1\" not initialized@2.",	/* NotInit */
	"Local variable \"@1\" not initialized (at line\
 @6@3@7)@2.",						/* NotInit1 */
	"Not inside loop.",				/* NotInsideLoop */
	"Not inside loop or switch.",			/* NotInsideLoopOrSwitch */
	"Not inside switch.",				/* NotInsideSwitch */
	"Not inside switch, or after 'default'.",	/* NotInsideSwitch1 */
	"Operator '@1': @2operand do not have an \
address.",						/* NotLVal */
	"Array actual parameter do not have an \
address.",						/* NotLValP */
	"Operator '#': operand must be macro \
parameter; operator ignored.",				/* NotMacParForQuo */
	"Operator '@2': (left) operand 'const'@0 (@5\
object \"@1\", declared/defined line @6@3@7).",		/* NotModfbl */
	"Not named struct/union initializer, or literal\
 constants inside.",					/* NotNamedStrunCst */
	"Value of expression not used.",		/* NotPureSideEffect */
	"Value of function \"@1\" not used@0@2.",	/* NotPureSideEffect1 */
	"Function \"@1\": not same number of para\
meters in declaration@0 (line @6@3@7)@0 and \
definition."						/*~ zif __index!=NotSameNbOfPar "Misplaced 'NotSameNbOfPar'" */,
	"Variable/function \"@1\": definition type@0 \
(\"@2\")@0 does not match declaration type@0 (\"@5\") \
on line @6@3@7@0; definition type ignored.",		/* NotSameType */
	"Function '__member' used outside struct/\
union initialization.",					/* NotStrunInit */
	"\"@1\" is not a type.",			/* NotTypeId */
	"Enum constant \"@1\" supposedly /*~NotUsed*/ \
?!!",							/* NotUsdEnumCst */
	"Variable \"@1\" supposedly /*~NotUsed*/ ?!!",	/* NotUsdObj */
	"Parameter \"@1\" supposedly /*~NotUsed*/ ?!!",	/* NotUsdPar */
	"\"@1\" is not a (local) variable.",		/* NotVarId */
	"Invisible character (code: 0x@1).",		/* NotVisiChar */
	"Numeric constants (except 0, 1, -1) should \
be named@0 (via '#define' or enum constant). See also \
/*~LiteralCst*/ d-pragma.",				/* NumCstShdBeNamed */
	"Numeric constants inside macros should also \
be named (or else parenthetize them).",			/* NumCstShdBeNamed1 */
	"Declaration of function \"@1\": only \
attribute allowed inside block is 'extern'.",		/* OnlyExtrn */
	"Only attribute allowed is 'register'.",	/* OnlyRegAttrib */
	"Operators '=', '++', '--', '()', ',' illegal \
in this expression.",					/* OperIlgInCstExp */
	"Operator '@1': @2operand value may lie \
outside range {0, 1}, so use logical operators '&&', \
'||', '!', or compare to False@0, or cast (bool \
/*~OddCast*/).",					/* Outside01 */
	"Operator '@1': overflow@0 (for type \"@2\").",	/* Overflow */
	"Overflow.",					/* Overflow1 */
	"Operator '@1': left truncation@0 (for type \
\"@2\").",						/* Overflow2 */
	"Macro \"@1\": parameter name \"@2\" \
already used.",						/* ParAlrdExist */
	"Formal parameters must be named.",		/* ParMustBeNamed */
	"Parameter name expected@1.",			/* ParNameExptd */
	"Function \"@1\": name of formal parameter \
\"@2\" does not match corresponding name in function \
declaration@0 (on line @6@3@7).",			/* ParNamesNotEq */
	"Non /*~Generic*/ nor /*~ResultType*/ parameter\
 should not be of representation type@0 (parameter \
type: \"@2\").",					/* ParRepreType */
	"Type of formal parameter \"@1\"@0 (\"@5\")@0 \
inconsistent with function declaration@0 (\"@2\") \
on line @6@3@7@0; ignored.",				/* ParTypesNotEq */
	"Cast potentially non portable@0 (expression \
type: \"@2\"; cast type: \"@3\")@0; if really meant, \
use /*~PortableQM*/ d-pragma.",				/* PortCastQM */
	"Operator '@1': overflow (underflow ?) if \
unsigned expression too large@0 (expression \
type: \"@3\"; sink type: \"@2\").",			/* PossOvfl */
	"Previous cast useless@0 (from \"@2\" to \
\"@3\").",						/* PrevCastUsl */
	"Type \"@2\" is private: its constants/members \
are not visible from here@0 (\"@5\", defined line \
@6@3@7).",						/* PrivNotVisi */
	"Specification \"@1\" expects a pointer@0 \
(type of argument: \"@2\").",				/* PtrExptd */
	"Only pointer on function can be parameter \
(parameter \"@1\", type \"@2\").",			/* PtrOnFctExptd */
	"Function \"@2\": pointer \"@1\"@0 (defined \
line @6@3@7)@0 should point on 'const' element@5.",	/* PtrShdBeConst */
	"Pointer should be cast to size_t (or unsigned \
long(long)); else use /*~OddCast*/ d-pragma@0 (pointer \
type: \"@2\"; cast type: \"@3\").",			/* PtrToNum */
	"'}' expected.",				/* RBraExptd */
	"',' or '}' expected.",				/* RBraOrCommaExptd */
	"Cannot take address of register or \
bit-field.",						/* RegAttribForAmp */
	"'register' attribute incompatible with \
'volatile' qualifier.",					/* RegVolatIncptbl */
	"Functions should return information type \
(e.g. \"Position\")@0, except if /*~ResultType*/, \
/*~Generic*/ or /*~Utility*/ d-pragma used \
(return type is representation type \"@1\").",		/* ResRepreType */
	"/*~ResultPtr*/ parameter should have highest \
type among all /*~ResultType*/ parameters@0 (current \
parameter type: \"@2\", @1 type: \"@3\").",		/* ResulPtrNotHgHsTyp */
	"Attempt to return pointer on 'auto' object.",	/* RetPtrOnLclAd */
	"Missing ')'.",					/* RParExptd */
	"',' or ')' expected.",				/* RParOrCommaExptd */
	"Missing ']'.",					/* RSBrExptd */
	"Enum constant \"@1\" has same value (@2) \
that a previous one (\"@3\"); if really meant, use \
/*~SameValue*/ d-pragma.",				/* SameEnumCst */
	"Parameter name \"@1\" used more than once \
in this function definition.",				/* SameParName */
	"';' expected.",				/* SColExptd */
	"';' expected@2",				/* SColExptd1 */
	"Statements should be separated from \
declarations by white line(s) (or use \";;\").",	/* SepDeclStmt */
	"Switch statement should control a block."	/*~zif __index!=ShdBeBlk "Misplaced 'ShdBeBlk'" */,
	"This declaration of function \"@1\" should, \
along with an 'extern' attribute, be in a header file \
included here.",					/* ShdBeInHdrFile */
	"Unparenthetized boolean expression.",		/* ShdBePrntzBool */
	"Argument should be array, not pointer on \
array@0 (array parameters are passed by address, not \
by value).",						/* ShdntBePtrOnArr */
	"'sizeof' should be used to compute size.",	/* ShdUseSizeof */
	"Side effect via macro parameter used more \
than once (operator '@1').",				/* SideEffInMacPar */
	"Only '=' operator allowed.",			/* SimplAsgnExptd */
	"'sizeof' operand is not evaluated.",		/* SizeofDontEval */
	"Initialization of compound automatic objects \
should be avoided@0 (it is slow and wastes memory). \
Object should be declared 'static'. If really not \
appropriate, use /*~DynInit*/ d-pragma.",		/* SlowingInit */
	"Static function \"@1\" declared@0 line \
@6@3@7,@0 but not defined.",				/* StaFctNotDef */
	"Header file <stddef.h> should be included \
before this line.",					/* StddefNotIncl */
	"Statement expected.",				/* StmtExptd */
	"String constant expected.",			/* StrCstExptd */
	"String \"@1\" too long.",			/* StringTooLong */
	"No new type may be defined here.",		/* StrunEnumDeclNotAlwd */
	"internal error #@1.",				/* SysError */
	"Tag \"@1\" not visible here.",			/* TagNotVisi */
	"Tag names must be preceded by 'enum'/\
'struct'/'union' to be type names@0 (\"@1\").",		/* TagQM */
	"Label \"@1\" is target of at least a 'goto' \
that can't see it (on line @6@3@7).",			/* TargLabelNotVisi */
	"/*~TypeCombination*/ \"@1@5@2\" conflicts/is \
redundant with combination defined/deduced from line \
@6@3@7.",						/* TCAlrdDef */
	"/*~TypeCombination*/ d-pragma can only be used\
 outside function.",					/* TCNotAtLvl0 */
	"Too many brace levels.",			/* TooManyBraLvl */
	"Less parameters than required by specifica\
tion(s) in format string.",				/* TooManyFmtSpe */
	"Too many initializers.",			/* TooManyIniz */
	"Call of macro \"@1\": too many arguments@0 \
(call on line @6@3@7).",				/* TooManyMacArg */
	"Macro \"@1\": more than @2 parameters.",	/* TooManyMacPar */
	"Too many messages; terminated.",		/* TooManyMsg */
	"Too many parameters for 'main'.",		/* TooManyParForMain */
	"Identifier too long (more than 31 \
characters).",						/* TrnctdId */
	"Operator '@1': incompatible operands; try per\
muting them@0 (left type: \"@2\"; right type: \"@3\").",/* TryPermut */
	"Type name expected; 'int' assumed.",		/* TypeExptd */
	"Type \"@1\" is not a parallel numeric type.",	/* TypeNotParal */
	"Unclosed comment somewhere before ?",		/* UnclosedCmt */
	"Unclosed d-pragma ?",				/* UnclosedDP */
	"Address not computable at link time.",		/* UncomputAd */
	"Missing tag or '{'.",				/* UndefEnum */
	"Function \"@1\" undeclared.",			/* UndefFctId */
	"Identifier \"@1\" undeclared.",		/* UndefId */
	"Function \"@2\": label \"@1\" undefined (used \
at least line @6@3@7).",				/* UndefLabel */
	"Operation '@5' attempted on pointer (\"@1\") \
to unsized type@0 (\"@2\"); pointer declared/defined \
line @6@3@7.",						/* UndefPtdSize */
	"Operator '@1': illegal value (@2) for \
right operand@0 (type:\"@3\" => undefined result).",	/* UndefResul */
	"Operator '@1': unsized type (\"@2\").",	/* UndefSize */
	"Undefined struct/union.",			/* UndefStrun */
	"Tag \"@1\" undefined (declared line \
@6@3@7).",						/* UndefTag */
	"Operator '@1': underflow.",			/* Underflow */
	"Identifier \"@1\" not visible from here (\
marked /*~Undef*/ined).",				/* UndfndId */
	"Call of macro \"@1\" (on line @6@3@7): \
unfinished argument (for parameter #@2).",		/* UnFnshArgList */
	"Unclosed character constant.",			/* UnFnshCharCst */
	"Unfinished comment.",				/* UnFnshCmt */
	"Missing '@1'.",				/* UnFnshFileName */
	"Unclosed string constant.",			/* UnFnshStrCst */
	"Unknown d-pragma.",				/* UnknDPrag */
	"Unknown identifier (\"@1\").",			/* UnknId */
	"Unknown macro (\"@1\").",			/* UnknMacro */
	"Operator '@1': member \"@3\" is not part of \
struct/union@0 \"@2\".",				/* UnknMember */
	"Unknown option: \"@1\".",			/* UnknOption */
	"Unreachable statement.",			/* UnreachStmt */
	"Operator '@1': comparing expressions involving\
 subtraction of 'unsigned' (difference never negative \
!); rather add to other operand or, if correct, use \
/*~CastTo */ d-pragma.",				/* UnsigDiffNotNeg */
	"Operator '@1': unsigned value cannot be \
negative.",						/* UnsigNonNeg */
	"Unsuitable field type@0 (\"@1\").",		/* UnsuitFldType */
	"Enum constant \"@1\" not used (defined on \
line @6@3@7), or missing /*~NotUsed*/ d-pragma ?"	/*~ zif __index!=UnusedEnumCst "Misplaced 'UnusedEnumCst'" */,
	"Function \"@1\" not used@0 (declared/defined \
line @6@3@7).",						/* UnusedFct */
	"Identifier \"@1\" not used (declared/defined \
line @6@3@7).",						/* UnusedId */
	"Label \"@1\" not used (defined line \
@6@3@7).",						/* UnusedLabel */
	"Macro \"@1\" not used (defined line \
@6@3@7).",                                              /* UnusedMac */
	"Macro parameter \"@1\" not used@0 (defined \
line @6@3@7); if appropriate, use /*~NotUsed*/ \
d-pragma.",						/* UnusedMacPar */
	"Function \"@2\": (final) value of formal \
parameter \"@1\" not used, or missing /*~NotUsed*/ \
d-pragma?@0 (parameter defined line @6@3@7).",		/* UnusedPar */
	"Struct/union/enum tag \"@1\" not used \
(defined line @6@3@7).",				/* UnusedTag */
	"Type identifier \"@1\" not used (\
defined line @6@3@7).",					/* UnusedTypeId */
	"(Final) value of variable \"@1\" not used@5 \
(variable defined line @6@3@7).",			/* UnusedVar */
	"Previous value of variable \"@1\" not used@3.",/* UnusedVar1 */
	"Created type name @0(\"@1\") @0should begin \
with uppercase letter (e.g. Voltage).",			/* UpCaseTypName */
	" Use /*~Generic*/ and /*~SizeOfMemBlk*/ d-\
pragmas in function \"@4\" ?",				/* UseGeneAndSOMBlDP */
	" Use /*~Generic*/ d-pragma in function \"\
@4\" ?",						/* UseGenericDP */
	"/*~IndexType*/ d-pragma should be used in \
declaration of pointer \"@1\"@0 (on line @6@3@7); \
index/addend type: \"@5\", but \"@2\" expected by \
default.",						/* UseIndexTypForPtr */
	" (if its main effect is a side-effect, \
function can be declared /*~PseudoVoid*/)",		/* UsePsdVoidDP */
	" Use /*~ResultType*/ d-pragma in function \"\
@4\" ?",						/* UseResTypDP */
	" Use /*~ResultType*/ or /*~Generic*/ d-pragma \
in function \"@4\" ?",					/* UseResTypOrGeneDP */
	" Use /*~TypeCombination*/ d-pragma ?",		/* UseTypCmbnDP */
	"Meaningless attribute@0 (because no object is \
defined; this statement is only a struct/union/enum \
declaration).",						/* UslAttrib */
	"Useless cast@0 (expression type: \"@2\"; cast \
type: \"@3\"); if really wanted, use /*~OddCast*/ \
d-pragma.",						/* UslCast */
	"Useless /*~CastTo*/ d-pragma@0 (expression \
type: \"@3\"; target type: \"@2\").",			/* UslCastTo */
	"Useless @1 d-pragma.",				/* UslDPrag */
	"Useless qualifier for function@0 (type: \
\"@1\").",						/* UslFctQual */
	"Useless /*~Init*/ d-pragma for variable \
\"@1\".",						/* UslInitBU */
	"Useless /*~NoDefault*/ d-pragma@0 (switch \
tests all (distinct) enum constants; if that is how it \
should be, use /*~FullEnum*/ d-pragma to check it stays\
 so).",							/* UslNoDefault */
	"Variable \"@1\" useless (defined line \
@6@3@7).",						/* UslObj */
	"Useless/incoherent type specifier.",		/* UslTypSpe */
	"Function \"@1\": declaration@0 (line \
@6@3@7)@0 variadic and definition not variadic, or \
vice-versa.",						/* VariNotVari */
	"A 'void' specifier without modifier must be \
alone.",						/* VoidNotAlone */
	"Type \"void\" illegal (parameter \"@1\").",	/* VoidNotAlwd */
	"Warnings already disabled.",			/* WarnAlrdOff */
	"Warnings already enabled.",			/* WarnAlrdOn */
	"'while' expected.",				/* WhileExptd */
	"External variable/function \"@1\"@0 (declared \
at least in header file \"@4\", line @6)@0 defined in \
wrong compilation unit@0; should be defined in a \
compilation unit such that only one of the included \
header files declares it.",				/* WrngCUnit */
	"Switch type not 'enum', or not all enum \
constants of type used as 'case' values.",		/* WrngFullEnum */
	"External variable/function \"@1\" declared in \
wrong header file@0 (declared in file \"@4\" (line \
@6), which is neither the header file corresponding to \
the current compilation unit (\"@2\"), nor a (non-\
header) file included in that file.",			/* WrngHdrFile */
	"Wrong number (bad sign/base/suffix \
combination).",						/* WrngNb */
	"Wrong number (bad exponent).",			/* WrngNb1 */
	"Bad use of /*~SameValue*/ d-pragma: enum \
constant \"@1\" (@2) does not have the value of any \
previous constant of the type.",			/* WrngSameVal */
	"Wrong 'sizeof' argument?@0 (argument type: \
\"@2\"; should be type of object pointed by receiving \
pointer: \"@3\").",					/* WrngSizeof */
	"'zif' not false; message: \"@1\"."		/*~ zif __index!=ZifWarn "Misplaced 'ZifWarn'" */,

/* End DCMSG.ENG */
