source: src/Tests/Expect-a/Forall.txt @ 4c82a3c

ADTaaron-thesisarm-ehast-experimentalcleanup-dtorsctordeferred_resndemanglerenumforall-pointer-decaygc_noraiijacob/cs343-translationjenkins-sandboxmemorynew-astnew-ast-unique-exprnew-envno_listpersistent-indexerpthread-emulationqualifiedEnumresolv-newwith_gc
Last change on this file since 4c82a3c was b1d6dd5, checked in by Peter A. Buhr <pabuhr@…>, 9 years ago

fix parsing error for EOF message, change cfa-ccp -x flag to -v, regression testing third attempt: consolidate example programs

  • Property mode set to 100644
File size: 15.3 KB
RevLine 
[b1d6dd5]1?=?: function
2    with parameters
3      pointer to signed int
4      signed int
5    returning
6      signed int
7
8?=?: function
9    with parameters
10      pointer to float
11      float
12    returning
13      float
14
15?=?: function
16    with parameters
17      pointer to pointer to signed int
18      pointer to signed int
19    returning
20      pointer to signed int
21
22?=?: function
23    with parameters
24      pointer to pointer to float
25      pointer to float
26    returning
27      pointer to float
28
29?=?: function
30    with parameters
31      pointer to char
32      char
33    returning
34      char
35
36?=?: function
37    with parameters
38      pointer to pointer to function
39          with parameters
40            void
41          returning
42            void
43
44      pointer to function
45          with parameters
46            void
47          returning
48            void
49
50    returning
51      pointer to function
52          with parameters
53            void
54          returning
55            void
56
57
58g1: function
59      accepting unspecified arguments
60    returning
61      void
62    with body
63      CompoundStmt
64        Declaration of f: forall
65              T: type
66                with assertions
67                  ?=?: function
68                      with parameters
69                        pointer to instance of type T (not function type)
70                        instance of type T (not function type)
71                      returning
72                        instance of type T (not function type)
73
74
75            function
76            with parameters
77              instance of type T (not function type)
78            returning
79              instance of type T (not function type)
80
81        Declaration of f: function
82            with parameters
83              signed int
84            returning
85              void
86
87        Declaration of h: function
88            with parameters
89              p: pointer to function
90                  with parameters
91                    void
92                  returning
93                    void
94
95            returning
96              void
97
98        Declaration of x: signed int
99        Declaration of y: pointer to function
100            with parameters
101              void
102            returning
103              void
104
105        Declaration of z: char
106        Declaration of w: float
107                  Expression Statement:
108            Applying untyped:
109                Name: f
110            ...to:
111                Name: x
112
113                  Expression Statement:
114            Applying untyped:
115                Name: f
116            ...to:
117                Name: y
118
119                  Expression Statement:
120            Applying untyped:
121                Name: f
122            ...to:
123                Name: z
124
125                  Expression Statement:
126            Applying untyped:
127                Name: f
128            ...to:
129                Name: w
130
131                  Expression Statement:
132            Applying untyped:
133                Name: h
134            ...to:
135                Applying untyped:
136                    Name: f
137                ...to:
138                    Name: y
139
140
141g2: function
142      accepting unspecified arguments
143    returning
144      void
145    with body
146      CompoundStmt
147        Declaration of f: forall
148              T: type
149                with assertions
150                  ?=?: function
151                      with parameters
152                        pointer to instance of type T (not function type)
153                        instance of type T (not function type)
154                      returning
155                        instance of type T (not function type)
156
157
158            function
159            with parameters
160              instance of type T (not function type)
161              instance of type T (not function type)
162            returning
163              void
164
165        Declaration of f: forall
166              T: type
167                with assertions
168                  ?=?: function
169                      with parameters
170                        pointer to instance of type T (not function type)
171                        instance of type T (not function type)
172                      returning
173                        instance of type T (not function type)
174
175
176              U: type
177                with assertions
178                  ?=?: function
179                      with parameters
180                        pointer to instance of type U (not function type)
181                        instance of type U (not function type)
182                      returning
183                        instance of type U (not function type)
184
185
186            function
187            with parameters
188              instance of type T (not function type)
189              instance of type U (not function type)
190            returning
191              void
192
193        Declaration of x: signed int
194        Declaration of y: float
195        Declaration of z: pointer to signed int
196        Declaration of w: pointer to float
197                  Expression Statement:
198            Applying untyped:
199                Name: f
200            ...to:
201                Name: x
202                Name: y
203
204                  Expression Statement:
205            Applying untyped:
206                Name: f
207            ...to:
208                Name: z
209                Name: w
210
211                  Expression Statement:
212            Applying untyped:
213                Name: f
214            ...to:
215                Name: x
216                Name: z
217
218
[5f2f2d7]219f: typedef for pointer to forall
220      T: type
221        with assertions
222          ?=?: function
223              with parameters
224                pointer to instance of type T (not function type)
225                instance of type T (not function type)
226              returning
227                instance of type T (not function type)
228
229
230    function
[51b7345]231    with parameters
232      signed int
233    returning
234      signed int
235
[5f2f2d7]236swap: forall
237      T: type
238        with assertions
239          ?=?: function
240              with parameters
241                pointer to instance of type T (not function type)
242                instance of type T (not function type)
243              returning
244                instance of type T (not function type)
245
246
247    function
[51b7345]248    with parameters
[5f2f2d7]249      left: instance of type T (not function type)
250      right: instance of type T (not function type)
[51b7345]251    returning
252      void
253    with body
[5f2f2d7]254      CompoundStmt
255        Declaration of temp: instance of type T (not function type) with initializer
256          Simple Initializer:             Name: left
257
258                  Expression Statement:
259            Applying untyped:
260                Name: ?=?
261            ...to:
262                Address of:
263                  Name: left
264                Name: right
265
266                  Expression Statement:
267            Applying untyped:
268                Name: ?=?
269            ...to:
270                Address of:
271                  Name: right
272                Name: temp
[51b7345]273
274
275context sumable
276    with parameters
[5f2f2d7]277      T: type
[51b7345]278
279    with members
[5f2f2d7]280      0: const instance of type T (not function type)
281      ?+?: function
[51b7345]282          with parameters
[5f2f2d7]283            instance of type T (not function type)
284            instance of type T (not function type)
[51b7345]285          returning
[5f2f2d7]286            instance of type T (not function type)
[51b7345]287
[5f2f2d7]288      ?++: function
[51b7345]289          with parameters
[5f2f2d7]290            instance of type T (not function type)
[51b7345]291          returning
[5f2f2d7]292            instance of type T (not function type)
[51b7345]293
[5f2f2d7]294      ?+=?: function
[51b7345]295          with parameters
[5f2f2d7]296            instance of type T (not function type)
297            instance of type T (not function type)
[51b7345]298          returning
[5f2f2d7]299            instance of type T (not function type)
[51b7345]300
301
[5f2f2d7]302T1: type
[51b7345]303  with assertions
[5f2f2d7]304    0: const instance of type T1 (not function type)
305    ?+?: function
[51b7345]306        with parameters
[5f2f2d7]307          instance of type T1 (not function type)
308          instance of type T1 (not function type)
[51b7345]309        returning
[5f2f2d7]310          instance of type T1 (not function type)
[51b7345]311
[5f2f2d7]312    ?++: function
[51b7345]313        with parameters
[5f2f2d7]314          instance of type T1 (not function type)
[51b7345]315        returning
[5f2f2d7]316          instance of type T1 (not function type)
[51b7345]317
[5f2f2d7]318    ?+=?: function
[51b7345]319        with parameters
[5f2f2d7]320          instance of type T1 (not function type)
321          instance of type T1 (not function type)
[51b7345]322        returning
[5f2f2d7]323          instance of type T1 (not function type)
[51b7345]324
325
[5f2f2d7]326T2: type
[51b7345]327  with parameters
[5f2f2d7]328    P1: type
329    P2: type
[51b7345]330
[5f2f2d7]331T3: type
[51b7345]332  with assertions
333    instance of context sumable
334      with parameters
[5f2f2d7]335        instance of type T3 (not function type)
[51b7345]336
337
338struct __anonymous0
339    with members
[5f2f2d7]340      i: instance of type P1 (not function type)
341      j: instance of type P2 (not function type)
[51b7345]342
[5f2f2d7]343T2: type for instance of struct __anonymous0
[51b7345]344  with parameters
[5f2f2d7]345    P1: type
346    P2: type
[51b7345]347
348  with assertions
349    instance of context sumable
350      with parameters
[5f2f2d7]351        instance of type T2 (not function type)
[51b7345]352          with parameters
[5f2f2d7]353            instance of type P1 (not function type)
354            instance of type P2 (not function type)
[51b7345]355
356
357
[5f2f2d7]358w1: instance of type T2 (not function type)
[51b7345]359  with parameters
360    signed int
361    signed int
362
[5f2f2d7]363w2: typedef for instance of type T2 (not function type)
[51b7345]364  with parameters
365    signed int
366    signed int
367
[5f2f2d7]368g2: instance of type w2 (not function type)
369w3: type for instance of type T2 (not function type)
[51b7345]370  with parameters
371    signed int
372    signed int
373
[5f2f2d7]374g3: instance of type w3 (not function type)
375sum: forall
376      T: type
[51b7345]377        with assertions
[5f2f2d7]378          ?=?: function
379              with parameters
380                pointer to instance of type T (not function type)
381                instance of type T (not function type)
382              returning
383                instance of type T (not function type)
384
[51b7345]385          instance of context sumable
386            with parameters
[5f2f2d7]387              instance of type T (not function type)
[51b7345]388
389
[5f2f2d7]390    function
391    with parameters
392      n: signed int
393      a: open array of instance of type T (not function type)
[51b7345]394    returning
[5f2f2d7]395      instance of type T (not function type)
[51b7345]396    with body
[5f2f2d7]397      CompoundStmt
398        Declaration of total: instance of type T (not function type) with initializer
399          Simple Initializer:             Name: 0
400
401        Declaration of i: signed int
402                  Labels: {}
403          For Statement
404            initialization:
405              Expression Statement:
406                Applying untyped:
407                    Name: ?=?
408                ...to:
409                    Address of:
410                      Name: i
411                    Name: 0
412
413            condition:
414              Cast of:
415                Applying untyped:
416                    Name: ?!=?
417                ...to:
418                    Applying untyped:
419                        Name: ?<?
420                    ...to:
421                        Name: i
422                        Name: n
423                    Name: 0
424
425              to:
426                signed int
427
428            increment:
429              Applying untyped:
430                  Name: ?+=?
431              ...to:
432                  Address of:
433                    Name: i
434                  Name: 1
435
436            statement block:
437              Expression Statement:
438                Applying untyped:
439                    Name: ?=?
440                ...to:
441                    Address of:
442                      Name: total
443                    Applying untyped:
444                        Name: ?+?
445                    ...to:
446                        Name: total
447                        Applying untyped:
448                            Name: ?[?]
449                        ...to:
450                            Name: a
451                            Name: i
452
453
454                  Return Statement, returning: Name: total
455
456
457
458twice: forall
459      T: type
[51b7345]460        with assertions
[5f2f2d7]461          ?=?: function
462              with parameters
463                pointer to instance of type T (not function type)
464                instance of type T (not function type)
465              returning
466                instance of type T (not function type)
467
468          0: const instance of type T (not function type)
469          ?+?: function
[51b7345]470              with parameters
[5f2f2d7]471                instance of type T (not function type)
472                instance of type T (not function type)
[51b7345]473              returning
[5f2f2d7]474                instance of type T (not function type)
[51b7345]475
[5f2f2d7]476          ?++: function
[51b7345]477              with parameters
[5f2f2d7]478                instance of type T (not function type)
[51b7345]479              returning
[5f2f2d7]480                instance of type T (not function type)
[51b7345]481
[5f2f2d7]482          ?+=?: function
[51b7345]483              with parameters
[5f2f2d7]484                instance of type T (not function type)
485                instance of type T (not function type)
[51b7345]486              returning
[5f2f2d7]487                instance of type T (not function type)
[51b7345]488
489
[5f2f2d7]490    function
491    with parameters
492      t: instance of type T (not function type)
[51b7345]493    returning
[5f2f2d7]494      instance of type T (not function type)
[51b7345]495    with body
[5f2f2d7]496      CompoundStmt
497                  Return Statement, returning: Applying untyped:
498    Name: ?+?
499...to:
500    Name: t
501    Name: t
[51b7345]502
[5f2f2d7]503
504
[b1d6dd5]505min: forall
506      T: type
507        with assertions
508          ?=?: function
509              with parameters
510                pointer to instance of type T (not function type)
511                instance of type T (not function type)
512              returning
513                instance of type T (not function type)
514
515          0: const instance of type T (not function type)
516          ?!=?: function
517              with parameters
518                instance of type T (not function type)
519                instance of type T (not function type)
520              returning
521                signed int
522
523          ?<?: function
524              with parameters
525                instance of type T (not function type)
526                instance of type T (not function type)
527              returning
528                signed int
529
530
531    function
532    with parameters
533      t1: instance of type T (not function type)
534      t2: instance of type T (not function type)
535    returning
536      instance of type T (not function type)
537    with body
538      CompoundStmt
539                  Return Statement, returning: Conditional expression on:
540  Cast of:
541    Applying untyped:
542        Name: ?!=?
543    ...to:
544        Applying untyped:
545            Name: ?<?
546        ...to:
547            Name: t1
548            Name: t2
549        Name: 0
550
551  to:
552    signed int
553First alternative:
554  Name: t1
555Second alternative:
556  Name: t2
557
558
559
560
[5f2f2d7]561main: C function
562      accepting unspecified arguments
[51b7345]563    returning
564      signed int
565    with body
[5f2f2d7]566      CompoundStmt
567        Declaration of x: signed int with initializer
568          Simple Initializer:             Name: 1
569
570        Declaration of y: signed int with initializer
571          Simple Initializer: constant expression 2 signed int
572        Declaration of a: array of signed int with dimension of constant expression 10 signed int
573        Declaration of f: float
574                  Expression Statement:
575            Applying untyped:
576                Name: swap
577            ...to:
578                Name: x
579                Name: y
580
581                  Expression Statement:
582            Applying untyped:
583                Name: twice
584            ...to:
585                Name: x
586
587                  Expression Statement:
588            Applying untyped:
589                Name: ?=?
590            ...to:
591                Address of:
592                  Name: f
593                Applying untyped:
594                    Name: min
595                ...to:
596constant expression 4.0 double constant expression 3.0 double
597                  Expression Statement:
598            Applying untyped:
599                Name: sum
600            ...to:
601constant expression 10 signed int                 Name: a
[51b7345]602
603
Note: See TracBrowser for help on using the repository browser.