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