public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/14124] New: enum definition with __attribute__((packed)) gives syntax errors
@ 2004-02-12  6:13 jcooper at korgrd dot com
  2004-02-12  9:04 ` [Bug c++/14124] " pinskia at gcc dot gnu dot org
                   ` (5 more replies)
  0 siblings, 6 replies; 8+ messages in thread
From: jcooper at korgrd dot com @ 2004-02-12  6:13 UTC (permalink / raw)
  To: gcc-bugs

On Linux 2.4.24, using gcc 3.3.2    
   
I'm following the instructions as described here:            
http://gcc.gnu.org/onlinedocs/gcc-3.3.2/gcc/Type-Attributes.html#Type%20Attributes           
           
Specifically, I say           
   enum testEnum { x = 1, y = 2 } __attribute__((packed));           
          
and I get:          
   error: semicolon missing after declaration of `testEnum'          
          
          
I've also tried:         
   enum __attribute__((packed))  testEnum2 { z = 3 };         
   typedef enum { abc = 4 } __attribute__((packed)) testEnum3;         
         
Both which fail with syntax errors.    See cpp and gcc output listings below. 
         
It is not practical for us to use -fshort-enums, so we really need this to         
work.    Please advise!         
         
Thanks 
-John 
 
Output of cpp:         
      
# 1 "enum.cpp"        
# 1 "<built-in>"        
# 1 "<command line>"        
# 1 "enum.cpp"        
enum testEnum { x = 1, y = 2 } __attribute__((packed));        
        
enum __attribute__((packed)) testEnum2 { z = 3 };        
        
typedef enum { abc = 4 } __attribute__((packed)) testEnum3;        
        
int main()        
{        
        testEnum t;        
        testEnum2 tt;        
        testEnum3 ttt        
}       
       
---------------------------------       
Output of gcc -v -save-temps enum.cpp :  
  
Reading specs from /home/jcooper/bin/lib/gcc-lib/i686-pc-linux-gnu/3.3.2/specs   
Configured with: ../gcc-3.3.2/configure --prefix=/home/jcooper/bin   
Thread model: posix   
gcc version 3.3.2   
 /home/jcooper/bin/lib/gcc-lib/i686-pc-linux-gnu/3.3.2/cc1plus -E -D__GNUG__=3   
-quiet -v -D__GNUC__=3 -D__GNUC_MINOR__=3 -D__GNUC_PATCHLEVEL__=2   
-D_GNU_SOURCE enum.cpp enum.ii   
ignoring nonexistent directory "/home/jcooper/bin/i686-pc-linux-gnu/include"   
#include "..." search starts here:   
#include <...> search starts here:   
 /home/jcooper/bin/include/c++/3.3.2   
 /home/jcooper/bin/include/c++/3.3.2/i686-pc-linux-gnu   
 /home/jcooper/bin/include/c++/3.3.2/backward   
 /usr/local/include   
 /home/jcooper/bin/include   
 /home/jcooper/bin/lib/gcc-lib/i686-pc-linux-gnu/3.3.2/include   
 /usr/include   
End of search list.   
 /home/jcooper/bin/lib/gcc-lib/i686-pc-linux-gnu/3.3.2/cc1plus -fpreprocessed   
enum.ii -quiet -dumpbase enum.cpp -auxbase enum -version -o enum.s   
GNU C++ version 3.3.2 (i686-pc-linux-gnu)   
        compiled by GNU C version 3.3.2.   
GGC heuristics: --param ggc-min-expand=36 --param ggc-min-heapsize=11837   
enum.cpp:1: error: semicolon missing after declaration of `testEnum'   
enum.cpp:3: error: parse error before `__attribute__'   
enum.cpp:5: error: semicolon missing after enum declaration   
enum.cpp: In function `int main()':   
enum.cpp:10: error: `testEnum2' undeclared (first use this function)   
enum.cpp:10: error: (Each undeclared identifier is reported only once for each   
   function it appears in.)   
enum.cpp:10: error: parse error before `;' token

