From dce9d36edd285a82fea90a38f34e62683e022c34 Mon Sep 17 00:00:00 2001 From: Stephen Heumann Date: Tue, 1 Feb 2022 18:27:45 -0600 Subject: [PATCH] Comment out unused error messages and update docs about errors. --- Scanner.pas | 6 +++--- cc.notes | 20 ++++++++++++++++++++ 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/Scanner.pas b/Scanner.pas index ced48dc..9b9be0e 100644 --- a/Scanner.pas +++ b/Scanner.pas @@ -614,7 +614,7 @@ if list or (numErr <> 0) then begin 40: msg := @'illegal type cast'; 41: msg := @'illegal operand in a constant expression'; 42: msg := @'duplicate symbol'; - 43: msg := @'the function''s type must match the previous declaration'; + {43: msg := @'the function''s type must match the previous declaration';} 44: msg := @'too many initializers'; 45: msg := @'the number of array elements must be greater than 0'; 46: msg := @'you must initialize the individual elements of a struct, union, or non-char array'; @@ -670,7 +670,7 @@ if list or (numErr <> 0) then begin 96: msg := @'incorrect operand size'; 97: msg := @'operand syntax error'; 98: msg := @'invalid operand'; - 99: msg := @'comp data type is not supported by the 68881'; + {99: msg := @'comp data type is not supported by the 68881';} 100: msg := @'integer constants cannot use the f designator'; 101: msg := @'digits expected in the exponent'; {102: msg := @'extern variables cannot be initialized';} @@ -682,7 +682,7 @@ if list or (numErr <> 0) then begin 108: msg := @'unknown cc= option'; 109: msg := @'illegal math operation in a constant expression'; 110: msg := @'lint: unknown pragma'; - 111: msg := @'the & operator cannot be applied to arrays'; + {111: msg := @'the & operator cannot be applied to arrays';} 112: msg := @'segment buffer overflow'; 113: msg := @'all parameters must have a name'; 114: msg := @'a function call was made to a non-function'; diff --git a/cc.notes b/cc.notes index 7a5be4e..a160030 100644 --- a/cc.notes +++ b/cc.notes @@ -329,6 +329,26 @@ p. 406 va_end is now a macro, not a function. Also, the va_arg, va_end, and va_start macros will now work even if stack repair code is enabled. +p. 409 + +Several new error messages may now be produced. Some of these relate to malformed or otherwise illegal uses of new language features described below. There are also several new lint checks that may optionally be enabled, as described below. In addition, some violations of C language rules that were previously ignored will now be reported as errors. + +p. 410 + +"A character constant must contain exactly one character" is no longer reported as an error. As discussed below under "Multi-Character Character Constants," character constants may contain multiple characters. Character constants with zero characters give the error "invalid character constant." + +p. 414 + +"Extern variables cannot be initialized" is no longer reported as an error. Such declarations are actually legal, and are allowed as of ORCA/C 2.1.0. + +p. 419 + +"The & operator cannot be applied to arrays" is not reported as an error. Such operations are actually legal, giving a pointer to the array. + +p. 422 + +"Unions cannot have bit fields" is no longer reported as an error. Bit fields in unions are now allowed, consistent with the C standards. + p. 444,445 The control codes to turn the cursor on and off are no longer used in the .CONSOLE driver, which is what the current version of ORCA/C uses for all text output. In the .CONSOLE driver, the cursor is always off unless it is waiting for a character.