This option supports transition of programs written for other compilers.
The function for supporting transition of programs written for other compilers is disabled.
This option converts expanded functions of another compiler into expanded functions of the CC-RL. Operations come into compliance with the CC-RL specifications. |
The same operations as the compiler before transition are not guaranteed for unspecified, undefined, and implementation-defined items in the ANSI C language. |
Correct operation is not guaranteed when linking objects with different compiler as a parameter of this option. |
The parameters that can be specified are shown below. |
Operations when -convert_cc=ca78k0r is specified are shown below.
A keyword following #pragma is recognized when it consists of only uppercase characters or only lowercase characters. |
When the -ansi option is not specified, the callt keyword is replaced with __callt. |
||
The __sreg keyword is replaced with __saddr. When the -ansi option is not specified, the sreg keyword is replaced with __saddr. |
||
When the -ansi option is specified, the __boolean keyword is replaced with char. When the -ansi option is not specified, the __boolean, boolean, or bit keyword is replaced with _Bool. |
||
When the #pragma directive for the function qualified with the keyword is in the same file, the keyword is deleted. Otherwise, the keyword is replaced with the #pragma directive. |
||
When the #pragma directive for the function qualified with the keyword is in the same file, the keyword is deleted. Otherwise, the keyword is replaced with the #pragma directive. |
||
The keyword is deleted and #pragma address is newly created. When __sreg, sreg or __saddr is specified additionally, a compile error will occur. When multiple variables are specified in the same address, an error will occur. |
||
The operation rules for the far pointer conform to the The location for writing the __near or __far keyword in a function declaration or function pointer declaration conforms to the CC-RL specifications. When conforming to the CA78KOR specifications, a syntax error will occur. For the operation rules for the far pointer, see "Pointer operation" in "Specifying memory allocation area (__near /__far)". |
||
The #pragma directive is ignored and a warning message is output. Reference to SFR including bit access is converted into reference to a symbolic constant defined in iodefine.h. |
||
The specifications are replaced with the CC-RL specifications. The vect keyword is replaced with interrupt. When the interrupt request name is BRK_I, the interrupt or vect keyword is replaced with interrupt_brk. If the directive includes stack switching, the specification is deleted and a warning message is output. The interrupt request name is converted into the address defined in iodefine.h. Inclusion of iodefine.h must be specified manually. If the C source file has only a #pragma directive and no function declaration or function definition, no vector table is generated and no error will occur at linkage. Only a single interrupt request name can be set in an interrupt handler. |
||
The specifications are replaced with the CC-RL specifications. The interrupt request name is converted into the address defined in iodefine.h. Inclusion of iodefine.h must be specified manually. If the C source file has only a #pragma directive and no function declaration or function definition, no vector table is generated and no error will occur at linkage. |
||
The specifications are replaced with the CC-RL specifications. |
||
Call to function DI or EI is replaced with call to __DI or __EI, respectively. |
||
Call to function HALT, STOP, BRK, or NOP is replaced with call to __halt, __stop, __brk, or __nop, respectively. |
||
The compiler output section name is replaced with a section name conforming to the CC-RL specifications. If the directive includes an address specification, the specification is deleted and a warning message is output. If it cannot be replaced with a section name conforming to the CC-RL specifications, the #pragma directive is deleted and a warning message is output. For the section names that can be written in the CC-RL, see "Changing compiler output section name (#pragma section)". |
||
The #pragma directive is deleted and a warning message is output. |
||
Call to function rolb, rorb, rolw, or rorw is replaced with call to __rolb, __rorb, __rolw, or __rorw, respectively. |
||
Call to function mulu, muluw, or mulsw is replaced with call to __mulu, __mului, or __mulsi, respectively. |
||
Call to function divuw or moduw is replaced with call to __divui or __remui, respectively. |
||
Call to function macuw or macsw is replaced with call to __macui or __macsi, respectively. |
||
The #pragma directive is deleted and a warning message is output. |
||
The #pragma directive is deleted and a warning message is output. |
||
The #pragma directive is deleted and a warning message is output. |
||
If a line feed follows the #pragma directive, the #pragma directive is deleted and a warning message is output. If a function name following the #pragma directive is in the same line, the #pragma directive is handled as #pragma inline (with different function) in the CC-RL specifications. |
||
The macro is enabled (decimal constant 1) when small is specified with the -memory_model option or when S1 is specified with the -cpu option while the -memory_model option is not specified. |
||
The macro is enabled (decimal constant 1) when medium is specified with the -memory_model option or when other than S1 is specified with the -cpu option while the |
||
The macro is enabled (decimal constant 1) when the |
||
The macro is enabled (decimal constant 1) when S2 is specified with the -cpu option. |
||
The macro is enabled (decimal constant 1) when S3 is specified with the -cpu option. |
||
The macro is enabled (decimal constant 1) when S1 is specified with the -cpu option. |
||
Conforms to the CC-RL specifications. The location for writing the __near or __far keyword in a function declaration or function pointer declaration conforms to the CC-RL specifications. When conforming to the CA78KOR specifications, a syntax error will occur. |
||
A macro with the same name as a macro defined in the header file of the CC-RL conforms to the CC-RL specifications. Other macros are not supported. They are handled as user-defined macros. |
Operations when -convert_cc=nc30 is specified are shown below.
In stddef.h, the wchar_t type is declared as the unsigned short type using typedef. |
||
Handled as a binary constant without change. _ can be written between numeric values. If written in any other location, a syntax error will occur. |
||
When combining a character string constant and a wide character string constant, conforms to the CC-RL specifications. |
||
The keyword is replaced with __near or __far.
The operation rules for the far pointer conform to the For the operation rules for the far pointer, see "Pointer operation" in "Specifying memory allocation area (__near /__far)". |
||
The #pragma directive is deleted and a warning message is output. |
||
The compiler output section name is replaced with a section name conforming to the CC-RL specifications. If the invalid section type is used, the #pragma directive is deleted and a warning message is output. If it cannot be replaced with a section name conforming to the CC-RL specifications, a compile error will occur. |
||
The #pragma directive is deleted and a warning message is output. |
||
The #pragma directive is deleted and a warning message is output. |
||
Handled as #pragma address in the CC-RL specifications. If the numeric notation of the address differs from that in the CC-RL specifications, the #pragma directive is deleted and a warning message is output. |
||
The #pragma directive is deleted and a warning message is output. |
||
The #pragma directive is deleted and a warning message is output. |
||
Handled as #pragma interrupt in the CC-RL specifications. If written in a format that differs from that in the CC-RL specifications, the #pragma directive is deleted and a warning message is output. |
||
The #pragma directive is deleted and a warning message is output. |
||
The function specified by the #pragma directive is handled as the callt function and a warning message is output. |
||
The #pragma directive is deleted and a warning message is output. |
||
The #pragma directive is deleted and a warning message is output. |
||
The #pragma directive is deleted and a warning message is output. |
||
The #pragma directive is deleted and a warning message is output. |
||
The #pragma directive is deleted and a warning message is output |
||
The #pragma directive is deleted and a warning message is output. |
||
The #pragma directive is deleted and a warning message is output. |
||
The #pragma directive is deleted and a warning message is output. |
||
The #pragma directive is deleted and a warning message is output. |
||
The #pragma directive is deleted and a warning message is output. |
||
Handled as a normal function call. When an unsupported header file is included, a compile error will occur. |
||
Conforms to the CC-RL specifications. The location for writing the __near or __far keyword in a function declaration or function pointer declaration conforms to the CC-RL specifications. |
||
A macro with the same name as a macro defined in the header file of the CC-RL conforms to the CC-RL specifications. Other macros are not supported. They are handled as user-defined macros. |
Operations when -convert_cc=iar is specified are shown below.
In stddef.h, the wchar_t type is declared as the unsigned short type using typedef. |
||||
The operation rules for the far pointer conform to the For the operation rules for the far pointer, see "Pointer operation" in "Specifying memory allocation area (__near /__far)". |
||||
The keyword is replaced with __near or __far.
The operation rules for the far pointer conform to the For the operation rules for the far pointer, see "Pointer operation" in "Specifying memory allocation area (__near /__far)". |
||||
Replaced with "#pragma interrupt <function name> (vect = address)". The function name should be a function name in the function declaration subsequent to #pragma vector, and the __interrupt keyword is deleted. If there is no subsequent __interrupt function, the #pragma declaration is deleted. If multiple interrupt request names are specified for an interrupt handler, the first interrupt request name is set, and a warning message will be output for the second and subsequent interrupt request names and they will be ignored. |
||||
Replaced with "#pragma interrupt <function name> (bank={RB0 | RB1 | RB2 |RB3})". The function name should be a function name in the function declaration subsequent to #pragma bank, and the __interrupt keyword is deleted. The register bank after transition has "RB" added to the beginning of the number specified by #pragma bank. If there is no subsequent __interrupt function, the #pragma declaration is deleted. |
||||
The #pragma directive is deleted and a warning message is output. |
||||
The #pragma directive is deleted and a warning message is output. |
||||
The #pragma directive is deleted and a warning message is output. |
||||
The #pragma directive is deleted and a warning message is output. |
||||
The #pragma directive is deleted and a warning message is output. |
||||
The #pragma directive is deleted and a warning message is output. |
||||
The #pragma directive is deleted and a warning message is output. |
||||
Replaced with #pragma inline when forced is specified and with #pragma noinline when never is specified. Note that even when forced is specified, inline expansion is not always performed. The target function should be a function in the function declaration subsequent to #pragma inline. When other than a function declaration follows, an error will occur. When no function declaration follows, the #pragma directive is deleted and a warning message is output. Only #pragma inline in the IAR format can be used. #pragma inline in the CC-RL format leads to a compile error. |
||||
The #pragma directive is deleted and a warning message is output. |
||||
Replaced with #pragma address when an absolute address is specified. The variable name used in #pragma address should be a variable name in the variable declaration subsequent to #pragma location. When no variable declaration follows, the #pragma directive is deleted and a warning message is output. Segment names are not supported. They will lead to a syntax error. |
||||
The #pragma directive is deleted and a warning message is output. |
||||
The #pragma directive is deleted and a warning message is output. |
||||
The #pragma directive is deleted and a warning message is output. |
||||
The #pragma directive is deleted and a warning message is output. |
||||
The #pragma directive is deleted and a warning message is output. |
||||
The #pragma directive is deleted and a warning message is output. |
||||
The #pragma directive is deleted and a warning message is output. |
||||
Handled as #pragma section in the CC-RL. When written in a format different from that in the CC-RL specifications, the #pragma directive is deleted and a warning message is output. |
||||
The #pragma directive is deleted and a warning message is output. |
||||
The #pragma directive is deleted and a warning message is output. |
||||
The #pragma directive is deleted and a warning message is output. |
||||
The #pragma directive is deleted and a warning message is output. |
||||
The #pragma directive is deleted and a warning message is output. |
||||
Becomes one of the following values according to the specification of the -cpu option. |
||||
Becomes one of the following values according to the specification of the -memory_model option or -cpu option.
|
||||
The value becomes __DATA_MODEL_NEAR__ regardless of the specification of the -cpu option. |
||||
Replaced with the following function names. The location for writing the __near or __far keyword in a function declaration or function pointer declaration conforms to the CC-RL specifications. |
||||
Conforms to the CC-RL specifications. The location for writing the __near or __far keyword for a function or function pointer in its declaration conforms to the CC-RL specifications. |
||||
Handled as a normal function call. When an unsupported header file is included, a compile error will occur. |
||||
A macro with the same name as a macro defined in the header file of the CC-RL conforms to the CC-RL specifications. Other macros are not supported. They are handled as user-defined macros. |