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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Compiler-specific Features<br />

4.5.5 __attribute__((noinline)) constant variable attribute<br />

The noinline variable attribute prevents the compiler from making any use of a constant<br />

data value for optimization purposes, without affecting its placement in the object. This<br />

feature can be used for patchable constants, that is, data that is later patched to a<br />

different value. It is an error to try to use such constants in a context where a constant<br />

value is required. For example, an array dimension.<br />

Example<br />

__attribute__((noinline)) const int m = 1;<br />

See also<br />

• #pragma inline, #pragma no_inline on page 4-66<br />

• __attribute__((noinline)) on page 4-34<br />

• __declspec(noinline) on page 4-27.<br />

4.5.6 __attribute__((packed))<br />

The packed variable attribute specifies that a variable or structure field has the smallest<br />

possible alignment. That is, one byte for a variable, and one bit for a field, unless you<br />

specify a larger value with the aligned attribute.<br />

Note<br />

This variable attribute is a GNU compiler extension that is supported by the <strong>ARM</strong><br />

compiler.<br />

Example<br />

struct<br />

{<br />

char a;<br />

int b __attribute__ ((packed));<br />

} Variable_Attributes_packed_0;<br />

See also<br />

• #pragma pack(n) on page 4-68<br />

• Packed structures on page 5-10<br />

• The __packed qualifier and unaligned data access on page 5-27 in the Compiler<br />

User Guide<br />

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

ID101213<br />

Non-Confidential,

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

Saved successfully!

Ooh no, something went wrong!