1 public class Parameter {
6 public Parameter() { a = 0; b = 0; f = null; g = null; }
8 public void bar() { foo(); }
9 public void foo() { bar(); }
12 public class Penguin {
15 public Penguin() { x = 0; y = 0; }
17 public void bar() { x = 1; }
20 task Startup( StartupObject s{ initialstate } ) {
22 Parameter p = new Parameter(){!w};
25 Penguin g = new Penguin();
28 taskexit( s{ !initialstate } );
32 task aliasFromObjectAssignment
33 ( Parameter p1{!w}, Parameter p2{!w} ) {
37 taskexit( p1{w}, p2{w} );
40 task noAliasFromPrimitiveAssignment
41 ( Parameter p1{!w}, Parameter p2{!w} ) {
45 taskexit( p1{w}, p2{w} );
48 task aliasWithTwoLinks
49 ( Parameter p1{!w}, Parameter p2{!w} ) {
54 taskexit( p1{w}, p2{w} );
57 task aliasWithThreeLinks
58 ( Parameter p1{!w}, Parameter p2{!w} ) {
64 taskexit( p1{w}, p2{w} );
67 task noAliasBreakLinks
68 ( Parameter p1{!w}, Parameter p2{!w} ) {
75 taskexit( p1{w}, p2{w} );
78 task possibleAliasConditional
79 ( Parameter p1{!w}, Parameter p2{!w} ) {
91 taskexit( p1{w}, p2{w} );
95 ( Parameter p1{!w}, Parameter p2{!w} ) {
99 for( int i =0; i < 100; ++i ) {
104 for( int j = 0; i < 50; ++j ) {
124 taskexit( p1{w}, p2{w} );
127 task literalTest( Parameter p1{!w} ) {
136 ( Parameter p1{!w}, Parameter p2{!w} ) {
138 for( int i = 0; i < 1; ++i ) {
139 p1.f = new Parameter();
142 taskexit( p1{w}, p2{w} );
145 task newPossibleAlias
146 ( Parameter p1{!w}, Parameter p2{!w} ) {
150 for( int i = 0; i < 1; ++i ) {
151 p1.f = new Parameter();
161 taskexit( p1{w}, p2{w} );