- Timestamp:
- Jul 13, 2021, 12:41:41 PM (3 years ago)
- Branches:
- ADT, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast-unique-expr, pthread-emulation, qualifiedEnum
- Children:
- ca69a8a
- Parents:
- 37c6f77
- Location:
- tests
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
tests/.expect/polymorphism.txt
r37c6f77 r801978b 1 1 123 456 456 2 2 5 5 3 === checkPlan9offsets 4 static: 5 offset of inner double: 8 6 offset of inner float: 16 7 dynamic: 8 offset of inner double: 8 9 offset of inner float: 16 -
tests/polymorphism.cfa
r37c6f77 r801978b 54 54 b.i = s.i; 55 55 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); 56 90 } 57 91 … … 114 148 assertf(ret == u.f2, "union operation fails in polymorphic context."); 115 149 } 150 151 checkPlan9offsets(); 116 152 } 117 153
Note: See TracChangeset
for help on using the changeset viewer.