RealView ™ Compilation Tools for BREW Compilers and Libraries Guide

Version1.2


Table of Contents

Preface
About this book
Intended audience
Using this book
Typographical conventions
Further reading
Feedback
Feedback on RealView Compilation Tools for BREW
Feedback on this book
1. Introduction
1.1. About the compilers and libraries
1.2. The ARM compilers and libraries
1.2.1. The C and C++ compilers
1.2.2. The C and C++ libraries
1.3. Linking compiled objects
1.4. Related utilities
1.4.1. fromELF
2. C and C++ Compilers
2.1. About the C and C++ compilers
2.1.1. Compiler variants
2.1.2. Source language modes
2.1.3. Library support
2.2. File usage
2.2.1. Naming conventions
2.2.2. Included files
2.3. Command syntax
2.3.1. Invoking the compiler
2.3.2. Procedure Call Standardoptions
2.3.3. Setting the source language
2.3.4. Specifying search paths
2.3.5. Setting preprocessor options
2.3.6. Specifying output format
2.3.7. Specifying the target processor orarchitecture
2.3.8. Generating debuginformation
2.3.9. Controlling code generation
2.3.10. Controlling warning messages
2.3.11. Specifying additional checks
2.3.12. Controlling error messages
3. ARM Compiler Reference
3.1. Compiler-specific features
3.1.1. Pragmas
3.1.2. Function keywords
3.1.3. Variable declaration keywords
3.2. Language extensions
3.2.1. C language extensions
3.2.2. C and C++ language extensions
3.3. C and C++ implementation details
3.3.1. Character sets and identifiers
3.3.2. Basic data types
3.3.3. Operations on basic data types
3.3.4. Structures, unions, enumerations,and bitfields
3.4. Predefined macros
4. The C and C++ Libraries
4.1. About the runtime libraries
4.1.1. Build options and library variants
4.1.2. Library directory structure
4.1.3. Reentrancy and static data
4.2. ISO implementation definition
4.2.1. ANSI C library implementation definition
4.2.2. Standard C++ library implementationdefinition
4.3. C library extensions
4.3.1. atoll()
4.3.2. strtoll()
4.3.3. strtoull()
4.3.4. snprintf()
4.3.5. vsnprintf()
4.3.6. lldiv()
4.3.7. llabs()
4.3.8. alloca()
4.3.9. _fisatty()
4.3.10. __heapstats()
4.3.11. __heapvalid()
4.4. Library naming conventions
5. Floating-point Support
5.1. About floating-point support
5.2. The software floating-point library,fplib
5.2.1. Arithmetic on numbersin a particular format
5.2.2. Conversions between floats, doubles,and ints
5.2.3. Conversions between long longs andother number formats
5.2.4. Floating-point comparisons
5.3. Controlling the floating-point environment
5.3.1. The __ieee_status function
5.3.2. The __fp_status function
5.3.3. Microsoft compatibility functions
5.3.4. C9X-compatible functions
5.3.5. ARM extensions to the C9X interface
5.4. The math library, mathlib
5.4.1. Inverse hyperbolicfunctions (acosh, asinh, atanh)
5.4.2. Cube root (cbrt)
5.4.3. Copy sign (copysign)
5.4.4. Error functions (erf, erfc)
5.4.5. One less than exp(x )(expm1)
5.4.6. Determine if a number is finite (finite)
5.4.7. Gamma function (gamma, gamma_r)
5.4.8. Hypotenuse function (hypot)
5.4.9. Return the exponentof a number (ilogb)
5.4.10. Determine if a number is a NaN (isnan)
5.4.11. Bessel functions of the first kind(j0, j1, jn)
5.4.12. The logarithm of the gamma function(lgamma, lgamma_r)
5.4.13. Logarithm of one morethan x (log1p)
5.4.14. Return the exponent of a number (logb)
5.4.15. Return the next representable number(nextafter)
5.4.16. IEEE 754 remainder function (remainder)
5.4.17. IEEE round-to-integer operation (rint)
5.4.18. Scale a number by apower of two (scalb, scalbn)
5.4.19. Return the fraction part of a number(significand)
5.4.20. Bessel functions of the second kind(y0, y1, yn)
5.5. IEEE 754 arithmetic
5.5.1. Basic data types
5.5.2. Arithmetic and rounding
5.5.3. Exceptions
A. Via File Syntax
A.1. Overview of via files
A.1.1. Via file evaluation
A.2. Syntax
B. Standard C Implementation Definition
B.1. Implementation definition
B.1.1. Translation
B.1.2. Environment
B.1.3. Identifiers
B.1.4. Characters
B.1.5. Integers
B.1.6. Floating-point
B.1.7. Arrays and pointers
B.1.8. Registers
B.1.9. Structures, unions, enumerations,and bitfields
B.1.10. Qualifiers
B.1.11. Declarators
B.1.12. Statements
B.1.13. Preprocessing directives
B.1.14. Library functions
C. Standard C++ Implementation Definition
C.1. EC++ support
C.2. Integral conversion
C.3. Calling a pure virtual function
C.4. Minor features of language support
C.5. Major features of language support
C.6. Standard C++ library implementationdefinition
D. C and C++ Compiler Implementation Limits
D.1. C++ ISO/IEC standard limits
D.2. Internal limits
D.3. Limits for integral numbers
D.4. Limits for floating-point numbers
Glossary

Proprietary Notice

Words and logos marked with ® or ™ are registered trademarks or trademarksowned by ARM Limited. Other brands and names mentioned herein maybe the trademarks of their respective owners.

Neither the whole nor any part of the information containedin, or the product described in, this document may be adapted orreproduced in any material form except with the prior written permissionof the copyright holder.

The product described in this document is subject to continuousdevelopments and improvements. All particulars of the product andits use contained in this document are given by ARM in good faith.However, all warranties implied or expressed, including but notlimited to implied warranties of merchantability, or fitness forpurpose, are excluded.

This document is intended only to assist the reader in theuse of the product. ARM Limited shall not be liable for any lossor damage arising from the use of any information in this document,or any error or omission in such information, or any incorrect useof the product.

Revision History
Revision A August2001 Release 1.0
Revision B June2002 Release 1.2
Copyright © 2001, 2002 ARM Limited. All rights reserved. ARM DUI 0171B
Non-Confidential