HP aC++/HP C A.06.20 Release Notes
+O[no]loop_unroll_jam (Default Change)
At optimization levels 3 and 4, the default for this option has changed from
+Onoloop_unroll_jam to +Oloop_unroll_jam, which allows automatic loop
unroll-and-jam.
+Olit=all (Default Change for HP C)
The default in C mode of the compiler is now +Olit=all, placing string constants in
read-only memory by default. This change over previous versions of the compiler
(which defaulted to +Olit=const) improves performance and is in keeping with
similar changes in the industry. Note that this may cause a runtime signal 11 if an
attempt is made to modify string literals.
To force the string to be read/write, you can change the source as follows:
static CHAR forall_00[] = "FORALL.CHARTYPE ";
static CHAR forall_01[] = "FORALL.COMPLEXTYPE ";
...
static CHAR *foralltemptypename[LASTINTRINTYPE-FIRSTINTRINTYPE+1] = {
forall_00, forall_01, ...
Using an array will force the string to be read/write.
Other simpler cases can be handled as:
changing to array will work in most cases:
char *temp = "abcd";
char temp[] = "abcd";
If temp is used as a pointer:
static char temp_arr[] = "abcd";
char *temp = temp_arr;
+macro_debug= (New)
The +macro_debug option controls the emission of macro debug information into the
object file:
+macro_debug={ref|all|none}
Set +macro_debug to one of the following required values:
ref
Emits debug information only for referenced macros. This is the default for
-g, -g1,or -g0.
all
Emits debug information for all macros. This option can cause a significant
increase in object file size.
none
Does not emit any macro debug information.
One of the -g options (-g, -g0, or -g1) must be used to enable the
+macro_debugoption.
New Features in Version A.06.15 21