-- 
           Summary: enum definition with __attribute__((packed)) gives
                    syntax errors
           Product: gcc
           Version: 3.3.2
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: jcooper at korgrd dot com
                CC: gcc-bugs at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14124


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug c++/14124] enum definition with __attribute__((packed)) gives syntax errors
  2004-02-12  6:13 [Bug c++/14124] New: enum definition with __attribute__((packed)) gives syntax errors jcooper at korgrd dot com
@ 2004-02-12  9:04 ` pinskia at gcc dot gnu dot org
  2004-02-12 15:40 ` jcooper at korgrd dot com
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-02-12  9:04 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-02-12 09:04 -------
Well this is no longer rejected on 3.4.0 but it still ignores the attribute for some reason.  I think the 
documention was written for the C front-end but never updated for the C++ front-end at all.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|normal                      |enhancement
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|                            |1
           Keywords|                            |wrong-code
      Known to fail|                            |2.95.3 2.97 3.0 3.0.1 3.0.2
                   |                            |3.0.3 3.0.4 3.1 3.1.1 3.1.2
                   |                            |3.2 3.2.1 3.2.2 3.2.3 3.3
                   |                            |3.3.1 3.3.2 3.3.3 3.4.0
                   |                            |3.5.0
   Last reconfirmed|0000-00-00 00:00:00         |2004-02-12 09:04:40
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14124


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug c++/14124] enum definition with __attribute__((packed)) gives syntax errors
  2004-02-12  6:13 [Bug c++/14124] New: enum definition with __attribute__((packed)) gives syntax errors jcooper at korgrd dot com
  2004-02-12  9:04 ` [Bug c++/14124] " pinskia at gcc dot gnu dot org
@ 2004-02-12 15:40 ` jcooper at korgrd dot com
  2004-02-12 16:05 ` giovannibajo at libero dot it
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: jcooper at korgrd dot com @ 2004-02-12 15:40 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From jcooper at korgrd dot com  2004-02-12 15:40 -------
Thanks Andrew for confirming.

I see you've reclassified it as an enhancement.  That being the case, can I 
expect it to be fixed in the near term??  

If not, do you have any suggestions for a workaround?  The reason we can't use 
-fshort-enums is it's a large complex system with interfaces into other systems.
..  using -fshort-enums invariably leads to incosistencies and segfaults :(

Thanks again,
-John




-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |WAITING


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14124


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug c++/14124] enum definition with __attribute__((packed)) gives syntax errors
  2004-02-12  6:13 [Bug c++/14124] New: enum definition with __attribute__((packed)) gives syntax errors jcooper at korgrd dot com
  2004-02-12  9:04 ` [Bug c++/14124] " pinskia at gcc dot gnu dot org
  2004-02-12 15:40 ` jcooper at korgrd dot com
@ 2004-02-12 16:05 ` giovannibajo at libero dot it
  2004-10-26 21:56 ` pinskia at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: giovannibajo at libero dot it @ 2004-02-12 16:05 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From giovannibajo at libero dot it  2004-02-12 16:05 -------
I'm afraid it will take a while for this feature to be added. It is in fact an 
enhancement request. Also, even if a patch was made today, it would not be 
eligible for 3.4.x anymore, so it would go into 3.5.x, which won't see the 
light until 2005.

Of course, if you can use a custom compiler version, you could backport such a 
patch to a local 3.4-based compiler. If you really need it done fast, I'm sure 
you can find a contractor that can develop it quite fast. I suggest you to ask 
on the gcc mailing list about it.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|WAITING                     |NEW
   Last reconfirmed|2004-02-12 09:04:40         |2004-02-12 16:05:09
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14124


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug c++/14124] enum definition with __attribute__((packed)) gives syntax errors
  2004-02-12  6:13 [Bug c++/14124] New: enum definition with __attribute__((packed)) gives syntax errors jcooper at korgrd dot com
                   ` (2 preceding siblings ...)
  2004-02-12 16:05 ` giovannibajo at libero dot it
@ 2004-10-26 21:56 ` pinskia at gcc dot gnu dot org
  2004-10-28  4:42 ` pinskia at gcc dot gnu dot org
  2004-10-29  2:11 ` pinskia at gcc dot gnu dot org
  5 siblings, 0 replies; 8+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-10-26 21:56 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-10-26 21:56 -------
