HP aC++/HP ANSI C A.06.27 Release Notes
#pragma omp taskwait (New)
#pragma omp taskwait new-line
The OpenMP 3.0 directive #pragma omp taskwait specifies a wait on the completion of child
tasks generated since the beginning of the current task.
Because the taskwait construct does not have a C language statement as part of its syntax, there
are some restrictions on its placement within a program. The taskwait directive may be placed
only at a point where a base language statement is allowed. The taskwait directive may not be
used in place of the statement following an if, while, do, switch, or label.
Performance enhancements for +O1 (Changed)
Various performance improvements have been made for +O1.
One specific improvement is that +Odataprefetch=direct is now supported at +O1, and is
the default at +O1. This may help improve performance for code using loops.
Non-template static data members initialized outside the class no longer treated as
constants in strict mode (Changed)
A static data member with a const integral type that is initialized inside the class can be used later
in the program as a constant. However, if the data member is defined and initialized outside the
class, the standard says it should not be considered a constant. Previous versions of aC++ failed
to diagnose this issue, and treated them as constants.
Starting with this release, such non-template static data members initialized outside the class will
no longer be treated as constants in strict mode.
In non-strict mode, the behavior remains unchanged for compatibility reasons.
Template static data members initialized outside the class are now always considered non-constant.
Enhancements to allow code to run well on current platforms and future multi-core
processors (New)
Enhancements have been made to this release of the compiler to allow code to run well on current
platforms and future multi-core processors.
New diagnostic messages (New)
The following new diagnostic messages are added to the compiler:
• Warning #3750
Warning #3750 is now emitted for lines that end with a backslash followed by a space. For
example:
int main(){
int something; \
int anotherthing;
}
line 2: warning #3750-D: "\" followed by white space is not a line splice
• Warning #2767
In 64-bit C compilations, casting a pointer to an integral type of lower size now generates
warning #2767. Previously, this was only a remark.
• Remark #3719
In cases where the constructor initialization list is invoked in an order different from what the
programmer apparently expects, a new remark #3719 is now emitted. For example:
class A{
public:
A(int c);
22 Product changes in earlier versions