2.5.1 Compile Options

The types and explanations for options of the compile phase are shown below.

Classification

Option

Description

Source Options

-lang

Specifies the language to assume in compiling the source file.

-include

Specifies the names of folders that hold include files.

-preinclude

Specifies the names of files to be included at the head of each compiling unit.

-define

Specifies macro definitions.

-undefine

Specifies disabling of predefined macros.

-message

Information-level messages are output.

-nomessage

Specifies the numbers of information-level messages to be disabled.

-change_message

Changes the levels of compiler output messages.

-no_warning [V2.08.00 or later]

Disables the output of warnings and information-level messages.

-file_inline_path

Specifies the names of folders that hold files for inter-file inline expansion.

-comment

Selects permission for comment (/* */) nesting.

-check

Checks compatibility with an existing program.

-misra2004 [Professional Edition only]

Checks the source code against the MISRA-C: 2004 rules.

-misra2012 [Professional Edition only] [V2.04.00 or later]

Checks the source code against the MISRA-C: 2012 rules.

-ignore_files_misra [Professional Edition only]

Selects files that will not be checked against the MISRAC: 2004 rules or MISRA-C: 2012 rules.

-check_language_extension [Professional Edition only]

Enables complete checking against the MISRA-C: 2004 rules or MISRA-C: 2012 rules for parts of the code where this would otherwise be suppressed due to use of an extended specification.

Object Options

-output

Selects the output file type.

-noline

Selects the non-output of #line in preprocessor expansion.

-debug

Debugging information is output to the object files.

-nodebug

Debugging information is not output to the object files.

-section

Changes section names to be changed.

-stuff

Variables are allocated to sections that match their alignment values.

-nostuff

Alignment values of variables are ignored in allocating the variables to sections.

-instalign4

Instructions at branch destinations are aligned with 4-byte boundaries.

-instalign8

Instructions at branch destinations are aligned with 8-byte boundaries.

-noinstalign

Instructions at branch destinations have no specific alignment.

-nouse_div_inst

Generates code in which no DIV, DIVU, or FDIV instructions are used for division and modular division.

-create_unfilled_data

[To be supported by V2.03 and later versions]

Makes spaces created by .OFFSET unfilled.

-stack_protector/-stack_protector_all [Professional Edition only] [V2.04.00 or later]

This option generates a code for detection of stack smashing.

-avoid_cross_boundary_prefetch [V2.07.00 or later]

Prevents the reading of data across 4-byte boundaries in prefetching for string manipulation instructions.

-insert_nop_with_label [V2.08.00 or later]

This option inserts a local label and nop instruction.

-control_flow_integrity [Professional Edition only] [V2.08.00 or later]

This option generates code for the detection of illegal indirect function calls.

List Options

-listfile

A source list file is output.

-nolistfile

A source list file is not output.

-show

Specifies the contents of the source list file.

Optimize Options

(1/2)

-optimize

Selects the optimization level.

-goptimize

Outputs additional information for inter-module optimization.

-speed

Optimization is with emphasis on execution performance.

-size

Optimization is with emphasis on code size.

-loop

Specifies a maximum number for loop-expansion.

-inline

Inline expansion is processed automatically.

-noinline

Inline expansion is not processed automatically.

-file_inline

Specifies a file for inter-file inline expansion.

-case

Selects the method of expansion for switch statements.

-volatile

External variables are handled as if they are all volatile qualified.

-novolatile

External variables are handled as if none of them have been declared volatile.

-const_copy

Enables constant propagation of const qualified external variables.

-noconst_copy

Disables constant propagation of const qualified external variables.

-const_div

Divisions and remainders of integer constants are converted into instruction sequences.

-noconst_div

Divisions and remainders of integer constants are not converted into instruction sequences.

-library

Selects the method for the execution of library functions.

-scope

Selects division of the ranges for optimization into multiple sections before compilation.

-noscope

Selects non-division of the ranges for optimization into multiple sections before compilation.

-schedule

Pipeline processing is considered in scheduling instructions.

-noschedule

Scheduling is not applied to instruction execution.

-map

All access to external variables is optimized.

-smap

Access to external variables is optimized as defined in the file to be compiled.

-nomap

Access to external variables is not optimized.

-approxdiv

Division of floating-point constants is converted into multiplication.

-enable_register

Variables with the register storage class specification are given preference for allocation to registers.

Optimize Options

(2/2)

-simple_float_conv

Part of the type conversion processing between the floating-point type and the integer type is omitted.

-fpu

Floating-point calculation instructions are used.

-nofpu

Floating-point calculation instructions are not used.

-alias

Optimization is performed in consideration of the types of data indicated by pointers.

-float_order

The orders of operations in floating-point expressions are modified for optimization.

-ip_optimize

Selects global optimization.

-merge_files

The results of compiling multiple source files are output to a single object file.

-whole_program

Makes the compiler perform optimization on the assumption that all source files have been input.

Microcontroller Options

-isa

Selects the instruction-set architecture.

-cpu

Selects the microcontroller type.

-endian

Selects the endian type.

-round

Selects the rounding method for floating-point constant operations.

-denormalize

Selects the operation when denormalized numbers are used to describe floating-point constants.

-dbl_size

Selects the precision of the double and long double types.

-int_to_short

Replaces the int type with the short type and the unsigned int type with the unsigned short type.

-signed_char

Variables of the char type are handled as signed char.

-unsigned_char

Variables of the char type are handled as unsigned char.

-signed_bitfield

The sign bits of bit-fields are taken as signed.

-unsigned_bitfield

The sign bits of bit-fields are taken as unsigned.

-auto_enum

Selects whether or not the sizes for enumerated types are automatically selected.

-bit_order

Selects the order of bit-field members.

-pack

Specifies one as the boundary alignment value for structure members and class members.

-unpack

Aligns structure members and class members to the alignment boundaries for the given data types.

-exception

Enables the exception handling function.

-noexception

Disables the exception handling function.

-rtti

Selects enabling or disabling of C++ runtime type information (dynamic_cast or typeid).

-fint_register

Selects a general register for exclusive use with the fast interrupt function.

Microcontroller Options

-branch

Selects the maximum size or no maximum size for branches.

-base

Specifies the base registers for ROM and RAM.

-patch

Selects avoidance or non-avoidance of a problem specific to the CPU type.

-pic

Enables the PIC function.

-pid

Enables the PID function.

-nouse_pid_register

The PID register is not used in code generation.

-save_acc

The contents of ACC are saved and restored in interrupt functions.

Assemble and Linkage Options

-asmcmd

Specifies a subcommand file for asrx options.

-lnkcmd

Specifies a subcommand file for rlink options.

-asmopt

Specifies asrx options.

-lnkopt

Specifies rlink options.

Other Options

-logo

Selects the output of copyright information.

-nologo

Selects the non-output of copyright information.

-euc

The character codes of input programs are interpreted as EUC codes.

-sjis

The character codes of input programs are interpreted as SJIS codes.

-latin1

The character codes of input programs are interpreted as ISO-Latin1 codes.

-utf8

The character codes of input programs are interpreted as UTF-8 codes.

-big5

The character codes of input programs are interpreted as BIG5 codes.

-gb2312

The character codes of input programs are interpreted as GB2312 codes.

-outcode

Selects the character coding for an output assembly-language file.

-subcommand

Specifies a file for including command options.