*** Bug 18165 has been marked as a duplicate of this bug. ***

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |austern at apple dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14124


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug c++/14124] enum definition with __attribute__((packed)) gives syntax errors
  2004-02-12  6:13 [Bug c++/14124] New: enum definition with __attribute__((packed)) gives syntax errors jcooper at korgrd dot com
                   ` (3 preceding siblings ...)
  2004-10-26 21:56 ` pinskia at gcc dot gnu dot org
@ 2004-10-28  4:42 ` pinskia at gcc dot gnu dot org
  2004-10-29  2:11 ` pinskia at gcc dot gnu dot org
  5 siblings, 0 replies; 8+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-10-28  4:42 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-10-28 04:42 -------
Patch here: <http://gcc.gnu.org/ml/gcc-patches/2004-10/msg02462.html>.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |patch
      Known to fail|2.95.3 2.97 3.0 3.0.1 3.0.2 |2.95.3 2.97 3.0 3.0.1 3.0.2
                   |3.0.3 3.0.4 3.1 3.1.1 3.1.2 |3.0.3 3.0.4 3.1 3.1.1 3.1.2
                   |3.2 3.2.1 3.2.2 3.2.3 3.3   |3.2 3.2.1 3.2.2 3.2.3 3.3
                   |3.3.1 3.3.2 3.3.3 3.4.0 4.0 |3.3.1 3.3.2 3.3.3 3.4.0
                   |                            |4.0.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14124


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug c++/14124] enum definition with __attribute__((packed)) gives syntax errors
  2004-02-12  6:13 [Bug c++/14124] New: enum definition with __attribute__((packed)) gives syntax errors jcooper at korgrd dot com
                   ` (4 preceding siblings ...)
  2004-10-28  4:42 ` pinskia at gcc dot gnu dot org
@ 2004-10-29  2:11 ` pinskia at gcc dot gnu dot org
  5 siblings, 0 replies; 8+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-10-29  2:11 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-10-29 02:11 -------
Fixed in 4.0.0.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED
   Target Milestone|---                         |4.0.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14124


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug c++/14124] enum definition with __attribute__((packed)) gives syntax errors
       [not found] <bug-14124-7907@http.gcc.gnu.org/bugzilla/>
@ 2009-07-22 10:57 ` alex dot gcc dot gnu dot org at firetree dot net
  0 siblings, 0 replies; 8+ messages in thread
From: alex dot gcc dot gnu dot org at firetree dot net @ 2009-07-22 10:57 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #7 from alex dot gcc dot gnu dot org at firetree dot net  2009-07-22 10:57 -------
There are still problems with packed enums. John Cooper's example program
compiles on g++ 4.3.2, but testEnum2 is still not packed. More details in Bug
#39219.


-- 

alex dot gcc dot gnu dot org at firetree dot net changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Known to fail|2.95.3 2.97 3.0 3.0.1 3.0.2 |2.95.3 2.97 3.0 3.0.1 3.0.2
                   |3.0.3 3.0.4 3.1 3.1.1 3.1.2 |3.0.3 3.0.4 3.1 3.1.1 3.1.2
                   |3.2 3.2.1 3.2.2 3.2.3 3.3   |3.2 3.2.1 3.2.2 3.2.3 3.3
                   |3.3.1 3.3.2 3.3.3 3.4.0     |3.3.1 3.3.2 3.3.3 3.4.0
                   |4.0.0                       |4.0.0 4.0.1


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14124


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2009-07-22 10:57 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-02-12  6:13 [Bug c++/14124] New: enum definition with __attribute__((packed)) gives syntax errors jcooper at korgrd dot com
2004-02-12  9:04 ` [Bug c++/14124] " pinskia at gcc dot gnu dot org
2004-02-12 15:40 ` jcooper at korgrd dot com
2004-02-12 16:05 ` giovannibajo at libero dot it
2004-10-26 21:56 ` pinskia at gcc dot gnu dot org
2004-10-28  4:42 ` pinskia at gcc dot gnu dot org
2004-10-29  2:11 ` pinskia at gcc dot gnu dot org
     [not found] <bug-14124-7907@http.gcc.gnu.org/bugzilla/>
2009-07-22 10:57 ` alex dot gcc dot gnu dot org at firetree dot net

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).