|
H8S, H8/300 Series C/C++ Compiler Package
Ver.6.0.01
Renesas C/C++ Compiler Package for H8S, H8/300 series
was updated from Ver.6.0.00 to Ver.6.0.01.
| 1. High-performance Embedded Workshop (Only Windows®version) |
1.1 Navigation function
Category "C++ Classes" of the navigation function is unchecked
as a default.
1.2 Problem fixed at High-performance Embedded Workshop termination
We have fixed the problem that the High-performance Embedded Workshop did not quit normally.
1.3 Confirmation Message for Re-reading the File
The problem of the confirmation message for re-reading the
file not being displayed when a file currently open in the editor
window is edited by the external editor, has been corrected.
(This problem only occurs with Ver. 3.0.02)
1.4 Problem with the Search Function from the Memory Menu
The problem of an empty [Memory] window being displayed when
carrying out a memory search selected from [Memory->Search...]
in the menu bar, has been corrected.
1.5 Symbol Load Command
The problem with the Symbol Load command not operating has
been corrected.
1.6 Problem of Disappearance of Project Types to Build the
Software
The problem of disappearance of project types to build
the software when the emulator was installed to the same folder
where SHC Ver 8.0.00/8.0.01 or H8C Ver 6.0.00 compiler package
had been installed, has been corrected.
1.7 Illegal Command
in the TCL Procedure
The problem of the command not operating
properly after specification of the prefix (H', D', O', or
B') for a parameter in the TCL procedure(defined by the proc
command), has been corrected.
[Example]
proc mem_read {} {
md H'FFEF80 H'32 LONG
}
2.1 RENESAS TECHNICAL UPDATE TN-CSX-065A/EA
The following problem was fixed.
a) Incorrect object by division of an unsigned variable by a constant
b) Incorrect structure with the initial value
c) Incorrect bit field setting
d) Incorrect value setting with using a 3-bytes structure
e) Incorrect elimination of a function call
f) Incorrect result of operation on a two-dimensional array address
g) Incorrect setting and reference of bit field
h) Incorrect replacement of a loop control variable
i) Incorrect constant propagation
j) Incorrect unification of string data
k) Cpuexpand option was not enabled
l) Incorrect substitution with using 4 or less byte structure
2.2 Internal error
An internal error under the following conditions was fixed.
a) The loop had an fixed reference to an array and its index value was a constant that exceeded the range of the int (short) type (C4098).
b) An expression that included an operation of a variable and a constant was described in the index of an array, which was used as the condition for a conditional statement (C4098).
c) At initialization of a union of a local variable, the first member of the union was an array or a structure (C4774).
d) When there were consecutive loops and the first statement of the first loop and the nitialization condition of the second loop were the same, the initial value assignment in the second loop was illegally integrated (C4098).
e) 500 or more variables, with or without specification of abs8/abs16, were declared (C4712).
f) When overflow occurs in the 1-byte subtraction of a constant(C4722).
2.3 Comparison from an operation with an overflow
The problem mentioned as "Comparison from an operation with an overflow" in notes of the H8S, H8/300 series C/C++ compiler ver.6.0.00 was fixed.
2.4 Change specification of cpuexpand option
When the cpuexpand option is specified and the expression is one of followings, the H8SX CPU does not apply this expression for expanded interpretation, even though the other CPU applies for.
a) signed long = signed int << constant
b) signed long = unsigned int << constant
c) unsigned long = signed int << constant
d) unsigned long = unsigned int << constant
e) signed int = ( signed int << constant) / signed int
f) signed int = (unsigned int << constant) / signed int
g) signed int = (unsigned int << constant) / unsigned int
h) unsigned int = ( signed int << constant) / signed int
i) unsigned int = (unsigned int << constant) / signed int
j) unsigned int = (unsigned int << constant) / unsigned int
3.1 Incorrect address column value
The following problem was fixed.
When "locate" was described in the .SECTION directive the debuggingUpgrademight be incorrect.
[Conditions]
This problem might occur when all of the following conditions were fulfilled.
a) The optimize option was specified.
b) Described "locate" in the .SECTION directive in a source file.
| 4. Optimizing linkage editor |
4.1 Unnecessary error generated when sections are overlaid
Fixed the problem that outputs an unnecessary error message (L2022) appears when the following conditions are satisfied at the same time.
[Conditions]
a) Uninitialized data sections are overlaid in the start option.
b) The form=binary (or hexadecimal or stype) option is specified.
4.2 Illegal object due to specification of indirect addressing mode optimization
The following problem has been fixed.
When indirect addressing mode optimization is specified, the address indicated by a symbol may be 0x00000000 incorrectly.
[Conditions]
The problem may occur when all of the following conditions are satisfied.
a) Indirect addressing mode optimization (optimize=function_call) is valid.
b) A number of object files link to a relocatable file.
c) Object files of b) are comprised of those with or without goptimize option.
d) The relocatable file of b) was input.
e) Other files (relocatable file, object file, or libaray file) are input along with the relocatable file of b).
4.3 Fixed internal error
a) Fixed is the problem in which an internal error (L8996) may occur when optimization regarding shortening of the addressing mode has been specified.
b) Fixed is the problem in which an internal error (L4001) may occur when optimization regarding unifying of same codes has been specified.
|