Ignore:
Timestamp:
Nov 28, 2017, 10:21:50 AM (4 years ago)
Author:
Rob Schluntz <rschlunt@…>
Branches:
arm-eh, cleanup-dtors, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr
Children:
9c35431
Parents:
c0d00b6 (diff), c029f4d (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'master' into cleanup-dtors

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/tests/polymorphism.c

    rc0d00b6 rc6e2c18  
    4747        S s;
    4848        s.i = i;
    49         assert(s.i == i);
     49        assertf(s.i == i, "struct operation fails in polymorphic context.");
    5050
    5151        B b;
     
    7373        {
    7474                // test aggregates with polymorphic members
    75                 typedef uint32_t x_type;
    76                 typedef uint64_t y_type;
     75                typedef __attribute__((aligned(8))) uint32_t x_type;
     76                typedef __attribute__((aligned(8))) uint64_t y_type;
    7777
    7878                x_type x = 3;
     
    8989                // ensure that the size of aggregates with polymorphic members
    9090                // matches the size of the aggregates in a monomorphic context
    91                 assert( struct_size(x, y) == sizeof(S) );
    92                 assert( union_size(x, y) == sizeof(U) );
     91                size_t ssz = struct_size(x, y);
     92                size_t usz = union_size(x, y);
     93                assertf( ssz == sizeof(S), "struct size differs in polymorphic context: %zd / %zd", ssz, sizeof(S));
     94                assertf( usz == sizeof(U), "union size differs in polymorphic context: %zd / %zd", usz, sizeof(U));
    9395
    9496                y_type ?=?(y_type & this, zero_t) {
     
    111113                u.f2 = 0;
    112114                u.f1 = x;
    113                 assert(ret == u.f2);
     115                assertf(ret == u.f2, "union operation fails in polymorphic context.");
    114116        }
    115117}
Note: See TracChangeset for help on using the changeset viewer.