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 Granatatypedef float RealNumber; // should show as char 159b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granatatypedef RealNumber Temperature; // should show as float 169b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granatatypedef RealNumber Speed; // should show as hex 179b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata 189b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granatatypedef int Counter; // should show as int 199b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granatatypedef int BitField; // should show as hex 209b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata 219b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granatatypedef BitField SignalMask; // should show as hex 229b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granatatypedef BitField Modifiers; // should show as hex 239b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata 249b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granatatypedef Counter Accumulator; // should show as int 259b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata 269b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granatatypedef int Type1; // should show as char 279b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granatatypedef Type1 Type2; // should show as hex 289b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granatatypedef Type2 Type3; // should show as char 299b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granatatypedef Type3 Type4; // should show as char 309b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata 319b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granatatypedef int ChildType; // should show as int 329b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granatatypedef int AnotherChildType; // should show as int 339b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata 349b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granatastruct Point { 359b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata int x; 369b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata int y; 379b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata Point(int X = 3, int Y = 2) : x(X), y(Y) {} 389b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata}; 399b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata 409b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granatatypedef float ShowMyGuts; 419b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata 429b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granatastruct i_am_cool 439b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata{ 449b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata int integer; 459b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata ShowMyGuts floating; 469b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata char character; 479b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata i_am_cool(int I, ShowMyGuts F, char C) : 489b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata integer(I), floating(F), character(C) {} 499b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata i_am_cool() : integer(1), floating(2), character('3') {} 509b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata 519b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata}; 529b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata 539b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granatastruct i_am_cooler 549b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata{ 559b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata i_am_cool first_cool; 569b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata i_am_cool second_cool; 579b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata ShowMyGuts floating; 589b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata 599b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata i_am_cooler(int I1, int I2, float F1, float F2, char C1, char C2) : 609b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata first_cool(I1,F1,C1), 619b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata second_cool(I2,F2,C2), 629b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata floating((F1 + F2)/2) {} 639b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata}; 649b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata 659b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granatastruct IUseCharStar 669b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata{ 679b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata const char* pointer; 689b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata IUseCharStar() : pointer("Hello world") {} 699b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata}; 709b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata 719b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granataint main (int argc, const char * argv[]) 729b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata{ 739b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata 749b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata int iAmInt = 1; 759b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata const float& IAmFloat = float(2.45); 769b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata 779b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata RealNumber RNILookChar = 3.14; 789b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata Temperature TMILookFloat = 4.97; 799b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata Speed SPILookHex = 5.55; 809b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata 819b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata Counter CTILookInt = 6; 829b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata BitField BFILookHex = 7; 839b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata SignalMask SMILookHex = 8; 849b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata Modifiers MFILookHex = 9; 859b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata 869b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata Accumulator* ACILookInt = new Accumulator(10); 879b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata 889b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata const Type1& T1ILookChar = 11; 899b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata Type2 T2ILookHex = 12; 909b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata Type3 T3ILookChar = 13; 919b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata Type4 T4ILookChar = 14; 929b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata 939b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata AnotherChildType AHILookInt = 15; 949b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata 959b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata Speed* SPPtrILookHex = new Speed(16); 969b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata 979b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata Point iAmSomewhere(4,6); 989b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata 999a56a71d5da638c79290e94f7ef510e38d6e48efEnrico Granata i_am_cool *cool_pointer = (i_am_cool*)malloc(sizeof(i_am_cool)*3); 1009a56a71d5da638c79290e94f7ef510e38d6e48efEnrico Granata cool_pointer[0] = i_am_cool(3,-3.141592,'E'); 1019a56a71d5da638c79290e94f7ef510e38d6e48efEnrico Granata cool_pointer[1] = i_am_cool(0,-3.141592,'E'); 1029a56a71d5da638c79290e94f7ef510e38d6e48efEnrico Granata cool_pointer[2] = i_am_cool(0,-3.141592,'E'); 1039b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata 1049b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata i_am_cool cool_array[5]; 1059b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata 1069b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata cool_array[3].floating = 5.25; 1079b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata cool_array[4].integer = 6; 1089b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata cool_array[2].character = 'Q'; 1099b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata 1109b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata int int_array[] = {1,2,3,4,5}; 1119b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata 1129b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata IUseCharStar iEncapsulateCharStar; 1131a102087f54079c25c8827afac6153a44ca535daEnrico Granata 1141a102087f54079c25c8827afac6153a44ca535daEnrico Granata char strarr[32] = "Hello world!"; 1151a102087f54079c25c8827afac6153a44ca535daEnrico Granata char* strptr = "Hello world!"; 116e4e3e2c0448bb0c77f8f8a3bbb47b951a481d3d8Enrico Granata 117e4e3e2c0448bb0c77f8f8a3bbb47b951a481d3d8Enrico Granata i_am_cooler the_coolest_guy(1,2,3.14,6.28,'E','G'); 1189b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata 1199b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata return 0; // Set break point at this line. 1209b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata} 1219b3117e0365f3a3d59cf9adc073f716cea3bf942Enrico Granata 122