Index: src/tests/.expect/attributes.x64.txt
===================================================================
--- src/tests/.expect/attributes.x64.txt	(revision bd5cf7c99843603f89e5d97ee6f2f825f9176af5)
+++ src/tests/.expect/attributes.x64.txt	(revision e16294d108932437878b5a12e8d2eae54d315031)
@@ -3,5 +3,5 @@
     L: __attribute__ ((unused)) ((void)1);
 }
-__attribute__ ((unused)) struct __anonymous0 {
+struct __attribute__ ((unused)) __anonymous0 {
 };
 static inline void ___constructor__F_R13s__anonymous0_autogen___1(struct __anonymous0 *___dst__R13s__anonymous0_1);
@@ -20,6 +20,6 @@
     return ___ret__13s__anonymous0_1;
 }
-__attribute__ ((unused)) struct Agn1;
-__attribute__ ((unused)) struct Agn2 {
+struct __attribute__ ((unused)) Agn1;
+struct __attribute__ ((unused)) Agn2 {
 };
 static inline void ___constructor__F_R5sAgn2_autogen___1(struct Agn2 *___dst__R5sAgn2_1);
@@ -45,6 +45,6 @@
     __E2__C5eAgn3_1,
 };
-__attribute__ ((unused)) struct __anonymous2;
-__attribute__ ((unused)) struct __anonymous3;
+struct __attribute__ ((unused)) __anonymous2;
+struct __attribute__ ((unused)) __anonymous3;
 struct Fdl {
     __attribute__ ((unused)) signed int __f1__i_1;
@@ -314,5 +314,5 @@
     ((void)sizeof(__attribute__ ((unused,unused,unused)) signed int (*)[10]));
     ((void)sizeof(__attribute__ ((unused,unused,unused)) signed int ()));
-    __attribute__ ((unused)) struct __anonymous4 {
+    struct __attribute__ ((unused)) __anonymous4 {
         signed int __i__i_2;
     };
Index: src/tests/.expect/attributes.x86.txt
===================================================================
--- src/tests/.expect/attributes.x86.txt	(revision bd5cf7c99843603f89e5d97ee6f2f825f9176af5)
+++ src/tests/.expect/attributes.x86.txt	(revision e16294d108932437878b5a12e8d2eae54d315031)
@@ -3,5 +3,5 @@
     L: __attribute__ ((unused)) ((void)1);
 }
-__attribute__ ((unused)) struct __anonymous0 {
+struct __attribute__ ((unused)) __anonymous0 {
 };
 static inline void ___constructor__F_R13s__anonymous0_autogen___1(struct __anonymous0 *___dst__R13s__anonymous0_1);
@@ -20,6 +20,6 @@
     return ___ret__13s__anonymous0_1;
 }
-__attribute__ ((unused)) struct Agn1;
-__attribute__ ((unused)) struct Agn2 {
+struct __attribute__ ((unused)) Agn1;
+struct __attribute__ ((unused)) Agn2 {
 };
 static inline void ___constructor__F_R5sAgn2_autogen___1(struct Agn2 *___dst__R5sAgn2_1);
@@ -45,6 +45,6 @@
     __E2__C5eAgn3_1,
 };
-__attribute__ ((unused)) struct __anonymous2;
-__attribute__ ((unused)) struct __anonymous3;
+struct __attribute__ ((unused)) __anonymous2;
+struct __attribute__ ((unused)) __anonymous3;
 struct Fdl {
     __attribute__ ((unused)) signed int __f1__i_1;
@@ -314,5 +314,5 @@
     ((void)sizeof(__attribute__ ((unused,unused,unused)) signed int (*)[10]));
     ((void)sizeof(__attribute__ ((unused,unused,unused)) signed int ()));
-    __attribute__ ((unused)) struct __anonymous4 {
+    struct __attribute__ ((unused)) __anonymous4 {
         signed int __i__i_2;
     };
Index: src/tests/.expect/references.txt
===================================================================
--- src/tests/.expect/references.txt	(revision bd5cf7c99843603f89e5d97ee6f2f825f9176af5)
+++ src/tests/.expect/references.txt	(revision e16294d108932437878b5a12e8d2eae54d315031)
@@ -4,4 +4,8 @@
 13 1 12
 14 14
+x = 6 ; x2 = 789
+x = 6 ; x2 = 999
+x = 12345 ; x2 = 999
+x = 22222 ; x2 = 999
 Default constructing a Y
 Copy constructing a Y
Index: src/tests/operators.c
===================================================================
--- src/tests/operators.c	(revision bd5cf7c99843603f89e5d97ee6f2f825f9176af5)
+++ src/tests/operators.c	(revision e16294d108932437878b5a12e8d2eae54d315031)
@@ -27,6 +27,4 @@
 	a(b);
 	a + b;
-	struct accumulator ?+?;	// why not, eh?
-	a + b;
 }
 
Index: src/tests/references.c
===================================================================
--- src/tests/references.c	(revision bd5cf7c99843603f89e5d97ee6f2f825f9176af5)
+++ src/tests/references.c	(revision e16294d108932437878b5a12e8d2eae54d315031)
@@ -46,13 +46,9 @@
 
 int main() {
-	int x = 123456, *p1 = &x, **p2 = &p1, ***p3 = &p2,
+	int x = 123456, x2 = 789, *p1 = &x, **p2 = &p1, ***p3 = &p2,
 		&r1 = x,    &&r2 = r1,   &&&r3 = r2;
 	***p3 = 3;                          // change x
-	// ((int&)r3 = 3;                      // change x, ***r3
 	**p3 = &x;                          // change p1
-	// ((int*&)&r3) = &x;                  // change r1, (&*)**r3
 	*p3 = &p1;                          // change p2
-	// ((int**&)&&r3) = &p2;               // change r2, (&(&*)*)*r3
-	// ((int***&)&&&r3) = p3;              // change r3 to p3, (&(&(&*)*)*)r3
 	int y = 0, z = 11, & ar[3] = { x, y, z };    // initialize array of references
 	// &ar[1] = &z;                        // change reference array element
@@ -62,4 +58,6 @@
 	// sizeof( &ar[1] ) == sizeof( int *); // is true, i.e., the size of a reference
 
+	((int*&)&r3) = &x;                  // change r1, (&*)**r3
+	x = 3;
 	// test that basic reference properties are true - r1 should be an alias for x
 	printf("%d %d %d\n", x, r1, &x == &r1);
@@ -76,4 +74,16 @@
 	changeRef( r1 );
 	printf("%d %d\n", r1, x);
+
+	((int&)r3) = 6;                       // change x, ***r3
+	printf("x = %d ; x2 = %d\n", x, x2);  // check that x was changed
+	((int*&)&r3) = &x2;                   // change r1 to refer to x2, (&*)**r3
+	((int&)r3) = 999;                     // modify x2
+	printf("x = %d ; x2 = %d\n", x, x2);  // check that x2 was changed
+	((int**&)&&r3) = p2;                  // change r2, (&(&*)*)*r3
+	((int&)r3) = 12345;                   // modify x
+	printf("x = %d ; x2 = %d\n", x, x2);  // check that x was changed
+	((int***&)&&&r3) = p3;                // change r3 to p3, (&(&(&*)*)*)r3
+	((int&)r3) = 22222;                   // modify x
+	printf("x = %d ; x2 = %d\n", x, x2);  // check that x was changed
 
 	// test that reference members are not implicitly constructed/destructed/assigned
