5. POINTS FOR CAUTION

If the C source program falls under any of the following items, it may not be possible for the CC-RL to correctly compile the converted C source program.

Table 5.1

Points for caution

No.

Item

CcnvCA78K0 Operation

CC-RL Operation in Response to Conversion Result

Reference

Destination

1

When there is nested comment text

Conversion may not be performed successfully.

The range of the comment is invalid.

Macro Names

2

When a keyword cannot be detected because a ## operator is being used

No message is output and conversion is not performed.

Error E0520065 or another error will occur.

CONVERSION SPECIFICATIONS

3

When '?' is included in the section name for #pragma section

No message is output and conversion is not performed.

Error E0520014 will occur.

#pragma section

4

When a section name that does not exist in the CC-RL is specified for the section name of #pragma section

No message is output and conversion is not performed.

Warning W0523037 is output and the #pragma directive is ignored. There is a possibility that section allocation will fail and operation is not as expected.

#pragma section

5

When \n or \t is used in a string in __asm("string")

A control character is output without any change.

Error E0550249 will occur.

ASM Statements

6

When "/*" is included in an assembly-language comment (description after ";") within the range of #asm-#endasm

The assembly-language comment is output without any change.

A C-language comment ("/*") is given priority over an assembly-language comment (";") and the range of the comment is invalid.

ASM Statements

7

When a label is included in __asm( ) or the assembly-language code within #asm-#endasm

A message is output.

Error E0550213 will occur.

ASM Statements

[Restrictions] of #pragma inline_asm in the CC-RL user's manual

8

When a 78K0-specific instruction or an instruction whose operation differs from that of RL78 is used in __asm() or the assembly-language code of #asm-#endasm

No message is output and instructions are output without change to the #pragma inline_asm function.

When a 78K0-specific instruction is used, an assembly error will occur.

When an instruction whose operation differs from that of RL78 is used, operation may not be as expected.

ASM Statements

9

When there is #pragma interrupt and a description of the __interrupt keyword for the same function in a file

They are both converted into #pragma interrupt.

There will be duplicate #pragma directives and error E0523006 will occur.

Interrupt Handler

10

When parameters in function declarations __interrupt, __interrupt_brk, and __rtos_interrupt are omitted

A #pragma directive is output and function declarations are output without change.

Error E0523008 will occur since there is no void type specification.

Interrupt Handler

Interrupt Handler for RTOS

11

When a macro or typedef is used in code for obtaining a type name, function name, variable name, etc.

A message is output and the program is output without being converted.

Error E0520020, E0520065, or another error will occur.

Interrupt Handler

Interrupt Handler for RTOS

Absolute Address Allocation Specification

12

When there is #pragma rtos_interrupt and a description of the __rtos_interrupt keyword for the same function in a file

They are both converted into #pragma rtos_interrupt.

There will be duplicate #pragma directives and error E0523006 will occur.

Interrupt Handler for RTOS

13

When the same address is specified for different variables in __directmap

No message is output.

Error E0541854 will occur.

Absolute Address Allocation Specification

[Restrictions] of #pragma address in the CC-RL user's manual