Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • tests/polymorphism.cfa

    r801978b rfd54fef  
    5454        b.i = s.i;
    5555        return b.j;
    56 }
    57 
    58 void checkPlan9offsets() {
    59 
    60         forall( T )
    61         struct thing {
    62                 T q;                // variable-sized padding
    63                 inline double;
    64                 inline float;
    65         };
    66 
    67         #define SHOW_OFFSETS \
    68                 double & x_inner_double = x; \
    69                 float  & x_inner_float  = x; \
    70                 printf("  offset of inner double: %ld\n", ((char *) & x_inner_double) - ((char *) & x) ); \
    71                 printf("  offset of inner float:  %ld\n", ((char *) & x_inner_float ) - ((char *) & x) );
    72 
    73         void showStatic( thing(int) & x ) {
    74                 printf("static:\n");
    75                 SHOW_OFFSETS
    76         }
    77 
    78         forall( T )
    79         void showDynamic( thing(T) & x ) {
    80                 printf("dynamic:\n");
    81                 SHOW_OFFSETS
    82         }
    83 
    84         #undef SHOW_OFFSETS
    85 
    86         printf("=== checkPlan9offsets\n");
    87         thing(int) x;
    88         showStatic(x);
    89         showDynamic(x);
    9056}
    9157
     
    148114                assertf(ret == u.f2, "union operation fails in polymorphic context.");
    149115        }
    150 
    151         checkPlan9offsets();
    152116}
    153117
Note: See TracChangeset for help on using the changeset viewer.