Loading...
Loading...
On Any HPE Integrity server running HP-UX 11iv3 and B9007AA C.11.31.09 HP C/aC++ Developer's Bundle, compiliation with aCC 6.29 fails in C++11 mode when including stdbool.h, with the following error:# aCC test.C +std=c++11 -c"/opt/gnustl/include/bits/cpp_type_traits.h", line 99: error #2029: expectedan expressionenum { __value = bool(_Sp::__value) || bool(_Tp::__value) };"/opt/gnustl/include/ostream", line 429: error #2029: expected an expressionif (bool(_M_os.flags() & ios_base::unitbuf) && !uncaught_exception())
Any HPE Integrity server running HP-UX 11iv3 and B9007AA C.11.31.09 HP C/aC++ Developer's Bundle:# aCC -VaCC: HP C/aC++ B3910B A.06.29 [Oct 18 2016]
HP-UX 11.31 /usr/include/stdbool.h is not compatible with C++11 standard, but is still at the c99/c++98 standard.C++11 standard, Section: 18.10.8 defines:The header <cstdbool> and the header <stdbool.h> shall not define macros named bool, true, or false.As a workaround, perform the following:Define a file stdbool.h which will define c99/c++98 or older version declarations only when not compiling in C++11 standard:# cat > /opt/aCC/include/stdbool.h <<EOF#ifndef _STDBOOL_INCLUDED# define _STDBOOL_INCLUDED# if (__cplusplus < 201103L)# include <sys/stdsyms.h># define bool _Bool# define true 1# define false 0# define __bool_true_false_are_defined 1# else/* C++11 standard, Section: 18.10.8: The header <cstdbool> and the header <stdbool.h> shall not define macros named bool, true, or false. */# endif /* __cplusplus < 201103L */#endif /* _STDBOOL_INCLUDED */EOF# chmod 444 /opt/aCC/include/stdbool.h# cd /opt/aCC/include_std# ln -s ../include/stdbool.h stdbool.h# cd ../include/compat# ln -s ../stdbool.h stdbool.h
Operating Systems Affected:HP-UX 11.31 (IA)
Click on a version to see all relevant bugs
Hewlett Packard Enterprise Integration
Learn more about where this data comes from
Bug Scrub Advisor
Streamline upgrades with automated vendor bug scrubs
BugZero Enterprise
Wish you caught this bug sooner? Get proactive today.