Index: doc/theses/mike_brooks_MMath/programs/sharectx.run.cfa
===================================================================
--- doc/theses/mike_brooks_MMath/programs/sharectx.run.cfa	(revision 06ffa958c2cbd678e3ccc85025b02513968da3d4)
+++ doc/theses/mike_brooks_MMath/programs/sharectx.run.cfa	(revision 62b594041c885fc7da0dce25ece323348f3ea3d2)
@@ -1,10 +1,4 @@
 #include <string.hfa>
 #include <string_sharectx.hfa>
-
-void a() {}
-void b() {}
-void c() {}
-void d() {}
-void e() {}
 
 
@@ -14,22 +8,48 @@
 
 
-
-
-
-
-void helper2() {
-	c();
-	string_sharectx c = {NEW_SHARING};
-	d();
+void a( string & sm ) {
+	string sm_a = sm; // share
 }
-void helper1() {
-	a();
-	string_sharectx c = {NO_SHARING};
-	b();
-	helper2();
-	e();
+void b( string & sm ) {
+	string sm_b = sm; // share
+}
+void c( string & sm, string & sh1 ) {
+	string sm_c = sm; // copy
+	string sh1_c = sh1; // copy
+}
+void d( string & sm, string & sh1 ) {
+	string sm_d = sm; // copy
+	string sh1_d = sh1; // copy
+}
+void e( string & sm, string & sh1, string & sh2 ) {
+	string sm_e = sm; // copy
+	string sh1_e = sh1; // copy
+	string sh2_e = sh2; // share
+}
+void f( string & sm, string & sh1 ) {
+	string sm_f = sm; // copy
+	string sh1_f = sh1; // copy
+}
+void g( string & sm ) {
+	string sm_g = sm; // share
+}
+void helper2( string & sm, string & sh1 ) {
+	d( sm, sh1 );
+	string_sharectx ctx_on = {NEW_SHARING};
+	string sh2 = "sh2";
+	e( sm, sh1, sh2 );
+}
+void helper1( string & sm ) {
+	b( sm );
+	string_sharectx ctx_off = {NO_SHARING};
+	string sh1 = "sh1";
+	c( sm, sh1 );
+	helper2( sm, sh1 );
+	f( sm, sh1 );
 }
 int main() {
-	helper1();
+	string sm = "sm";
+	a( sm );
+	helper1( sm );
+	g( sm );
 }
-
