4425360.C   [plain text]


/* APPLE LOCAL file 4425360 */
/* { dg-do run } */
/* { dg-options "-O1" } */
#include <stdio.h>
#include <stdlib.h>
class Packet {
    public:
 Packet * next;
};
int main (int argc, char * const argv[])
{
    Packet * packet=__null;
    Packet * head = 0;
    int count = 0;
    int num = 2;
    do
    {
        if (head == 0)
        {
            head = packet = new Packet;
        }
        else
        {
	  /* printf("Allocating 2nd packet\n"); */
            packet->next = new Packet;
            packet = packet->next;
        }
        packet->next = 0;
        /* printf("in loop %d         head = 0x%X    next = 0x%X\n", count, (unsigned int)head, (unsigned int)head->next); */
        printf("", count, head, head->next);
    } while (++count < num);
    if (!head->next)
      abort ();
    return 0;
}