source: src/tests/globals.c@ 3787dc1

ADT aaron-thesis arm-eh ast-experimental cleanup-dtors deferred_resn demangler enum forall-pointer-decay jacob/cs343-translation jenkins-sandbox new-ast new-ast-unique-expr new-env no_list persistent-indexer pthread-emulation qualifiedEnum resolv-new with_gc
Last change on this file since 3787dc1 was 2afec66, checked in by Rob Schluntz <rschlunt@…>, 8 years ago

Update several tests for references

  • Property mode set to 100644
File size: 1.3 KB
Line 
1#include <fstream>
2
3struct value_t {
4 int value;
5};
6
7void ?{}( value_t & this ) { this.value = 22; }
8
9//Standard case
10struct g_t {
11 value_t val;
12};
13
14void ?{}( g_t & this ) { (this.val){}; }
15
16g_t g;
17
18//Autogen case
19struct ga_t {
20 value_t val;
21};
22
23ga_t ga;
24
25//Inline case
26struct gi_t;
27void ?{}( gi_t & this );
28
29struct gi_t {
30 value_t val;
31} gi;
32
33void ?{}( gi_t & this ) { (this.val){}; }
34
35//Inline autogen case
36struct gia_t {
37 value_t val;
38} gia;
39
40//Static case
41struct gs_t {
42 value_t val;
43};
44
45void ?{}( gs_t & this ) { (this.val){}; }
46
47static gs_t gs;
48
49//Static autogen case
50struct gsa_t {
51 value_t val;
52};
53
54static gsa_t gsa;
55
56//Static inline case
57struct gsi_t;
58void ?{}( gsi_t & this );
59
60static struct gsi_t {
61 value_t val;
62} gsi;
63
64void ?{}( gsi_t & this ) { (this.val){}; }
65
66//Static inline autogen case
67static struct gsia_t {
68 value_t val;
69} gsia;
70
71int main() {
72 sout | "static\t\tinline\t\tautogen\t\tvalue" | endl;
73
74 sout | "no \t\tno \t\tno \t\t" | g.val.value | endl;
75 sout | "no \t\tno \t\tyes\t\t" | ga.val.value | endl;
76 sout | "no \t\tyes\t\tno \t\t" | gi.val.value | endl;
77 sout | "no \t\tyes\t\tyes\t\t" | gia.val.value | endl;
78 sout | "yes\t\tno \t\tno \t\t" | gs.val.value | endl;
79 sout | "yes\t\tno \t\tyes\t\t" | gsa.val.value | endl;
80 sout | "yes\t\tyes\t\tno \t\t" | gsi.val.value | endl;
81 sout | "yes\t\tyes\t\tyes\t\t" | gsia.val.value | endl;
82
83}
Note: See TracBrowser for help on using the repository browser.