Changeset 598f50e


Ignore:
Timestamp:
Oct 25, 2017, 5:28:51 PM (4 years ago)
Author:
Rob Schluntz <rschlunt@…>
Branches:
aaron-thesis, arm-eh, cleanup-dtors, deferred_resn, demangler, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, new-env, no_list, persistent-indexer, resolv-new, with_gc
Children:
4ee1efb, b0837e4
Parents:
b226721
Message:

Update polymorphism test

Location:
src/tests
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • src/tests/.expect/polymorphism.txt

    rb226721 r598f50e  
    11123 456 456
     25 5
  • src/tests/polymorphism.c

    rb226721 r598f50e  
    1616forall(otype T)
    1717T f(T x, T y) {
    18   x = y;
    19   return x;
     18        x = y;
     19        return x;
     20}
     21
     22forall(otype T) T ident(T x) {
     23        return x;
    2024}
    2125
    2226int 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));
    2837}
    2938
Note: See TracChangeset for help on using the changeset viewer.