1 public class Parameter {
7 public Parameter() { a = 0; b = 0; f = null; g = null; }
9 public void bar() { foo(); }
10 public void foo() { bar(); }
13 public class Penguin {
16 public Penguin() { x = 0; y = 0; }
18 public void bar() { x = 1; }
21 task Startup( StartupObject s{ initialstate } ) {
24 Parameter p = new Parameter(){!w};
27 Penguin g = new Penguin();
33 for( int i = 0; i < 3; ++i ) {
35 p.penguin = new Penguin();
41 taskexit( s{ !initialstate } );
45 task aliasFromObjectAssignment
46 ( Parameter p1{!w}, Parameter p2{!w} ) {
50 taskexit( p1{w}, p2{w} );
53 task noAliasFromPrimitiveAssignment
54 ( Parameter p1{!w}, Parameter p2{!w} ) {
58 taskexit( p1{w}, p2{w} );
61 task aliasWithTwoLinks
62 ( Parameter p1{!w}, Parameter p2{!w} ) {
67 taskexit( p1{w}, p2{w} );
70 task aliasWithThreeLinks
71 ( Parameter p1{!w}, Parameter p2{!w} ) {
77 taskexit( p1{w}, p2{w} );
80 task noAliasBreakLinks
81 ( Parameter p1{!w}, Parameter p2{!w} ) {
88 taskexit( p1{w}, p2{w} );
91 task possibleAliasConditional
92 ( Parameter p1{!w}, Parameter p2{!w} ) {
104 taskexit( p1{w}, p2{w} );
108 ( Parameter p1{!w}, Parameter p2{!w} ) {
112 for( int i =0; i < 100; ++i ) {
117 for( int j = 0; i < 50; ++j ) {
137 taskexit( p1{w}, p2{w} );
140 task literalTest( Parameter p1{!w} ) {
149 ( Parameter p1{!w}, Parameter p2{!w} ) {
151 for( int i = 0; i < 1; ++i ) {
152 p1.f = new Parameter();
155 taskexit( p1{w}, p2{w} );
158 task newPossibleAlias
159 ( Parameter p1{!w}, Parameter p2{!w} ) {
163 for( int i = 0; i < 1; ++i ) {
164 p1.f = new Parameter();
174 taskexit( p1{w}, p2{w} );