Hi Alexey & James, Thanks for your info! I'll update the toolchain of my build server. :-)
--Lucy Alexey V. Lapshin wrote: > Hi All, > > Support for long long bitfields was first implemented in SunStudio12. > Please see 6484753, 6496021 CR`s. > > Alexey. > > [EMAIL PROTECTED] wrote: > >> >> ---------- Forwarded message ---------- >> Date: Thu, 11 Oct 2007 21:43:59 +1000 >> From: James C. McPherson <[EMAIL PROTECTED]> >> To: Xiu-Yan Wang <[EMAIL PROTECTED]> >> Cc: tools-discuss@opensolaris.org, Cathy Thomas >> <[EMAIL PROTECTED]>, >> Ray Han <[EMAIL PROTECTED]> >> Subject: Re: [tools-discuss] Question on bit-field definitions under cc >> >> Xiu-Yan Wang wrote: >> >>> Hi all, >>> >>> When using cc bundled in SUNWspro to compile codes with bit-field >>> definitions like the following: >>> >>> typedef struct test_bitfield_s { >>> uint64_t >>> field0 : 8, >>> field1 : 8, >>> field2 : 8, >>> field3 : 8, >>> field4 : 8, >>> field5 : 8, >>> field6 : 8, >>> field7 : 8, >>> }test_bitfield_t; >>> >>> I got the below error messages: >>> >>> "../include/message.h", line 48: invalid type for bit-field: field0 >>> "../include/message.h", line 49: invalid type for bit-field: field1 >>> "../include/message.h", line 50: invalid type for bit-field: field2 >>> "../include/message.h", line 51: invalid type for bit-field: field3 >>> "../include/message.h", line 52: invalid type for bit-field: field4 >>> "../include/message.h", line 53: invalid type for bit-field: field5 >>> "../include/message.h", line 54: invalid type for bit-field: field6 >>> "../include/message.h", line 55: invalid type for bit-field: field7 >>> >>> The error messages would disappear if uint64_t was replaced with >>> uint8_t, uint16_t, or uint32_t. So it seems that for cc contained in >>> SUNWspro 64-bit type can not be used in bit-field definitions. Could >>> someone familiar with the compiler confirm this or correct me if I'm >>> wrong? >>> >>> BTW, gcc allows 64-bit type to be used in bit-field definitions. >> >> >> >> This code compiles fine with Studio 12:: >> >> =============================================== >> #include <sys/types.h> >> #include <stdlib.h> >> >> typedef struct test_bitfield_s { >> uint64_t >> field0 : 8, >> field1 : 8, >> field2 : 8, >> field3 : 8, >> field4 : 8, >> field5 : 8, >> field6 : 8, >> field7 : 8; >> } test_bitfield_t; >> >> int >> main(int argc, char **argv) { >> exit(0); >> } >> >> =============================================== >> >> >> >> But with Studio 11 from /ws/onnv-tools, I get >> the same error messages that you do >> >> >> $ /opt/SUNWspro/bin/cc -V >> cc: Sun C 5.9 SunOS_i386 2007/05/03 >> >> $ /ws/onnv-tools/SUNWspro/SS11/bin/cc -V >> cc: Sun C 5.8 Patch 121016-05 2007/01/10 >> usage: cc [ options] files. Use 'cc -flags' for details >> >> >> I think you've found a bug in the compilers. >> >> I've logged >> >> >> 6615708 Studio11 doesn't grok uint64_t bitfields >> >> >> and included you on the interest list. >> >> >> James C. McPherson >> -- >> Senior Kernel Software Engineer, Solaris >> Sun Microsystems >> _______________________________________________ >> tools-discuss mailing list >> tools-discuss@opensolaris.org > > > _______________________________________________ tools-discuss mailing list tools-discuss@opensolaris.org