Changeset 598f50e for src/tests/polymorphism.c
- Timestamp:
- Oct 25, 2017, 5:28:51 PM (7 years ago)
- Branches:
- ADT, aaron-thesis, arm-eh, ast-experimental, cleanup-dtors, deferred_resn, demangler, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, pthread-emulation, qualifiedEnum, resolv-new, with_gc
- Children:
- 4ee1efb, b0837e4
- Parents:
- b226721
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/tests/polymorphism.c
rb226721 r598f50e 16 16 forall(otype T) 17 17 T f(T x, T y) { 18 x = y; 19 return x; 18 x = y; 19 return x; 20 } 21 22 forall(otype T) T ident(T x) { 23 return x; 20 24 } 21 25 22 26 int main() { 23 // ensure that x is not changed by the invocation of a polymorphic function 24 int x = 123; 25 int y = 456; 26 int z = f(x, y); 27 printf("%d %d %d\n", x, y, z); 27 // ensure that x is not changed by the invocation of a polymorphic function 28 int x = 123; 29 int y = 456; 30 int z = f(x, y); 31 printf("%d %d %d\n", x, y, z); 32 33 // explicitly specialize function 34 int (*f)(int) = ident; 35 ((int(*)(int))ident); 36 printf("%d %d\n", f(5), ((int(*)(int))ident)(5)); 28 37 } 29 38
Note: See TracChangeset
for help on using the changeset viewer.