Changeset 101a4d2
- Timestamp:
- Mar 21, 2018, 12:03:55 PM (6 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, with_gc
- Children:
- a9b1b0c
- Parents:
- 8669cd3
- Location:
- src/tests
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
src/tests/.expect/references.txt
r8669cd3 r101a4d2 4 4 13 1 12 5 5 14 14 6 x = 6 ; x2 = 789 7 x = 6 ; x2 = 999 8 x = 12345 ; x2 = 999 9 x = 22222 ; x2 = 999 6 10 Default constructing a Y 7 11 Copy constructing a Y -
src/tests/references.c
r8669cd3 r101a4d2 46 46 47 47 int main() { 48 int x = 123456, *p1 = &x, **p2 = &p1, ***p3 = &p2,48 int x = 123456, x2 = 789, *p1 = &x, **p2 = &p1, ***p3 = &p2, 49 49 &r1 = x, &&r2 = r1, &&&r3 = r2; 50 50 ***p3 = 3; // change x 51 // ((int&)r3 = 3; // change x, ***r352 51 **p3 = &x; // change p1 53 // ((int*&)&r3) = &x; // change r1, (&*)**r354 52 *p3 = &p1; // change p2 55 // ((int**&)&&r3) = &p2; // change r2, (&(&*)*)*r356 // ((int***&)&&&r3) = p3; // change r3 to p3, (&(&(&*)*)*)r357 53 int y = 0, z = 11, & ar[3] = { x, y, z }; // initialize array of references 58 54 // &ar[1] = &z; // change reference array element … … 62 58 // sizeof( &ar[1] ) == sizeof( int *); // is true, i.e., the size of a reference 63 59 60 ((int*&)&r3) = &x; // change r1, (&*)**r3 61 x = 3; 64 62 // test that basic reference properties are true - r1 should be an alias for x 65 63 printf("%d %d %d\n", x, r1, &x == &r1); … … 76 74 changeRef( r1 ); 77 75 printf("%d %d\n", r1, x); 76 77 ((int&)r3) = 6; // change x, ***r3 78 printf("x = %d ; x2 = %d\n", x, x2); // check that x was changed 79 ((int*&)&r3) = &x2; // change r1 to refer to x2, (&*)**r3 80 ((int&)r3) = 999; // modify x2 81 printf("x = %d ; x2 = %d\n", x, x2); // check that x2 was changed 82 ((int**&)&&r3) = p2; // change r2, (&(&*)*)*r3 83 ((int&)r3) = 12345; // modify x 84 printf("x = %d ; x2 = %d\n", x, x2); // check that x was changed 85 ((int***&)&&&r3) = p3; // change r3 to p3, (&(&(&*)*)*)r3 86 ((int&)r3) = 22222; // modify x 87 printf("x = %d ; x2 = %d\n", x, x2); // check that x was changed 78 88 79 89 // test that reference members are not implicitly constructed/destructed/assigned
Note: See TracChangeset
for help on using the changeset viewer.