13.07.2015 Views

TASKING VX-toolset for ARM User Guide

TASKING VX-toolset for ARM User Guide

TASKING VX-toolset for ARM User Guide

SHOW MORE
SHOW LESS

Create successful ePaper yourself

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

<strong>TASKING</strong> <strong>VX</strong>-<strong>toolset</strong> <strong>for</strong> <strong>ARM</strong> <strong>User</strong> <strong>Guide</strong>• Zero-length array types (specified by [0]) are supported. These are complete types of size zero.• C99-style flexible array members are accepted. In addition, the last field of a class type have a classtype whose last field is a flexible array member. In GNU C++ mode, flexible array members are treatedexactly like zero-length arrays, and can there<strong>for</strong>e appear anywhere in the class type.• The C99 _Pragma operator is supported.• The gcc built-in and facilities (__builtin_va_list, __builtin_va_arg, ...) areaccepted.• The sizeof operator is applicable to void and to function types and evaluates to the value one.• Variables can be redeclared with different top-level cv-qualifiers (the new qualification is merged intoexisting qualifiers). For example:extern int volatile x;int const x = 32;// x is now const volatile• The "assembler name" of variables and routines can be specified. For example:int counter __asm__("counter_v1") = 0;• Register variables can be mapped on specific registers using the asm keyword.register int i asm("eax");// Map "i" onto register eax.• The keyword inline is ignored (with a warning) on variable declarations and on block-extern functiondeclarations.• Excess aggregate initializers are ignored with a warning.struct S { int a, b; };struct S a1 = { 1, 2, 3 };// "3" ignored with a warning; no errorint a2[2] = { 7, 8, 9 };// "9" ignored with a warning; no error• Expressions of types void*, void const*, void volatile* and void const volatile* canbe dereferenced; the result is an lvalue.• The __restrict__ keyword is accepted. It is identical to the C99 restrict keyword, except <strong>for</strong> itsspelling.• Out-of-range floating-point values are accepted without a diagnostic. When IEEE floating-point is beingused, the "infinity" value is used.• Extended variadic macros are supported.48

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

Saved successfully!

Ooh no, something went wrong!