1 public class Parameter {
6 a = 0; b = 0; f = null; g = null;
9 public void bar() { foo(); }
10 public void foo() { bar(); }
13 task Startup( StartupObject s{ initialstate } ) {
15 Parameter p = new Parameter(){!w};
18 taskexit( s{ !initialstate } );
22 task aliasFromObjectAssignment
23 ( Parameter p1{!w}, Parameter p2{!w} ) {
27 taskexit( p1{w}, p2{w} );
30 task noAliasFromPrimitiveAssignment
31 ( Parameter p1{!w}, Parameter p2{!w} ) {
35 taskexit( p1{w}, p2{w} );
38 task aliasWithTwoLinks
39 ( Parameter p1{!w}, Parameter p2{!w} ) {
44 taskexit( p1{w}, p2{w} );
47 task aliasWithThreeLinks
48 ( Parameter p1{!w}, Parameter p2{!w} ) {
54 taskexit( p1{w}, p2{w} );
57 task noAliasBreakLinks
58 ( Parameter p1{!w}, Parameter p2{!w} ) {
65 taskexit( p1{w}, p2{w} );
68 task possibleAliasConditional
69 ( Parameter p1{!w}, Parameter p2{!w} ) {
81 taskexit( p1{w}, p2{w} );
85 ( Parameter p1{!w}, Parameter p2{!w} ) {
89 for( int i =0; i < 100; ++i ) {
94 for( int j = 0; i < 50; ++j ) {
114 taskexit( p1{w}, p2{w} );
117 task literalTest( Parameter p1{!w} ) {
128 ( Parameter p1{!w}, Parameter p2{!w} ) {
130 for( int i = 0; i < 1; ++i ) {
131 p1.f = new Parameter();
134 taskexit( p1{w}, p2{w} );
137 task newPossibleAlias
138 ( Parameter p1{!w}, Parameter p2{!w} ) {
142 for( int i = 0; i < 1; ++i ) {
143 p1.f = new Parameter();
153 taskexit( p1{w}, p2{w} );