public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
* [Bug c++/40751] New: G++ never packs typedef'd enums @ 2009-07-14 19:02 bryce dot schober at gmail dot com 2009-07-14 19:09 ` [Bug c++/40751] " bryce dot schober at gmail dot com 2009-07-14 22:31 ` bryce dot schober at gmail dot com 0 siblings, 2 replies; 3+ messages in thread From: bryce dot schober at gmail dot com @ 2009-07-14 19:02 UTC (permalink / raw) To: gcc-bugs The following enumerated type definitions packs to one byte as expected in C, but not in C++: typedef enum __attribute__ ((packed)) { ZERO = 0, ONE, TWO } my_enum_t; The enum will pack as expected if using -fshort-enums, but that doesn't allow me to pack on a per-enum basis. Neither will the above enum pack as a packed member in a structure or as a member in a packed structure. Test case to follow. -- Summary: G++ never packs typedef'd enums Product: gcc Version: 4.3.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: bryce dot schober at gmail dot com GCC build triplet: i486-linux-gnu GCC host triplet: i486-linux-gnu GCC target triplet: i486-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40751 ^ permalink raw reply [flat|nested] 3+ messages in thread
* [Bug c++/40751] G++ never packs typedef'd enums 2009-07-14 19:02 [Bug c++/40751] New: G++ never packs typedef'd enums bryce dot schober at gmail dot com @ 2009-07-14 19:09 ` bryce dot schober at gmail dot com 2009-07-14 22:31 ` bryce dot schober at gmail dot com 1 sibling, 0 replies; 3+ messages in thread From: bryce dot schober at gmail dot com @ 2009-07-14 19:09 UTC (permalink / raw) To: gcc-bugs ------- Comment #1 from bryce dot schober at gmail dot com 2009-07-14 19:09 ------- Created an attachment (id=18196) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18196&action=view) test case Built without warnings, to try to make sure I'm not doing something marginal: gcc -Wall -Wextra -pedantic -lstdc++ -0 size size.c size.gcc -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40751 ^ permalink raw reply [flat|nested] 3+ messages in thread
* [Bug c++/40751] G++ never packs typedef'd enums 2009-07-14 19:02 [Bug c++/40751] New: G++ never packs typedef'd enums bryce dot schober at gmail dot com 2009-07-14 19:09 ` [Bug c++/40751] " bryce dot schober at gmail dot com @ 2009-07-14 22:31 ` bryce dot schober at gmail dot com 1 sibling, 0 replies; 3+ messages in thread From: bryce dot schober at gmail dot com @ 2009-07-14 22:31 UTC (permalink / raw) To: gcc-bugs ------- Comment #2 from bryce dot schober at gmail dot com 2009-07-14 22:31 ------- I now see that the following syntax packs as expected: typedef enum { ZERO = 0, ONE, TWO } __attribute__ ((packed)) my_enum_t; I have been unable to find a concise definition of how attributes are supposed to be used with types in either the Type-Attributes or Attribute-Syntax sections of the GCC manual. I guess this location for the attribute is a bit more logical in the sense that the type isn't "complete" until the closing brace. It remains unclear whether both attribute locations are supposed to be supported in both C and C++ or not. Either way, it's certainly not clear from the docs. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40751 ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2009-07-14 22:31 UTC | newest] Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2009-07-14 19:02 [Bug c++/40751] New: G++ never packs typedef'd enums bryce dot schober at gmail dot com 2009-07-14 19:09 ` [Bug c++/40751] " bryce dot schober at gmail dot com 2009-07-14 22:31 ` bryce dot schober at gmail dot com
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).