19b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata//===-- main.cpp ------------------------------------------------*- C++ -*-===// 29b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata// 39b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata// The LLVM Compiler Infrastructure 49b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata// 59b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata// This file is distributed under the University of Illinois Open Source 69b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata// License. See LICENSE.TXT for details. 79b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata// 89b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata//===----------------------------------------------------------------------===// 99b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata 109b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata#include <stdio.h> 119b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata#include <stdlib.h> 129b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata#include <stdint.h> 139b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata 149b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granatastruct i_am_cool 159b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata{ 169b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata int integer; 179b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata float floating; 189b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata char character; 199b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata i_am_cool(int I, float F, char C) : 209b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata integer(I), floating(F), character(C) {} 219b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata i_am_cool() : integer(1), floating(2), character('3') {} 229b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata 239b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata}; 249b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata 259b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granatastruct i_am_cooler 269b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata{ 279b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata i_am_cool first_cool; 289b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata i_am_cool second_cool; 299b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata float floating; 309b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata 319b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata i_am_cooler(int I1, int I2, float F1, float F2, char C1, char C2) : 329b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata first_cool(I1,F1,C1), 339b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata second_cool(I2,F2,C2), 349b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata floating((F1 + F2)/2) {} 359b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata}; 369b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata 379762e10787a7efc2f0d822590cab42ca23d5e4f9Enrico Granatastruct IWrapPointers 389b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata{ 399762e10787a7efc2f0d822590cab42ca23d5e4f9Enrico Granata int* int_pointer; 409762e10787a7efc2f0d822590cab42ca23d5e4f9Enrico Granata float* float_pointer; 419762e10787a7efc2f0d822590cab42ca23d5e4f9Enrico Granata IWrapPointers() : int_pointer(new int(4)), float_pointer(new float(1.111)) {} 429b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata}; 439b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata 44ff78238a2ebc66a683dded02c2f99fba85077d05Enrico Granatastruct Simple 45ff78238a2ebc66a683dded02c2f99fba85077d05Enrico Granata{ 46ff78238a2ebc66a683dded02c2f99fba85077d05Enrico Granata int x; 47ff78238a2ebc66a683dded02c2f99fba85077d05Enrico Granata float y; 48ff78238a2ebc66a683dded02c2f99fba85077d05Enrico Granata char z; 49ff78238a2ebc66a683dded02c2f99fba85077d05Enrico Granata Simple(int X, float Y, char Z) : 50ff78238a2ebc66a683dded02c2f99fba85077d05Enrico Granata x(X), 51ff78238a2ebc66a683dded02c2f99fba85077d05Enrico Granata y(Y), 52ff78238a2ebc66a683dded02c2f99fba85077d05Enrico Granata z(Z) 53ff78238a2ebc66a683dded02c2f99fba85077d05Enrico Granata {} 54ff78238a2ebc66a683dded02c2f99fba85077d05Enrico Granata}; 55ff78238a2ebc66a683dded02c2f99fba85077d05Enrico Granata 56ff78238a2ebc66a683dded02c2f99fba85077d05Enrico Granatastruct SimpleWithPointers 57ff78238a2ebc66a683dded02c2f99fba85077d05Enrico Granata{ 58ff78238a2ebc66a683dded02c2f99fba85077d05Enrico Granata int *x; 59ff78238a2ebc66a683dded02c2f99fba85077d05Enrico Granata float *y; 60ff78238a2ebc66a683dded02c2f99fba85077d05Enrico Granata char *z; 61ff78238a2ebc66a683dded02c2f99fba85077d05Enrico Granata SimpleWithPointers(int X, float Y, char Z) : 62ff78238a2ebc66a683dded02c2f99fba85077d05Enrico Granata x(new int (X)), 63ff78238a2ebc66a683dded02c2f99fba85077d05Enrico Granata y(new float (Y)), 64f4b0e69a83a56b729a900b5960a7fbc2c4d225faDaniel Malea z(new char[2]) 65f4b0e69a83a56b729a900b5960a7fbc2c4d225faDaniel Malea { 66f4b0e69a83a56b729a900b5960a7fbc2c4d225faDaniel Malea z[0] = Z; 67f4b0e69a83a56b729a900b5960a7fbc2c4d225faDaniel Malea z[1] = '\0'; 68f4b0e69a83a56b729a900b5960a7fbc2c4d225faDaniel Malea } 69ff78238a2ebc66a683dded02c2f99fba85077d05Enrico Granata}; 70ff78238a2ebc66a683dded02c2f99fba85077d05Enrico Granata 71ff78238a2ebc66a683dded02c2f99fba85077d05Enrico Granatastruct Couple 72ff78238a2ebc66a683dded02c2f99fba85077d05Enrico Granata{ 73ff78238a2ebc66a683dded02c2f99fba85077d05Enrico Granata SimpleWithPointers sp; 74ff78238a2ebc66a683dded02c2f99fba85077d05Enrico Granata Simple* s; 75ff78238a2ebc66a683dded02c2f99fba85077d05Enrico Granata Couple(int X, float Y, char Z) : sp(X,Y,Z), 76ff78238a2ebc66a683dded02c2f99fba85077d05Enrico Granata s(new Simple(X,Y,Z)) {} 77ff78238a2ebc66a683dded02c2f99fba85077d05Enrico Granata}; 78ff78238a2ebc66a683dded02c2f99fba85077d05Enrico Granata 79018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granatastruct VeryLong 80018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata{ 81018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int a_1; 82018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int b_1; 83018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int c_1; 84018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int d_1; 85018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int e_1; 86018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int f_1; 87018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int g_1; 88018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int h_1; 89018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int i_1; 90018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int j_1; 91018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int k_1; 92018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int l_1; 93018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int m_1; 94018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int n_1; 95018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int o_1; 96018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int p_1; 97018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int q_1; 98018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int r_1; 99018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int s_1; 100018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int t_1; 101018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int u_1; 102018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int v_1; 103018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int w_1; 104018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int x_1; 105018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int y_1; 106018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int z_1; 107018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata 108018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int a_2; 109018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int b_2; 110018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int c_2; 111018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int d_2; 112018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int e_2; 113018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int f_2; 114018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int g_2; 115018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int h_2; 116018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int i_2; 117018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int j_2; 118018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int k_2; 119018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int l_2; 120018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int m_2; 121018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int n_2; 122018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int o_2; 123018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int p_2; 124018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int q_2; 125018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int r_2; 126018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int s_2; 127018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int t_2; 128018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int u_2; 129018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int v_2; 130018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int w_2; 131018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int x_2; 132018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int y_2; 133018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata int z_2; 134018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata}; 135018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata 1369b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granataint main (int argc, const char * argv[]) 1379b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata{ 1389b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata 13907baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata int iAmInt = 9; 1409b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata 1419b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata i_am_cool cool_boy(1,0.5,3); 1429b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata i_am_cooler cooler_boy(1,2,0.1,0.2,'A','B'); 1439b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata 1449b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata i_am_cool *cool_pointer = new i_am_cool(3,-3.141592,'E'); 1459b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata 1469b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata i_am_cool cool_array[5]; 1479b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata 1489b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata cool_array[3].floating = 5.25; 1499b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata cool_array[4].integer = 6; 1509b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata cool_array[2].character = 'Q'; 1519b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata 1529b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata int int_array[] = {1,2,3,4,5}; 1539b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata 1549762e10787a7efc2f0d822590cab42ca23d5e4f9Enrico Granata IWrapPointers wrapper; 1559762e10787a7efc2f0d822590cab42ca23d5e4f9Enrico Granata 1569762e10787a7efc2f0d822590cab42ca23d5e4f9Enrico Granata *int_array = -1; 1579762e10787a7efc2f0d822590cab42ca23d5e4f9Enrico Granata 1589762e10787a7efc2f0d822590cab42ca23d5e4f9Enrico Granata int* pointer = &cool_array[4].integer; 1599762e10787a7efc2f0d822590cab42ca23d5e4f9Enrico Granata 1609762e10787a7efc2f0d822590cab42ca23d5e4f9Enrico Granata IWrapPointers *wrap_pointer = &wrapper; 161ff78238a2ebc66a683dded02c2f99fba85077d05Enrico Granata 162ff78238a2ebc66a683dded02c2f99fba85077d05Enrico Granata Couple couple(9,9.99,'X'); 163ff78238a2ebc66a683dded02c2f99fba85077d05Enrico Granata 164ff78238a2ebc66a683dded02c2f99fba85077d05Enrico Granata SimpleWithPointers sparray[] = 165ff78238a2ebc66a683dded02c2f99fba85077d05Enrico Granata {SimpleWithPointers(-1,-2,'3'), 166ff78238a2ebc66a683dded02c2f99fba85077d05Enrico Granata SimpleWithPointers(-4,-5,'6'), 167ff78238a2ebc66a683dded02c2f99fba85077d05Enrico Granata SimpleWithPointers(-7,-8,'9')}; 168ff78238a2ebc66a683dded02c2f99fba85077d05Enrico Granata 169433c64a5a9aefb9551b739a4450016b51cfbec62Enrico Granata Simple a_simple_object(3,0.14,'E'); 170433c64a5a9aefb9551b739a4450016b51cfbec62Enrico Granata 171018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata VeryLong a_long_guy; 172018921dd162d818e71cf1ac86d03422e88f0a674Enrico Granata 1739b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata return 0; // Set break point at this line. 174f4b0e69a83a56b729a900b5960a7fbc2c4d225faDaniel Malea} 175