HP C B.11.11.16 Release Notes

HP C/ANSI C Release Notes
New Features in Version B.11.11.08
Chapter 116
Non-Constant Initializers for Aggregates
Now it is possible to specify non-constant expressions as initializers in the initialization lists
of aggregates, such as arrays and structures. The expressions can be any valid C expressions,
such as arithmetic expressions involving variables, and even function calls.
Earlier it was only possible to specify constant expressions as initializers of aggregates.
Example usage:
int i, j;
/* ... */
int iarr[] = { i, j, i + j, i - j };
—include <file> Option
This option causes the compiler to insert <file> at the beginning of a set of translation units,
before processing the translation units.
Effectively, it executes implicit #include "<file>" directives for each -include <file>
option on the command line, before the very first line of each of the source files specified on the
command line. This is a GCC compatibility feature.
Example Usage:
$ cc [cc opts] [-include <file>]* [cc opts] <source file(s)>
where, [-include <file>]* stands for 0 or more -include <file> options.
All the -include options are processed in the order in which they are written.
+O[no]clone Option
This option allows the user to turn on[off] the cloning facility of the optimizer. Cloning is on by
default. It is mainly provided for users who may see a lot of cloning adversely affecting the
performance of their code.
If inlining is turned off, cloning is turned off by default. You cannot specify +Onoinline
+Oclone.
+Olit=[all|const|none] Option
The +Olit option specifies the type of data items placed in the read-only data section. It can
take the values all, const and none.
+Olit=all places all string variables and all const-qualified variables that do not require
load-time or run-time initialization in the read-only data section.