source: src/tests/genericUnion.c @ 358cba0

ADTaaron-thesisarm-ehast-experimentalcleanup-dtorsdeferred_resndemanglerenumforall-pointer-decayjacob/cs343-translationjenkins-sandboxnew-astnew-ast-unique-exprnew-envno_listpersistent-indexerpthread-emulationqualifiedEnumwith_gc
Last change on this file since 358cba0 was 240e1ff, checked in by Rob Schluntz <rschlunt@…>, 7 years ago

added a simple test for generic unions

  • Property mode set to 100644
File size: 492 bytes
Line 
1#include <limits>
2
3forall(otype T)
4union ByteView {
5        T val;
6        char bytes[(sizeof(int))]; // want to change to sizeof(T)
7};
8
9forall(otype T)
10void print(ByteView(T) x) {
11        for (int i = 0; i < sizeof(int); i++) { // want to change to sizeof(T)
12                printf("%02x", x.bytes[i] & 0xff);
13        }
14}
15
16forall(otype T)
17void f(ByteView(T) x, T val) {
18        print(x);
19        printf(" ");
20        x.val = val;
21        print(x);
22        printf("\n");
23}
24
25int main() {
26        ByteView(unsigned) u = { 0 };
27        ByteView(int) i = { 0 };
28        f(u, MAX);
29        f(i, -1);
30}
Note: See TracBrowser for help on using the repository browser.