blob: 50517f487749c83eb8cc8eac2c1b6d3d93223ca8 [file] [log] [blame]
//===-- main.c --------------------------------------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#include <stdio.h>
class Task {
public:
int id;
Task *next;
Task(int i, Task *n):
id(i),
next(n)
{}
};
int main (int argc, char const *argv[])
{
Task *task_head = NULL;
Task *task1 = new Task(1, NULL);
Task *task2 = new Task(2, NULL);
Task *task3 = new Task(3, NULL); // Orphaned.
Task *task4 = new Task(4, NULL);
Task *task5 = new Task(5, NULL);
task_head = task1;
task1->next = task2;
task2->next = task4;
task4->next = task5;
int total = 0;
Task *t = task_head;
while (t != NULL) {
if (t->id >= 0)
++total;
t = t->next;
}
printf("We have a total number of %d tasks\n", total);
// This corresponds to an empty task list.
Task *empty_task_head = NULL;
Task *task_evil = new Task(1, NULL);
Task *task_2 = new Task(2, NULL);
Task *task_3 = new Task(3, NULL);
task_evil->next = task_2;
task_2->next = task_3;
task_3->next = task_evil; // In order to cause inifinite loop. :-)
return 0; // Break at this line
}