main.cpp revision d325115c71b077208625804b27cc095c857ca259
1d325115c71b077208625804b27cc095c857ca259Johnny Chen//===-- main.cpp ------------------------------------------------*- C++ -*-===//
237f6b796336296f20a97bf4ed1f7fb5cd7cddfa2Johnny Chen//
337f6b796336296f20a97bf4ed1f7fb5cd7cddfa2Johnny Chen//                     The LLVM Compiler Infrastructure
437f6b796336296f20a97bf4ed1f7fb5cd7cddfa2Johnny Chen//
537f6b796336296f20a97bf4ed1f7fb5cd7cddfa2Johnny Chen// This file is distributed under the University of Illinois Open Source
637f6b796336296f20a97bf4ed1f7fb5cd7cddfa2Johnny Chen// License. See LICENSE.TXT for details.
737f6b796336296f20a97bf4ed1f7fb5cd7cddfa2Johnny Chen//
837f6b796336296f20a97bf4ed1f7fb5cd7cddfa2Johnny Chen//===----------------------------------------------------------------------===//
9e013e105aaac6484a1464c5f96ad59c8d044600fJohnny Chen#include <stdio.h>
10e013e105aaac6484a1464c5f96ad59c8d044600fJohnny Chen
11e013e105aaac6484a1464c5f96ad59c8d044600fJohnny Chenclass Point {
12e013e105aaac6484a1464c5f96ad59c8d044600fJohnny Chenpublic:
13e013e105aaac6484a1464c5f96ad59c8d044600fJohnny Chen    int x;
14e013e105aaac6484a1464c5f96ad59c8d044600fJohnny Chen    int y;
15e013e105aaac6484a1464c5f96ad59c8d044600fJohnny Chen    Point(int a, int b):
16e013e105aaac6484a1464c5f96ad59c8d044600fJohnny Chen        x(a),
17e013e105aaac6484a1464c5f96ad59c8d044600fJohnny Chen        y(b)
18e013e105aaac6484a1464c5f96ad59c8d044600fJohnny Chen    {}
19e013e105aaac6484a1464c5f96ad59c8d044600fJohnny Chen};
20e013e105aaac6484a1464c5f96ad59c8d044600fJohnny Chen
21e013e105aaac6484a1464c5f96ad59c8d044600fJohnny Chenclass Data {
22e013e105aaac6484a1464c5f96ad59c8d044600fJohnny Chenpublic:
23e013e105aaac6484a1464c5f96ad59c8d044600fJohnny Chen    int id;
24e013e105aaac6484a1464c5f96ad59c8d044600fJohnny Chen    Point point;
25e013e105aaac6484a1464c5f96ad59c8d044600fJohnny Chen    Data(int i):
26e013e105aaac6484a1464c5f96ad59c8d044600fJohnny Chen        id(i),
27e013e105aaac6484a1464c5f96ad59c8d044600fJohnny Chen        point(0, 0)
28e013e105aaac6484a1464c5f96ad59c8d044600fJohnny Chen    {}
29e013e105aaac6484a1464c5f96ad59c8d044600fJohnny Chen};
30e013e105aaac6484a1464c5f96ad59c8d044600fJohnny Chen
31e013e105aaac6484a1464c5f96ad59c8d044600fJohnny Chenint main(int argc, char const *argv[]) {
32e013e105aaac6484a1464c5f96ad59c8d044600fJohnny Chen    Data *data[1000];
33e013e105aaac6484a1464c5f96ad59c8d044600fJohnny Chen    Data **ptr = data;
34e013e105aaac6484a1464c5f96ad59c8d044600fJohnny Chen    for (int i = 0; i < 1000; ++i) {
35e013e105aaac6484a1464c5f96ad59c8d044600fJohnny Chen        ptr[i] = new Data(i);
36e013e105aaac6484a1464c5f96ad59c8d044600fJohnny Chen        ptr[i]->point.x = i;
37e013e105aaac6484a1464c5f96ad59c8d044600fJohnny Chen        ptr[i]->point.y = i+1;
38e013e105aaac6484a1464c5f96ad59c8d044600fJohnny Chen    }
39e013e105aaac6484a1464c5f96ad59c8d044600fJohnny Chen
40e013e105aaac6484a1464c5f96ad59c8d044600fJohnny Chen    printf("Finished populating data.\n");
41e013e105aaac6484a1464c5f96ad59c8d044600fJohnny Chen    for (int i = 0; i < 1000; ++i) {
42e013e105aaac6484a1464c5f96ad59c8d044600fJohnny Chen        bool dump = argc > 1; // Set breakpoint here.
43e013e105aaac6484a1464c5f96ad59c8d044600fJohnny Chen                              // Evaluate a couple of expressions (2*1000 = 2000 exprs):
44e013e105aaac6484a1464c5f96ad59c8d044600fJohnny Chen                              // expr ptr[i]->point.x
45e013e105aaac6484a1464c5f96ad59c8d044600fJohnny Chen                              // expr ptr[i]->point.y
46e013e105aaac6484a1464c5f96ad59c8d044600fJohnny Chen        if (dump) {
47e013e105aaac6484a1464c5f96ad59c8d044600fJohnny Chen            printf("data[%d] = %d (%d, %d)\n", i, ptr[i]->id, ptr[i]->point.x, ptr[i]->point.y);
48e013e105aaac6484a1464c5f96ad59c8d044600fJohnny Chen        }
49e013e105aaac6484a1464c5f96ad59c8d044600fJohnny Chen    }
50e013e105aaac6484a1464c5f96ad59c8d044600fJohnny Chen    return 0;
51e013e105aaac6484a1464c5f96ad59c8d044600fJohnny Chen}
52