04.01.2015 Views

RealView Compilation Tools - ARM Information Center

RealView Compilation Tools - ARM Information Center

RealView Compilation Tools - ARM Information Center

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Compiler Command-line Options<br />

Usage<br />

You can perform multiple compilations using the same feedback file. The compiler<br />

places each unused function identified in the feedback file into its own ELF section in<br />

the corresponding object file.<br />

The feedback file contains information about a previous build. Because of this:<br />

• The feedback file might be out of date. That is, a function previously identified as<br />

being unused might be used in the current source code. The linker removes the<br />

code for an unused function only if it is not used in the current source code.<br />

Note<br />

— For this reason, eliminating unused functions using linker feedback is a safe<br />

optimization, but there might be a small impact on code size.<br />

— The usage requirements for reducing compilation required for interworking<br />

are more strict than for eliminating unused functions. If you are reducing<br />

interworking compilation, it is critical that you keep your feedback file up<br />

to date with the source code that it was generated from.<br />

• You have to do a full compile and link at least twice to get the maximum benefit<br />

from linker feedback. However, a single compile and link using feedback from a<br />

previous build is usually sufficient.<br />

See also<br />

• --split_sections on page 2-118<br />

• --feedback_type=type on page 2-39 in the Linker Reference Guide<br />

• Using linker feedback on page 2-26 in the Compiler User Guide.<br />

2.1.70 --force_new_nothrow, --no_force_new_nothrow<br />

This option controls the behavior of new expressions in C++.<br />

The C++ standard states that only a no throw operator new declared with throw() is<br />

permitted to return NULL on failure. Any other operator new is never permitted to return<br />

NULL and the default operator new throws an exception on failure.<br />

If you use --force_new_nothrow, the compiler treats expressions such as new<br />

T(...args...), that use the global ::operator new or ::operator new[], as if they are new<br />

(std::nothrow) T(...args...).<br />

--force_new_nothrow also causes any class-specific operator new or any overloaded<br />

global operator new to be treated as no throw.<br />

<strong>ARM</strong> DUI 0348C Copyright © 2007-2010 <strong>ARM</strong>. All rights reserved. 2-57<br />

ID101213<br />

Non-Confidential,

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!