# About the ARM C compiler

The ARM C compiler is a mature, industrial-strength compiler, based on Codemist Limited's multi-target, multi-language compiler suite (also known as the NorCroft C compiler). Derived compilers are used by, or distributed by, amongst others:

- Advanced RISC Machines (for the ARM processor);
- Acorn Computers (for their ARM-based personal workstations);
- INMOS (for the Transputer);
- Hitachi (internal use on IBM 370 compatibles);
- Perihelion Software (for their Helios portable operating system).

By default, the ARM C Compiler compiles ANSI C as defined by American National Standard for Information Systems - Programming Language C, X3J11/90-013, Feb 14, 1990.

The compiler also has a pcc mode, which accepts the dialect of C used by Berkeley Unix. In this mode, the compiler has been used to build a complete ARM-based BSD Unix system (the RISCiX system, marketed by Acorn Computers Limited, which has also achieved X/Open branding).

Pcc mode is selectable from the compiler's command line.

In its ANSI mode, the ARM C compiler has been tested against release 2.00 of the Plum-Hall C Validation Suite (CVS), which is widely considered to be the toughest C test suite available, and has been adopted by the British Standards Institute for C compiler Validation in Europe. In the language conformance sections of the CVS, it fails in only two trivial ways, both failures to produce required diagnostics:

- An empty initialiser for an aggregate of complete type is not diagnosed, e.g.

  ``

      int x[3] = {};

- Signed integer constant overflow is not diagnosed, but merely warned of, e.g. `

      case INT_MAX+1: ...

  `

Wherever possible, the ARM C compiler adopts widely used command-line options which should be familiar to users of both Unix and DOS.