Update information for CubeSuite
Build Tool for 78K0
Change form V1.10 to V1.11
Restrictions eliminated (Bild Tool)
The restriction described below has been eliminated.- No. 1 [Set Variables Relocation] tab error.(Restrictions of the packaging)
-
[Description]
On the [Set Variables Relocation] tab, if "Yes" is selected for [Output variables information file] or [Output ROM/RAM usage], the following error is displayed: Launching program xxx (C:\Program Files\NEC Electronics CubeSuite\CubeSuite\ CA78K0\V1.10\Bin\vf78k0.exe) failed. (E0200002)
Change form V1.00 to V1.10
Restrictions eliminated (Bild Tool)
The restriction described below has been eliminated.- No. 12 Linking a variable that has the same name to a variable declared as extern in a block might be invalid.
-
[Description]
Linking a variable that has the same name to a variable declared as extern in a block is invalid in any of the following cases: (1) If a variable declared as extern in a block and a variable declared as static outside that block or the subsequent blocks have the same name No error occurs and linking is not performed, so, if this variable is referenced, invalid code is output.
(2)If a variable declared as extern in a block and a variable not declared as static outside that block or the subsequent blocks have the same name Linking is not performed and invalid code is output.
(3) If a variable declared as extern in a block and a variable not declared as extern outside the block before the extern variable have the same name, and an automatic variable that has the same name is declared in the block containing the extern variable The variable outside the block and the variable declared as extern in the block are not linked,and invalid code is output.
(4)If a variable declared as extern in a block and a variable declared as extern in another block have the same name Linking is not performed, and invalid code is output.
- No. 14 A multidimensional array that has an undefined size might not work properly.
-
[Description]
A multidimensional array that has an undefined size might not work properly.
Example 1:
char c[][3]={{1},2,3,4,5}; /* Invalid code */
Example 2:
char c[][2][3]={"ab","cd","ef"}; /* Error (E0756) */
- No. 24 W0503 is output if the array name of an automatic variable is referenced.
-
[Description]
W0503 is output if the array name of an uninitialized automatic variable is referenced.
W0503 Possible use of ‘variable-name’ before definition
- No. 41 When initializing an array whose size is not defined, if elements in the initializer braces are enclosed inconsistently, an area of invalid size is allocated.
-
[Description]
When initializing an array whose size is not defined, if elements in the initializer braces are enclosed inconsistently, an area of invalid size is allocated
Example:
struct t {
int a;
int b;
} x[ ] = {1, 2, {3, 4}};
- No. 45 If a function name or a function pointer is specified as the second and third operands of a conditional operation, an error is output, and then the function is called.
-
[Description]
If a function name or a function pointer is specified as the second and third operands of a conditional operation, the E0307 error is output, and then the function is called.
- No. 65 Invalid code might be output when referencing 1-byte data pointed to by a pointer to which ++ or -- has been suffixed.
-
[Description]
Invalid code might be output if, immediately after referencing 1 byte to which a pointer points, the
increment or decrement operator is suffixed to the pointer, and the memory to which the pointer points is referenced again.
- No. 66 Invalid code is output if the last element of an initializer list for a char, signed char, or unsigned char array is a character string and one or more constants or character constants are placed before the character string.
-
[Description]
Invalid code might be output if, immediately after referencing 1 byte to which a pointer points, the
increment or decrement operator is suffixed to the pointer, and the memory to which the pointer points is referenced again.
- No. 67 Invalid code is output if referencing a pointer that has an offset obtained by subtracting one pointer from another.
-
[Description]
Invalid code is output if all the following conditions are satisfied:
(1) A pointer to which an offset is added is referenced.
(2) The offset mentioned in (1) is the result of subtracting one pointer from another.
(3) A pointer mentioned in (2) has an offset.
- No. 68 Invalid code is output if the -qc option has not been specified (sign extension is specified to be int type).
-
[Description]
Invalid code is output if all the following conditions are satisfied:
(1) The -qc option is not specified (sign extension is specified to be the int type)
(2) One of the following combinations of operands (regardless of whether they are right or left operands) is multiplied:
- An sreg unsigned char to which a constant from 0 to 255 is assigned and a constant from 0 to 255
- More than one sreg unsigned char to which a constant from 0 to 255 is assigned
- An sreg unsigned char to which a constant from 0 to 255 is assigned and an sreg char or signed char to which a constant from 0 to 127 is assigned
(3) The multiplication result is 256 or larger (which cannot be expressed as an unsigned char).
(4) The operation result is handled as an int.
- No. 69 Invalid code is output as the result of the BCD operation function adbcdw or sbbcdw
-
[Description]
Invalid code is output if one of the following conditions is satisfied while the BCD operation function adbcdw or sbbcdw is used:
(1) The return value of adbcdw or sbbcdw is assigned to an array or pointer.
(2) Another operation is executed before assigning the return value of adbcdw or sbbcdw to a temporary variable.
(3) A temporary variable to which the return value of adbcdw or sbbcdw has been assigned is used as is for other operations such as a conditional expression.
- No. 70 An error occurs if the -ng option is specified and a branch instruction is used in a function that includes the asm statement.
-
[Description]
An error occurs if the -ng option is specified and a branch instruction is used in a function that includes the asm statement.
- No. 71 The line number is not output for a statement that immediately follows a nested if statement and is outside that statement’s conditional block.
-
[Description]
If all of the conditions below are satisfied, the line number might not be output for a statement that
immediately follows a nested if statement and is outside that statement’s conditional block. However, the output code is correct. A break point cannot be specified for a statement for which the line number is not output.
(1) There are at least three levels of nested if statements.
(2) An else statement in a higher nested level has a larger line number than a nested if statement.
(3) At least one statement immediately follows an if statement in a higher nested level.
- No. 72 Invalid code is output when a value is assigned to a long variable in an interrupt function.
-
[Description]
When the assignment of a value to a long variable is specified in an interrupt function, the -ql3 option or higher is specified, the compiler generates code that calls the runtime library function @@dels03 or @@hlls03, the BC register is not used for other processing in the interrupt function, and no function is called from the interrupt function, the BC register contents are corrupted.
- No. 73 Bank function calling code might not be output.
-
[Description]
If either of the following conditions is satisfied, bank function calling code might not be output for functions allocated to the bank area by using the function information file:
In addition, C0101: Internal error might be output if condition (3) is satisfied. If this message is not output, there is no problem and the program code is not affected.
(1) A function is called by type-casting it to a function pointer.
(2) A function declared using a typedef type is called.
(3) The -mf option is specified, and a function is called using a function pointer.
- No. 74 Invalid code might be output if using a 1-byte parameter or auto variable for a norec function.
-
[Description]
Invalid code might be output if using a 1-byte parameter or auto variable for a norec function, and a long variable is dereferenced within the function.
Change of items output to cross reference list files
To support the features of the analysis tool included in CubeSuite Ver. 1.20, the items output to the cross reference list file have been changed.
Change of items output to cross reference list files
(1) Addition optimization option -qx4
(2) Addition optimization option –qx5 for using libraries and handling common codes as a subroutine
(3) Addition optimization option –qg for prioritizing the debug
Addition of optimization function and changes in output code
The fllowing optimization functions have been added.
(1)Automatic extraction of parts of code into subroutines
(2)Indirect reference to bit fields
Addition of common object specification option
Common object specification option has been added.
Addition of the variables information file specification option and the variables information file output specification option
Option -ma(variable information files) has been added.
In addition, the related options -vo and -vs have also been added
Output of memory information
Option -vx, which enable outputting of the amount of ROM and RAM used, has been added to the linker options.
Addition of User option byte specification option
Option -gb(user option byte) has been added.
And OPT_BYTE in relocation attribute of the CSEG directive indicates has been added.
For Extended function register(EFR)
It corresponded the device with extended function register.