This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c++/15209] [3.4/3.5 Regression]Runs out of memory with packed structs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-04-29 20:04 -------
Confirmed, reduced to at least (note this can most likely be reduced down further):
typedef unsigned int size_t;
typedef unsigned char uint8_t;
typedef unsigned short int uint16_t;

typedef unsigned int uint32_t;
__extension__ typedef unsigned long long int uint64_t;

typedef uint8_t u8;
typedef uint16_t u16;
typedef uint32_t u32;
typedef uint64_t u64;

struct MAGIC {u8 magic[8];} __attribute__ ((packed));
struct PACKETTYPE {u8 type[16];} __attribute__ ((packed));


typedef u16 leu16;
typedef u32 leu32;
typedef u64 leu64;

class MD5Hash
{
public:

  MD5Hash(void) {};

  void *print(void) const;
  MD5Hash(const MD5Hash &other);
  MD5Hash& operator=(const MD5Hash &other);

public:
  u8 hash[16];
};

struct PACKET_HEADER
{

  MAGIC magic;
  leu64 length;
  MD5Hash hash;
  MD5Hash setid;
  PACKETTYPE type;
} __attribute__ ((packed));


struct MAINPACKET
{
  PACKET_HEADER header;

  leu64 blocksize;
  leu32 recoverablefilecount;
  MD5Hash fileid[0];


} __attribute__ ((packed));

struct CriticalPacket
{
  u8 *packetdata;
  size_t packetlength;
};

class MainPacket : public CriticalPacket
{
  const MD5Hash& SetId(void) const;

  u64 blocksize;
  u32 totalfilecount;
  u32 recoverablefilecount;
};

inline const MD5Hash& MainPacket::SetId(void) const
{
  return ((const MAINPACKET*)packetdata)->header.setid;
}

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|                            |1
           Keywords|                            |ice-on-valid-code, memory-
                   |                            |hog
      Known to fail|                            |3.4.0 3.5.0
      Known to work|                            |3.3.3
   Last reconfirmed|0000-00-00 00:00:00         |2004-04-29 20:04:38
               date|                            |
            Summary|Runs out of memory with     |[3.4/3.5 Regression]Runs out
                   |packed structs              |of memory with packed
                   |                            |structs
   Target Milestone|---                         |3.4.1


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]