aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/ada/acats/support
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/ada/acats/support')
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/acats25.lst4308
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/checkfil.ada197
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/enumchek.ada65
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/f340a000.a149
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/f340a001.a75
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/f341a00.a216
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/f390a00.a94
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/f392a00.a200
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/f392c00.a267
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/f392d00.a103
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/f393a00.a245
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/f393b00.a101
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/f3a2a00.a81
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/f460a00.a90
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/f730a000.a107
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/f730a001.a76
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/f731a00.a66
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/f940a00.a97
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/f954a00.a134
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/fa11a00.a73
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/fa11b00.a110
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/fa11c00.a112
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/fa11d00.a78
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/fa13a00.a171
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/fa13b00.a106
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/fa21a00.a127
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/fb20a00.a101
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/fb40a00.a81
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/fc50a00.a92
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/fc51a00.a99
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/fc51b00.a62
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/fc51c00.a112
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/fc51d00.a82
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/fc54a00.a132
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/fc70a00.a117
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/fc70b00.a133
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/fc70c00.a100
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/fcndecl.ada50
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/fd72a00.a84
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/fdb0a00.a144
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/fdd2a00.a149
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/fxa5a00.a121
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/fxaca00.a144
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/fxacb00.a107
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/fxacc00.a115
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/fxc6a00.a162
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/fxe2a00.a90
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/fxf2a00.a96
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/fxf3a00.a330
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/impbit.adb6
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/impdef.a376
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/impdefd.a69
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/impdefe.a58
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/impdefg.a83
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/impdefh.a102
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/lencheck.ada60
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/macro.dfs301
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/macrodef.adb11
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/macrosub.ada548
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/repbody.ada329
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/repspec.ada149
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/spprt13s.tst67
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/tctouch.ada264
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/tsttests.dat38
-rw-r--r--gcc-4.9/gcc/testsuite/ada/acats/support/widechr.a294
65 files changed, 12906 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/acats25.lst b/gcc-4.9/gcc/testsuite/ada/acats/support/acats25.lst
new file mode 100644
index 000000000..0133ed378
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/acats25.lst
@@ -0,0 +1,4308 @@
+a22006b.ada
+a22006c.ada
+a22006d.ada
+a26007a.tst
+a27003a.ada
+a29003a.ada
+a2a031a.ada
+a33003a.ada
+a34017c.ada
+a35101b.ada
+a35402a.ada
+a35801f.ada
+a35902c.ada
+a38106d.ada
+a38106e.ada
+a49027a.ada
+a49027b.ada
+a49027c.ada
+a54b01a.ada
+a54b02a.ada
+a55b12a.ada
+a55b13a.ada
+a55b14a.ada
+a71004a.ada
+a73001i.ada
+a73001j.ada
+a74105b.ada
+a74106a.ada
+a74106b.ada
+a74106c.ada
+a74205e.ada
+a74205f.ada
+a83009a.ada
+a83009b.ada
+a83a02a.ada
+a83a02b.ada
+a83a06a.ada
+a83a08a.ada
+a83c01c.ada
+a83c01h.ada
+a83c01i.ada
+a85007d.ada
+a85013b.ada
+a87b59a.ada
+a95001c.ada
+a95074d.ada
+a97106a.ada
+a99006a.ada
+aa2010a.ada
+aa2012a.ada
+acats25.lst
+ac1015b.ada
+ac3106a.ada
+ac3206a.ada
+ac3207a.ada
+ad7001b.ada
+ad7001c0.ada
+ad7001c1.ada
+ad7001d0.ada
+ad7001d1.ada
+ad7006a.ada
+ad7101a.ada
+ad7101c.ada
+ad7102a.ada
+ad7103a.ada
+ad7103c.ada
+ad7104a.ada
+ad7201a.ada
+ad7203b.ada
+ad7205b.ada
+ad8011a.tst
+ada101a.ada
+ae2113a.ada
+ae2113b.ada
+ae3002g.ada
+ae3101a.ada
+ae3702a.ada
+ae3709a.ada
+b22001a.tst
+b22001b.tst
+b22001c.tst
+b22001d.tst
+b22001e.tst
+b22001f.tst
+b22001g.tst
+b22001h.ada
+b22001i.tst
+b22001j.tst
+b22001k.tst
+b22001l.tst
+b22001m.tst
+b22001n.tst
+b23002a.ada
+b23004a.ada
+b23004b.ada
+b24001a.ada
+b24001b.ada
+b24001c.ada
+b24005a.ada
+b24005b.ada
+b24007a.ada
+b24009a.ada
+b24009b.ada
+b24104a.ada
+b24204a.ada
+b24204b.ada
+b24204c.ada
+b24204d.ada
+b24204e.ada
+b24204f.ada
+b24205a.ada
+b24206a.ada
+b24206b.ada
+b24211b.ada
+b25002a.ada
+b25002b.ada
+b26001a.ada
+b26002a.ada
+b26005a.ada
+b28001a.ada
+b28001b.ada
+b28001c.ada
+b28001d.ada
+b28001e.ada
+b28001f.ada
+b28001g.ada
+b28001h.ada
+b28001i.ada
+b28001j.ada
+b28001k.ada
+b28001l.ada
+b28001m.ada
+b28001n.ada
+b28001o.ada
+b28001p.ada
+b28001q.ada
+b28001r.ada
+b28001s.ada
+b28001t.ada
+b28001u.ada
+b28001v.ada
+b28001w.ada
+b29001a.ada
+b2a003a.ada
+b2a003b.ada
+b2a003c.ada
+b2a003d.ada
+b2a003e.ada
+b2a003f.ada
+b2a005a.ada
+b2a005b.ada
+b2a007a.ada
+b2a010a.ada
+b2a021a.ada
+b32101a.ada
+b32103a.ada
+b32104a.ada
+b32106a.ada
+b32201a.ada
+b32202a.ada
+b32202b.ada
+b32202c.ada
+b330001.a
+b33001a.ada
+b33101a.ada
+b33102a.ada
+b33102b.ada
+b33102c.ada
+b33102d.ada
+b33102e.ada
+b33201a.ada
+b33201b.ada
+b33201c.ada
+b33201d.ada
+b33201e.ada
+b33204a.ada
+b33205a.ada
+b33302a.ada
+b34001b.ada
+b34001e.ada
+b34002b.ada
+b34003b.ada
+b34004b.ada
+b34005b.ada
+b34005e.ada
+b34005h.ada
+b34005k.ada
+b34005n.ada
+b34005q.ada
+b34005t.ada
+b34006b.ada
+b34006e.ada
+b34006h.ada
+b34006k.ada
+b34007b.ada
+b34007e.ada
+b34007h.ada
+b34007k.ada
+b34007n.ada
+b34007q.ada
+b34007t.ada
+b34008b.ada
+b34009b.ada
+b34009e.ada
+b34009h.ada
+b34009k.ada
+b34011a.ada
+b34014b.ada
+b34014d.ada
+b34014f.ada
+b34014i.ada
+b34014m.ada
+b34014o.ada
+b34014q.ada
+b34014s.ada
+b34014v.ada
+b34014z.ada
+b35004a.ada
+b35101a.ada
+b35103a.ada
+b35103b.ada
+b35302a.ada
+b354001.a
+b35401a.ada
+b35401b.ada
+b35403a.ada
+b35501a.ada
+b35501b.ada
+b35506a.ada
+b35506b.ada
+b35506c.ada
+b35506d.ada
+b35701a.ada
+b35709a.ada
+b35901a.ada
+b35901c.ada
+b35901d.ada
+b35a01a.ada
+b35a08a.ada
+b360001.a
+b36001a.ada
+b36002a.ada
+b36101a.ada
+b36102a.ada
+b36103a.ada
+b36105c.dep
+b36171a.ada
+b36171b.ada
+b36171c.ada
+b36171d.ada
+b36171e.ada
+b36171f.ada
+b36171g.ada
+b36171h.ada
+b36171i.ada
+b36201a.ada
+b36307a.ada
+b370001.a
+b370002.a
+b37004a.ada
+b37004b.ada
+b37004c.ada
+b37004d.ada
+b37004e.ada
+b37004f.ada
+b37004g.ada
+b3710010.a
+b3710011.a
+b3710012.a
+b3710013.a
+b3710014.am
+b37101a.ada
+b37102a.ada
+b37104a.ada
+b37106a.ada
+b37201a.ada
+b37201b.ada
+b37203a.ada
+b37301i.ada
+b37301j.ada
+b37302a.ada
+b37303a.ada
+b37309b.ada
+b37310b.ada
+b37311a.ada
+b37401a.ada
+b37409b.ada
+b380001.a
+b38003a.ada
+b38003b.ada
+b38003c.ada
+b38003d.ada
+b38008a.ada
+b38008b.ada
+b38009a.ada
+b38009d.ada
+b38101a.ada
+b38101b.ada
+b38101c.ada
+b38103a.ada
+b38103b.ada
+b38103c0.ada
+b38103c1.ada
+b38103c2.ada
+b38103c3.ada
+b38103d.ada
+b38103e0.ada
+b38103e1.ada
+b38105a.ada
+b38105b.ada
+b38203a.ada
+b390001.a
+b391001.a
+b391002.a
+b391003.a
+b391004.a
+b392001.a
+b392002.a
+b392003.a
+b392004.a
+b392005.a
+b392006.a
+b392007.a
+b392008.a
+b392009.a
+b392010.a
+b392011.a
+b393001.a
+b393002.a
+b393003.a
+b393004.a
+b393005.a
+b393006.a
+b393007.a
+b3a0001.a
+b3a0002.a
+b3a0003.a
+b3a0004.a
+b3a2002.a
+b3a2003.a
+b3a2004.a
+b3a2005.a
+b3a2006.a
+b3a2007.a
+b3a2008.a
+b3a2009.a
+b3a2010.a
+b3a2011.a
+b3a2012.a
+b3a2013.a
+b3a2014.a
+b3a2015.a
+b3a2016.a
+b41101a.ada
+b41101c.ada
+b41201a.ada
+b41201c.ada
+b41202c.ada
+b41202d.ada
+b41324b.ada
+b41325b.ada
+b41327b.ada
+b420001.a
+b430001.a
+b43001m.ada
+b43002d.ada
+b43002e.ada
+b43002f.ada
+b43002g.ada
+b43002h.ada
+b43002i.ada
+b43002j.ada
+b43002k.ada
+b43005a.ada
+b43005b.ada
+b43005f.ada
+b43101a.ada
+b43102a.ada
+b43102b.ada
+b43105c.ada
+b43201a.ada
+b43201c.ada
+b43201d.ada
+b43202a.ada
+b43202c.ada
+b43209b.ada
+b43221a.ada
+b43221b.ada
+b43223a.ada
+b44001a.ada
+b44001b.ada
+b44002b.ada
+b44002c.ada
+b44004a.ada
+b44004b.ada
+b44004c.ada
+b44004d.ada
+b44004e.ada
+b45102a.ada
+b45116a.ada
+b45121a.ada
+b45204a.ada
+b45205a.ada
+b45206c.ada
+b45207a.ada
+b45207b.ada
+b45207c.ada
+b45207d.ada
+b45207g.ada
+b45207h.ada
+b45207i.ada
+b45207j.ada
+b45207m.ada
+b45207n.ada
+b45207o.ada
+b45207p.ada
+b45207s.ada
+b45207t.ada
+b45207u.ada
+b45207v.ada
+b45208a.ada
+b45208b.ada
+b45208c.ada
+b45208g.ada
+b45208h.ada
+b45208i.ada
+b45208m.ada
+b45208n.ada
+b45208s.ada
+b45208t.ada
+b45209a.ada
+b45209b.ada
+b45209c.ada
+b45209d.ada
+b45209e.ada
+b45209f.ada
+b45209g.ada
+b45209h.ada
+b45209i.ada
+b45209j.ada
+b45209k.ada
+b45221a.ada
+b45261a.ada
+b45261b.ada
+b45261c.ada
+b45261d.ada
+b45301a.ada
+b45301b.ada
+b45301c.ada
+b45302a.ada
+b45341a.ada
+b455002.a
+b45501a.ada
+b45501b.ada
+b45501c.ada
+b45522a.ada
+b45537a.ada
+b45601a.ada
+b45625a.ada
+b45661a.ada
+b460001.a
+b460002.a
+b460004.a
+b460005.a
+b46002a.ada
+b46003a.ada
+b46004a.ada
+b46004b.ada
+b46004c.ada
+b46004d.ada
+b46004e.ada
+b46005a.ada
+b47001a.ada
+b480001.a
+b48001a.ada
+b48001b.ada
+b48002a.ada
+b48002b.ada
+b48002c.ada
+b48002d.ada
+b48002e.ada
+b48002g.ada
+b48003a.ada
+b48003b.ada
+b48003c.ada
+b48003d.ada
+b48003e.ada
+b490001.a
+b490002.a
+b49002a.ada
+b49004a.ada
+b49005a.ada
+b49007a.ada
+b49007b.ada
+b49008a.ada
+b49008c.ada
+b49009b.ada
+b49009c.ada
+b49010a.ada
+b49011a.ada
+b4a010c.ada
+b4a016a.ada
+b51001a.ada
+b51004b.ada
+b51004c.ada
+b52002a.ada
+b52002b.ada
+b52002c.ada
+b52002d.ada
+b52002e.ada
+b52002f.ada
+b52002g.ada
+b52004a.ada
+b52004b.ada
+b52004c.ada
+b52004d.dep
+b52004e.dep
+b53001a.ada
+b53001b.ada
+b53002a.ada
+b53002b.ada
+b53009a.ada
+b53009b.ada
+b53009c.ada
+b54a01b.ada
+b54a01f.ada
+b54a01g.ada
+b54a01l.ada
+b54a05a.ada
+b54a05b.ada
+b54a10a.ada
+b54a12a.ada
+b54a20a.ada
+b54a21a.ada
+b54a25a.ada
+b54a60a.ada
+b54a60b.ada
+b54b01b.tst
+b54b01c.ada
+b54b02b.ada
+b54b02c.ada
+b54b02d.ada
+b54b04a.ada
+b54b04b.ada
+b54b05a.ada
+b54b06a.ada
+b55a01a.ada
+b55a01d.ada
+b55a01e.ada
+b55a01j.ada
+b55a01k.ada
+b55a01l.ada
+b55a01n.ada
+b55a01o.ada
+b55a01t.ada
+b55a01u.ada
+b55a01v.ada
+b55b01a.ada
+b55b01b.ada
+b55b09b.ada
+b55b09c.dep
+b55b09d.dep
+b55b12b.ada
+b55b12c.ada
+b55b17a.ada
+b55b17b.ada
+b55b17c.ada
+b55b18a.ada
+b56001a.ada
+b56001d.ada
+b56001e.ada
+b56001f.ada
+b56001g.ada
+b56001h.ada
+b57001a.ada
+b57001b.ada
+b57001c.ada
+b57001d.ada
+b58001a.ada
+b58002a.ada
+b58002b.ada
+b58002c.ada
+b58003a.ada
+b58003b.ada
+b59001a.ada
+b59001c.ada
+b59001d.ada
+b59001e.ada
+b59001f.ada
+b59001g.ada
+b59001h.ada
+b59001i.ada
+b610001.a
+b61001f.ada
+b61005a.ada
+b61006a.ada
+b61011a.ada
+b62001a.ada
+b62001b.ada
+b62001c.ada
+b62001d.ada
+b63001a.ada
+b63001b.ada
+b63005a.ada
+b63005b.ada
+b63006a.ada
+b63009a.ada
+b63009b.ada
+b63009c0.ada
+b63009c1.ada
+b63009c2.ada
+b63009c3.ada
+b63103a.ada
+b64002a.ada
+b64002c.ada
+b64003a.ada
+b64004a.ada
+b64004b.ada
+b64004c.ada
+b64004d.ada
+b64004e.ada
+b64004f.ada
+b641001.a
+b64101a.ada
+b64201a.ada
+b65001a.ada
+b65002a.ada
+b65002b.ada
+b660001.a
+b660002.a
+b66001a.ada
+b66001b.ada
+b66001c.ada
+b66001d.ada
+b67001a.ada
+b67001b.ada
+b67001c.ada
+b67001d.ada
+b67001h.ada
+b67001i.ada
+b67001j.ada
+b67001k.ada
+b67004a.ada
+b71001a.ada
+b71001b.ada
+b71001c.ada
+b71001d.ada
+b71001f.ada
+b71001g.ada
+b71001h.ada
+b71001i.ada
+b71001j.ada
+b71001l.ada
+b71001m.ada
+b71001n.ada
+b71001o.ada
+b71001p.ada
+b71001r.ada
+b71001t.ada
+b71001u.ada
+b71001v.ada
+b7200010.a
+b7200011.a
+b7200012.a
+b7200013.a
+b7200014.a
+b7200015.a
+b7200016.a
+b730001.a
+b730002.a
+b730003.a
+b730004.a
+b730005.a
+b7300060.a
+b7300061.a
+b7300062.a
+b7300063.am
+b73001a.ada
+b73001b.ada
+b73001c.ada
+b73001d.ada
+b73001e.ada
+b73001f.ada
+b73001g.ada
+b73001h.ada
+b73004a.ada
+b73004b0.ada
+b73004b1.ada
+b73004b2.ada
+b7310010.a
+b7310011.a
+b7310012.a
+b7310013.a
+b7310014.a
+b7310015.a
+b7310016.am
+b731a01.a
+b731a02.a
+b740001.a
+b74001a.ada
+b74001b.ada
+b74101a.ada
+b74101b.ada
+b74103a.ada
+b74103d.ada
+b74103e.ada
+b74103g.ada
+b74103i.ada
+b74104a.ada
+b74105a.ada
+b74105c.ada
+b74201a.ada
+b74202a.ada
+b74202b.ada
+b74202c.ada
+b74202d.ada
+b74203b.ada
+b74203c.ada
+b74203d.ada
+b74203e.ada
+b74205a.ada
+b74207a.ada
+b74304a.ada
+b74304b.ada
+b74304c.ada
+b74404a.ada
+b74404b.ada
+b74409a.ada
+b810001.a
+b830001.a
+b8300020.a
+b8300021.a
+b8300022.a
+b8300023.a
+b8300024.a
+b8300025.am
+b83001a.ada
+b83003a.ada
+b83003b0.ada
+b83003b1.ada
+b83003b2.ada
+b83003b3.ada
+b83003b4.ada
+b83003c.ada
+b83004a.ada
+b83004b0.ada
+b83004b1.ada
+b83004b2.ada
+b83004b3.ada
+b83004c0.ada
+b83004c1.ada
+b83004c2.ada
+b83004d0.ada
+b83004d1.ada
+b83004d2.ada
+b83004d3.ada
+b83006a.ada
+b83006b.ada
+b83008a.ada
+b83008b.ada
+b83011a.ada
+b83023b.ada
+b83024b.ada
+b83024f0.ada
+b83024f1.ada
+b83024f2.ada
+b83024f3.ada
+b83026b.ada
+b83027b.ada
+b83027d.ada
+b83028b.ada
+b83029b.ada
+b83030b.ada
+b83030d.ada
+b83031b.ada
+b83031d.ada
+b83031f.ada
+b83032b.ada
+b83033b.ada
+b83041e.ada
+b83a01a.ada
+b83a01b.ada
+b83a01c.ada
+b83a05a.ada
+b83a06b.ada
+b83a06h.ada
+b83a07a.ada
+b83a07b.ada
+b83a07c.ada
+b83a08b.ada
+b83a09a.ada
+b83b01a.ada
+b83b02c.ada
+b83e01a.ada
+b83e01b.ada
+b83e01c.ada
+b83e01d.ada
+b83e01e0.ada
+b83e01e1.ada
+b83e01e2.ada
+b83e01e3.ada
+b83e01f0.ada
+b83e01f1.ada
+b83e01f2.ada
+b83e01f3.ada
+b83e01f4.ada
+b83e01f5.ada
+b83e01f6.ada
+b83e11a.ada
+b83f02a.ada
+b83f02b.ada
+b83f02c.ada
+b840001.a
+b84001a.ada
+b84002b.ada
+b84004a.ada
+b84005b.ada
+b84006a.ada
+b84007a.ada
+b84008b.ada
+b85001a.ada
+b85001b.ada
+b85001c.ada
+b85001d.ada
+b85001e.ada
+b85001f.ada
+b85001g.ada
+b85001h.ada
+b85001i.ada
+b85001j.ada
+b85001k.ada
+b85001l.ada
+b85002a.ada
+b85003a.ada
+b85003b.ada
+b85004a.ada
+b85008f.ada
+b85008g.ada
+b85008h.ada
+b85010a.ada
+b85010b.ada
+b85012a.ada
+b85013c.ada
+b85013d.ada
+b85015a.ada
+b8510010.a
+b8510011.a
+b8510012.am
+b86001a0.ada
+b86001a1.ada
+b87b23b.ada
+b87b26a.ada
+b87b48c.ada
+b91001b.ada
+b91001c.ada
+b91001d.ada
+b91001e.ada
+b91001f.ada
+b91001g.ada
+b91002a.ada
+b91002b.ada
+b91002c.ada
+b91002d.ada
+b91002e.ada
+b91002f.ada
+b91002g.ada
+b91002h.ada
+b91002i.ada
+b91002j.ada
+b91002k.ada
+b91002l.ada
+b91003a.ada
+b91003b.ada
+b91003c.ada
+b91003d.ada
+b91003e.ada
+b91004a.ada
+b91005a.ada
+b92001a.ada
+b92001b.ada
+b940001.a
+b940002.a
+b940003.a
+b940004.a
+b940005.a
+b940006.a
+b940007.a
+b95001a.ada
+b95001b.ada
+b95001d.ada
+b95002a.ada
+b95003a.ada
+b95004a.ada
+b95004b.ada
+b95006a.ada
+b95006b.ada
+b95006c.ada
+b95006d.ada
+b95007a.ada
+b95007b.ada
+b95020a.ada
+b95020b0.ada
+b95020b1.ada
+b95020b2.ada
+b95030a.ada
+b95031a.ada
+b95032a.ada
+b95061a.ada
+b95061b.ada
+b95061c.ada
+b95061d.ada
+b95061e.ada
+b95061f.ada
+b95061g.ada
+b95062a.ada
+b95063a.ada
+b95064a.ada
+b95068a.ada
+b95070a.ada
+b95080a.ada
+b95080c.ada
+b95081a.ada
+b95082a.ada
+b95082b.ada
+b95082c.ada
+b95082d.ada
+b95082e.ada
+b95082f.ada
+b95083a.ada
+b95094a.ada
+b95094b.ada
+b95094c.ada
+b951001.a
+b952001.a
+b952002.a
+b952003.a
+b952004.a
+b954001.a
+b954003.a
+b954004.a
+b960001.a
+b96002a.ada
+b97102b.ada
+b97102c.ada
+b97102d.ada
+b97102f.ada
+b97102g.ada
+b97102h.ada
+b97102i.ada
+b97103a.ada
+b97103b.ada
+b97103d.ada
+b97103e.ada
+b97103f.ada
+b97103g.ada
+b97104a.ada
+b97104b.ada
+b97104c.ada
+b97104d.ada
+b97104e.ada
+b97104f.ada
+b97104g.ada
+b97107a.ada
+b97108a.ada
+b97108b.ada
+b97109a.ada
+b97110a.ada
+b97110b.ada
+b97111a.ada
+b97206a.ada
+b97306a.ada
+b99001a.ada
+b99001b.ada
+b99002a.ada
+b99002b.ada
+b99002c.ada
+b99003a.ada
+b9a001a.ada
+b9a001b.ada
+ba1001a0.ada
+ba1001a1.ada
+ba1001a4.ada
+ba1001ac.ada
+ba1001d.ada
+ba1010a0.ada
+ba1010a1.ada
+ba1010a2.ada
+ba1010a3.ada
+ba1010b0.ada
+ba1010b1.ada
+ba1010b2.ada
+ba1010b4.ada
+ba1010b5.ada
+ba1010b6.ada
+ba1010b7.ada
+ba1010b8.ada
+ba1010c0.ada
+ba1010c1.ada
+ba1010c2.ada
+ba1010c3.ada
+ba1010c4.ada
+ba1010c5.ada
+ba1010c6.ada
+ba1010d0.ada
+ba1010d1.ada
+ba1010d2.ada
+ba1010d3.ada
+ba1010e0.ada
+ba1010e1.ada
+ba1010e2.ada
+ba1010e3.ada
+ba1010e4.ada
+ba1010e5.ada
+ba1010e6.ada
+ba1010f0.ada
+ba1010f1.ada
+ba1010f3.ada
+ba1010f4.ada
+ba1010f5.ada
+ba1010f6.ada
+ba1010f7.ada
+ba1010f8.ada
+ba1010g0.ada
+ba1010g2.ada
+ba1010g3.ada
+ba1010g4.ada
+ba1010g5.ada
+ba1010h0.ada
+ba1010h2.ada
+ba1010i0.ada
+ba1010i1.ada
+ba1010i3.ada
+ba1010i4.ada
+ba1010j0.ada
+ba1010j1.ada
+ba1010j2.ada
+ba1010j4.ada
+ba1010j5.ada
+ba1010j6.ada
+ba1010j7.ada
+ba1010j8.ada
+ba1010k0.ada
+ba1010k1.ada
+ba1010k2.ada
+ba1010k3.ada
+ba1010k4.ada
+ba1010k5.ada
+ba1010k6.ada
+ba1010l0.ada
+ba1010l1.ada
+ba1010l2.ada
+ba1010l3.ada
+ba1010l4.ada
+ba1010l5.ada
+ba1010l6.ada
+ba1010m0.ada
+ba1010m1.ada
+ba1010m3.ada
+ba1010m4.ada
+ba1010m5.ada
+ba1010m6.ada
+ba1010m7.ada
+ba1010m8.ada
+ba1010n0.ada
+ba1010n2.ada
+ba1010n3.ada
+ba1010n4.ada
+ba1010n5.ada
+ba1010p0.ada
+ba1010p2.ada
+ba1010q0.ada
+ba1010q1.ada
+ba1010q3.ada
+ba1010q4.ada
+ba1011b0.ada
+ba1011b1.ada
+ba1011b2.ada
+ba1011b3.ada
+ba1011b4.ada
+ba1011b5.ada
+ba1011b6.ada
+ba1011b7.ada
+ba1011b8.ada
+ba1011c0.ada
+ba1011c1.ada
+ba1011c2.ada
+ba1011c3.ada
+ba1011c4.ada
+ba1011c5.ada
+ba1011c6.ada
+ba1011c7.ada
+ba1011c8.ada
+ba1020a0.ada
+ba1020a1.ada
+ba1020a2.ada
+ba1020a3.ada
+ba1020a4.ada
+ba1020a5.ada
+ba1020a6.ada
+ba1020a7.ada
+ba1020a8.ada
+ba1020b0.ada
+ba1020b1.ada
+ba1020b2.ada
+ba1020b3.ada
+ba1020b4.ada
+ba1020b5.ada
+ba1020b6.ada
+ba1020c0.ada
+ba1020c1.ada
+ba1020c2.ada
+ba1020c3.ada
+ba1020c4.ada
+ba1020c5.ada
+ba1020f0.ada
+ba1020f1.ada
+ba1020f2.ada
+ba11001.a
+ba11002.a
+ba11003.a
+ba11004.a
+ba11005.a
+ba11007.a
+ba11008.a
+ba11009.a
+ba11010.a
+ba11011.a
+ba11012.a
+ba1101a.ada
+ba1101b0.ada
+ba1101b1.ada
+ba1101b2.ada
+ba1101b3.ada
+ba1101b4.ada
+ba1101c0.ada
+ba1101c1.ada
+ba1101c2.ada
+ba1101c3.ada
+ba1101c4.ada
+ba1101c5.ada
+ba1101c6.ada
+ba1101e0.ada
+ba1101e1.ada
+ba1101f.ada
+ba1101g.ada
+ba1109a0.ada
+ba1109a1.ada
+ba1109a2.ada
+ba1110a0.ada
+ba1110a1.ada
+ba1110a2.ada
+ba1110a3.ada
+ba1110a4.ada
+ba1110a5.ada
+ba12001.a
+ba12002.a
+ba12003.a
+ba12004.a
+ba12005.a
+ba12007.a
+ba12008.a
+ba13b01.a
+ba13b02.a
+ba15001.a
+ba150020.a
+ba150021.a
+ba150022.a
+ba150023.a
+ba150024.a
+ba150025.a
+ba150026.a
+ba150027.a
+ba150028.a
+ba150029.am
+ba2001a.ada
+ba2001b.ada
+ba2001c.ada
+ba2001d.ada
+ba2001f0.ada
+ba2001f1.ada
+ba2001f2.ada
+ba2003b0.ada
+ba2003b1.ada
+ba2011a0.ada
+ba2011a1.ada
+ba2011a2.ada
+ba2011a3.ada
+ba2011a4.ada
+ba2011a5.ada
+ba2011a6.ada
+ba2011a7.ada
+ba2011a8.ada
+ba2011a9.ada
+ba2013a.ada
+ba2013b.ada
+ba21001.a
+ba21002.a
+ba210030.a
+ba210031.a
+ba210032.a
+ba210033.a
+ba210034.a
+ba210035.a
+ba210040.a
+ba210041.a
+ba210042.a
+ba210043.a
+ba210044.a
+ba210045.am
+ba21a01.a
+ba21a02.a
+ba3001a0.ada
+ba3001a1.ada
+ba3001a2.ada
+ba3001a3.ada
+ba3001b0.ada
+ba3001b1.ada
+ba3001c0.ada
+ba3001c1.ada
+ba3001e0.ada
+ba3001e1.ada
+ba3001e2.ada
+ba3001e3.ada
+ba3001f0.ada
+ba3001f1.ada
+ba3001f2.ada
+ba3001f3.ada
+ba3006a0.ada
+ba3006a1.ada
+ba3006a2.ada
+ba3006a3.ada
+ba3006a4.ada
+ba3006a5.ada
+ba3006a6.ada
+ba3006b0.ada
+ba3006b1.ada
+ba3006b2.ada
+ba3006b3.ada
+ba3006b4.ada
+bb10001.a
+bb20001.a
+bb2001a.ada
+bb2002a.ada
+bb2003a.ada
+bb2003b.ada
+bb2003c.ada
+bb3001a.ada
+bb3002a.ada
+bc1001a.ada
+bc1002a.ada
+bc1005a.ada
+bc1008a.ada
+bc1008b.ada
+bc1008c.ada
+bc1009a.ada
+bc1011a.ada
+bc1011b.ada
+bc1011c.ada
+bc1012a.ada
+bc1013a.ada
+bc1014a.ada
+bc1014b.ada
+bc1016a.ada
+bc1016b.ada
+bc1101a.ada
+bc1102a.ada
+bc1103a.ada
+bc1106a.ada
+bc1107a.ada
+bc1109a.ada
+bc1109b.ada
+bc1109c.ada
+bc1109d.ada
+bc1110a.ada
+bc1201a.ada
+bc1201b.ada
+bc1201c.ada
+bc1201d.ada
+bc1201e.ada
+bc1201f.ada
+bc1201g.ada
+bc1201h.ada
+bc1201i.ada
+bc1201j.ada
+bc1201k.ada
+bc1201l.ada
+bc1202a.ada
+bc1202c.ada
+bc1202e.ada
+bc1202f.ada
+bc1202g.ada
+bc1203a.ada
+bc1205a.ada
+bc1206a.ada
+bc1207a.ada
+bc1208a.ada
+bc1226a.ada
+bc1230a.ada
+bc1303a.ada
+bc1303b.ada
+bc1303c.ada
+bc1303d.ada
+bc1303e.ada
+bc1303f.ada
+bc1303g.ada
+bc1306a.ada
+bc2001b.ada
+bc2001c.ada
+bc2001d.ada
+bc2001e.ada
+bc2004a.ada
+bc2004b.ada
+bc30001.a
+bc3001a.ada
+bc3002a.ada
+bc3002b.ada
+bc3002c.ada
+bc3002d.ada
+bc3002e.ada
+bc3005a.ada
+bc3005b.ada
+bc3005c.ada
+bc3006a.ada
+bc3009c.ada
+bc3011b.ada
+bc3013a.ada
+bc3016g.ada
+bc3018a.ada
+bc3101a.ada
+bc3101b.ada
+bc3102a.ada
+bc3102b.ada
+bc3103b.ada
+bc3123c.ada
+bc3201a.ada
+bc3201b.ada
+bc3201c.ada
+bc3202a.ada
+bc3202b.ada
+bc3202c.ada
+bc3202d.ada
+bc3205c.ada
+bc3301a.ada
+bc3301b.ada
+bc3302a.ada
+bc3302b.ada
+bc3303a.ada
+bc3304a.ada
+bc3401a.ada
+bc3401b.ada
+bc3402a.ada
+bc3402b.ada
+bc3403a.ada
+bc3403b.ada
+bc3403c.ada
+bc3404a.ada
+bc3404b.ada
+bc3404c.ada
+bc3404d.ada
+bc3404e.ada
+bc3404f.ada
+bc3405a.ada
+bc3405b.ada
+bc3405d.ada
+bc3405e.ada
+bc3405f.ada
+bc3501a.ada
+bc3501b.ada
+bc3501c.ada
+bc3501d.ada
+bc3501e.ada
+bc3501f.ada
+bc3501g.ada
+bc3501h.ada
+bc3501i.ada
+bc3501j.ada
+bc3501k.ada
+bc3502a.ada
+bc3502b.ada
+bc3502c.ada
+bc3502d.ada
+bc3502e.ada
+bc3502f.ada
+bc3502g.ada
+bc3502h.ada
+bc3502i.ada
+bc3502j.ada
+bc3502k.ada
+bc3502l.ada
+bc3502m.ada
+bc3502n.ada
+bc3502o.ada
+bc3503a.ada
+bc3503c.ada
+bc3503d.ada
+bc3503e.ada
+bc3503f.ada
+bc3604a.ada
+bc3604b.ada
+bc3607a.ada
+bc40001.a
+bc40002.a
+bc50001.a
+bc50002.a
+bc50003.a
+bc50004.a
+bc51002.a
+bc51003.a
+bc51004.a
+bc51005.a
+bc51006.a
+bc51007.a
+bc51011.a
+bc51012.a
+bc51013.a
+bc51015.a
+bc51016.a
+bc51017.a
+bc51018.a
+bc51019.a
+bc51020.a
+bc51b01.a
+bc51b02.a
+bc51c01.a
+bc51c02.a
+bc53001.a
+bc53002.a
+bc54001.a
+bc54002.a
+bc54003.a
+bc54a01.a
+bc54a02.a
+bc54a03.a
+bc54a04.a
+bc54a05.a
+bc54a06.a
+bc70001.a
+bc70002.a
+bc70003.a
+bc70004.a
+bc70005.a
+bc70006.a
+bc70007.a
+bc70008.a
+bc70009.a
+bc70010.a
+bd1b01a.ada
+bd1b02b.ada
+bd1b03c.ada
+bd1b05e.ada
+bd1b06j.ada
+bd2001b.ada
+bd2a01h.ada
+bd2a02a.tst
+bd2a03a.ada
+bd2a03b.ada
+bd2a06a.ada
+bd2a25a.ada
+bd2a35a.ada
+bd2a45a.ada
+bd2a55a.ada
+bd2a55b.ada
+bd2a67a.ada
+bd2a77a.ada
+bd2a85a.ada
+bd2a85b.ada
+bd2b01c.ada
+bd2b02a.ada
+bd2b03a.ada
+bd2b03b.ada
+bd2b03c.ada
+bd2c01d.tst
+bd2c02a.tst
+bd2c03a.tst
+bd2d01c.ada
+bd2d01d.ada
+bd2d02a.ada
+bd2d03a.ada
+bd2d03b.ada
+bd3001a.ada
+bd3001b.ada
+bd3001c.ada
+bd3002a.ada
+bd3003a.ada
+bd3003b.ada
+bd3012a.ada
+bd3013a.ada
+bd4001a.ada
+bd4002a.ada
+bd4003a.ada
+bd4003b.ada
+bd4003c.ada
+bd4006a.tst
+bd4007a.ada
+bd4009a.ada
+bd4011a.ada
+bd5001a.ada
+bd5005a.ada
+bd5005d.ada
+bd5102a.ada
+bd5102b.ada
+bd5103a.ada
+bd5104a.ada
+bd7001a.ada
+bd7101h.ada
+bd7201c.ada
+bd7203a.ada
+bd7204a.ada
+bd7205a.ada
+bd7301a.ada
+bd7302a.ada
+bd8001a.tst
+bd8002a.tst
+bd8003a.tst
+bd8004a.tst
+bd8004b.tst
+bd8004c.tst
+bdb0a01.a
+bdd2001.a
+bde0001.a
+bde0002.a
+bde0003.a
+bde0004.a
+bde0005.a
+bde0006.a
+bde0007.a
+bde0008.a
+be2101e.ada
+be2101j.ada
+be2114a.ada
+be2116a.ada
+be2208a.ada
+be3002a.ada
+be3002e.ada
+be3205a.ada
+be3301c.ada
+be3606c.ada
+be3703a.ada
+be3802a.ada
+be3803a.ada
+be3902a.ada
+be3903a.ada
+bxa8001.a
+bxac001.a
+bxac002.a
+bxac003.a
+bxac004.a
+bxac005.a
+bxc3001.a
+bxc3002.a
+bxc5001.a
+bxc6001.a
+bxc6002.a
+bxc6003.a
+bxc6a01.a
+bxc6a02.a
+bxc6a03.a
+bxc6a04.a
+bxd1001.a
+bxd1002.a
+bxe2007.a
+bxe2008.a
+bxe2009.a
+bxe2010.a
+bxe2011.a
+bxe2012.a
+bxe2013.a
+bxe2a01.a
+bxe2a02.a
+bxe2a03.a
+bxe2a04.a
+bxe2a05.a
+bxe2a06.a
+bxe4001.a
+bxf1001.a
+bxh4001.a
+bxh4002.a
+bxh4003.a
+bxh4004.a
+bxh4005.a
+bxh4006.a
+bxh4007.a
+bxh4008.a
+bxh4009.a
+bxh4010.a
+bxh4011.a
+bxh4012.a
+bxh4013.a
+c23001a.ada
+c23003a.tst
+c23003b.tst
+c23003g.tst
+c23003i.tst
+c23006a.ada
+c23006b.ada
+c23006c.ada
+c23006d.ada
+c23006e.ada
+c23006f.ada
+c23006g.ada
+c24002d.ada
+c24003a.ada
+c24003b.ada
+c24003c.ada
+c24106a.ada
+c24202d.ada
+c24203a.ada
+c24203b.ada
+c24207a.ada
+c24211a.ada
+c250001.aw
+c250002.aw
+c25001a.ada
+c25001b.ada
+c26006a.ada
+c26008a.ada
+c2a001a.ada
+c2a001b.ada
+c2a001c.ada
+c2a002a.ada
+c2a008a.ada
+c2a021b.ada
+c32001a.ada
+c32001b.ada
+c32001c.ada
+c32001d.ada
+c32001e.ada
+c32107a.ada
+c32107c.ada
+c32108a.ada
+c32108b.ada
+c32111a.ada
+c32111b.ada
+c32112b.ada
+c32113a.ada
+c32115a.ada
+c32115b.ada
+c330001.a
+c330002.a
+c332001.a
+c340001.a
+c34001a.ada
+c34001c.ada
+c34001d.ada
+c34001f.ada
+c34002a.ada
+c34002c.ada
+c34003a.ada
+c34003c.ada
+c34004a.ada
+c34004c.ada
+c34005a.ada
+c34005c.ada
+c34005d.ada
+c34005f.ada
+c34005g.ada
+c34005i.ada
+c34005j.ada
+c34005l.ada
+c34005m.ada
+c34005o.ada
+c34005p.ada
+c34005r.ada
+c34005s.ada
+c34005u.ada
+c34005v.ada
+c34006a.ada
+c34006d.ada
+c34006f.ada
+c34006g.ada
+c34006j.ada
+c34006l.ada
+c34007a.ada
+c34007d.ada
+c34007f.ada
+c34007g.ada
+c34007i.ada
+c34007j.ada
+c34007m.ada
+c34007p.ada
+c34007r.ada
+c34007s.ada
+c34007u.ada
+c34007v.ada
+c34008a.ada
+c34009a.ada
+c34009d.ada
+c34009f.ada
+c34009g.ada
+c34009j.ada
+c34009l.ada
+c34011b.ada
+c34012a.ada
+c34014a.ada
+c34014c.ada
+c34014e.ada
+c34014g.ada
+c34014h.ada
+c34014n.ada
+c34014p.ada
+c34014r.ada
+c34014t.ada
+c34014u.ada
+c34018a.ada
+c340a01.a
+c340a02.a
+c341a01.a
+c341a02.a
+c341a03.a
+c341a04.a
+c35003a.ada
+c35003b.ada
+c35003d.ada
+c35102a.ada
+c352001.a
+c354002.a
+c354003.a
+c35502a.ada
+c35502b.ada
+c35502c.ada
+c35502d.tst
+c35502e.ada
+c35502f.tst
+c35502g.ada
+c35502h.ada
+c35502i.ada
+c35502j.ada
+c35502k.ada
+c35502l.ada
+c35502m.ada
+c35502n.ada
+c35502o.ada
+c35502p.ada
+c35503a.ada
+c35503b.ada
+c35503c.ada
+c35503d.tst
+c35503e.ada
+c35503f.tst
+c35503g.ada
+c35503h.ada
+c35503k.ada
+c35503l.ada
+c35503o.ada
+c35503p.ada
+c35504a.ada
+c35504b.ada
+c35505c.ada
+c35505e.ada
+c35505f.ada
+c35507a.ada
+c35507b.ada
+c35507c.ada
+c35507e.ada
+c35507g.ada
+c35507h.ada
+c35507i.ada
+c35507j.ada
+c35507k.ada
+c35507l.ada
+c35507m.ada
+c35507n.ada
+c35507o.ada
+c35507p.ada
+c35508a.ada
+c35508b.ada
+c35508c.ada
+c35508e.ada
+c35508g.ada
+c35508h.ada
+c35508k.ada
+c35508l.ada
+c35508o.ada
+c35508p.ada
+c35703a.ada
+c35704a.ada
+c35704b.ada
+c35704c.ada
+c35704d.ada
+c35801d.ada
+c35902d.ada
+c35904a.ada
+c35904b.ada
+c35a02a.ada
+c35a05a.ada
+c35a05d.ada
+c35a05n.ada
+c35a05q.ada
+c35a07a.ada
+c35a07d.ada
+c35a08b.ada
+c360002.a
+c36104a.ada
+c36104b.ada
+c36172a.ada
+c36172b.ada
+c36172c.ada
+c36174a.ada
+c36180a.ada
+c36202c.ada
+c36203a.ada
+c36204a.ada
+c36204b.ada
+c36204c.ada
+c36204d.ada
+c36205a.ada
+c36205b.ada
+c36205c.ada
+c36205d.ada
+c36205e.ada
+c36205f.ada
+c36205g.ada
+c36205h.ada
+c36205i.ada
+c36205j.ada
+c36205k.ada
+c36205l.ada
+c36301a.ada
+c36301b.ada
+c36302a.ada
+c36304a.ada
+c36305a.ada
+c37002a.ada
+c37003a.ada
+c37003b.ada
+c37005a.ada
+c37006a.ada
+c37008a.ada
+c37008b.ada
+c37009a.ada
+c37010a.ada
+c37010b.ada
+c371001.a
+c371002.a
+c371003.a
+c37102b.ada
+c37103a.ada
+c37105a.ada
+c37107a.ada
+c37108b.ada
+c37206a.ada
+c37207a.ada
+c37208a.ada
+c37208b.ada
+c37209a.ada
+c37209b.ada
+c37210a.ada
+c37211a.ada
+c37211b.ada
+c37211c.ada
+c37211d.ada
+c37211e.ada
+c37213b.ada
+c37213d.ada
+c37213f.ada
+c37213h.ada
+c37213j.ada
+c37213k.ada
+c37213l.ada
+c37215b.ada
+c37215d.ada
+c37215f.ada
+c37215h.ada
+c37217a.ada
+c37217b.ada
+c37217c.ada
+c37304a.ada
+c37305a.ada
+c37306a.ada
+c37309a.ada
+c37310a.ada
+c37312a.ada
+c37402a.ada
+c37403a.ada
+c37404a.ada
+c37404b.ada
+c37405a.ada
+c37411a.ada
+c38002a.ada
+c38002b.ada
+c38005a.ada
+c38005b.ada
+c38005c.ada
+c38006a.ada
+c38102a.ada
+c38102b.ada
+c38102c.ada
+c38102d.ada
+c38102e.ada
+c38104a.ada
+c38107a.ada
+c38107b.ada
+c38108a.ada
+c38108b.ada
+c38108c0.ada
+c38108c1.ada
+c38108c2.ada
+c38108d0.ada
+c38108d1.ada
+c38202a.ada
+c3900010.a
+c3900011.am
+c390002.a
+c390003.a
+c390004.a
+c3900050.a
+c3900051.a
+c3900052.a
+c3900053.am
+c3900060.a
+c3900061.a
+c3900062.a
+c3900063.am
+c390007.a
+c390010.a
+c390011.a
+c39006a.ada
+c39006b.ada
+c39006c0.ada
+c39006c1.ada
+c39006d.ada
+c39006e.ada
+c39006f0.ada
+c39006f1.ada
+c39006f2.ada
+c39006f3.ada
+c39006g.ada
+c39007a.ada
+c39007b.ada
+c39008a.ada
+c39008b.ada
+c39008c.ada
+c390a010.a
+c390a011.am
+c390a020.a
+c390a021.a
+c390a022.am
+c390a030.a
+c390a031.am
+c391001.a
+c391002.a
+c392002.a
+c392003.a
+c392004.a
+c392005.a
+c392008.a
+c392010.a
+c392011.a
+c392013.a
+c392014.a
+c392a01.a
+c392c05.a
+c392c07.a
+c392d01.a
+c392d02.a
+c392d03.a
+c393001.a
+c393007.a
+c393008.a
+c393009.a
+c393010.a
+c393011.a
+c393012.a
+c393a02.a
+c393a03.a
+c393a05.a
+c393a06.a
+c393b12.a
+c393b13.a
+c393b14.a
+c3a0001.a
+c3a0002.a
+c3a0003.a
+c3a0004.a
+c3a0005.a
+c3a0006.a
+c3a0007.a
+c3a0008.a
+c3a0009.a
+c3a0010.a
+c3a0011.a
+c3a00120.a
+c3a00121.a
+c3a00122.am
+c3a0013.a
+c3a0014.a
+c3a0015.a
+c3a1001.a
+c3a1002.a
+c3a2001.a
+c3a2002.a
+c3a2003.a
+c3a2a01.a
+c3a2a02.a
+c410001.a
+c41101d.ada
+c41103a.ada
+c41103b.ada
+c41104a.ada
+c41105a.ada
+c41107a.ada
+c41201d.ada
+c41203a.ada
+c41203b.ada
+c41204a.ada
+c41205a.ada
+c41206a.ada
+c41207a.ada
+c41301a.ada
+c41303a.ada
+c41303b.ada
+c41303c.ada
+c41303e.ada
+c41303f.ada
+c41303g.ada
+c41303i.ada
+c41303j.ada
+c41303k.ada
+c41303m.ada
+c41303n.ada
+c41303o.ada
+c41303q.ada
+c41303r.ada
+c41303s.ada
+c41303u.ada
+c41303v.ada
+c41303w.ada
+c41304a.ada
+c41304b.ada
+c41306a.ada
+c41306b.ada
+c41306c.ada
+c41307d.ada
+c41309a.ada
+c41320a.ada
+c41321a.ada
+c41322a.ada
+c41323a.ada
+c41324a.ada
+c41325a.ada
+c41326a.ada
+c41327a.ada
+c41328a.ada
+c41401a.ada
+c41402a.ada
+c41404a.ada
+c420001.a
+c42006a.ada
+c42007e.ada
+c43003a.ada
+c43004a.ada
+c43004c.ada
+c431001.a
+c43103a.ada
+c43103b.ada
+c43104a.ada
+c43105a.ada
+c43105b.ada
+c43106a.ada
+c43107a.ada
+c43108a.ada
+c432001.a
+c432002.a
+c432003.a
+c432004.a
+c43204a.ada
+c43204c.ada
+c43204e.ada
+c43204f.ada
+c43204g.ada
+c43204h.ada
+c43204i.ada
+c43205a.ada
+c43205b.ada
+c43205c.ada
+c43205d.ada
+c43205e.ada
+c43205g.ada
+c43205h.ada
+c43205i.ada
+c43205j.ada
+c43205k.ada
+c43206a.ada
+c43207b.ada
+c43207d.ada
+c43208a.ada
+c43208b.ada
+c43209a.ada
+c43210a.ada
+c43211a.ada
+c43212a.ada
+c43212c.ada
+c43214a.ada
+c43214b.ada
+c43214c.ada
+c43214d.ada
+c43214e.ada
+c43214f.ada
+c43215a.ada
+c43215b.ada
+c43222a.ada
+c43224a.ada
+c433001.a
+c44003d.ada
+c44003f.ada
+c44003g.ada
+c450001.a
+c45112a.ada
+c45112b.ada
+c45113a.ada
+c45114b.ada
+c452001.a
+c45201a.ada
+c45201b.ada
+c45202b.ada
+c45210a.ada
+c45211a.ada
+c45220a.ada
+c45220b.ada
+c45220c.ada
+c45220d.ada
+c45220e.ada
+c45220f.ada
+c45231a.ada
+c45231b.dep
+c45231c.dep
+c45231d.tst
+c45232b.ada
+c45242b.ada
+c45251a.ada
+c45252a.ada
+c45252b.ada
+c45253a.ada
+c45262a.ada
+c45262b.ada
+c45262c.ada
+c45262d.ada
+c45264a.ada
+c45264b.ada
+c45264c.ada
+c45265a.ada
+c45271a.ada
+c45272a.ada
+c45273a.ada
+c45274a.ada
+c45274b.ada
+c45274c.ada
+c45281a.ada
+c45282a.ada
+c45282b.ada
+c45291a.ada
+c45303a.ada
+c45304a.ada
+c45304b.dep
+c45304c.dep
+c45322a.ada
+c45323a.ada
+c45331a.ada
+c45342a.ada
+c45343a.ada
+c45344a.ada
+c45345b.ada
+c45347a.ada
+c45347b.ada
+c45347c.ada
+c45347d.ada
+c45411a.ada
+c45411b.dep
+c45411c.dep
+c45411d.ada
+c45413a.ada
+c45431a.ada
+c455001.a
+c45502b.dep
+c45502c.dep
+c45503a.ada
+c45503b.dep
+c45503c.dep
+c45504a.ada
+c45504b.dep
+c45504c.dep
+c45504d.ada
+c45504e.dep
+c45504f.dep
+c45505a.ada
+c45523a.ada
+c45531a.ada
+c45531b.ada
+c45531c.ada
+c45531d.ada
+c45531e.ada
+c45531f.ada
+c45531g.ada
+c45531h.ada
+c45531i.ada
+c45531j.ada
+c45531k.ada
+c45531l.ada
+c45531m.dep
+c45531n.dep
+c45531o.dep
+c45531p.dep
+c45532a.ada
+c45532b.ada
+c45532c.ada
+c45532d.ada
+c45532e.ada
+c45532f.ada
+c45532g.ada
+c45532h.ada
+c45532i.ada
+c45532j.ada
+c45532k.ada
+c45532l.ada
+c45532m.dep
+c45532n.dep
+c45532o.dep
+c45532p.dep
+c45534b.ada
+c45536a.dep
+c45611a.ada
+c45611b.dep
+c45611c.dep
+c45613a.ada
+c45613b.dep
+c45613c.dep
+c45614a.ada
+c45614b.dep
+c45614c.dep
+c45622a.ada
+c45624a.ada
+c45624b.ada
+c45631a.ada
+c45631b.dep
+c45631c.dep
+c45632a.ada
+c45632b.dep
+c45632c.dep
+c45651a.ada
+c45662a.ada
+c45662b.ada
+c45672a.ada
+c460001.a
+c460002.a
+c460004.a
+c460005.a
+c460006.a
+c460007.a
+c460008.a
+c460009.a
+c460010.a
+c460011.a
+c460012.a
+c46011a.ada
+c46013a.ada
+c46014a.ada
+c46021a.ada
+c46024a.ada
+c46031a.ada
+c46032a.ada
+c46033a.ada
+c46041a.ada
+c46042a.ada
+c46043b.ada
+c46044b.ada
+c46051a.ada
+c46051b.ada
+c46051c.ada
+c46052a.ada
+c46053a.ada
+c46054a.ada
+c460a01.a
+c460a02.a
+c47002a.ada
+c47002b.ada
+c47002c.ada
+c47002d.ada
+c47003a.ada
+c47004a.ada
+c47005a.ada
+c47006a.ada
+c47007a.ada
+c47008a.ada
+c47009a.ada
+c47009b.ada
+c48004a.ada
+c48004b.ada
+c48004c.ada
+c48004d.ada
+c48004e.ada
+c48004f.ada
+c48005a.ada
+c48005b.ada
+c48006a.ada
+c48006b.ada
+c48007a.ada
+c48007b.ada
+c48007c.ada
+c48008a.ada
+c48008c.ada
+c48009a.ada
+c48009b.ada
+c48009c.ada
+c48009d.ada
+c48009e.ada
+c48009f.ada
+c48009g.ada
+c48009h.ada
+c48009i.ada
+c48009j.ada
+c48010a.ada
+c48011a.ada
+c48012a.ada
+c490001.a
+c490002.a
+c490003.a
+c49020a.ada
+c49021a.ada
+c49022a.ada
+c49022b.ada
+c49022c.ada
+c49023a.ada
+c49024a.ada
+c49025a.ada
+c49026a.ada
+c4a005b.ada
+c4a006a.ada
+c4a007a.tst
+c4a010a.ada
+c4a010b.ada
+c4a011a.ada
+c4a012b.ada
+c4a013a.ada
+c4a014a.ada
+c51004a.ada
+c52005a.ada
+c52005b.ada
+c52005c.ada
+c52005d.ada
+c52005e.ada
+c52005f.ada
+c52008a.ada
+c52008b.ada
+c52009a.ada
+c52009b.ada
+c52010a.ada
+c52011a.ada
+c52011b.ada
+c52101a.ada
+c52102a.ada
+c52102b.ada
+c52102c.ada
+c52102d.ada
+c52103a.ada
+c52103b.ada
+c52103c.ada
+c52103f.ada
+c52103g.ada
+c52103h.ada
+c52103k.ada
+c52103l.ada
+c52103m.ada
+c52103p.ada
+c52103q.ada
+c52103r.ada
+c52103x.ada
+c52104a.ada
+c52104b.ada
+c52104c.ada
+c52104f.ada
+c52104g.ada
+c52104h.ada
+c52104k.ada
+c52104l.ada
+c52104m.ada
+c52104p.ada
+c52104q.ada
+c52104r.ada
+c52104x.ada
+c52104y.ada
+c53007a.ada
+c540001.a
+c54a03a.ada
+c54a04a.ada
+c54a07a.ada
+c54a13a.ada
+c54a13b.ada
+c54a13c.ada
+c54a13d.ada
+c54a22a.ada
+c54a23a.ada
+c54a24a.ada
+c54a24b.ada
+c54a42a.ada
+c54a42b.ada
+c54a42c.ada
+c54a42d.ada
+c54a42e.ada
+c54a42f.ada
+c54a42g.ada
+c55b03a.ada
+c55b04a.ada
+c55b05a.ada
+c55b06a.ada
+c55b06b.ada
+c55b07a.dep
+c55b07b.dep
+c55b10a.ada
+c55b11a.ada
+c55b11b.ada
+c55b15a.ada
+c55b16a.ada
+c55c02a.ada
+c55c02b.ada
+c56002a.ada
+c57003a.ada
+c57004a.ada
+c57004b.ada
+c58004c.ada
+c58004d.ada
+c58004g.ada
+c58005a.ada
+c58005b.ada
+c58005h.ada
+c58006a.ada
+c58006b.ada
+c59002a.ada
+c59002b.ada
+c59002c.ada
+c61008a.ada
+c61009a.ada
+c61010a.ada
+c62002a.ada
+c62003a.ada
+c62003b.ada
+c62004a.ada
+c62006a.ada
+c631001.a
+c640001.a
+c64002b.ada
+c64004g.ada
+c64005a.ada
+c64005b.ada
+c64005c.ada
+c64005d0.ada
+c64005da.ada
+c64005db.ada
+c64005dc.ada
+c641001.a
+c64103b.ada
+c64103c.ada
+c64103d.ada
+c64103e.ada
+c64103f.ada
+c64104a.ada
+c64104b.ada
+c64104c.ada
+c64104d.ada
+c64104e.ada
+c64104f.ada
+c64104g.ada
+c64104h.ada
+c64104i.ada
+c64104j.ada
+c64104k.ada
+c64104l.ada
+c64104m.ada
+c64104n.ada
+c64104o.ada
+c64105a.ada
+c64105b.ada
+c64105c.ada
+c64105d.ada
+c64106a.ada
+c64106b.ada
+c64106c.ada
+c64106d.ada
+c64107a.ada
+c64108a.ada
+c64109a.ada
+c64109b.ada
+c64109c.ada
+c64109d.ada
+c64109e.ada
+c64109f.ada
+c64109g.ada
+c64109h.ada
+c64109i.ada
+c64109j.ada
+c64109k.ada
+c64109l.ada
+c64201b.ada
+c64201c.ada
+c64202a.ada
+c650001.a
+c65003a.ada
+c65003b.ada
+c66002a.ada
+c66002c.ada
+c66002d.ada
+c66002e.ada
+c66002f.ada
+c66002g.ada
+c67002a.ada
+c67002b.ada
+c67002c.ada
+c67002d.ada
+c67002e.ada
+c67003f.ada
+c67005a.ada
+c67005b.ada
+c67005c.ada
+c67005d.ada
+c72001b.ada
+c72002a.ada
+c730001.a
+c730002.a
+c730003.a
+c730004.a
+c73002a.ada
+c730a01.a
+c730a02.a
+c731001.a
+c74004a.ada
+c74203a.ada
+c74206a.ada
+c74207b.ada
+c74208a.ada
+c74208b.ada
+c74209a.ada
+c74210a.ada
+c74211a.ada
+c74211b.ada
+c74302a.ada
+c74302b.ada
+c74305a.ada
+c74305b.ada
+c74306a.ada
+c74307a.ada
+c74401d.ada
+c74401e.ada
+c74401k.ada
+c74401q.ada
+c74402a.ada
+c74402b.ada
+c74406a.ada
+c74407b.ada
+c74409b.ada
+c760001.a
+c760002.a
+c760007.a
+c760009.a
+c760010.a
+c760011.a
+c760012.a
+c760013.a
+c761001.a
+c761002.a
+c761003.a
+c761004.a
+c761005.a
+c761006.a
+c761007.a
+c761010.a
+c761011.a
+c83007a.ada
+c83012d.ada
+c83022a.ada
+c83022g0.ada
+c83022g1.ada
+c83023a.ada
+c83024a.ada
+c83024e0.ada
+c83024e1.ada
+c83025a.ada
+c83025c.ada
+c83027a.ada
+c83027c.ada
+c83028a.ada
+c83029a.ada
+c83030a.ada
+c83030c.ada
+c83031a.ada
+c83031c.ada
+c83031e.ada
+c83032a.ada
+c83033a.ada
+c83051a.ada
+c83b02a.ada
+c83b02b.ada
+c83e02a.ada
+c83e02b.ada
+c83e03a.ada
+c83f01a.ada
+c83f01b.ada
+c83f01c0.ada
+c83f01c1.ada
+c83f01c2.ada
+c83f01d0.ada
+c83f01d1.ada
+c83f03a.ada
+c83f03b.ada
+c83f03c0.ada
+c83f03c1.ada
+c83f03c2.ada
+c83f03d0.ada
+c83f03d1.ada
+c840001.a
+c84002a.ada
+c84005a.ada
+c84008a.ada
+c84009a.ada
+c85004b.ada
+c85005a.ada
+c85005b.ada
+c85005c.ada
+c85005d.ada
+c85005e.ada
+c85005f.ada
+c85005g.ada
+c85006a.ada
+c85006b.ada
+c85006c.ada
+c85006d.ada
+c85006e.ada
+c85006f.ada
+c85006g.ada
+c85007a.ada
+c85007e.ada
+c85009a.ada
+c85011a.ada
+c85013a.ada
+c85014a.ada
+c85014b.ada
+c85014c.ada
+c85017a.ada
+c85018a.ada
+c85018b.ada
+c85019a.ada
+c854001.a
+c854002.a
+c86003a.ada
+c86004a.ada
+c86004b0.ada
+c86004b1.ada
+c86004b2.ada
+c86004c0.ada
+c86004c1.ada
+c86004c2.ada
+c86006i.ada
+c86007a.ada
+c87a05a.ada
+c87a05b.ada
+c87b02a.ada
+c87b02b.ada
+c87b03a.ada
+c87b04a.ada
+c87b04b.ada
+c87b04c.ada
+c87b05a.ada
+c87b06a.ada
+c87b07a.ada
+c87b07b.ada
+c87b07c.ada
+c87b07d.ada
+c87b07e.ada
+c87b08a.ada
+c87b09a.ada
+c87b09c.ada
+c87b10a.ada
+c87b11a.ada
+c87b11b.ada
+c87b13a.ada
+c87b14a.ada
+c87b14b.ada
+c87b14c.ada
+c87b14d.ada
+c87b15a.ada
+c87b16a.ada
+c87b17a.ada
+c87b18a.ada
+c87b18b.ada
+c87b19a.ada
+c87b23a.ada
+c87b24a.ada
+c87b24b.ada
+c87b26b.ada
+c87b27a.ada
+c87b28a.ada
+c87b29a.ada
+c87b30a.ada
+c87b31a.ada
+c87b32a.ada
+c87b33a.ada
+c87b34a.ada
+c87b34b.ada
+c87b34c.ada
+c87b35c.ada
+c87b38a.ada
+c87b39a.ada
+c87b40a.ada
+c87b41a.ada
+c87b42a.ada
+c87b43a.ada
+c87b44a.ada
+c87b45a.ada
+c87b45c.ada
+c87b47a.ada
+c87b48a.ada
+c87b48b.ada
+c87b50a.ada
+c87b54a.ada
+c87b57a.ada
+c87b62a.ada
+c87b62b.ada
+c87b62c.ada
+c87b62d.tst
+c910001.a
+c910002.a
+c910003.a
+c91004b.ada
+c91004c.ada
+c91006a.ada
+c91007a.ada
+c92002a.ada
+c92003a.ada
+c92005a.ada
+c92005b.ada
+c92006a.ada
+c930001.a
+c93001a.ada
+c93002a.ada
+c93003a.ada
+c93004a.ada
+c93004b.ada
+c93004c.ada
+c93004d.ada
+c93004f.ada
+c93005a.ada
+c93005b.ada
+c93005c.ada
+c93005d.ada
+c93005e.ada
+c93005f.ada
+c93005g.ada
+c93005h.ada
+c93006a.ada
+c93007a.ada
+c93008a.ada
+c93008b.ada
+c940001.a
+c940002.a
+c940004.a
+c940005.a
+c940006.a
+c940007.a
+c940010.a
+c940011.a
+c940012.a
+c940013.a
+c940014.a
+c940015.a
+c940016.a
+c94001a.ada
+c94001b.ada
+c94001c.ada
+c94001e.ada
+c94001f.ada
+c94001g.ada
+c94002a.ada
+c94002b.ada
+c94002d.ada
+c94002e.ada
+c94002f.ada
+c94002g.ada
+c94004a.ada
+c94004b.ada
+c94004c.ada
+c94005a.ada
+c94005b.ada
+c94006a.ada
+c94007a.ada
+c94007b.ada
+c94008a.ada
+c94008b.ada
+c94008c.ada
+c94008d.ada
+c94010a.ada
+c94011a.ada
+c94020a.ada
+c940a03.a
+c95008a.ada
+c95009a.ada
+c95010a.ada
+c95011a.ada
+c95012a.ada
+c95021a.ada
+c95022a.ada
+c95022b.ada
+c95033a.ada
+c95033b.ada
+c95034a.ada
+c95034b.ada
+c95035a.ada
+c95040a.ada
+c95040b.ada
+c95040c.ada
+c95040d.ada
+c95041a.ada
+c95065a.ada
+c95065b.ada
+c95065c.ada
+c95065d.ada
+c95065e.ada
+c95065f.ada
+c95066a.ada
+c95067a.ada
+c95071a.ada
+c95072a.ada
+c95072b.ada
+c95073a.ada
+c95074c.ada
+c95076a.ada
+c95078a.ada
+c95080b.ada
+c95082g.ada
+c95085a.ada
+c95085b.ada
+c95085c.ada
+c95085d.ada
+c95085e.ada
+c95085f.ada
+c95085g.ada
+c95085h.ada
+c95085i.ada
+c95085j.ada
+c95085k.ada
+c95085l.ada
+c95085m.ada
+c95085n.ada
+c95085o.ada
+c95086a.ada
+c95086b.ada
+c95086c.ada
+c95086d.ada
+c95086e.ada
+c95086f.ada
+c95087a.ada
+c95087b.ada
+c95087c.ada
+c95087d.ada
+c95088a.ada
+c95089a.ada
+c95090a.ada
+c95092a.ada
+c95093a.ada
+c95095a.ada
+c95095b.ada
+c95095c.ada
+c95095d.ada
+c95095e.ada
+c951001.a
+c951002.a
+c953001.a
+c953002.a
+c953003.a
+c954001.a
+c954010.a
+c954011.a
+c954012.a
+c954013.a
+c954014.a
+c954015.a
+c954016.a
+c954017.a
+c954018.a
+c954019.a
+c954020.a
+c954021.a
+c954022.a
+c954023.a
+c954024.a
+c954025.a
+c954026.a
+c954a01.a
+c954a02.a
+c954a03.a
+c960001.a
+c960002.a
+c960004.a
+c96001a.ada
+c96004a.ada
+c96005a.ada
+c96005b.tst
+c96005d.ada
+c96005f.ada
+c96006a.ada
+c96007a.ada
+c96008a.ada
+c96008b.ada
+c97112a.ada
+c97113a.ada
+c97114a.ada
+c97115a.ada
+c97116a.ada
+c97117a.ada
+c97117b.ada
+c97117c.ada
+c97118a.ada
+c97120a.ada
+c97120b.ada
+c97201a.ada
+c97201b.ada
+c97201c.ada
+c97201d.ada
+c97201e.ada
+c97201g.ada
+c97201h.ada
+c97201x.ada
+c97202a.ada
+c97203a.ada
+c97203b.ada
+c97203c.ada
+c97204a.ada
+c97204b.ada
+c97205a.ada
+c97205b.ada
+c97301a.ada
+c97301b.ada
+c97301c.ada
+c97301d.ada
+c97301e.ada
+c97302a.ada
+c97303a.ada
+c97303b.ada
+c97303c.ada
+c97304a.ada
+c97304b.ada
+c97305a.ada
+c97305b.ada
+c97305c.ada
+c97305d.ada
+c97307a.ada
+c974001.a
+c974002.a
+c974003.a
+c974004.a
+c974005.a
+c974006.a
+c974007.a
+c974008.a
+c974009.a
+c974010.a
+c974011.a
+c974012.a
+c974013.a
+c974014.a
+c980001.a
+c980002.a
+c980003.a
+c99004a.ada
+c99005a.ada
+c9a003a.ada
+c9a004a.ada
+c9a007a.ada
+c9a009a.ada
+c9a009c.ada
+c9a009f.ada
+c9a009g.ada
+c9a009h.ada
+c9a010a.ada
+c9a011a.ada
+c9a011b.ada
+ca1003a.ada
+ca1004a.ada
+ca1005a.ada
+ca1006a.ada
+ca1011a0.ada
+ca1011a1.ada
+ca1011a2.ada
+ca1011a3.ada
+ca1011a4.ada
+ca1011a5.ada
+ca1011a6.ada
+ca1012a0.ada
+ca1012a1.ada
+ca1012a2.ada
+ca1012a3.ada
+ca1012a4.ada
+ca1012b0.ada
+ca1012b2.ada
+ca1012b4.ada
+ca1013a0.ada
+ca1013a1.ada
+ca1013a2.ada
+ca1013a3.ada
+ca1013a4.ada
+ca1013a5.ada
+ca1013a6.ada
+ca1014a0.ada
+ca1014a1.ada
+ca1014a2.ada
+ca1014a3.ada
+ca1020e0.ada
+ca1020e1.ada
+ca1020e2.ada
+ca1020e3.ada
+ca1022a0.ada
+ca1022a1.ada
+ca1022a2.ada
+ca1022a3.ada
+ca1022a4.ada
+ca1022a5.ada
+ca1022a6.ada
+ca11001.a
+ca11002.a
+ca11003.a
+ca110040.a
+ca110041.a
+ca110042.am
+ca110050.a
+ca110051.am
+ca11006.a
+ca11007.a
+ca11008.a
+ca11009.a
+ca11010.a
+ca11011.a
+ca11012.a
+ca11013.a
+ca11014.a
+ca11015.a
+ca11016.a
+ca11017.a
+ca11018.a
+ca11019.a
+ca11020.a
+ca11021.a
+ca11022.a
+ca1102a0.ada
+ca1102a1.ada
+ca1102a2.ada
+ca1106a.ada
+ca1108a.ada
+ca1108b.ada
+ca11a01.a
+ca11a02.a
+ca11b01.a
+ca11b02.a
+ca11c01.a
+ca11c02.a
+ca11c03.a
+ca11d010.a
+ca11d011.a
+ca11d012.a
+ca11d013.am
+ca11d02.a
+ca11d03.a
+ca13001.a
+ca13002.a
+ca13003.a
+ca13a01.a
+ca13a02.a
+ca140230.a
+ca140231.a
+ca140232.am
+ca140233.a
+ca140280.a
+ca140281.a
+ca140282.a
+ca140283.am
+ca15003.a
+ca200020.a
+ca200021.a
+ca200022.am
+ca2001h0.ada
+ca2001h1.ada
+ca2001h2.ada
+ca2001h3.ada
+ca2002a0.ada
+ca2002a1.ada
+ca2002a2.ada
+ca2003a0.ada
+ca2003a1.ada
+ca2004a0.ada
+ca2004a1.ada
+ca2004a2.ada
+ca2004a3.ada
+ca2004a4.ada
+ca2007a0.ada
+ca2007a1.ada
+ca2007a2.ada
+ca2007a3.ada
+ca2008a0.ada
+ca2008a1.ada
+ca2008a2.ada
+ca2009a.ada
+ca2009c0.ada
+ca2009c1.ada
+ca2009d.ada
+ca2009f0.ada
+ca2009f1.ada
+ca2009f2.ada
+ca2011b.ada
+ca21001.a
+ca3011a0.ada
+ca3011a1.ada
+ca3011a2.ada
+ca3011a3.ada
+ca3011a4.ada
+ca5003a0.ada
+ca5003a1.ada
+ca5003a2.ada
+ca5003a3.ada
+ca5003a4.ada
+ca5003a5.ada
+ca5003a6.ada
+ca5003b0.ada
+ca5003b1.ada
+ca5003b2.ada
+ca5003b3.ada
+ca5003b4.ada
+ca5003b5.ada
+ca5004a.ada
+ca5004b0.ada
+ca5004b1.ada
+ca5004b2.ada
+ca5006a.ada
+cb10002.a
+cb1001a.ada
+cb1004a.ada
+cb1005a.ada
+cb1010a.ada
+cb1010c.ada
+cb1010d.ada
+cb20001.a
+cb20003.a
+cb20004.a
+cb20005.a
+cb20006.a
+cb20007.a
+cb2004a.ada
+cb2005a.ada
+cb2006a.ada
+cb2007a.ada
+cb20a02.a
+cb3003a.ada
+cb3003b.ada
+cb3004a.ada
+cb40005.a
+cb4001a.ada
+cb4002a.ada
+cb4003a.ada
+cb4004a.ada
+cb4005a.ada
+cb4006a.ada
+cb4007a.ada
+cb4008a.ada
+cb4009a.ada
+cb4013a.ada
+cb40a01.a
+cb40a020.a
+cb40a021.am
+cb40a030.a
+cb40a031.am
+cb40a04.a
+cb41001.a
+cb41002.a
+cb41003.a
+cb41004.a
+cb5001a.ada
+cb5001b.ada
+cb5002a.ada
+cc1004a.ada
+cc1005b.ada
+cc1010a.ada
+cc1010b.ada
+cc1018a.ada
+cc1104c.ada
+cc1107b.ada
+cc1111a.ada
+cc1204a.ada
+cc1207b.ada
+cc1220a.ada
+cc1221a.ada
+cc1221b.ada
+cc1221c.ada
+cc1221d.ada
+cc1222a.ada
+cc1223a.ada
+cc1224a.ada
+cc1225a.tst
+cc1226b.ada
+cc1227a.ada
+cc1301a.ada
+cc1302a.ada
+cc1304a.ada
+cc1304b.ada
+cc1307a.ada
+cc1307b.ada
+cc1308a.ada
+cc1310a.ada
+cc1311a.ada
+cc1311b.ada
+cc2002a.ada
+cc30001.a
+cc30002.a
+cc3004a.ada
+cc3007a.ada
+cc3007b.ada
+cc3011a.ada
+cc3011d.ada
+cc3012a.ada
+cc3015a.ada
+cc3016b.ada
+cc3016c.ada
+cc3016f.ada
+cc3016i.ada
+cc3017b.ada
+cc3017c.ada
+cc3019a.ada
+cc3019b0.ada
+cc3019b1.ada
+cc3019b2.ada
+cc3019c0.ada
+cc3019c1.ada
+cc3019c2.ada
+cc3106b.ada
+cc3120a.ada
+cc3120b.ada
+cc3121a.ada
+cc3123a.ada
+cc3125a.ada
+cc3125b.ada
+cc3125c.ada
+cc3125d.ada
+cc3126a.ada
+cc3127a.ada
+cc3128a.ada
+cc3203a.ada
+cc3207b.ada
+cc3220a.ada
+cc3221a.ada
+cc3222a.ada
+cc3223a.ada
+cc3224a.ada
+cc3225a.ada
+cc3230a.ada
+cc3231a.ada
+cc3232a.ada
+cc3233a.ada
+cc3234a.ada
+cc3235a.ada
+cc3236a.ada
+cc3240a.ada
+cc3305a.ada
+cc3305b.ada
+cc3305c.ada
+cc3305d.ada
+cc3601a.ada
+cc3601c.ada
+cc3602a.ada
+cc3603a.ada
+cc3605a.ada
+cc3606a.ada
+cc3606b.ada
+cc3607b.ada
+cc40001.a
+cc50001.a
+cc50a01.a
+cc50a02.a
+cc51001.a
+cc51002.a
+cc51003.a
+cc51004.a
+cc51006.a
+cc51007.a
+cc51a01.a
+cc51b03.a
+cc51d01.a
+cc51d02.a
+cc54001.a
+cc54002.a
+cc54003.a
+cc54004.a
+cc70001.a
+cc70002.a
+cc70003.a
+cc70a01.a
+cc70a02.a
+cc70b01.a
+cc70b02.a
+cc70c01.a
+cc70c02.a
+cd10001.a
+cd1009a.ada
+cd1009b.ada
+cd1009d.ada
+cd1009e.ada
+cd1009f.ada
+cd1009g.ada
+cd1009h.ada
+cd1009i.ada
+cd1009j.ada
+cd1009k.tst
+cd1009l.ada
+cd1009m.ada
+cd1009n.ada
+cd1009o.ada
+cd1009p.ada
+cd1009q.ada
+cd1009r.ada
+cd1009s.ada
+cd1009t.tst
+cd1009u.tst
+cd1009v.ada
+cd1009w.ada
+cd1009x.ada
+cd1009y.ada
+cd1009z.ada
+cd1c03a.ada
+cd1c03b.ada
+cd1c03c.ada
+cd1c03e.tst
+cd1c03f.ada
+cd1c03g.ada
+cd1c03h.ada
+cd1c03i.ada
+cd1c04a.ada
+cd1c04d.ada
+cd1c04e.ada
+cd1c06a.tst
+cd20001.a
+cd2a21a.ada
+cd2a21c.ada
+cd2a21e.ada
+cd2a22a.ada
+cd2a22e.ada
+cd2a22i.ada
+cd2a22j.ada
+cd2a23a.ada
+cd2a23e.ada
+cd2a24a.ada
+cd2a24e.ada
+cd2a24i.ada
+cd2a24j.ada
+cd2a31a.ada
+cd2a31c.ada
+cd2a31e.ada
+cd2a32a.ada
+cd2a32c.ada
+cd2a32e.ada
+cd2a32g.ada
+cd2a32i.ada
+cd2a32j.ada
+cd2a51a.ada
+cd2a53a.ada
+cd2a53e.ada
+cd2a83c.tst
+cd2a91c.tst
+cd2b11a.ada
+cd2b11b.ada
+cd2b11d.ada
+cd2b11e.ada
+cd2b11f.ada
+cd2b15c.ada
+cd2b16a.ada
+cd2c11a.tst
+cd2c11d.tst
+cd2d11a.ada
+cd2d13a.ada
+cd30001.a
+cd30002.a
+cd30003.a
+cd30004.a
+cd300050.am
+cd300051.c
+cd3014a.ada
+cd3014c.ada
+cd3014d.ada
+cd3014f.ada
+cd3015a.ada
+cd3015c.ada
+cd3015e.ada
+cd3015f.ada
+cd3015g.ada
+cd3015h.ada
+cd3015i.ada
+cd3015k.ada
+cd3021a.ada
+cd33001.a
+cd33002.a
+cd40001.a
+cd4031a.ada
+cd4041a.tst
+cd4051a.ada
+cd4051b.ada
+cd4051c.ada
+cd4051d.ada
+cd5003a.ada
+cd5003b.ada
+cd5003c.ada
+cd5003d.ada
+cd5003e.ada
+cd5003f.ada
+cd5003g.ada
+cd5003h.ada
+cd5003i.ada
+cd5011a.ada
+cd5011c.ada
+cd5011e.ada
+cd5011g.ada
+cd5011i.ada
+cd5011k.ada
+cd5011m.ada
+cd5011q.ada
+cd5011s.ada
+cd5012a.ada
+cd5012b.ada
+cd5012e.ada
+cd5012f.ada
+cd5012i.ada
+cd5012m.ada
+cd5013a.ada
+cd5013c.ada
+cd5013e.ada
+cd5013g.ada
+cd5013i.ada
+cd5013k.ada
+cd5013m.ada
+cd5013o.ada
+cd5014a.ada
+cd5014c.ada
+cd5014e.ada
+cd5014g.ada
+cd5014i.ada
+cd5014k.ada
+cd5014m.ada
+cd5014o.ada
+cd5014t.ada
+cd5014v.ada
+cd5014x.ada
+cd5014y.ada
+cd5014z.ada
+cd70001.a
+cd7002a.ada
+cd7007b.ada
+cd7101d.ada
+cd7101e.dep
+cd7101f.dep
+cd7101g.tst
+cd7103d.ada
+cd7202a.ada
+cd7204b.ada
+cd7204c.ada
+cd72a01.a
+cd72a02.a
+cd7305a.ada
+cd90001.a
+cd92001.a
+cda201a.ada
+cda201b.ada
+cda201c.ada
+cda201e.ada
+cdb0a01.a
+cdb0a02.a
+cdd1001.a
+cdd2001.a
+cde0001.a
+ce2102a.ada
+ce2102b.ada
+ce2102c.tst
+ce2102d.ada
+ce2102e.ada
+ce2102f.ada
+ce2102g.ada
+ce2102h.tst
+ce2102i.ada
+ce2102j.ada
+ce2102k.ada
+ce2102l.ada
+ce2102m.ada
+ce2102n.ada
+ce2102o.ada
+ce2102p.ada
+ce2102q.ada
+ce2102r.ada
+ce2102s.ada
+ce2102t.ada
+ce2102u.ada
+ce2102v.ada
+ce2102w.ada
+ce2102x.ada
+ce2102y.ada
+ce2103a.tst
+ce2103b.tst
+ce2103c.ada
+ce2103d.ada
+ce2104a.ada
+ce2104b.ada
+ce2104c.ada
+ce2104d.ada
+ce2106a.ada
+ce2106b.ada
+ce2108e.ada
+ce2108f.ada
+ce2108g.ada
+ce2108h.ada
+ce2109a.ada
+ce2109b.ada
+ce2109c.ada
+ce2110a.ada
+ce2110c.ada
+ce2111a.ada
+ce2111b.ada
+ce2111c.ada
+ce2111e.ada
+ce2111f.ada
+ce2111g.ada
+ce2111i.ada
+ce2201a.ada
+ce2201b.ada
+ce2201c.ada
+ce2201d.dep
+ce2201e.dep
+ce2201f.ada
+ce2201g.ada
+ce2201h.ada
+ce2201i.ada
+ce2201j.ada
+ce2201k.ada
+ce2201l.ada
+ce2201m.ada
+ce2201n.ada
+ce2202a.ada
+ce2203a.tst
+ce2204a.ada
+ce2204b.ada
+ce2204c.ada
+ce2204d.ada
+ce2205a.ada
+ce2206a.ada
+ce2208b.ada
+ce2401a.ada
+ce2401b.ada
+ce2401c.ada
+ce2401e.ada
+ce2401f.ada
+ce2401h.ada
+ce2401i.ada
+ce2401j.ada
+ce2401k.ada
+ce2401l.ada
+ce2402a.ada
+ce2403a.tst
+ce2404a.ada
+ce2404b.ada
+ce2405b.ada
+ce2406a.ada
+ce2407a.ada
+ce2407b.ada
+ce2408a.ada
+ce2408b.ada
+ce2409a.ada
+ce2409b.ada
+ce2410a.ada
+ce2410b.ada
+ce2411a.ada
+ce3002b.tst
+ce3002c.tst
+ce3002d.ada
+ce3002f.ada
+ce3102a.ada
+ce3102b.tst
+ce3102d.ada
+ce3102e.ada
+ce3102f.ada
+ce3102g.ada
+ce3102h.ada
+ce3102i.ada
+ce3102j.ada
+ce3102k.ada
+ce3103a.ada
+ce3104a.ada
+ce3104b.ada
+ce3104c.ada
+ce3106a.ada
+ce3106b.ada
+ce3107a.tst
+ce3107b.ada
+ce3108a.ada
+ce3108b.ada
+ce3110a.ada
+ce3112c.ada
+ce3112d.ada
+ce3114a.ada
+ce3115a.ada
+ce3201a.ada
+ce3202a.ada
+ce3206a.ada
+ce3207a.ada
+ce3301a.ada
+ce3302a.ada
+ce3303a.ada
+ce3304a.tst
+ce3305a.ada
+ce3306a.ada
+ce3401a.ada
+ce3402a.ada
+ce3402c.ada
+ce3402d.ada
+ce3402e.ada
+ce3403a.ada
+ce3403b.ada
+ce3403c.ada
+ce3403d.ada
+ce3403e.ada
+ce3403f.ada
+ce3404a.ada
+ce3404b.ada
+ce3404c.ada
+ce3404d.ada
+ce3405a.ada
+ce3405c.ada
+ce3405d.ada
+ce3406a.ada
+ce3406b.ada
+ce3406c.ada
+ce3406d.ada
+ce3407a.ada
+ce3407b.ada
+ce3407c.ada
+ce3408a.ada
+ce3408b.ada
+ce3408c.ada
+ce3409a.ada
+ce3409b.ada
+ce3409c.ada
+ce3409d.ada
+ce3409e.ada
+ce3410a.ada
+ce3410b.ada
+ce3410c.ada
+ce3410d.ada
+ce3410e.ada
+ce3411a.ada
+ce3411c.ada
+ce3412a.ada
+ce3413a.ada
+ce3413b.ada
+ce3413c.ada
+ce3414a.ada
+ce3601a.ada
+ce3602a.ada
+ce3602b.ada
+ce3602c.ada
+ce3602d.ada
+ce3603a.ada
+ce3604a.ada
+ce3604b.ada
+ce3605a.ada
+ce3605b.ada
+ce3605c.ada
+ce3605d.ada
+ce3605e.ada
+ce3606a.ada
+ce3606b.ada
+ce3701a.ada
+ce3704a.ada
+ce3704b.ada
+ce3704c.ada
+ce3704d.ada
+ce3704e.ada
+ce3704f.ada
+ce3704m.ada
+ce3704n.ada
+ce3704o.ada
+ce3705a.ada
+ce3705b.ada
+ce3705c.ada
+ce3705d.ada
+ce3705e.ada
+ce3706c.ada
+ce3706d.ada
+ce3706f.ada
+ce3706g.ada
+ce3707a.ada
+ce3708a.ada
+ce3801a.ada
+ce3801b.ada
+ce3804a.ada
+ce3804b.ada
+ce3804c.ada
+ce3804d.ada
+ce3804e.ada
+ce3804f.ada
+ce3804g.ada
+ce3804h.ada
+ce3804i.ada
+ce3804j.ada
+ce3804m.ada
+ce3804o.ada
+ce3804p.ada
+ce3805a.ada
+ce3805b.ada
+ce3806a.ada
+ce3806b.ada
+ce3806c.ada
+ce3806d.ada
+ce3806e.ada
+ce3806f.ada
+ce3806g.ada
+ce3806h.ada
+ce3809a.ada
+ce3809b.ada
+ce3810a.ada
+ce3810b.ada
+ce3815a.ada
+ce3901a.ada
+ce3902b.ada
+ce3904a.ada
+ce3904b.ada
+ce3905a.ada
+ce3905b.ada
+ce3905c.ada
+ce3905l.ada
+ce3906a.ada
+ce3906b.ada
+ce3906c.ada
+ce3906d.ada
+ce3906e.ada
+ce3906f.ada
+ce3907a.ada
+ce3908a.ada
+checkfil.ada
+coverage.txt
+cxa3001.a
+cxa3002.a
+cxa3003.a
+cxa3004.a
+cxa4001.a
+cxa4002.a
+cxa4003.a
+cxa4004.a
+cxa4005.a
+cxa4006.a
+cxa4007.a
+cxa4008.a
+cxa4009.a
+cxa4010.a
+cxa4011.a
+cxa4012.a
+cxa4013.a
+cxa4014.a
+cxa4015.a
+cxa4016.a
+cxa4017.a
+cxa4018.a
+cxa4019.a
+cxa4020.a
+cxa4021.a
+cxa4022.a
+cxa4023.a
+cxa4024.a
+cxa4025.a
+cxa4026.a
+cxa4027.a
+cxa4028.a
+cxa4029.a
+cxa4030.a
+cxa4031.a
+cxa4032.a
+cxa4033.a
+cxa4034.a
+cxa5011.a
+cxa5012.a
+cxa5013.a
+cxa5015.a
+cxa5a01.a
+cxa5a02.a
+cxa5a03.a
+cxa5a04.a
+cxa5a05.a
+cxa5a06.a
+cxa5a07.a
+cxa5a08.a
+cxa5a09.a
+cxa5a10.a
+cxa8001.a
+cxa8002.a
+cxa8003.a
+cxa9001.a
+cxa9002.a
+cxaa001.a
+cxaa002.a
+cxaa003.a
+cxaa004.a
+cxaa005.a
+cxaa006.a
+cxaa007.a
+cxaa008.a
+cxaa009.a
+cxaa010.a
+cxaa011.a
+cxaa012.a
+cxaa013.a
+cxaa014.a
+cxaa015.a
+cxaa016.a
+cxaa017.a
+cxaa018.a
+cxaa019.a
+cxab001.a
+cxac001.a
+cxac002.a
+cxac003.a
+cxac004.a
+cxac005.a
+cxaca01.a
+cxaca02.a
+cxacb01.a
+cxacb02.a
+cxacc01.a
+cxaf001.a
+cxb2001.a
+cxb2002.a
+cxb2003.a
+cxb3001.a
+cxb3002.a
+cxb3003.a
+cxb30040.c
+cxb30041.am
+cxb3005.a
+cxb30060.c
+cxb30061.am
+cxb3007.a
+cxb3008.a
+cxb3009.a
+cxb3010.a
+cxb3011.a
+cxb3012.a
+cxb30130.c
+cxb30131.c
+cxb30132.am
+cxb3014.a
+cxb3015.a
+cxb3016.a
+cxb4001.a
+cxb4002.a
+cxb4003.a
+cxb4004.a
+cxb4005.a
+cxb4006.a
+cxb4007.a
+cxb4008.a
+cxb40090.cbl
+cxb40091.cbl
+cxb40092.cbl
+cxb40093.am
+cxb5001.a
+cxb5002.a
+cxb5003.a
+cxb50040.ftn
+cxb50041.ftn
+cxb50042.am
+cxb50050.ftn
+cxb50051.ftn
+cxb50052.am
+cxc3001.a
+cxc3002.a
+cxc3003.a
+cxc3004.a
+cxc3005.a
+cxc3006.a
+cxc3007.a
+cxc3008.a
+cxc3009.a
+cxc6001.a
+cxc6002.a
+cxc6003.a
+cxc7001.a
+cxc7002.a
+cxc7003.a
+cxc7004.a
+cxd1001.a
+cxd1002.a
+cxd1003.a
+cxd1004.a
+cxd1005.a
+cxd1006.a
+cxd1007.a
+cxd1008.a
+cxd2001.a
+cxd2002.a
+cxd2003.a
+cxd2004.a
+cxd2006.a
+cxd2007.a
+cxd2008.a
+cxd3001.a
+cxd3002.a
+cxd3003.a
+cxd4001.a
+cxd4002.a
+cxd4003.a
+cxd4004.a
+cxd4005.a
+cxd4006.a
+cxd4007.a
+cxd4008.a
+cxd4009.a
+cxd4010.a
+cxd5001.a
+cxd6001.a
+cxd6002.a
+cxd6003.a
+cxd8001.a
+cxd8002.a
+cxd8003.a
+cxd9001.a
+cxda001.a
+cxda002.a
+cxda003.a
+cxda004.a
+cxdb001.a
+cxdb002.a
+cxdb003.a
+cxdb004.a
+cxe1001.a
+cxe2001.a
+cxe2002.a
+cxe4001.a
+cxe4002.a
+cxe4003.a
+cxe4004.a
+cxe4005.a
+cxe4006.a
+cxe5001.a
+cxe5002.a
+cxe5003.a
+cxf1001.a
+cxf2001.a
+cxf2002.a
+cxf2003.a
+cxf2004.a
+cxf2005.a
+cxf2a01.a
+cxf2a02.a
+cxf3001.a
+cxf3002.a
+cxf3003.a
+cxf3004.a
+cxf3a01.a
+cxf3a02.a
+cxf3a03.a
+cxf3a04.a
+cxf3a05.a
+cxf3a06.a
+cxf3a07.a
+cxf3a08.a
+cxg1001.a
+cxg1002.a
+cxg1003.a
+cxg1004.a
+cxg1005.a
+cxg2001.a
+cxg2002.a
+cxg2003.a
+cxg2004.a
+cxg2005.a
+cxg2006.a
+cxg2007.a
+cxg2008.a
+cxg2009.a
+cxg2010.a
+cxg2011.a
+cxg2012.a
+cxg2013.a
+cxg2014.a
+cxg2015.a
+cxg2016.a
+cxg2017.a
+cxg2018.a
+cxg2019.a
+cxg2020.a
+cxg2021.a
+cxg2022.a
+cxg2023.a
+cxg2024.a
+cxh1001.a
+cxh3001.a
+cxh3002.a
+cxh30030.a
+cxh30031.am
+cz00004.a
+cz1101a.ada
+cz1102a.ada
+cz1103a.ada
+d4a002a.ada
+d4a002b.ada
+d4a004a.ada
+d4a004b.ada
+e28002b.ada
+e28005d.ada
+e52103y.ada
+eb4011a.ada
+eb4012a.ada
+eb4014a.ada
+ee3203a.ada
+ee3204a.ada
+ee3402b.ada
+ee3409f.ada
+ee3412c.ada
+enumchek.ada
+f340a000.a
+f340a001.a
+f341a00.a
+f390a00.a
+f392a00.a
+f392c00.a
+f392d00.a
+f393a00.a
+f393b00.a
+f3a2a00.a
+f460a00.a
+f730a000.a
+f730a001.a
+f731a00.a
+f940a00.a
+f954a00.a
+fa11a00.a
+fa11b00.a
+fa11c00.a
+fa11d00.a
+fa13a00.a
+fa13b00.a
+fa21a00.a
+fb20a00.a
+fb40a00.a
+fc50a00.a
+fc51a00.a
+fc51b00.a
+fc51c00.a
+fc51d00.a
+fc54a00.a
+fc70a00.a
+fc70b00.a
+fc70c00.a
+fcndecl.ada
+fd72a00.a
+fdb0a00.a
+fxa5a00.a
+fxaca00.a
+fxacb00.a
+fxacc00.a
+fxc6a00.a
+fxe2a00.a
+fxf2a00.a
+fxf3a00.a
+impdef.a
+impdefc.a
+impdefd.a
+impdefe.a
+impdefg.a
+impdefh.a
+la140010.a
+la140011.am
+la140012.a
+la140020.a
+la140021.am
+la140022.a
+la140030.a
+la140031.a
+la140032.am
+la140033.a
+la140040.a
+la140041.am
+la140042.a
+la140050.a
+la140051.a
+la140052.am
+la140053.a
+la140060.a
+la140061.a
+la140062.am
+la140063.a
+la140070.a
+la140071.a
+la140072.am
+la140073.a
+la140080.a
+la140081.a
+la140082.am
+la140083.a
+la140090.a
+la140091.a
+la140092.am
+la140093.a
+la140100.a
+la140101.a
+la140102.am
+la140103.a
+la140110.a
+la140111.a
+la140112.am
+la140113.a
+la140120.a
+la140121.a
+la140122.am
+la140123.a
+la140130.a
+la140131.a
+la140132.am
+la140133.a
+la140140.a
+la140141.a
+la140142.am
+la140143.a
+la140150.a
+la140151.a
+la140152.am
+la140153.a
+la140160.a
+la140161.a
+la140162.am
+la140163.a
+la140170.a
+la140171.a
+la140172.am
+la140173.a
+la140180.a
+la140181.a
+la140182.am
+la140183.a
+la140190.a
+la140191.a
+la140192.am
+la140193.a
+la140200.a
+la140201.a
+la140202.am
+la140203.a
+la140210.a
+la140211.am
+la140212.a
+la140220.a
+la140221.am
+la140222.a
+la140240.a
+la140241.a
+la140242.am
+la140243.a
+la140250.a
+la140251.am
+la140252.a
+la140260.a
+la140261.a
+la140262.am
+la140263.a
+la140270.a
+la140271.a
+la140272.am
+la140273.a
+la200010.a
+la200011.a
+la200012.am
+la5001a0.ada
+la5001a1.ada
+la5001a2.ada
+la5001a3.ada
+la5001a4.ada
+la5001a5.ada
+la5001a6.ada
+la5001a7.ada
+la5007a0.ada
+la5007a1.ada
+la5007b0.ada
+la5007b1.ada
+la5007c0.ada
+la5007c1.ada
+la5007d0.ada
+la5007d1.ada
+la5007e0.ada
+la5007e1.ada
+la5007f0.ada
+la5007f1.ada
+la5007g0.ada
+la5007g1.ada
+la5008a0.ada
+la5008a1.ada
+la5008b0.ada
+la5008b1.ada
+la5008c0.ada
+la5008c1.ada
+la5008d0.ada
+la5008d1.ada
+la5008e0.ada
+la5008e1.ada
+la5008f0.ada
+la5008f1.ada
+la5008g0.ada
+la5008g1.ada
+lencheck.ada
+lxd70010.a
+lxd70011.a
+lxd70012.am
+lxd70030.a
+lxd70031.a
+lxd70032.am
+lxd70040.a
+lxd70041.a
+lxd70042.am
+lxd70050.a
+lxd70051.a
+lxd70052.am
+lxd70060.a
+lxd70061.a
+lxd70062.am
+lxd70070.a
+lxd70071.a
+lxd70072.am
+lxd70080.a
+lxd70081.a
+lxd70082.am
+lxd70090.a
+lxd70091.a
+lxd70092.am
+lxe30010.am
+lxe30011.am
+lxe30020.am
+lxe30021.am
+lxh40010.a
+lxh40011.a
+lxh40012.am
+lxh40020.a
+lxh40021.a
+lxh40022.am
+lxh40030.a
+lxh40031.a
+lxh40032.a
+lxh40033.am
+lxh40040.a
+lxh40041.a
+lxh40042.a
+lxh40043.am
+lxh40050.a
+lxh40051.a
+lxh40052.a
+lxh40053.am
+lxh40060.a
+lxh40061.a
+lxh40062.a
+lxh40063.am
+lxh40070.a
+lxh40071.a
+lxh40072.a
+lxh40073.am
+lxh40080.a
+lxh40081.a
+lxh40082.a
+lxh40083.a
+lxh40084.am
+lxh40090.a
+lxh40091.a
+lxh40092.a
+lxh40093.am
+lxh40100.a
+lxh40101.a
+lxh40102.a
+lxh40103.am
+lxh40110.a
+lxh40111.a
+lxh40112.am
+lxh40120.a
+lxh40121.a
+lxh40122.a
+lxh40123.am
+lxh40130.a
+lxh40131.a
+lxh40132.a
+lxh40133.am
+lxh40140.a
+lxh40141.a
+lxh40142.am
+macro.dfs
+macrosub.ada
+repbody.ada
+repspec.ada
+spprt13s.tst
+tctouch.ada
+testobj.txt
+tsttests.dat
+ug-apxa.doc
+ug-apxa.pdf
+ug-apxa.txt
+ug-apxb.doc
+ug-apxb.pdf
+ug-apxb.txt
+ug-apxc.doc
+ug-apxc.pdf
+ug-apxc.txt
+ug-apxd.doc
+ug-apxd.pdf
+ug-apxd.txt
+ug-body.doc
+ug-body.pdf
+ug-body.txt
+widechr.a
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/checkfil.ada b/gcc-4.9/gcc/testsuite/ada/acats/support/checkfil.ada
new file mode 100644
index 000000000..cde0e5ca5
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/checkfil.ada
@@ -0,0 +1,197 @@
+-- CHECK_FILE.ADA
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- THIS IS A PROCEDURE USED BY MANY OF THE CHAPTER 14 TESTS TO CHECK THE
+-- CONTENTS OF A TEXT FILE.
+
+-- THIS PROCEDURE ASSUMES THE FILE PARAMETER PASSED TO IT IS AN OPEN
+-- TEXT FILE.
+
+-- THE STRING PARAMETER CONTAINS THE CHARACTERS THAT ARE SUPPOSED TO BE
+-- IN THE TEXT FILE. A '#' CHARACTER IS USED IN THE STRING TO DENOTE
+-- THE END OF A LINE. A '@' CHARACTER IS USED TO DENOTE THE END OF A
+-- PAGE. A '%' CHARACTER IS USED TO DENOTE THE END OF THE TEXT FILE.
+-- THESE SYMBOLS SHOULD NOT BE USED AS TEXT OUTPUT.
+
+-- SPS 11/30/82
+-- JBG 2/3/83
+
+WITH REPORT; USE REPORT;
+WITH TEXT_IO; USE TEXT_IO;
+
+PROCEDURE CHECK_FILE (FILE: IN OUT FILE_TYPE; CONTENTS : STRING) IS
+
+ X : CHARACTER;
+ COL_COUNT : POSITIVE_COUNT := 1;
+ LINE_COUNT : POSITIVE_COUNT := 1;
+ PAGE_COUNT : POSITIVE_COUNT := 1;
+ TRAILING_BLANKS_MSG_WRITTEN : BOOLEAN := FALSE;
+ STOP_PROCESSING : EXCEPTION;
+
+ PROCEDURE CHECK_END_OF_LINE (EXPECT_END_OF_PAGE : BOOLEAN) IS
+ BEGIN
+
+-- SKIP OVER ANY TRAILING BLANKS. AN IMPLEMENTATION CAN LEGALLY
+-- APPEND BLANKS TO THE END OF ANY LINE.
+
+ WHILE NOT END_OF_LINE (FILE) LOOP
+ GET (FILE, X);
+ IF X /= ' ' THEN
+ FAILED ("FROM CHECK_FILE: END OF LINE EXPECTED - " &
+ X & " ENCOUNTERED");
+ RAISE STOP_PROCESSING;
+ ELSE
+ IF NOT TRAILING_BLANKS_MSG_WRITTEN THEN
+ COMMENT ("FROM CHECK_FILE: " &
+ "THIS IMPLEMENTATION PADS " &
+ "LINES WITH BLANKS");
+ TRAILING_BLANKS_MSG_WRITTEN := TRUE;
+ END IF;
+ END IF;
+ END LOOP;
+
+ IF LINE_COUNT /= LINE (FILE) THEN
+ FAILED ("FROM CHECK_FILE: " &
+ "LINE COUNT INCORRECT - EXPECTED " &
+ POSITIVE_COUNT'IMAGE(LINE_COUNT) &
+ " GOT FROM FILE " &
+ POSITIVE_COUNT'IMAGE(LINE(FILE)));
+ END IF;
+
+-- NOTE: DO NOT SKIP_LINE WHEN AT END OF PAGE BECAUSE SKIP_LINE WILL
+-- ALSO SKIP THE PAGE TERMINATOR. SEE RM 14.3.5 PARAGRAPH 1.
+
+ IF NOT EXPECT_END_OF_PAGE THEN
+ IF END_OF_PAGE (FILE) THEN
+ FAILED ("FROM CHECK_FILE: PREMATURE END OF PAGE");
+ RAISE STOP_PROCESSING;
+ ELSE
+ SKIP_LINE (FILE);
+ LINE_COUNT := LINE_COUNT + 1;
+ END IF;
+ END IF;
+ COL_COUNT := 1;
+ END CHECK_END_OF_LINE;
+
+ PROCEDURE CHECK_END_OF_PAGE IS
+ BEGIN
+ IF NOT END_OF_PAGE (FILE) THEN
+ FAILED ("FROM CHECK_FILE: " &
+ "END_OF_PAGE NOT WHERE EXPECTED");
+ RAISE STOP_PROCESSING;
+ ELSE
+ IF PAGE_COUNT /= PAGE (FILE) THEN
+ FAILED ("FROM CHECK_FILE: " &
+ "PAGE COUNT INCORRECT - EXPECTED " &
+ POSITIVE_COUNT'IMAGE (PAGE_COUNT) &
+ " GOT FROM FILE " &
+ POSITIVE_COUNT'IMAGE (PAGE(FILE)));
+ END IF;
+
+ SKIP_PAGE (FILE);
+ PAGE_COUNT := PAGE_COUNT + 1;
+ LINE_COUNT := 1;
+ END IF;
+ END CHECK_END_OF_PAGE;
+
+BEGIN
+
+ RESET (FILE, IN_FILE);
+ SET_LINE_LENGTH (STANDARD_OUTPUT, 0);
+ SET_PAGE_LENGTH (STANDARD_OUTPUT, 0);
+
+ FOR I IN 1 .. CONTENTS'LENGTH LOOP
+
+ BEGIN
+ CASE CONTENTS (I) IS
+ WHEN '#' =>
+ CHECK_END_OF_LINE (CONTENTS (I + 1) = '@');
+ WHEN '@' =>
+ CHECK_END_OF_PAGE;
+ WHEN '%' =>
+ IF NOT END_OF_FILE (FILE) THEN
+ FAILED ("FROM CHECK_FILE: " &
+ "END_OF_FILE NOT WHERE EXPECTED");
+ RAISE STOP_PROCESSING;
+ END IF;
+ WHEN OTHERS =>
+ IF COL_COUNT /= COL(FILE) THEN
+ FAILED ("FROM CHECK_FILE: " &
+ "COL COUNT INCORRECT - " &
+ "EXPECTED " & POSITIVE_COUNT'
+ IMAGE(COL_COUNT) & " GOT FROM " &
+ "FILE " & POSITIVE_COUNT'IMAGE
+ (COL(FILE)));
+ END IF;
+ GET (FILE, X);
+ COL_COUNT := COL_COUNT + 1;
+ IF X /= CONTENTS (I) THEN
+ FAILED("FROM CHECK_FILE: " &
+ "FILE DOES NOT CONTAIN CORRECT " &
+ "OUTPUT - EXPECTED " & CONTENTS(I)
+ & " - GOT " & X);
+ RAISE STOP_PROCESSING;
+ END IF;
+ END CASE;
+ EXCEPTION
+ WHEN STOP_PROCESSING =>
+ COMMENT ("FROM CHECK_FILE: " &
+ "LAST CHARACTER IN FOLLOWING STRING " &
+ "REVEALED ERROR: " & CONTENTS (1 .. I));
+ EXIT;
+ END;
+
+ END LOOP;
+
+EXCEPTION
+ WHEN STATUS_ERROR =>
+ FAILED ("FROM CHECK_FILE: " &
+ "STATUS_ERROR RAISED - FILE CHECKING INCOMPLETE");
+ WHEN MODE_ERROR =>
+ FAILED ("FROM CHECK_FILE: " &
+ "MODE_ERROR RAISED - FILE CHECKING INCOMPLETE");
+ WHEN NAME_ERROR =>
+ FAILED ("FROM CHECK_FILE: " &
+ "NAME_ERROR RAISED - FILE CHECKING INCOMPLETE");
+ WHEN USE_ERROR =>
+ FAILED ("FROM CHECK_FILE: " &
+ "USE_ERROR RAISED - FILE CHECKING INCOMPLETE");
+ WHEN DEVICE_ERROR =>
+ FAILED ("FROM CHECK_FILE: " &
+ "DEVICE_ERROR RAISED - FILE CHECKING INCOMPLETE");
+ WHEN END_ERROR =>
+ FAILED ("FROM CHECK_FILE: " &
+ "END_ERROR RAISED - FILE CHECKING INCOMPLETE");
+ WHEN DATA_ERROR =>
+ FAILED ("FROM CHECK_FILE: " &
+ "DATA_ERROR RAISED - FILE CHECKING INCOMPLETE");
+ WHEN LAYOUT_ERROR =>
+ FAILED ("FROM CHECK_FILE: " &
+ "LAYOUT_ERROR RAISED - FILE CHECKING INCOMPLETE");
+ WHEN OTHERS =>
+ FAILED ("FROM CHECK_FILE: " &
+ "SOME EXCEPTION RAISED - FILE CHECKING INCOMPLETE");
+
+END CHECK_FILE;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/enumchek.ada b/gcc-4.9/gcc/testsuite/ada/acats/support/enumchek.ada
new file mode 100644
index 000000000..044c1a853
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/enumchek.ada
@@ -0,0 +1,65 @@
+-- THIS GENERIC PROCEDURE IS INTENDED FOR USE IN CONJUNCTION WITH THE ACVC
+-- CHAPTER 13 C TESTS. IT IS INSTANTIATED WITH TWO TYPES. THE FIRST IS AN
+-- ENUMERATION TYPE FOR WHICH AN ENUMERATION CLAUSE HAS BEEN GIVEN, AND THE
+-- SECOND IS AN INTEGER TYPE WHOSE 'SIZE IS THE SAME AS THE 'SIZE OF THIS
+-- ENUMERATION TYPE.
+
+-- THE PROCEDURE ENUM_CHECK IS THEN CALLED WITH THREE ARGUMENTS. THE FIRST IS
+-- AN ENUMERATION LITERAL FROM THE ENUMERATION TYPE, THE SECOND IS AN INTEGER
+-- LITERAL WHICH IS THE VALUE OF THE EXPECTED REPRESENTATION (TAKEN FROM THE
+-- ENUMERATION REPRESENTATION CLAUSE), AND THE THIRD IS A STRING DESCRIBING OR
+-- NAMING THE TYPE (USED IN A CALL TO FAILED IF THE REPRESENTATION CHECK FAILS).
+
+-- THE CHECK IS TO CONVERT THE ENUMERATION VALUE TO A BOOLEAN ARRAY WITH A
+-- LENGTH CORRESONDING TO THE 'SIZE OF THE ENUMERATION TYPE. AN INTEGER TYPE
+-- IS THEN CREATED WITH THIS SAME 'SIZE, AND THE REQUIRED REPRESENTATION VALUE
+-- IS CONVERTED FROM THIS TYPE TO A BOOLEAN ARRAY WITH THE SAME LENGTH. THE
+-- TWO BOOLEAN ARRAYS ARE THEN COMPARED AND SHOULD BE EQUAL. THE CONVERSIONS
+-- ARE PERFORMED USING APPROPRIATE INSTANTIATIONS OF UNCHECKED_CONVERSION.
+
+-- AUTHOR: ROBERT B. K. DEWAR, UNCOPYRIGHTED, PUBLIC DOMAIN USE AUTHORIZED
+
+GENERIC
+
+ TYPE ENUM_TYPE IS PRIVATE;
+ TYPE INT_TYPE IS RANGE <>;
+
+PROCEDURE ENUM_CHECK (TEST_VALUE : ENUM_TYPE;
+ REP_VALUE : INT_TYPE;
+ TYPE_ID : STRING);
+
+
+WITH UNCHECKED_CONVERSION;
+WITH REPORT; USE REPORT;
+
+PROCEDURE ENUM_CHECK (TEST_VALUE : ENUM_TYPE;
+ REP_VALUE : INT_TYPE;
+ TYPE_ID : STRING) IS
+
+ TYPE BIT_ARRAY_TYPE IS ARRAY (1 .. ENUM_TYPE'SIZE) OF BOOLEAN;
+ PRAGMA PACK (BIT_ARRAY_TYPE);
+
+ FUNCTION TO_BITS IS NEW UNCHECKED_CONVERSION (ENUM_TYPE, BIT_ARRAY_TYPE);
+ FUNCTION TO_BITS IS NEW UNCHECKED_CONVERSION (INT_TYPE, BIT_ARRAY_TYPE);
+
+ BIT_ARRAY_1 : BIT_ARRAY_TYPE;
+ BIT_ARRAY_2 : BIT_ARRAY_TYPE;
+
+ INT_VALUE : INT_TYPE := INT_TYPE (REP_VALUE);
+
+BEGIN
+
+ -- VERIFY CORRECT CALL (THIS IS A SANITY CHECK ON THE TEST ITSELF)
+
+ IF ENUM_TYPE'SIZE /= INT_TYPE'SIZE THEN
+ FAILED ("ERROR IN ENUM_CHECK CALL: SIZES DO NOT MATCH");
+ END IF;
+
+ BIT_ARRAY_1 := TO_BITS (TEST_VALUE);
+ BIT_ARRAY_2 := TO_BITS (INT_VALUE);
+
+ IF BIT_ARRAY_1 /= BIT_ARRAY_2 THEN
+ FAILED ("CHECK ON REPRESENTATION OF TYPE " & TYPE_ID & " FAILED.");
+ END IF;
+
+END ENUM_CHECK;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/f340a000.a b/gcc-4.9/gcc/testsuite/ada/acats/support/f340a000.a
new file mode 100644
index 000000000..a3daf96b5
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/f340a000.a
@@ -0,0 +1,149 @@
+-- F340A000.A
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- FOUNDATION DESCRIPTION:
+-- This file simulates a generic linked list abstraction for use in tests
+-- covering tagged types and type extensions.
+--
+-- TEST FILES:
+-- This foundation consists of the following files:
+--
+-- => F340A000.A
+-- F340A001.A
+--
+-- CHANGE HISTORY:
+-- 06 Dec 94 SAIC ACVC 2.0
+-- 12 Jun 96 SAIC ACVC 2.1: Modified prologue. Added pragma
+-- Elaborate_Body.
+--
+--!
+
+generic -- Singly-linked list abstraction.
+ type Parent_Type is tagged private; -- Actual is parent
+package F340A000 is -- tagged type.
+
+ pragma Elaborate_Body;
+
+
+ -- Declarations for visible linked list nodes:
+
+ type Node_Type;
+
+ type Node_Ptr is access Node_Type;
+
+ type Node_Type is new Parent_Type with record -- Record extension
+ Next : Node_Ptr := null; -- of parent type.
+ end record;
+
+
+ -- Inherits primitive operations of actual type corresponding
+ -- to Parent_Type.
+
+ -- Add node at head of list.
+ procedure Add (Item : in Node_Ptr;
+ Head : in out Node_Ptr);
+
+ -- Remove node from head of list and return it.
+ procedure Remove (Head : in out Node_Ptr;
+ Item : out Node_Ptr);
+
+
+
+ -- Declarations for private linked list nodes:
+
+ type Priv_Node_Type is new Parent_Type with private; -- Private extension
+ -- of parent type.
+
+ -- Inherits primitive operations of actual parameter corresponding
+ -- to Parent_Type.
+
+
+ type Priv_Node_Ptr is access Priv_Node_Type;
+
+
+ -- Add node at head of list.
+ procedure Add (Item : in Priv_Node_Ptr;
+ Head : in out Priv_Node_Ptr);
+
+ -- Remove node from head of list and return it.
+ procedure Remove (Head : in out Priv_Node_Ptr;
+ Item : out Priv_Node_Ptr);
+
+
+private
+
+ type Priv_Node_Type is new Parent_Type with record
+ Next : Priv_Node_Ptr := null;
+ end record;
+
+end F340A000;
+
+
+ --==================================================================--
+
+
+package body F340A000 is -- Singly-linked list abstraction.
+
+ procedure Add (Item : in Node_Ptr;
+ Head : in out Node_Ptr) is
+ begin
+ if Item /= null then
+ Item.Next := Head;
+ Head := Item;
+ end if;
+ end Add;
+
+
+ procedure Remove (Head : in out Node_Ptr;
+ Item : out Node_Ptr) is
+ begin
+ Item := Head;
+ if Head /= null then
+ Head := Head.Next;
+ end if;
+ end Remove;
+
+
+ procedure Add (Item : in Priv_Node_Ptr;
+ Head : in out Priv_Node_Ptr) is
+ begin
+ if Item /= null then
+ Item.Next := Head;
+ Head := Item;
+ end if;
+ end Add;
+
+
+ procedure Remove (Head : in out Priv_Node_Ptr;
+ Item : out Priv_Node_Ptr) is
+ begin
+ Item := Head;
+ if Head /= null then
+ Head := Head.Next;
+ end if;
+ end Remove;
+
+
+end F340A000;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/f340a001.a b/gcc-4.9/gcc/testsuite/ada/acats/support/f340a001.a
new file mode 100644
index 000000000..3fe027e59
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/f340a001.a
@@ -0,0 +1,75 @@
+-- F340A001.A
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- FOUNDATION DESCRIPTION:
+-- This file declares a tagged type and primitive subprogram for use in
+-- tests covering tagged types and type extensions.
+--
+-- TEST FILES:
+-- The following files comprise this foundation:
+--
+-- F340A000.A
+-- => F340A001.A
+--
+-- CHANGE HISTORY:
+-- 06 Dec 94 SAIC ACVC 2.0
+--
+--!
+
+package F340A001 is -- Book definitions.
+
+
+ type Text_Ptr is access String;
+
+ type Book_Type is tagged record -- Root tagged type.
+ Title : Text_Ptr;
+ Author : Text_Ptr;
+ end record;
+
+
+ procedure Create_Book (Title : in Text_Ptr; -- Primitive operation
+ Author : in Text_Ptr; -- of root tagged type.
+ Book : out Book_Type);
+
+
+end F340A001;
+
+
+ --==================================================================--
+
+
+package body F340A001 is -- Book definitions.
+
+
+ procedure Create_Book (Title : in Text_Ptr;
+ Author : in Text_Ptr;
+ Book : out Book_Type) is
+ begin
+ Book.Title := Title;
+ Book.Author := Author;
+ end Create_Book;
+
+
+end F340A001;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/f341a00.a b/gcc-4.9/gcc/testsuite/ada/acats/support/f341a00.a
new file mode 100644
index 000000000..b2e389f73
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/f341a00.a
@@ -0,0 +1,216 @@
+-- F341A00.A
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- FOUNDATION DESCRIPTION:
+-- This foundation provides a simple class hierarchy (a root type and two
+-- levels of derivation from it) to use in testing the basic OO features
+-- related to tagged types.
+--
+-- CHANGE HISTORY:
+-- 06 Dec 94 SAIC ACVC 2.0
+--
+--!
+
+package F341A00_0 is -- package Bank
+
+ type Dollar_Amount is new Float;
+
+ type Account is tagged
+ record
+ Current_Balance: Dollar_Amount;
+ end record;
+
+ -- Primitive operations.
+
+ procedure Deposit (A : in out Account;
+ X : in Dollar_Amount);
+ procedure Withdrawal (A : in out Account;
+ X : in Dollar_Amount);
+ function Balance (A : in Account) return Dollar_Amount;
+ procedure Service_Charge (A : in out Account);
+ procedure Add_Interest (A : in out Account);
+ procedure Open (A : in out Account);
+
+end F341A00_0;
+
+
+ --=================================================================--
+
+
+package body F341A00_0 is
+
+ -- Primitive operations for type Account.
+
+ procedure Deposit (A : in out Account;
+ X : in Dollar_Amount) is
+ begin
+ A.Current_Balance := A.Current_Balance + X;
+ end Deposit;
+
+ --
+
+ procedure Withdrawal (A : in out Account;
+ X : in Dollar_Amount) is
+ begin
+ A.Current_Balance := A.Current_Balance - X;
+ end Withdrawal;
+
+ --
+
+ function Balance (A : in Account) return Dollar_Amount is
+ begin
+ return (A.Current_Balance);
+ end Balance;
+
+ --
+
+ procedure Service_Charge (A : in out Account) is
+ begin
+ A.Current_Balance := A.Current_Balance - 5.00;
+ end Service_Charge;
+
+ --
+
+ procedure Add_Interest (A : in out Account) is
+ -- No interest accumulated on this type of account.
+ Interest_On_Account : Dollar_Amount := 0.00;
+ begin
+ A.Current_Balance := A.Current_Balance + Interest_On_Account;
+ end Add_Interest;
+
+ --
+
+ procedure Open (A : in out Account) is
+ Initial_Deposit : Dollar_Amount := 10.00;
+ begin
+ A.Current_Balance := Initial_Deposit;
+ end Open;
+
+end F341A00_0;
+
+
+ --=================================================================--
+
+
+with F341A00_0;
+
+package F341A00_1 is -- package Checking
+
+ package Bank renames F341A00_0;
+
+ type Account is new Bank.Account with
+ record
+ Overdraft_Fee : Bank.Dollar_Amount;
+ end record;
+
+
+ -- Inherited primitive operations.
+ -- procedure Deposit (A : in out Account; X : in Bank.Dollar_Amount);
+ -- procedure Withdrawal (A : in out Account; X : in Bank.Dollar_Amount);
+ -- function Balance (A : in Account) return Bank.Dollar_Amount;
+ -- procedure Service_Charge(A : in out Account);
+ -- procedure Add_Interest (A : in out Account);
+
+ -- Overridden primitive operation.
+ procedure Open (A : in out Account);
+
+end F341A00_1;
+
+
+ --=================================================================--
+
+
+package body F341A00_1 is
+
+ -- Overridden primitive operation.
+
+ procedure Open (A : in out Account) is
+ Check_Guarantee : Bank.Dollar_Amount := 10.00;
+ Initial_Deposit : Bank.Dollar_Amount := 100.00;
+ begin
+ A.Current_Balance := Initial_Deposit;
+ A.Overdraft_Fee := Check_Guarantee;
+ end Open;
+
+end F341A00_1;
+
+
+ --=================================================================--
+
+
+with F341A00_0; -- package Bank
+with F341A00_1; -- package Checking
+
+package F341A00_2 is -- package Interest_Checking
+
+ package Bank renames F341A00_0;
+ package Checking renames F341A00_1;
+
+ subtype Interest_Rate is Bank.Dollar_Amount digits 4;
+
+ Current_Rate : Interest_Rate := 0.030;
+
+ type Account is new Checking.Account with
+ record
+ Rate : Interest_Rate;
+ end record;
+
+ -- "Twice" inherited primitive operations (Bank.Account, Checking.Account)
+ -- procedure Deposit (A : in out Account; X : in Bank.Dollar_Amount);
+ -- procedure Withdrawal (A : in out Account; X : in Bank.Dollar_Amount);
+ -- function Balance (A : in Account) return Bank.Dollar_Amount;
+ -- procedure Service_Charge(A : in out Account);
+
+ -- Overridden primitive operations.
+ procedure Add_Interest (A : in out Account);
+ procedure Open (A : in out Account);
+
+end F341A00_2;
+
+
+ --=================================================================--
+
+
+package body F341A00_2 is
+
+ -- Overridden primitive operations.
+
+ procedure Add_Interest (A : in out Account) is
+ use type Bank.Dollar_Amount;
+ Interest_On_Account : Bank.Dollar_Amount
+ := Bank.Dollar_Amount(A.Current_Balance * A.Rate);
+ begin
+ A.Current_Balance := A.Current_Balance + Interest_On_Account;
+ end Add_Interest;
+
+ procedure Open (A : in out Account) is
+ Initial_Deposit : Bank.Dollar_Amount := 1000.00;
+ begin
+ Checking.Open (Checking.Account (A));
+ A.Current_Balance := Initial_Deposit;
+ A.Rate := Current_Rate;
+ end Open;
+
+end F341A00_2;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/f390a00.a b/gcc-4.9/gcc/testsuite/ada/acats/support/f390a00.a
new file mode 100644
index 000000000..0230812e6
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/f390a00.a
@@ -0,0 +1,94 @@
+-- F390A00.A
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- FOUNDATION DESCRIPTION:
+-- This file declares the root type and primitive subprograms of an
+-- alert system abstraction, to be used for tests covering tagged
+-- types and type extensions.
+--
+-- CHANGE HISTORY:
+-- 06 Dec 94 SAIC ACVC 2.0
+-- 04 Jun 96 SAIC ACVC 2.1: Added pragma Elaborate for Ada.Calendar.
+--
+--!
+
+with Ada.Calendar;
+pragma Elaborate (Ada.Calendar);
+
+package F390A00 is -- Alert system abstraction.
+
+
+ -- Declarations used by component Display_On and procedure Display.
+
+ type Device_Enum is (Null_Device, Teletype, Console, Big_Screen);
+ type Display_Counters is array (Device_Enum) of Natural;
+
+ Display_Count_For : Display_Counters := (others => 0);
+
+
+ -- Declarations used by component Arrival_Time.
+
+ Default_Time : constant Ada.Calendar.Time :=
+ Ada.Calendar.Time_Of (1901, 1, 1);
+ Alert_Time : constant Ada.Calendar.Time :=
+ Ada.Calendar.Time_Of (1991, 6, 15);
+
+
+
+ type Alert_Type is tagged record -- Root tagged type.
+ Arrival_Time : Ada.Calendar.Time := Default_Time;
+ Display_On : Device_Enum := Null_Device;
+ end record;
+
+
+ procedure Display (A : in Alert_Type); -- To be inherited by
+ -- all derivatives.
+
+ procedure Handle (A : in out Alert_Type); -- To be overridden by
+ -- all derivatives.
+
+end F390A00;
+
+
+ --==================================================================--
+
+
+package body F390A00 is -- Alert system abstraction.
+
+
+ procedure Display (A : in Alert_Type) is
+ begin
+ Display_Count_For (A.Display_On) := Display_Count_For (A.Display_On) + 1;
+ end Display;
+
+
+ procedure Handle (A : in out Alert_Type) is
+ begin
+ A.Arrival_Time := Alert_Time;
+ Display (A);
+ end Handle;
+
+
+end F390A00;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/f392a00.a b/gcc-4.9/gcc/testsuite/ada/acats/support/f392a00.a
new file mode 100644
index 000000000..2d4f7a55a
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/f392a00.a
@@ -0,0 +1,200 @@
+-- F392A00.A
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- FOUNDATION DESCRIPTION:
+-- This foundation provides a basis for tests needing a hierarchy of
+-- types to check object-oriented features.
+--
+-- CHANGE HISTORY:
+-- 06 Dec 94 SAIC ACVC 2.0
+--
+--!
+
+package F392A00 is -- package Accounts
+
+ --
+ -- Types and subtypes.
+ --
+
+ type Dollar_Amount is new Float;
+ type Interest_Rate is delta 0.001 range 0.000 .. 1.000;
+ type Account_Types is (Bank, Savings, Preferred, Total);
+ type Account_Counter is array (Account_Types) of Integer;
+ type Account_Rep is (President, Manager, New_Account_Manager, Teller);
+
+ --
+ -- Constants.
+ --
+
+ Opening_Balance : constant Dollar_Amount := 100.00;
+ Current_Rate : constant Interest_Rate := 0.030;
+ Preferred_Minimum_Balance : constant Dollar_Amount := 1000.00;
+
+ --
+ -- Global Variables
+ --
+
+ Bank_Reserve : Dollar_Amount := 0.00;
+ Daily_Representative : Account_Rep := New_Account_Manager;
+ Number_Of_Accounts : Account_Counter := (Bank => 0,
+ Savings => 0,
+ Preferred => 0,
+ Total => 0);
+ --
+ -- Account types and their primitive operations.
+ --
+
+ -- Root type.
+
+ type Bank_Account is tagged
+ record
+ Balance : Dollar_Amount;
+ end record;
+
+ -- Primitive operations of Bank_Account.
+
+ procedure Increment_Bank_Reserve (Acct : in Bank_Account);
+ procedure Assign_Representative (Acct : in Bank_Account);
+ procedure Increment_Counters (Acct : in Bank_Account);
+ procedure Open (Acct : in out Bank_Account);
+
+ --
+
+ type Savings_Account is new Bank_Account with
+ record
+ Rate : Interest_Rate;
+ end record;
+
+ -- Procedure Increment_Bank_Reserve inherited from parent (Bank_Account).
+
+ -- Primitive operations (Overridden).
+ procedure Assign_Representative (Acct : in Savings_Account);
+ procedure Increment_Counters (Acct : in Savings_Account);
+ procedure Open (Acct : in out Savings_Account);
+
+ --
+
+ type Preferred_Account is new Savings_Account with
+ record
+ Minimum_Balance : Dollar_Amount;
+ end record;
+
+ -- Procedure Increment_Bank_Reserve inherited twice.
+ -- Procedure Assign_Representative inherited from parent (Savings_Account).
+
+ -- Primitive operations (Overridden).
+ procedure Increment_Counters (Acct : in Preferred_Account);
+ procedure Open (Acct : in out Preferred_Account);
+
+ -- Function used to verify Open operation for Preferred_Account objects.
+ function Verify_Open (Acct : in Preferred_Account) return Boolean;
+
+
+end F392A00;
+
+
+ --=================================================================--
+
+
+package body F392A00 is
+
+ --
+ -- Primitive operations for Bank_Account.
+ --
+
+ procedure Increment_Bank_Reserve (Acct : in Bank_Account) is
+ begin
+ Bank_Reserve := Bank_Reserve + Acct.Balance;
+ end Increment_Bank_Reserve;
+
+ procedure Assign_Representative (Acct : in Bank_Account) is
+ begin
+ Daily_Representative := Teller;
+ end Assign_Representative;
+
+ procedure Increment_Counters (Acct : in Bank_Account) is
+ begin
+ Number_Of_Accounts (Bank) := Number_Of_Accounts (Bank) + 1;
+ Number_Of_Accounts (Total) := Number_Of_Accounts (Total) + 1;
+ end Increment_Counters;
+
+ procedure Open (Acct : in out Bank_Account) is
+ begin
+ Acct.Balance := Opening_Balance;
+ end Open;
+
+
+ --
+ -- Overridden operations for Savings_Account type.
+ --
+
+ procedure Assign_Representative (Acct : in Savings_Account) is
+ begin
+ Daily_Representative := Manager;
+ end Assign_Representative;
+
+ procedure Increment_Counters (Acct : in Savings_Account) is
+ begin
+ Number_Of_Accounts (Savings) := Number_Of_Accounts (Savings) + 1;
+ Number_Of_Accounts (Total) := Number_Of_Accounts (Total) + 1;
+ end Increment_Counters;
+
+ procedure Open (Acct : in out Savings_Account) is
+ begin
+ Open (Bank_Account(Acct));
+ Acct.Rate := Current_Rate;
+ Acct.Balance := 2.0 * Opening_Balance;
+ end Open;
+
+
+ --
+ -- Overridden operation for Preferred_Account type.
+ --
+
+ procedure Increment_Counters (Acct : in Preferred_Account) is
+ begin
+ Number_Of_Accounts (Preferred) := Number_Of_Accounts (Preferred) + 1;
+ Number_Of_Accounts (Total) := Number_Of_Accounts (Total) + 1;
+ end Increment_Counters;
+
+ procedure Open (Acct : in out Preferred_Account) is
+ begin
+ Open (Savings_Account(Acct));
+ Acct.Minimum_Balance := Preferred_Minimum_Balance;
+ Acct.Balance := Acct.Minimum_Balance;
+ end Open;
+
+ --
+ -- Function used to verify Open operation for Preferred_Account objects.
+ --
+
+ function Verify_Open (Acct : in Preferred_Account) return Boolean is
+ begin
+ return (Acct.Balance = Preferred_Minimum_Balance and
+ Acct.Rate = Current_Rate and
+ Acct.Minimum_Balance = Preferred_Minimum_Balance);
+ end Verify_Open;
+
+end F392A00;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/f392c00.a b/gcc-4.9/gcc/testsuite/ada/acats/support/f392c00.a
new file mode 100644
index 000000000..8a470e7d4
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/f392c00.a
@@ -0,0 +1,267 @@
+-- F392C00.A
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- FOUNDATION DESCRIPTION:
+-- This foundation provides a basis for tagged type and dispatching
+-- tests. Each test describes the utilizations.
+--
+-- CHANGE HISTORY:
+-- 06 Dec 94 SAIC ACVC 2.0
+-- 24 OCT 95 SAIC Updated for ACVC 2.0.1
+--
+--!
+
+package F392C00_1 is -- Switches
+
+ type Toggle is tagged private; ---------------------------------- Toggle
+
+ function Create return Toggle;
+ procedure Flip ( It : in out Toggle );
+ function On ( It : Toggle'Class ) return Boolean;
+ function Off ( It : Toggle'Class ) return Boolean;
+
+ type Dimmer is new Toggle with private; ------------------------- Dimmer
+
+ type Luminance is range 0..100;
+
+ function Create return Dimmer;
+ procedure Flip ( It : in out Dimmer );
+ procedure Brighten( It : in out Dimmer;
+ By : in Luminance := 10 );
+ procedure Dim ( It : in out Dimmer;
+ By : in Luminance := 10 );
+ function Intensity( It : Dimmer ) return Luminance;
+
+ type Auto_Dimmer is new Dimmer with private; --------------- Auto_Dimmer
+
+ function Create return Auto_Dimmer;
+ procedure Flip ( It: in out Auto_Dimmer );
+ procedure Set_Auto ( It: in out Auto_Dimmer );
+ procedure Clear_Auto( It: in out Auto_Dimmer );
+ -- procedure Set_Manual( It: in out Auto_Dimmer ) renames Clear_Auto;
+ procedure Set_Cutin ( It: in out Auto_Dimmer; Lumens: in Luminance );
+ procedure Set_Cutout( It: in out Auto_Dimmer; Lumens: in Luminance );
+
+ function Auto ( It: Auto_Dimmer ) return Boolean;
+ function Cutout_Threshold( It: Auto_Dimmer ) return Luminance;
+ function Cutin_Threshold ( It: Auto_Dimmer ) return Luminance;
+
+ function TC_CW_TI( Key : Character ) return Toggle'Class;
+
+ function TC_Non_Disp( It: Toggle ) return Boolean;
+ function TC_Non_Disp( It: Dimmer ) return Boolean;
+ function TC_Non_Disp( It: Auto_Dimmer ) return Boolean;
+
+private
+
+ type Toggle is tagged record
+ On : Boolean := False;
+ end record;
+
+ type Dimmer is new Toggle with record
+ Intensity : Luminance := 100;
+ end record;
+
+ type Auto_Dimmer is new Dimmer with record
+ Cutout_Threshold : Luminance := 60;
+ Cutin_Threshold : Luminance := 40;
+ Auto_Engaged : Boolean := False;
+ end record;
+
+end F392C00_1;
+
+with TCTouch;
+package body F392C00_1 is
+
+ function Create return Toggle is
+ begin
+ TCTouch.Touch( '1' ); ------------------------------------------------ 1
+ return Toggle'( On => True );
+ end Create;
+
+ function Create return Dimmer is
+ begin
+ TCTouch.Touch( '2' ); ------------------------------------------------ 2
+ return Dimmer'( On => True, Intensity => 75 );
+ end Create;
+
+ function Create return Auto_Dimmer is
+ begin
+ TCTouch.Touch( '3' ); ------------------------------------------------ 3
+ return Auto_Dimmer'( On => True, Intensity => 25,
+ Cutout_Threshold | Cutin_Threshold => 50,
+ Auto_Engaged => True );
+ end Create;
+
+ procedure Flip ( It : in out Toggle ) is
+ begin
+ TCTouch.Touch( 'A' ); ------------------------------------------------ A
+ It.On := not It.On;
+ end Flip;
+
+ function On( It : Toggle'Class ) return Boolean is
+ begin
+ TCTouch.Touch( 'B' ); ------------------------------------------------ B
+ return It.On;
+ end On;
+
+ function Off( It : Toggle'Class ) return Boolean is
+ begin
+ TCTouch.Touch( 'C' ); ------------------------------------------------ C
+ return not It.On;
+ end Off;
+
+ procedure Brighten( It : in out Dimmer;
+ By : in Luminance := 10 ) is
+ begin
+ TCTouch.Touch( 'D' ); ------------------------------------------------ D
+ if (It.Intensity+By) <= Luminance'Last then
+ It.Intensity := It.Intensity+By;
+ else
+ It.Intensity := Luminance'Last;
+ end if;
+ end Brighten;
+
+ procedure Dim ( It : in out Dimmer;
+ By : in Luminance := 10 ) is
+ begin
+ TCTouch.Touch( 'E' ); ------------------------------------------------ E
+ if (It.Intensity-By) >= Luminance'First then
+ It.Intensity := It.Intensity-By;
+ else
+ It.Intensity := Luminance'First;
+ end if;
+ end Dim;
+
+ function Intensity( It : Dimmer ) return Luminance is
+ begin
+ TCTouch.Touch( 'F' ); ------------------------------------------------ F
+ if On(It) then
+ return It.Intensity;
+ else
+ return Luminance'First;
+ end if;
+ end Intensity;
+
+ procedure Flip ( It : in out Dimmer ) is
+ begin
+ TCTouch.Touch( 'G' ); ------------------------------------------------ G
+ if On( It ) and (It.Intensity < 50) then
+ It.Intensity := Luminance'Last - It.Intensity;
+ else
+ Flip( Toggle( It ) );
+ end if;
+ end Flip;
+
+ procedure Set_Auto ( It: in out Auto_Dimmer ) is
+ begin
+ TCTouch.Touch( 'H' ); ------------------------------------------------ H
+ It.Auto_Engaged := True;
+ end Set_Auto;
+
+ procedure Clear_Auto( It: in out Auto_Dimmer ) is
+ begin
+ TCTouch.Touch( 'I' ); ------------------------------------------------ I
+ It.Auto_Engaged := False;
+ end Clear_Auto;
+
+ function Auto ( It: Auto_Dimmer ) return Boolean is
+ begin
+ TCTouch.Touch( 'J' ); ------------------------------------------------ J
+ return It.Auto_Engaged;
+ end Auto;
+
+ procedure Flip ( It: in out Auto_Dimmer ) is
+ begin
+ TCTouch.Touch( 'K' ); ------------------------------------------------ K
+ if It.Auto_Engaged then
+ if Off(It) then
+ Flip( Dimmer( It ) );
+ else
+ It.Auto_Engaged := False;
+ end if;
+ else
+ Flip( Dimmer( It ) );
+ end if;
+ end Flip;
+
+ procedure Set_Cutin ( It : in out Auto_Dimmer;
+ Lumens : in Luminance) is
+ begin
+ TCTouch.Touch( 'L' ); ------------------------------------------------ L
+ It.Cutin_Threshold := Lumens;
+ end Set_Cutin;
+
+ procedure Set_Cutout( It : in out Auto_Dimmer;
+ Lumens : in Luminance) is
+ begin
+ TCTouch.Touch( 'M' ); ------------------------------------------------ M
+ It.Cutout_Threshold := Lumens;
+ end Set_Cutout;
+
+ function Cutout_Threshold( It : Auto_Dimmer ) return Luminance is
+ begin
+ TCTouch.Touch( 'N' ); ------------------------------------------------ N
+ return It.Cutout_Threshold;
+ end Cutout_Threshold;
+
+ function Cutin_Threshold ( It : Auto_Dimmer ) return Luminance is
+ begin
+ TCTouch.Touch( 'O' ); ------------------------------------------------ O
+ return It.Cutin_Threshold;
+ end Cutin_Threshold;
+
+ function TC_CW_TI( Key : Character ) return Toggle'Class is
+ begin
+ TCTouch.Touch( 'W' ); ------------------------------------------------ W
+ case Key is
+ when 'T' | 't' => return Toggle'( On => True );
+ when 'D' | 'd' => return Dimmer'( On => True, Intensity => 75 );
+ when 'A' | 'a' => return Auto_Dimmer'( On => True, Intensity => 25,
+ Cutout_Threshold | Cutin_Threshold => 50,
+ Auto_Engaged => True );
+ when others => null;
+ end case;
+ end TC_CW_TI;
+
+ function TC_Non_Disp( It: Toggle ) return Boolean is
+ begin
+ TCTouch.Touch( 'X' ); ------------------------------------------------ X
+ return It.On;
+ end TC_Non_Disp;
+
+ function TC_Non_Disp( It: Dimmer ) return Boolean is
+ begin
+ TCTouch.Touch( 'Y' ); ------------------------------------------------ Y
+ return It.On;
+ end TC_Non_Disp;
+
+ function TC_Non_Disp( It: Auto_Dimmer ) return Boolean is
+ begin
+ TCTouch.Touch( 'Z' ); ------------------------------------------------ Z
+ return It.On;
+ end TC_Non_Disp;
+
+end F392C00_1;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/f392d00.a b/gcc-4.9/gcc/testsuite/ada/acats/support/f392d00.a
new file mode 100644
index 000000000..24f742739
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/f392d00.a
@@ -0,0 +1,103 @@
+-- F392D00.A
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- FOUNDATION DESCRIPTION:
+-- This foundation declares parent tagged types and subprograms for use
+-- in tests covering dispatching operations.
+--
+-- CHANGE HISTORY:
+-- 06 Dec 94 SAIC ACVC 2.0
+--
+--!
+
+package F392D00 is
+
+ type Depth_Of_Field is range 5 .. 100;
+ type Shutter_Speed is (One, Two_Fifty, Four_Hundred, Thousand);
+
+ type Remote_Camera is tagged record
+ DOF : Depth_Of_Field := 10;
+ Shutter: Shutter_Speed := One;
+ end record;
+
+ -- ...Other declarations.
+
+ procedure Focus (C : in out Remote_Camera;
+ Depth : in Depth_Of_Field);
+
+ procedure Self_Test (C: in out Remote_Camera'Class);
+
+ -- ...Other operations.
+
+private
+
+ procedure Set_Shutter_Speed (C : in out Remote_Camera;
+ Speed : in Shutter_Speed);
+
+ -- For the basic remote camera, shutter speed might be set as a function of
+ -- focus perhaps, thus it is declared as a private operation (usable
+ -- only internally within the abstraction).
+
+
+end F392D00;
+
+
+ --==================================================================--
+
+
+package body F392D00 is
+
+ procedure Focus (C : in out Remote_Camera;
+ Depth : in Depth_Of_Field) is
+ begin
+ -- Artificial for testing purposes.
+ C.DOF := 46;
+ end Focus;
+
+ -----------------------------------------------------------
+ procedure Set_Shutter_Speed (C : in out Remote_Camera;
+ Speed : in Shutter_Speed) is
+ begin
+ -- Artificial for testing purposes.
+ C.Shutter := Thousand;
+ end Set_Shutter_Speed;
+
+ -----------------------------------------------------------
+ procedure Self_Test (C: in out Remote_Camera'Class) is
+ TC_Dummy_Depth : constant Depth_Of_Field := 23;
+ TC_Dummy_Speed : constant Shutter_Speed := Four_Hundred;
+ begin
+
+ -- Test focus at various depths:
+ Focus(C, TC_Dummy_Depth);
+ -- ...Additional calls to Focus.
+
+ -- Test various shutter speeds:
+ Set_Shutter_Speed(C, TC_Dummy_Speed);
+ -- ...Additional calls to Set_Shutter_Speed.
+
+ end Self_Test;
+
+end F392D00;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/f393a00.a b/gcc-4.9/gcc/testsuite/ada/acats/support/f393a00.a
new file mode 100644
index 000000000..e85c3f49c
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/f393a00.a
@@ -0,0 +1,245 @@
+-- F393A00.A
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- FOUNDATION DESCRIPTION:
+-- This foundation provides a simple background for a class family
+-- based on an abstract type. It is to be used to test the
+-- dispatching of various forms of subprogram defined/inherited and
+-- overridden with the abstract type.
+--
+-- type procedures functions
+-- ---- ---------- ---------
+-- Object Initialize, Swap(abstract) Create(abstract)
+-- Object'Class Initialized
+-- Windmill is new Object Swap, Stop, Add_Spin Create, Spin
+-- Pump is new Windmill Set_Rate Create, Rate
+-- Mill is new Windmill Swap, Stop Create
+--
+-- CHANGE HISTORY:
+-- 06 Dec 94 SAIC ACVC 2.0
+--
+--!
+
+package F393A00_0 is
+ procedure TC_Touch ( A_Tag : Character );
+ procedure TC_Validate( Expected: String; Message: String );
+end F393A00_0;
+
+with Report;
+package body F393A00_0 is
+ Expectation : String(1..20);
+ Finger : Natural := 0;
+
+ procedure TC_Touch ( A_Tag : Character ) is
+ begin
+ Finger := Finger+1;
+ Expectation(Finger) := A_Tag;
+ end TC_Touch;
+
+ procedure TC_Validate( Expected: String; Message: String ) is
+ begin
+ if Expectation(1..Finger) /= Expected then
+ Report.Failed( Message & " Expecting: " & Expected
+ & " Got: " & Expectation(1..Finger) );
+ end if;
+ Finger := 0;
+ end TC_Validate;
+end F393A00_0;
+
+----------------------------------------------------------------------
+
+package F393A00_1 is
+ type Object is abstract tagged private;
+ procedure Initialize( An_Object: in out Object );
+ function Initialized( An_Object: Object'Class ) return Boolean;
+ procedure Swap( A,B: in out Object ) is abstract;
+ function Create return Object is abstract;
+private
+ type Object is abstract tagged record
+ Initialized : Boolean := False;
+ end record;
+end F393A00_1;
+
+with F393A00_0;
+package body F393A00_1 is
+ procedure Initialize( An_Object: in out Object ) is
+ begin
+ An_Object.Initialized := True;
+ F393A00_0.TC_Touch('a');
+ end Initialize;
+
+ function Initialized( An_Object: Object'Class ) return Boolean is
+ begin
+ F393A00_0.TC_Touch('b');
+ return An_Object.Initialized;
+ end Initialized;
+end F393A00_1;
+
+----------------------------------------------------------------------
+
+with F393A00_1;
+package F393A00_2 is
+
+ type Rotational_Measurement is range -1_000 .. 1_000;
+ type Windmill is new F393A00_1.Object with private;
+
+ procedure Swap( A,B: in out Windmill );
+
+ function Create return Windmill;
+
+ procedure Add_Spin( To_Mill : in out Windmill;
+ RPMs : in Rotational_Measurement );
+
+ procedure Stop( Mill : in out Windmill );
+
+ function Spin( Mill : Windmill ) return Rotational_Measurement;
+
+private
+ type Windmill is new F393A00_1.Object with
+ record
+ Spin : Rotational_Measurement := 0;
+ end record;
+end F393A00_2;
+
+with F393A00_0;
+package body F393A00_2 is
+
+ procedure Swap( A,B: in out Windmill ) is
+ T : constant Windmill := B;
+ begin
+ F393A00_0.TC_Touch('c');
+ B := A;
+ A := T;
+ end Swap;
+
+ function Create return Windmill is
+ A_Mill : Windmill;
+ begin
+ F393A00_0.TC_Touch('d');
+ return A_Mill;
+ end Create;
+
+ procedure Add_Spin( To_Mill : in out Windmill;
+ RPMs : in Rotational_Measurement ) is
+ begin
+ F393A00_0.TC_Touch('e');
+ To_Mill.Spin := To_Mill.Spin + RPMs;
+ end Add_Spin;
+
+ procedure Stop( Mill : in out Windmill ) is
+ begin
+ F393A00_0.TC_Touch('f');
+ Mill.Spin := 0;
+ end Stop;
+
+ function Spin( Mill : Windmill ) return Rotational_Measurement is
+ begin
+ F393A00_0.TC_Touch('g');
+ return Mill.Spin;
+ end Spin;
+
+end F393A00_2;
+
+----------------------------------------------------------------------
+
+with F393A00_2;
+package F393A00_3 is
+ type Pump is new F393A00_2.Windmill with private;
+ function Create return Pump;
+
+ type Gallons_Per_Revolution is digits 3;
+ procedure Set_Rate( A_Pump: in out Pump; To_Rate: Gallons_Per_Revolution);
+ function Rate( Of_Pump: Pump ) return Gallons_Per_Revolution;
+private
+ type Pump is new F393A00_2.Windmill with
+ record
+ GPRPM : Gallons_Per_Revolution := 0.0; -- Gallons/RPM
+ end record;
+end F393A00_3;
+
+with F393A00_0;
+package body F393A00_3 is
+ function Create return Pump is
+ Sump : Pump;
+ begin
+ F393A00_0.TC_Touch('h');
+ return Sump;
+ end Create;
+
+ procedure Set_Rate( A_Pump: in out Pump; To_Rate: Gallons_Per_Revolution)
+ is
+ begin
+ F393A00_0.TC_Touch('i');
+ A_Pump.GPRPM := To_Rate;
+ end Set_Rate;
+
+ function Rate( Of_Pump: Pump ) return Gallons_Per_Revolution is
+ begin
+ F393A00_0.TC_Touch('j');
+ return Of_Pump.GPRPM;
+ end Rate;
+end F393A00_3;
+
+----------------------------------------------------------------------
+
+with F393A00_2;
+with F393A00_3;
+package F393A00_4 is
+ type Mill is new F393A00_2.Windmill with private;
+
+ procedure Swap( A,B: in out Mill );
+ function Create return Mill;
+ procedure Stop( It: in out Mill );
+ private
+ type Mill is new F393A00_2.Windmill with
+ record
+ Pump: F393A00_3.Pump := F393A00_3.Create;
+ end record;
+end F393A00_4;
+
+with F393A00_0;
+package body F393A00_4 is
+ procedure Swap( A,B: in out Mill ) is
+ T: constant Mill := A;
+ begin
+ F393A00_0.TC_Touch('k');
+ A := B;
+ B := T;
+ end Swap;
+
+ function Create return Mill is
+ A_Mill : Mill;
+ begin
+ F393A00_0.TC_Touch('l');
+ return A_Mill;
+ end Create;
+
+ procedure Stop( It: in out Mill ) is
+ begin
+ F393A00_0.TC_Touch('m');
+ F393A00_3.Stop( It.Pump );
+ F393A00_2.Stop( F393A00_2.Windmill( It ) );
+ end Stop;
+end F393A00_4;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/f393b00.a b/gcc-4.9/gcc/testsuite/ada/acats/support/f393b00.a
new file mode 100644
index 000000000..afabdd72f
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/f393b00.a
@@ -0,0 +1,101 @@
+-- F393B00.A
+ -- Alert_Foundation
+ --
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+ --
+ -- FOUNDATION DESCRIPTION:
+ -- This package declares three abstract types for use in C660 series
+ -- tests, Alert, Special_Alert, and Private_Alert.
+ -- It models (in miniature) an application situation in which an
+ -- abstraction is defined in terms of structure (record and operations
+ -- on the record) but not in terms of content (record is null). It
+ -- also models a situation in which an abstraction includes some
+ -- specific, implementation dependent, information.
+ --
+-- CHANGE HISTORY:
+-- 06 Dec 94 SAIC ACVC 2.0
+--
+ --!
+
+ package F393B00 is
+ type Alert is abstract tagged null record; -- abstract type
+ -- see procedure Handle below
+
+ procedure Handle (A : in out Alert) is abstract;
+ -- abstract procedure,
+ -- explicitly declared
+
+
+ type Private_Alert is abstract tagged private;
+
+ procedure Handle (PA : in out Private_Alert) is abstract;
+ -- ensures that Private_Alert
+ -- is visibly abstract
+
+
+ type Status_Kind is (Practice, Real, Dont_Care);
+ type Urgency_Kind is (Low, Medium, High);
+
+ type Practice_Alert is new Alert with record
+ Status : Status_Kind := Dont_Care;
+ Urgency : Urgency_Kind := Low;
+ end record;
+
+ procedure Handle (PA : in out Practice_Alert);
+ -- overrides inherited Handle
+
+
+
+ type Device is (Teletype, Console, Big_Screen);
+
+ type Special_Alert (Age : Integer) is
+ abstract new Practice_Alert with record
+ Display : Device;
+ end record;
+
+ procedure Handle (SA : in out Special_Alert) is abstract;
+ -- overrides inherited Handle
+
+ private
+ subtype Implementation_Detail is Integer range 1..10;
+
+ type Private_Alert is abstract tagged record
+ Private_Field : Implementation_Detail := 1;
+ end record;
+
+
+ end F393B00;
+
+ --=======================================================================--
+
+ package body F393B00 is
+
+ procedure Handle (PA : in out Practice_Alert) is
+ begin
+ PA.Status := Real;
+ PA.Urgency := Medium;
+ end Handle;
+
+ end F393B00;
+
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/f3a2a00.a b/gcc-4.9/gcc/testsuite/ada/acats/support/f3a2a00.a
new file mode 100644
index 000000000..c83908231
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/f3a2a00.a
@@ -0,0 +1,81 @@
+-- F3A2A00.A
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- FOUNDATION DESCRIPTION:
+-- This foundation declares support types and subprograms for testing
+-- run-time accessibility checks.
+--
+-- CHANGE HISTORY:
+-- 01 May 95 SAIC Initial prerelease version.
+--
+--!
+
+package F3A2A00 is
+
+ type Tagged_Type is tagged record
+ C: Integer := 0;
+ end record;
+
+ type Array_Type is array (1 .. 10) of Tagged_Type;
+
+ type AccTag_L0 is access all Tagged_Type;
+ type AccTagClass_L0 is access all Tagged_Type'Class;
+
+ type AccArr_L0 is access all Array_Type;
+
+ X_L0 : Tagged_Type;
+
+
+ type TC_Result_Kind is (OK, P_E, O_E);
+
+ procedure TC_Display_Results (Actual : in TC_Result_Kind;
+ Expected: in TC_Result_Kind;
+ Message : in String);
+end F3A2A00;
+
+
+ --==================================================================--
+
+
+with Report;
+package body F3A2A00 is
+
+ procedure TC_Display_Results (Actual : in TC_Result_Kind;
+ Expected: in TC_Result_Kind;
+ Message : in String) is
+ begin
+ if Actual /= Expected then
+ case Actual is
+ when OK =>
+ Report.Failed ("No exception raised: " & Message);
+ when P_E =>
+ Report.Failed ("Program_Error raised: " & Message);
+ when O_E =>
+ Report.Failed ("Unexpected exception raised: " & Message);
+ end case;
+ end if;
+ end TC_Display_Results;
+
+end F3A2A00;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/f460a00.a b/gcc-4.9/gcc/testsuite/ada/acats/support/f460a00.a
new file mode 100644
index 000000000..382f5c516
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/f460a00.a
@@ -0,0 +1,90 @@
+-- F460A00.A
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- FOUNDATION DESCRIPTION:
+-- This foundation declares support types and subprograms for testing
+-- run-time accessibility checks.
+--
+-- CHANGE HISTORY:
+-- 11 May 95 SAIC Initial prerelease version.
+-- 24 Apr 96 SAIC Modified Array_Type.
+--
+--!
+
+package F460A00 is
+
+ type Tagged_Type is tagged record
+ C : Integer := 0;
+ end record;
+
+ type Derived_Tagged_Type is new Tagged_Type with record
+ D : String (1 .. 4) := "void";
+ end record;
+
+ type Composite_Type (D: access Tagged_Type) is limited record
+ C : Boolean;
+ end record;
+
+ type Array_Type is array (1 .. 10) of Tagged_Type;
+
+ type AccTag_L0 is access constant Tagged_Type;
+ type AccTagClass_L0 is access all Tagged_Type'Class;
+
+ type AccArr_L0 is access all Array_Type;
+
+ X_DerivedTag : aliased Derived_Tagged_Type;
+ PTagClass_L0 : AccTagClass_L0 := X_DerivedTag'Access;
+
+ type TC_Result_Kind is (OK, UN_Init, PE_Exception, Others_Exception);
+
+ procedure TC_Check_Results (Actual : in TC_Result_Kind;
+ Expected: in TC_Result_Kind;
+ Message : in String);
+end F460A00;
+
+
+ --==================================================================--
+
+
+with Report;
+package body F460A00 is
+
+ procedure TC_Check_Results (Actual : in TC_Result_Kind;
+ Expected: in TC_Result_Kind;
+ Message : in String) is
+ begin
+ if Actual /= Expected then
+ case Actual is
+ when OK | UN_Init =>
+ Report.Failed ("No exception raised: " & Message);
+ when PE_Exception =>
+ Report.Failed ("Program_Error raised: " & Message);
+ when Others_Exception =>
+ Report.Failed ("Unexpected exception raised: " & Message);
+ end case;
+ end if;
+ end TC_Check_Results;
+
+end F460A00;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/f730a000.a b/gcc-4.9/gcc/testsuite/ada/acats/support/f730a000.a
new file mode 100644
index 000000000..137f33306
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/f730a000.a
@@ -0,0 +1,107 @@
+-- F730A000.A
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- FOUNDATION DESCRIPTION:
+-- This file simulates a generic linked list abstraction for use in tests
+-- covering tagged types and type extensions.
+--
+-- TEST FILES:
+-- This foundation consists of the following files:
+--
+-- => F730A000.A
+-- F730A001.A
+--
+-- CHANGE HISTORY:
+-- 06 Dec 94 SAIC ACVC 2.0
+-- 03 Aug 96 SAIC ACVC 2.1: Modified prologue. Added pragma
+-- Elaborate_Body. Removed extraneous record
+-- extension.
+--
+--!
+
+generic -- Singly-linked list abstraction.
+ type Parent_Type is tagged private; -- Actual is parent
+package F730A000 is -- tagged type.
+
+ pragma Elaborate_Body;
+
+
+ -- Declarations for private linked list nodes:
+
+ type Priv_Node_Type is new Parent_Type with private; -- Private extension
+ -- of parent type.
+
+ -- Inherits primitive operations of actual parameter corresponding
+ -- to Parent_Type.
+
+
+ type Priv_Node_Ptr is access Priv_Node_Type;
+
+
+ -- Add node at head of list.
+ procedure Add (Item : in Priv_Node_Ptr;
+ Head : in out Priv_Node_Ptr);
+
+ -- Remove node from head of list and return it.
+ procedure Remove (Head : in out Priv_Node_Ptr;
+ Item : out Priv_Node_Ptr);
+
+
+private
+
+ type Priv_Node_Type is new Parent_Type with record
+ Next : Priv_Node_Ptr := null;
+ end record;
+
+end F730A000;
+
+
+ --==================================================================--
+
+
+package body F730A000 is -- Singly-linked list abstraction.
+
+
+ procedure Add (Item : in Priv_Node_Ptr;
+ Head : in out Priv_Node_Ptr) is
+ begin
+ if Item /= null then
+ Item.Next := Head;
+ Head := Item;
+ end if;
+ end Add;
+
+
+ procedure Remove (Head : in out Priv_Node_Ptr;
+ Item : out Priv_Node_Ptr) is
+ begin
+ Item := Head;
+ if Head /= null then
+ Head := Head.Next;
+ end if;
+ end Remove;
+
+
+end F730A000;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/f730a001.a b/gcc-4.9/gcc/testsuite/ada/acats/support/f730a001.a
new file mode 100644
index 000000000..18153b7eb
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/f730a001.a
@@ -0,0 +1,76 @@
+-- F730A001.A
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- FOUNDATION DESCRIPTION:
+-- This file declares a tagged type and primitive subprogram for use in
+-- tests covering tagged types and type extensions.
+--
+-- TEST FILES:
+-- The following files comprise this foundation:
+--
+-- F730A000.A
+-- => F730A001.A
+--
+-- CHANGE HISTORY:
+-- 06 Dec 94 SAIC ACVC 2.0
+--
+--!
+
+
+package F730A001 is -- Book definitions.
+
+
+ type Text_Ptr is access String;
+
+ type Book_Type is tagged record -- Root tagged type.
+ Title : Text_Ptr;
+ Author : Text_Ptr;
+ end record;
+
+
+ procedure Create_Book (Title : in Text_Ptr; -- Primitive operation
+ Author : in Text_Ptr; -- of root tagged type.
+ Book : out Book_Type);
+
+
+end F730A001;
+
+
+ --==================================================================--
+
+
+package body F730A001 is -- Book definitions.
+
+
+ procedure Create_Book (Title : in Text_Ptr;
+ Author : in Text_Ptr;
+ Book : out Book_Type) is
+ begin
+ Book.Title := Title;
+ Book.Author := Author;
+ end Create_Book;
+
+
+end F730A001;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/f731a00.a b/gcc-4.9/gcc/testsuite/ada/acats/support/f731a00.a
new file mode 100644
index 000000000..5e29fbd96
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/f731a00.a
@@ -0,0 +1,66 @@
+-- F731A00.A
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- FOUNDATION DESCRIPTION:
+-- This foundation declares parent tagged types and subprograms for use
+-- in tests covering operations of private types and private extensions.
+--
+-- CHANGE HISTORY:
+-- 06 Dec 94 SAIC ACVC 2.0
+--
+--!
+
+package F731A00 is
+
+ type Parent is tagged private;
+
+ function Vis_Op (P: Parent) return Boolean;
+
+private
+
+ type Parent is tagged record
+ Component : Integer := 1;
+ end record;
+
+ function Pri_Op (P: Parent) return Boolean;
+
+end F731A00;
+
+
+ --==================================================================--
+
+
+package body F731A00 is
+ function Vis_Op (P: Parent) return Boolean is
+ begin
+ return True;
+ end Vis_Op;
+
+ function Pri_Op (P: Parent) return Boolean is
+ begin
+ return False;
+ end Pri_Op;
+
+end F731A00;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/f940a00.a b/gcc-4.9/gcc/testsuite/ada/acats/support/f940a00.a
new file mode 100644
index 000000000..ddc614f1b
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/f940a00.a
@@ -0,0 +1,97 @@
+-- F940A00.A
+--
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- FOUNDATION DESCRIPTION:
+-- This foundation contains test control code for tests covering
+-- the protected record.
+--
+-- CHANGE HISTORY:
+-- 06 Dec 94 SAIC ACVC 2.0
+--
+--!
+
+package F940A00 is
+ -- Interlock_Foundation
+
+ protected type Interlock_Type is
+ entry Post;
+ entry Consume;
+ private
+ Int_Count : Integer := 0;
+ end Interlock_Type;
+
+ protected Counter is -- used to count the number of
+ procedure Increment; -- resources that have been granted
+ procedure Decrement; -- to tasks
+ function Number return integer;
+ private
+ Count : Integer := 0;
+ end Counter;
+
+end F940A00;
+ -- Interlock_Foundation
+
+--===================================--
+
+package body F940A00 is
+ -- Interlock_Foundation
+
+ protected body Interlock_Type is
+
+ entry Post when true is
+ begin
+ Int_Count := Int_Count + 1;
+ end Post;
+
+ entry Consume when Int_Count > 0 is
+ begin
+ Int_Count := Int_Count - 1;
+ end Consume;
+
+ end Interlock_Type;
+
+
+ protected body Counter is
+
+ procedure Increment is
+ begin
+ Count := Count + 1;
+ end Increment;
+
+ procedure Decrement is
+ begin
+ Count := Count - 1;
+ end Decrement;
+
+ function Number return Integer is
+ begin
+ return Count;
+ end Number;
+
+ end Counter;
+
+end F940A00;
+ -- Interlock_Foundation
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/f954a00.a b/gcc-4.9/gcc/testsuite/ada/acats/support/f954a00.a
new file mode 100644
index 000000000..615aa9860
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/f954a00.a
@@ -0,0 +1,134 @@
+-- F954A00.A
+--
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- OBJECTIVE:
+-- This file contains foundation code for tests covering the requeue
+-- statement.
+--
+-- TEST DESCRIPTION:
+-- See prologues of specific tests.
+--
+-- CHANGE HISTORY:
+-- 06 Dec 94 SAIC ACVC 2.0
+--
+--!
+
+package F954A00 is -- Printer device abstraction.
+
+
+ -- Model a printer device driver as a protected type. A printer remains
+ -- unavailable while data is printing. The printer generates an interrupt
+ -- when printing is complete, after which the printer is again made
+ -- available.
+
+
+ type Printers_Info is tagged record
+ Some_Info : Integer;
+ end record;
+
+ --==============================================--
+
+ protected type Printers is -- Device driver for printer.
+
+ procedure Start_Printing (File_Name : String); -- Begin printing on
+ -- printer.
+
+ procedure Handle_Interrupt; -- Handle interrupt from
+ -- printer.
+
+ entry Done_Printing; -- Wait until printer is
+ -- done.
+
+ function Available return Boolean; -- Return value of Ready.
+ function Is_Done return Boolean; -- Return value of Done.
+
+ private
+
+ Ready : Boolean := True; -- Entry barrier.
+ Done : Boolean := True; -- Testing flag.
+
+ end Printers;
+
+ --==============================================--
+
+ Number_Of_Printers : constant := 2;
+
+ type Printer_ID is range 1 .. Number_Of_Printers;
+
+ type Printer_Array is array (Printer_ID) of Printers;
+ type Info_Array is array (Printer_ID) of Printers_Info;
+
+ Printer : Printer_Array;
+ Printer_Info : constant Info_Array := ( (Some_Info => 1),
+ (Some_Info => 2) );
+
+end F954A00;
+
+
+ --==================================================================--
+
+
+package body F954A00 is -- Printer server abstraction.
+
+
+ protected body Printers is
+
+ procedure Start_Printing (File_Name : String) is
+ begin
+ Ready := False; -- Block other requests
+ Done := False; -- for this printer
+ -- Send data to the printer... -- and begin printing.
+ end Start_Printing;
+
+
+ -- Set the "not ready" one-shot
+ entry Done_Printing when Ready is -- Callers wait here
+ begin -- until printing is
+ Done := True; -- done (signaled by a
+ end Done_Printing; -- printer interrupt).
+
+
+ procedure Handle_Interrupt is -- Called when the
+ begin -- printer interrupts,
+ Ready := True; -- indicating that
+ end Handle_Interrupt; -- printing is done.
+
+
+ function Available return Boolean is -- Artifice for test
+ begin -- purposes: checks
+ return (Ready); -- whether printer is
+ end Available; -- still printing.
+
+
+ function Is_Done return Boolean is -- Artifice for test
+ begin -- purposes: checks
+ return (Done); -- whether Done_Printing
+ end Is_Done; -- entry was executed.
+
+ end Printers;
+
+
+end F954A00;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/fa11a00.a b/gcc-4.9/gcc/testsuite/ada/acats/support/fa11a00.a
new file mode 100644
index 000000000..b57a6b7f5
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/fa11a00.a
@@ -0,0 +1,73 @@
+-- FA11A00.A
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- FOUNDATION DESCRIPTION:
+-- This foundation declares a tagged type and primitive subprograms in
+-- a parent package.
+--
+-- CHANGE HISTORY:
+-- 06 Dec 94 SAIC ACVC 2.0
+--
+--!
+
+package FA11A00 is -- Widget_Pkg
+-- This package represents processing of widgets in a window system. It
+-- contains a tagged type that can be extended by its children.
+
+ type Widget_Length is range 1 .. 100;
+
+ type Widget is tagged -- Parent tagged type
+ record
+ Width, Height : Widget_Length;
+ -- More components to be added by extension
+ end record;
+
+ -- To be inherited by its children derivatives.
+ procedure Set_Width (The_Widget : in out Widget;
+ W : in Widget_Length);
+
+ -- To be inherited by its children derivatives.
+ procedure Set_Height (The_Widget : in out Widget;
+ H : in Widget_Length);
+
+end FA11A00; -- Widget_Pkg
+
+--=======================================================================--
+
+package body FA11A00 is -- Widget_Pkg
+
+ procedure Set_Width (The_Widget : in out Widget;
+ W : in Widget_Length) is
+ begin
+ The_Widget.Width := W;
+ end Set_Width;
+ -------------------------------------------------------
+ procedure Set_Height (The_Widget : in out Widget;
+ H : in Widget_Length) is
+ begin
+ The_Widget.Height := H;
+ end Set_Height;
+
+end FA11A00; -- Widget_Pkg
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/fa11b00.a b/gcc-4.9/gcc/testsuite/ada/acats/support/fa11b00.a
new file mode 100644
index 000000000..161be8e17
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/fa11b00.a
@@ -0,0 +1,110 @@
+-- FA11B00.A
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- FOUNDATION DESCRIPTION:
+-- This foundation declares parent types and operations that can
+-- be inherited by its children.
+--
+-- CHANGE HISTORY:
+-- 06 Dec 94 SAIC ACVC 2.0
+--
+--!
+
+package FA11B00 is -- Application_One_Widget
+-- This foundation simulates code that might be obtained as an already
+-- implemented set of objects and services, perhaps from a source code
+-- vendor. It represents processing of widgets in a window system.
+-- These widgets all have the same characteristics, but they are application
+-- specific, so we do not allow assignment of an App_1_Widget to App_2_Widget.
+
+-- The dimension measurement is in pixels (dots on the screen).
+ type Pixels is range 0 .. 10_000;
+ type Widget_Id is new Integer;
+ type Widget_Color_Enum is (Amber, Green, White, None);
+ subtype Widget_Label_Str is string (1 .. 15);
+
+ type Widget_Location is
+ record
+ X_Location, Y_Location : Pixels;
+ end record;
+
+ type Widget_Size is
+ record
+ X_Length, Y_Length : Pixels;
+ end record;
+
+ -- NOTE : not a tagged record.
+ type App1_Widget (Maximum_Size : Pixels := Pixels'Last)
+ is record -- Parent type
+ Size : Widget_Size := (Maximum_Size, Maximum_Size);
+ ID : Widget_Id := 1;
+ Location : Widget_Location := (0,0);
+ Color : Widget_Color_Enum := None;
+ Label : Widget_Label_Str := " ";
+ end record;
+
+ -- Primitive operation of type Widget.
+ -- To be inherited by its children derivatives.
+ procedure App1_Widget_Specific_Oper (The_Widget : in out App1_Widget;
+ I : in Widget_Id;
+ C : in Widget_Color_Enum;
+ L : in Widget_Label_Str);
+
+end FA11B00; -- Application_One_Widget
+
+--=======================================================================--
+
+package body FA11B00 is -- Application_One_Widget
+
+ procedure Set_Color (The_Widget : in out App1_Widget;
+ C : in Widget_Color_Enum) is
+ begin
+ The_Widget.Color := C;
+ end Set_Color;
+ -------------------------------------------------------------
+ procedure Set_Label (The_Widget : in out App1_Widget;
+ L : in Widget_Label_Str) is
+ begin
+ The_Widget.Label := L;
+ end Set_Label;
+ -------------------------------------------------------------
+ procedure Set_Id (The_Widget : in out App1_Widget;
+ I : in Widget_Id) is
+ begin
+ The_Widget.Id := I;
+ end Set_Id;
+ -------------------------------------------------------------
+ procedure App1_Widget_Specific_Oper
+ (The_Widget : in out App1_Widget;
+ I : in Widget_Id;
+ C : in Widget_Color_Enum;
+ L : in Widget_Label_Str) is
+ begin
+ Set_Color (The_Widget, C);
+ Set_Label (The_Widget, L);
+ Set_Id (The_Widget, I);
+ end App1_Widget_Specific_Oper;
+
+end FA11B00; -- Application_One_Widget
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/fa11c00.a b/gcc-4.9/gcc/testsuite/ada/acats/support/fa11c00.a
new file mode 100644
index 000000000..4b153b25e
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/fa11c00.a
@@ -0,0 +1,112 @@
+-- FA11C00.A
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- FOUNDATION DESCRIPTION:
+-- This foundation declares parent types and operations that can
+-- be inherited by its children.
+--
+-- CHANGE HISTORY:
+-- 06 Dec 94 SAIC ACVC 2.0
+--
+--!
+
+package FA11C00_0 is -- Package Animal
+
+ type Kilogram_Weight_Type is new Natural;
+ subtype Species_Name_Type is String (1 .. 20);
+
+ type Animal is tagged
+ record
+ Common_Name : Species_Name_Type;
+ Weight : Kilogram_Weight_Type;
+ end record;
+
+ function Image (A : Animal) return String;
+
+end FA11C00_0; -- Package Animal
+
+ --=================================================================--
+
+package body FA11C00_0 is -- Package body Animal
+
+ function Image (A : Animal) return String is
+ begin
+ return ("Animal Species: " & A.Common_Name);
+ end Image;
+
+end FA11C00_0; -- Package body Animal
+
+ --=================================================================--
+
+package FA11C00_0.FA11C00_1 is -- Package Animal.Mammal
+
+ type Hair_Color_Type is (Black, Brown, Blonde, Grey, White, Red);
+
+ type Mammal is new Animal with
+ record
+ Hair_Color : Hair_Color_Type;
+ end record;
+
+ function Image (M : Mammal) return String;
+
+end FA11C00_0.FA11C00_1; -- Package Animal.Mammal
+
+ --=================================================================--
+
+package body FA11C00_0.FA11C00_1 is -- Package body Animal.Mammal
+
+ function Image (M : Mammal) return String is
+ begin
+ return ("Mammal Species: " & M.Common_Name);
+ end Image;
+
+end FA11C00_0.FA11C00_1; -- Package body Animal.Mammal
+
+ --=================================================================--
+
+package FA11C00_0.FA11C00_1.FA11C00_2 is -- Package Animal.Mammal.Primate
+
+ type Habitat_Type is (Arboreal, Terrestrial);
+
+ type Primate is new Mammal with
+ record
+ Habitat : Habitat_Type;
+ end record;
+
+ function Image (P : Primate) return String;
+
+end FA11C00_0.FA11C00_1.FA11C00_2; -- Package Animal.Mammal.Primate
+
+ --=================================================================--
+
+ -- Package body Animal.Mammal.Primate
+package body FA11C00_0.FA11C00_1.FA11C00_2 is
+
+ function Image (P : Primate) return String is
+ begin
+ return ("Primate Species: " & P.Common_Name);
+ end Image;
+
+end FA11C00_0.FA11C00_1.FA11C00_2; -- Package body Animal.Mammal.Primate
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/fa11d00.a b/gcc-4.9/gcc/testsuite/ada/acats/support/fa11d00.a
new file mode 100644
index 000000000..9efe33be7
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/fa11d00.a
@@ -0,0 +1,78 @@
+-- FA11D00.A
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- FOUNDATION DESCRIPTION:
+-- This foundation declares parent types and operations that can
+-- be inherited by its children.
+--
+-- CHANGE HISTORY:
+-- 06 Dec 94 SAIC ACVC 2.0
+-- 21 Dec 94 SAIC Modified type Int_Type
+--
+--!
+
+package FA11D00 is -- Complex_Definition_Pkg
+
+ -- Simulate a complex number support package. Complex numbers
+ -- are treated as coordinates in the Cartesian plane.
+
+ type Int_Type is range -200 .. 100;
+
+ type Complex_Type is record
+ Real : Int_Type;
+ Imag : Int_Type;
+ end record;
+
+ Zero : constant Complex_Type := (Real => 0, Imag => 0);
+ One : constant Complex_Type := (Real => 1, Imag => 0);
+ Check_Value : constant Complex_Type := (Real => 17, Imag => 23);
+
+ Add_Error : exception;
+ Subtract_Error : exception;
+ Divide_Error : exception;
+ Multiply_Error : exception;
+
+ TC_Handled_In_Caller,
+ TC_Handled_In_Child_Pkg_Proc,
+ TC_Handled_In_Child_Pkg_Func,
+ TC_Handled_In_Grandchild_Pkg_Proc,
+ TC_Handled_In_Grandchild_Pkg_Func,
+ TC_Handled_In_Child_Sub,
+ TC_Propagated_To_Caller : boolean := False;
+
+ function Complex (Real, Imag : Int_Type)
+ return Complex_Type;
+
+end FA11D00; -- Complex_Definition_Pkg
+
+--=======================================================================--
+
+package body FA11D00 is -- Complex_Definition_Pkg
+ function Complex (Real, Imag : Int_Type) return Complex_Type is
+ begin
+ return (Real, Imag);
+ end Complex;
+
+end FA11D00; -- Complex_Definition_Pkg
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/fa13a00.a b/gcc-4.9/gcc/testsuite/ada/acats/support/fa13a00.a
new file mode 100644
index 000000000..be6ecde56
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/fa13a00.a
@@ -0,0 +1,171 @@
+-- FA13A00.A
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- FOUNDATION DESCRIPTION:
+-- This foundation code is used to check visibility of separate
+-- subunit of child packages.
+-- Declares a package containing type definitions; package will be
+-- with'ed by the root of the elevator abstraction.
+--
+-- Declare an elevator abstraction in a parent root package which manages
+-- basic operations. This package has a private part. Declare a
+-- private child package which calculates the floors for going up or
+-- down. Declare a public child package which provides the actual
+-- operations.
+--
+-- CHANGE HISTORY:
+-- 06 Dec 94 SAIC ACVC 2.0
+--
+--!
+
+-- Simulates a fragment of an elevator operation application.
+
+package FA13A00_0 is -- Building Manager
+
+ type Electrical_Power is (Off, V120, V240);
+ Power : Electrical_Power := V120;
+
+ -- other type definitions and procedure declarations in real application.
+
+end FA13A00_0;
+
+-- No bodies provided for FA13A00_0.
+
+ --==================================================================--
+
+package FA13A00_1 is -- Basic Elevator Operations
+
+ type Call_Waiting_Type is private;
+ type Floor is (Basement, Floor1, Floor2, Floor3, Penthouse);
+ type Floor_No is range Floor'Pos(Floor'First) .. Floor'Pos(Floor'Last);
+ Current_Floor : Floor := Floor1;
+
+ TC_Operation : boolean := true;
+
+ procedure Call (F : in Floor; C : in out Call_Waiting_Type);
+ procedure Clear_Calls (C : in out Call_Waiting_Type);
+
+private
+ type Call_Waiting_Type is array (Floor) of boolean;
+ Call_Waiting : Call_Waiting_Type := (others => false);
+
+end FA13A00_1;
+
+
+ --==================================================================--
+
+package body FA13A00_1 is
+
+ -- Call the elevator.
+
+ procedure Call (F : in Floor; C : in out Call_Waiting_Type) is
+ begin
+ C (F) := true;
+ end Call;
+
+ --------------------------------------------
+
+ -- Clear all calls of the elevator.
+
+ procedure Clear_Calls (C : in out Call_Waiting_Type) is
+ begin
+ C := (others => false);
+ end Clear_Calls;
+
+end FA13A00_1;
+
+ --==================================================================--
+
+-- Private child package of an elevator application. This package calculates
+-- how many floors to go up or down.
+
+private package FA13A00_1.FA13A00_2 is -- Floor Calculation
+
+ -- Other type definitions in real application.
+
+ procedure Up (HowMany : in Floor_No);
+
+ procedure Down (HowMany : in Floor_No);
+
+end FA13A00_1.FA13A00_2;
+
+ --==================================================================--
+
+package body FA13A00_1.FA13A00_2 is
+
+ -- Go up from the current floor.
+
+ procedure Up (HowMany : in Floor_No) is
+ begin
+ Current_Floor := Floor'val (Floor'pos (Current_Floor) + HowMany);
+ end Up;
+
+ --------------------------------------------
+
+ -- Go down from the current floor.
+
+ procedure Down (HowMany : in Floor_No) is
+ begin
+ Current_Floor := Floor'val (Floor'pos (Current_Floor) - HowMany);
+ end Down;
+
+end FA13A00_1.FA13A00_2;
+
+ --==================================================================--
+
+-- Public child package of an elevator application. This package provides
+-- the actual operation of the elevator.
+
+package FA13A00_1.FA13A00_3 is -- Move Elevator
+
+ -- Other type definitions in real application.
+
+ procedure Move_Elevator (F : in Floor;
+ C : in out Call_Waiting_Type);
+
+end FA13A00_1.FA13A00_3;
+
+ --==================================================================--
+
+with FA13A00_1.FA13A00_2; -- Floor Calculation
+
+package body FA13A00_1.FA13A00_3 is
+
+ -- Going up or down depends on the current floor.
+
+ procedure Move_Elevator (F : in Floor;
+ C : in out Call_Waiting_Type) is
+ begin
+ if F > Current_Floor then
+ FA13A00_1.FA13A00_2.Up (Floor'Pos (F) - Floor'Pos (Current_Floor));
+ FA13A00_1.Call (F, C);
+ elsif F < Current_Floor then
+ FA13A00_1.FA13A00_2.Down (Floor'Pos (Current_Floor) - Floor'Pos (F));
+ FA13A00_1.Call (F, C);
+ end if;
+
+ end Move_Elevator;
+
+end FA13A00_1.FA13A00_3;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/fa13b00.a b/gcc-4.9/gcc/testsuite/ada/acats/support/fa13b00.a
new file mode 100644
index 000000000..da555540f
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/fa13b00.a
@@ -0,0 +1,106 @@
+-- FA13B00.A
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- FOUNDATION DESCRIPTION:
+-- This foundation code is used to check visibility of separate
+-- subunit of child packages.
+-- Declares a package containing type definitions and a private
+-- part; package will be with'ed by the parent's body of the subunits.
+--
+-- CHANGE HISTORY:
+-- 06 Dec 94 SAIC ACVC 2.0
+--
+--!
+
+package FA13B00_0 is
+
+ -- Type definitions.
+
+ type Visible_Integer is range 1 .. 10;
+
+ type Private_Record is private;
+
+ type Visible_Tagged is tagged
+ record
+ PR : Private_Record;
+ end record;
+
+ type Private_Tagged is tagged private;
+
+ Visible_Num : Visible_Integer := 7;
+
+ -- Subprogram definitions.
+
+ function Assign_Visible_Tagged (I : Visible_Integer)
+ return Visible_Tagged;
+
+ function Assign_Private_Tagged (I : Visible_Integer)
+ return Private_Tagged;
+
+private
+
+ -- Type definitions.
+
+ type Private_Integer is range 11 .. 20;
+
+ type Private_Record is
+ record
+ VI : Visible_Integer;
+ end record;
+
+ type Private_Tagged is tagged
+ record
+ VI : Visible_Integer;
+ end record;
+
+ -- Object definitions.
+
+ Private_Num : Visible_Integer := 6;
+
+end FA13B00_0;
+
+ --==================================================================--
+
+package body FA13B00_0 is
+
+ function Assign_Visible_Tagged(I : Visible_Integer)
+ return Visible_Tagged is
+ VT : Visible_Tagged := (PR => (VI => I));
+ begin
+ return VT;
+ end Assign_Visible_Tagged;
+
+ -------------------------------------------------------
+
+ function Assign_Private_Tagged (I : Visible_Integer)
+ return Private_Tagged is
+ PT : Private_Tagged := (VI => I);
+ begin
+ return PT;
+ end Assign_Private_Tagged;
+
+ -------------------------------------------------------
+
+end FA13B00_0;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/fa21a00.a b/gcc-4.9/gcc/testsuite/ada/acats/support/fa21a00.a
new file mode 100644
index 000000000..7af0da1d1
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/fa21a00.a
@@ -0,0 +1,127 @@
+-- FA21A00.A
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- FOUNDATION DESCRIPTION:
+-- This foundation declares various supporting types, objects, and
+-- subprograms for use in tests checking preelaborability.
+--
+-- CHANGE HISTORY:
+-- 20 Mar 95 SAIC Initial prerelease version.
+--
+--!
+
+with Ada.Finalization; -- Preelaborated library unit.
+package FA21A00 is
+
+ pragma Preelaborate (FA21A00);
+
+
+ type My_Int is new Integer range 0 .. 100;
+ function Func return My_Int; -- Non-static function.
+
+ subtype Idx is Natural range 1 .. 5;
+
+ Three : constant My_Int := 3;
+ Ten : My_Int := 10; -- Non-static.
+
+ type RecWithDisc (D: My_Int) is record
+ Twice: My_Int := D*2;
+ end record;
+
+ type RecCallDefault is record
+ C : My_Int := Func;
+ D : My_Int := 0;
+ end record;
+
+ type RecPrimDefault is record
+ C : My_Int := Ten;
+ end record;
+
+ type Tag is tagged record
+ C : My_Int;
+ end record;
+
+ type AccTag is access all Tag;
+
+ Tag1: aliased Tag; -- OK.
+
+ type My_Controlled is new Ada.Finalization.Controlled with record
+ C : My_Int;
+ end record;
+
+ type ContComp is tagged record
+ C: My_Controlled;
+ end record;
+
+ task type Tsk (D: My_Int);
+
+ protected type Prot is
+ entry E;
+ end Prot;
+
+ type Priv is tagged private;
+
+ type PrivComp is array (1 .. 5) of Priv;
+
+ type Pri_Ext is new Tag with private;
+
+ type PriExtComp is array (1 .. 5) of Pri_Ext;
+
+private
+
+ type Priv is tagged record
+ B: Boolean;
+ end record;
+
+ type Pri_Ext is new Tag with record
+ N: String (1 .. 5);
+ end record;
+
+end FA21A00;
+
+
+ --===================================================================--
+
+
+package body FA21A00 is
+
+ task body Tsk is
+ begin
+ null;
+ end Tsk;
+
+ protected body Prot is
+ entry E when False is
+ begin
+ null;
+ end E;
+ end Prot;
+
+ function Func return My_Int is
+ begin
+ return 0;
+ end Func;
+
+end FA21A00;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/fb20a00.a b/gcc-4.9/gcc/testsuite/ada/acats/support/fb20a00.a
new file mode 100644
index 000000000..46184c954
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/fb20a00.a
@@ -0,0 +1,101 @@
+-- FB20A00.A
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- FOUNDATION DESCRIPTION:
+-- This test performs a search for the first instance of a specified
+-- substring within a specified string, returning boolean result.
+-- (Case insensitive analysis) Both the string and the substring are
+-- made upper case. Successive slices are taken from the input string
+-- and compared with the substring. If a match is found, the search is
+-- terminated immediately. The search continues until the last index
+-- position from which a substring-length slice can be constructed is
+-- passed.
+--
+-- CHANGE HISTORY:
+-- 06 Dec 94 SAIC ACVC 2.0
+--
+--!
+
+package FB20A00 is
+
+ function Find ( Str : in String ;
+ Sub : in String ) return Boolean;
+
+end FB20A00;
+
+ --=================================================================--
+
+package body FB20A00 is
+
+ function Find ( Str : in String ;
+ Sub : in String ) return Boolean is
+
+ New_Str : String (Str'First .. Str'Last);
+ New_Sub : String (Sub'First .. Sub'Last);
+
+ Pos : Integer := Str'First ; -- Character index.
+
+
+ function Upper_Case (Str : in String) return String is
+ subtype Upper is Character range 'A' .. 'Z' ;
+ subtype Lower is Character range 'a' .. 'z' ;
+ Ret : String (Str'First .. Str'Last) ;
+ Pos : Integer;
+ begin
+ for I in Str'Range loop
+ if ( Str (I) in Lower ) then
+ Pos := Upper'Pos (Upper'First) +
+ ( Lower'Pos (Str(I)) - Lower'Pos(Lower'First) ) ;
+ Ret (I) := Upper'Val (Pos) ;
+ else
+ Ret (I) := Str (I);
+ end if ;
+ end loop ;
+ return (Ret) ;
+ end Upper_Case;
+
+ begin
+
+
+ New_Str := Upper_Case (Str); -- Convert Str and Sub to upper
+ New_Sub := Upper_Case (Sub); -- case for comparison.
+
+ while ( Pos <= New_Str'Last-New_Sub'Length+1 ) -- Search until no more
+ and then -- sub-string-length
+ ( New_Str ( Pos .. Pos+New_Sub'Length-1 ) /= New_Sub ) -- slices
+ -- remain.
+ loop
+ Pos := Pos + 1 ;
+ end loop ;
+
+ if ( Pos > New_Str'Last-New_Sub'Length+1 ) then -- Substring not found.
+ return (False);
+ else
+ return (True);
+ end if ;
+
+ end Find;
+
+end FB20A00;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/fb40a00.a b/gcc-4.9/gcc/testsuite/ada/acats/support/fb40a00.a
new file mode 100644
index 000000000..adffc69a3
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/fb40a00.a
@@ -0,0 +1,81 @@
+-- FB40A00.A
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- FOUNDATION DESCRIPTION:
+-- This foundation package contains global variables, types, a user
+-- defined exception, and two subprograms used to increment the
+-- global variables.
+-- See prologues of specific tests for specific information.
+--
+-- CHANGE HISTORY:
+-- 06 Dec 94 SAIC ACVC 2.0
+--
+--!
+
+
+package FB40A00 is -- package Text_Parser
+
+ -- Global Variables
+
+ AlphaNumeric_Count,
+ Non_AlphaNumeric_Count : Natural := 0;
+
+
+ -- Types
+
+ type String_Pointer_Type is access String;
+
+
+ -- Exceptions
+
+ Completed_Text_Processing : exception;
+
+ -- Subprograms
+
+ procedure Increment_AlphaNumeric_Count;
+ procedure Increment_Non_AlphaNumeric_Count;
+
+end FB40A00;
+
+
+ --=================================================================--
+
+
+package body FB40A00 is
+
+
+ procedure Increment_AlphaNumeric_Count is
+ begin
+ AlphaNumeric_Count := AlphaNumeric_Count + 1;
+ end Increment_AlphaNumeric_Count;
+
+
+ procedure Increment_Non_AlphaNumeric_Count is
+ begin
+ Non_AlphaNumeric_Count := Non_AlphaNumeric_Count + 1;
+ end Increment_Non_AlphaNumeric_Count;
+
+
+end FB40A00;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/fc50a00.a b/gcc-4.9/gcc/testsuite/ada/acats/support/fc50a00.a
new file mode 100644
index 000000000..4c3732813
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/fc50a00.a
@@ -0,0 +1,92 @@
+-- FC50A00.A
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- FOUNDATION DESCRIPTION:
+-- This foundation declares various tagged types which will be passed as
+-- actuals to generic formal tagged private types. It also declares
+-- various objects of these types, which will be used for testing.
+-- The types defined are both discriminated and nondiscriminated.
+--
+-- CHANGE HISTORY:
+-- 06 Dec 94 SAIC ACVC 2.0
+--
+--!
+
+package FC50A00 is
+
+--
+-- Nonlimited tagged types:
+--
+
+ type Count_Type is tagged record -- Nondiscriminated
+ Count : Integer := 0; -- type.
+ end record;
+
+
+ subtype Str_Len is Natural range 0 .. 100;
+ subtype Stu_ID is String (1 .. 5);
+ subtype Dept_ID is String (1 .. 4);
+ subtype Emp_ID is String (1 .. 9);
+ type Status is (Student, Faculty, Staff);
+ subtype Reserved is Positive range 1 .. 50;
+
+
+ type Person_Type (Stat : Status; -- Discriminated
+ NameLen, AddrLen : Str_Len) is -- type.
+ tagged record
+ Name : String (1 .. NameLen);
+ Address : String (1 .. AddrLen);
+ case Stat is
+ when Student =>
+ Student_ID : Stu_ID;
+ when Faculty =>
+ Department : Dept_ID;
+ when Staff =>
+ Employee_ID : Emp_ID;
+ end case;
+ end record;
+
+
+ type VIPerson_Type is new Person_Type with record -- Extension of
+ Parking_Space : Reserved; -- discriminated type.
+ end record;
+
+
+ -- Testing entities: ------------------------------------------------
+
+ TC_Count_Item : constant Count_Type := (Count => 111);
+ TC_Default_Count : constant Count_Type := (Count => 0);
+
+ TC_Person_Item : constant Person_Type :=
+ (Faculty, 18, 17, "Eccles, John Scott", "Popham House, Lee", "0931");
+ TC_Default_Person : constant Person_Type :=
+ (Student, 0, 0, "", "", "00000");
+
+ TC_VIPerson_Item : constant VIPerson_Type := (TC_Person_Item with 1);
+
+ ---------------------------------------------------------------------
+
+
+end FC50A00;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/fc51a00.a b/gcc-4.9/gcc/testsuite/ada/acats/support/fc51a00.a
new file mode 100644
index 000000000..9b584d7f8
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/fc51a00.a
@@ -0,0 +1,99 @@
+-- FC51A00.A
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- FOUNDATION DESCRIPTION:
+-- This foundation defines a fraction type abstraction. Fractions are
+-- implemented as records with two scalar components: a numerator
+-- of type integer and a denominator of type positive. Fractions are
+-- created via an overloaded "/" operator.
+--
+-- CHANGE HISTORY:
+-- 06 Dec 94 SAIC ACVC 2.0
+--
+--!
+
+package FC51A00 is -- Fraction type abstraction.
+
+ type Fraction_Type is private;
+
+ -- Create a fraction object by integer division.
+ function "/" (Left, Right : Integer) return Fraction_Type;
+
+ -- Change the sign of a fraction.
+ function "-" (Frac : Fraction_Type) return Fraction_Type;
+
+ -- Return value of numerator as integer.
+ function Numerator (Frac : Fraction_Type) return Integer;
+
+ -- Return value of denominator as integer.
+ function Denominator (Frac : Fraction_Type) return Integer;
+
+ -- ... Other operations on fraction types.
+
+private
+
+ type Fraction_Type is record
+ Numerator : Integer;
+ Denominator : Positive;
+ end record;
+
+end FC51A00;
+
+
+ --==================================================================--
+
+
+package body FC51A00 is
+
+ function "/" (Left, Right : Integer) return Fraction_Type is
+ Result : Fraction_Type;
+ begin
+ Result.Numerator := Left;
+ Result.Denominator := Right;
+ return Result;
+ end "/";
+
+
+ function "-" (Frac : Fraction_Type) return Fraction_Type is
+ Result : Fraction_Type := Frac;
+ begin
+ Result.Numerator := -(Result.Numerator);
+ return Result;
+ end "-";
+
+
+ function Numerator (Frac : Fraction_Type) return Integer is
+ begin
+ return (Frac.Numerator);
+ end Numerator;
+
+
+ function Denominator (Frac : Fraction_Type) return Integer is
+ begin
+ return (Frac.Denominator);
+ end Denominator;
+
+
+end FC51A00;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/fc51b00.a b/gcc-4.9/gcc/testsuite/ada/acats/support/fc51b00.a
new file mode 100644
index 000000000..1d2b57e32
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/fc51b00.a
@@ -0,0 +1,62 @@
+-- FC51B00.A
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- FOUNDATION DESCRIPTION:
+-- This foundation declares a set of tagged and untagged indefinite
+-- subtypes.
+--
+-- CHANGE HISTORY:
+-- 06 Dec 94 SAIC ACVC 2.0
+--
+--!
+
+package FC51B00 is -- Type definitions.
+
+ subtype Size is Natural range 1 .. 4;
+
+ type Matrix is array -- Unconstrained array
+ (Size range <>, Size range <>) of Integer; -- type.
+
+ type Square (Side : Size) is record -- Unconstrained record
+ Mat : Matrix (1 .. Side, 1 .. Side); -- with undefaulted
+ end record; -- discriminants.
+
+ type Square_Pair (Dimension : Size) is tagged record -- Unconstrained tagged
+ Left : Square (Dimension); -- type.
+ Right : Square (Dimension);
+ end record;
+
+ type Vector is tagged record -- Constrained tagged
+ Mat : Matrix (1 .. 3, 1 .. 1); -- type (used to get
+ end record; -- class-wide type).
+
+ generic -- Template for a generic formal package.
+ type Vectors (<>) is new Vector with private; -- Type with unknown
+ package Signature is end; -- discriminants.
+
+end FC51B00;
+
+
+-- No body for FC51B00;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/fc51c00.a b/gcc-4.9/gcc/testsuite/ada/acats/support/fc51c00.a
new file mode 100644
index 000000000..33364c952
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/fc51c00.a
@@ -0,0 +1,112 @@
+-- FC51C00.A
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- FOUNDATION DESCRIPTION:
+-- This foundation declares a hierarchy of tagged types, which includes
+-- both abstract and non-abstract types, and which have both abstract
+-- and non-abstract primitive subprograms.
+--
+-- CHANGE HISTORY:
+-- 06 Dec 94 SAIC ACVC 2.0
+-- 03 Nov 95 SAIC ACVC 2.0.1 fixes: Deleted primitive operation Proc
+-- of Concrete_Root.
+-- 11 Aug 96 SAIC ACVC 2.1: Changed procedure bodies to update
+-- actual parameters.
+--
+--!
+
+package FC51C00 is
+
+--
+-- Non-abstract ultimate ancestor type:
+--
+
+ type Concrete_Root is tagged null record;
+
+ function Func (P: Concrete_Root) return Concrete_Root; -- Abstract when
+ -- inherited.
+
+
+--
+-- Abstract descendant of non-abstract ultimate ancestor:
+--
+
+ type Abstract_Child is abstract new Concrete_Root with null record;
+
+ -- Inherits:
+ -- function Func (P: Abstract_Child) return Abstract_Child is abstract;
+
+ procedure Proc (P: in out Abstract_Child) is abstract; -- Abstract.
+ procedure New_Proc (P : out Abstract_Child) is abstract; -- Abstract.
+
+
+
+--
+-- Non-abstract descendant of abstract descendant:
+--
+
+ type Concrete_GrandChild is new Abstract_Child with null record;
+
+ function Func (P: Concrete_GrandChild) return Concrete_GrandChild;
+
+ procedure Proc (P: in out Concrete_GrandChild);
+ procedure New_Proc (P : out Concrete_GrandChild);
+
+
+end FC51C00;
+
+
+ --===================================================================--
+
+
+package body FC51C00 is
+
+ Value : Concrete_GrandChild;
+
+
+ function Func (P: Concrete_Root) return Concrete_Root is
+ begin
+ return P;
+ end Func;
+
+
+ function Func (P: Concrete_GrandChild) return Concrete_GrandChild is
+ begin
+ return P;
+ end Func;
+
+
+ procedure Proc (P: in out Concrete_GrandChild) is
+ begin
+ P := Value;
+ end Proc;
+
+
+ procedure New_Proc (P : out Concrete_GrandChild) is
+ begin
+ P := Value;
+ end New_Proc;
+
+end FC51C00;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/fc51d00.a b/gcc-4.9/gcc/testsuite/ada/acats/support/fc51d00.a
new file mode 100644
index 000000000..4d31bb134
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/fc51d00.a
@@ -0,0 +1,82 @@
+-- FC51D00.A
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- FOUNDATION DESCRIPTION:
+-- This foundation defines a generic list abstraction. List elements can
+-- be of any (nonlimited) type. Lists are implemented as arrays of
+-- pointers and are only two elements in length.
+--
+-- CHANGE HISTORY:
+-- 06 Dec 94 SAIC ACVC 2.0
+--
+--!
+
+generic
+ type Element_Type (<>) is private;
+package FC51D00 is -- This package simulates a generic list abstraction.
+
+ -- The definition of List_Type below is purely artificial; its validity
+ -- in the context of the abstraction is irrelevant to the feature being
+ -- tested.
+
+ type Element_Ptr is access Element_Type;
+
+ subtype List_Size is Natural range 1 .. 2;
+ type List_Type is array (List_Size) of Element_Ptr;
+
+ function View_Element (I : List_Size; L : List_Type) return Element_Type;
+
+ procedure Write_Element (I : in List_Size;
+ L : in out List_Type;
+ E : in Element_Type);
+
+ -- ... Other list operations for Element_Type.
+
+end FC51D00;
+
+
+ --==================================================================--
+
+
+package body FC51D00 is
+
+ -- The implementations of the operations below are purely artificial; the
+ -- validity of their implementations in the context of the abstraction is
+ -- irrelevant to the feature being tested.
+
+ function View_Element (I : List_Size; L : List_Type) return Element_Type is
+ begin
+ return L(I).all;
+ end View_Element;
+
+
+ procedure Write_Element (I : in List_Size;
+ L : in out List_Type;
+ E : in Element_Type) is
+ begin
+ L(I) := new Element_Type'(E);
+ end Write_Element;
+
+end FC51D00;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/fc54a00.a b/gcc-4.9/gcc/testsuite/ada/acats/support/fc54a00.a
new file mode 100644
index 000000000..16bf742de
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/fc54a00.a
@@ -0,0 +1,132 @@
+-- FC54A00.A
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- FOUNDATION DESCRIPTION:
+-- This foundation declares various types which will serve as designated
+-- types for tests involving generic formal access types (including
+-- access-to-subprogram types).
+--
+-- CHANGE HISTORY:
+-- 06 Dec 94 SAIC ACVC 2.0
+--
+--!
+
+package FC54A00 is
+
+
+ -- Discrete (integer) types:
+
+ Bits : constant := 8; -- Named number.
+
+ type Numerals is range -256 .. 255;
+ type New_Numerals is new Numerals range -128 .. 127;
+ subtype Positives is Numerals range 0 .. 255;
+ subtype Same_Numerals is Numerals;
+ subtype Numerals_Static is Numerals range -2**Bits .. 2**Bits - 1;
+
+ Min : Numerals := Numerals'First; -- Variable.
+ Max : Integer := 255; -- Variable.
+
+ subtype Numerals_Nonstatic is Numerals range Min .. 255;
+ subtype Positive_Nonstatic is Positives range 0 .. Positives(Max);
+ subtype Pos_Dupl_Nonstatic is Positives range 0 .. Positives(Max);
+ subtype Pos_Attr_Nonstatic is Positives range Positive_Nonstatic'Range;
+
+
+
+ -- Floating point types:
+
+ type Float_Type is digits 3;
+ type New_Float is new Float_Type;
+ subtype Float_100 is Float_Type range 0.0 .. 100.0;
+ subtype Same_Float is Float_Type;
+
+ Hundred : constant := 100.0; -- Named number.
+
+ type Float_With_Range is digits 3 range 0.0 .. 100.0;
+ subtype Float_Same_Range is Float_With_Range range 0.0 .. Hundred;
+
+
+
+ -- Tagged record types:
+
+ subtype Lengths is Natural range 0 .. 50;
+
+ type Parent is abstract tagged null record;
+
+ type Tag (Len: Lengths) is new Parent with record
+ Msg : String (1 .. Len);
+ end record;
+
+ type New_Tag is new Tag with record
+ Sent : Boolean;
+ end record;
+
+ subtype Same_Tag is Tag;
+
+ Twenty : constant := 20; -- Named number.
+
+ subtype Tag20 is Tag (Len => 20);
+ subtype Tag25 is Tag (25);
+ subtype Tag_Twenty is Tag (Twenty);
+
+ My_Len : Lengths := Twenty; -- Variable.
+ subtype Sub_Length is Lengths range 1 .. My_Len;
+
+ subtype Tag20_Nonstatic is Tag (Len => Sub_Length'Last);
+ subtype Tag20_Dupl_Nonstatic is Tag (Sub_Length'Last);
+ subtype Tag20_Same_Nonstatic is Tag20_Nonstatic;
+ subtype Tag20_Var_Nonstatic is Tag (Len => My_Len);
+
+
+
+ -- Access types (designated type is tagged):
+
+ type Tagged_Ptr is access Tag;
+ type Tag_Class_Ptr is access Tag'Class;
+
+ subtype Msg_Ptr_Static is Tagged_Ptr(Twenty);
+
+
+
+ -- Array types:
+
+ type New_String is new String;
+ subtype Same_String is String;
+
+ Ten : constant := 10; -- Named number.
+
+ subtype Msg_Static is String(1 .. Ten);
+ type Msg10 is new String(1 .. 10);
+ subtype Msg20 is String(1 .. 20);
+
+ Size : Positive := 10;
+
+ subtype Msg_Nonstatic is String(1 .. Size);
+ subtype Msg_Dupl_Nonstatic is String(1 .. Size);
+ subtype Msg_Same_Nonstatic is Msg_Nonstatic;
+
+
+end FC54A00;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/fc70a00.a b/gcc-4.9/gcc/testsuite/ada/acats/support/fc70a00.a
new file mode 100644
index 000000000..e903a13ad
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/fc70a00.a
@@ -0,0 +1,117 @@
+-- FC70A00.A
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- FOUNDATION DESCRIPTION:
+-- This file simulates a generic complex integer support package, to be
+-- used for tests covering generic formal packages.
+--
+-- CHANGE HISTORY:
+-- 06 Dec 94 SAIC ACVC 2.0
+--
+--!
+
+generic -- Complex integer abstraction.
+ type Int_Type is range <>;
+package FC70A00 is
+
+ -- Simulate a generic complex integer support package. Complex integers
+ -- are treated as coordinates in the Cartesian plane.
+
+
+ type Complex_Type is private;
+
+ Zero : constant Complex_Type; -- (0,0).
+ One : constant Complex_Type; -- (1,0).
+
+
+ function "-" (Right : Complex_Type) -- Invert a complex
+ return Complex_Type; -- integer.
+
+ function "+" (Left, Right : Complex_Type) -- Add two complex
+ return Complex_Type; -- integers.
+
+ function "*" (Left, Right : Complex_Type) -- Multiply two complex
+ return Complex_Type; -- integers.
+
+ function Reciprocal (Right : Complex_Type) -- Return the reciprocal
+ return Complex_Type; -- of a complex integer.
+
+ function Complex (Real, Imag : Int_Type) -- Create a complex
+ return Complex_Type; -- integer.
+
+private
+
+ type Complex_Type is record
+ Real : Int_Type;
+ Imag : Int_Type;
+ end record;
+
+ Zero : constant Complex_Type := (Real => 0, Imag => 0);
+ One : constant Complex_Type := (Real => 1, Imag => 0);
+
+end FC70A00;
+
+
+ --==================================================================--
+
+
+package body FC70A00 is -- Complex integer abstraction.
+
+ function Complex (Real, Imag : Int_Type) return Complex_Type is
+ begin
+ return ( (Real, Imag) );
+ end Complex;
+
+ --==============================================--
+
+ function "-" (Right : Complex_Type) return Complex_Type is
+ begin
+ return ( (-Right.Real, -Right.Imag) );
+ end "-";
+
+ --==============================================--
+
+ function "+" (Left, Right : Complex_Type) return Complex_Type is
+ begin
+ return ( (Left.Real + Right.Real, Left.Imag + Right.Imag) );
+ end "+";
+
+ --==============================================--
+
+ function "*" (Left, Right : Complex_Type) return Complex_Type is
+ begin
+ return ( (Real => (Left.Real * Right.Real) - (Left.Imag * Right.Imag),
+ Imag => (Left.Imag * Right.Real) + (Left.Real * Right.Imag)) );
+ end "*";
+
+ --==============================================--
+
+ function Reciprocal (Right : Complex_Type) return Complex_Type is
+ Denominator : Int_Type := Right.Real**2 + Right.Imag**2;
+ begin -- NOTE: Results are truncated.
+ return ( (Right.Real/Denominator, -Right.Imag/Denominator) );
+ end Reciprocal;
+
+end FC70A00;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/fc70b00.a b/gcc-4.9/gcc/testsuite/ada/acats/support/fc70b00.a
new file mode 100644
index 000000000..46b106e0b
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/fc70b00.a
@@ -0,0 +1,133 @@
+-- FC70B00.A
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- FOUNDATION DESCRIPTION:
+-- This foundation defines a generic list abstraction. List elements can
+-- be of any (nonlimited) type. Lists are implemented as singly linked
+-- lists. Access to list elements is sequential. For each list, pointers
+-- are maintained to the first and last elements in the list, as well as
+-- the next element to be accessed.
+--
+-- CHANGE HISTORY:
+-- 06 Dec 94 SAIC ACVC 2.0
+--
+--!
+
+generic -- List abstraction.
+ type Element_Type is private; -- List elems can be of any nonlimited type.
+package FC70B00 is
+
+ type List_Type is limited private;
+
+ -- Return true if current element is last in the list.
+ function End_Of_List (L : List_Type) return Boolean;
+
+ -- Read current element value; do NOT advance "current" pointer.
+ procedure View_Element (L : in List_Type; E : out Element_Type);
+
+ -- Read from current element and advance "current" pointer.
+ procedure Read_Element (L : in out List_Type; E : out Element_Type);
+
+ -- Write to current element and advance "current" pointer.
+ procedure Write_Element (L : in out List_Type; E : in Element_Type);
+
+ -- Add element to end of list.
+ procedure Add_Element (L : in out List_Type; E : in Element_Type);
+
+ -- Set "current" pointer to first list element.
+ procedure Reset (L : in out List_Type);
+
+private
+
+ type Node_Type;
+ type Node_Pointer is access Node_Type;
+
+ type Node_Type is record
+ Item : Element_Type;
+ Next : Node_Pointer;
+ end record;
+
+ type List_Type is record
+ First : Node_Pointer;
+ Current : Node_Pointer;
+ Last : Node_Pointer;
+ end record;
+
+end FC70B00;
+
+
+ --==================================================================--
+
+
+package body FC70B00 is
+
+ function End_Of_List (L : List_Type) return Boolean is
+ begin
+ return (L.Current = null);
+ end End_Of_List;
+
+
+ procedure View_Element (L : in List_Type; E : out Element_Type) is
+ begin
+ -- ... Error-checking code omitted for brevity.
+ E := L.Current.Item; -- Retrieve current element.
+ end View_Element;
+
+
+ procedure Read_Element (L : in out List_Type; E : out Element_Type) is
+ begin
+ -- ... Error-checking code omitted for brevity.
+ E := L.Current.Item; -- Retrieve current element.
+ L.Current := L.Current.Next; -- Advance "current" pointer.
+ end Read_Element;
+
+
+ procedure Write_Element (L : in out List_Type; E : in Element_Type) is
+ begin
+ -- ... Error-checking code omitted for brevity.
+ L.Current.Item := E; -- Write to current element.
+ L.Current := L.Current.Next; -- Advance "current" pointer.
+ end Write_Element;
+
+
+ procedure Add_Element (L : in out List_Type; E : in Element_Type) is
+ New_Node : Node_Pointer := new Node_Type'(E, null);
+ begin
+ if L.First = null then -- No elements in list, so add new
+ L.First := New_Node; -- element at beginning of list.
+ else
+ L.Last.Next := New_Node; -- Add new element at end of list.
+ end if;
+ L.Last := New_Node; -- Set last-in-list pointer.
+ end Add_Element;
+
+
+ procedure Reset (L : in out List_Type) is
+ begin
+ L.Current := L.First; -- Set "current" pointer to first
+ end Reset; -- list element.
+
+
+end FC70B00;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/fc70c00.a b/gcc-4.9/gcc/testsuite/ada/acats/support/fc70c00.a
new file mode 100644
index 000000000..140b24010
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/fc70c00.a
@@ -0,0 +1,100 @@
+-- FC70C00.A
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- FOUNDATION DESCRIPTION:
+-- This foundation defines a generic list abstraction in two packages.
+-- The first package declares the types, the second declares the
+-- operations. List elements can be of any (nonlimited) type. Lists are
+-- implemented as singly linked lists. Access to list elements is
+-- sequential. For each list, pointers are maintained to the first and
+-- last elements in the list, as well as the next element to be accessed.
+--
+-- CHANGE HISTORY:
+-- 06 Dec 94 SAIC ACVC 2.0
+--
+--!
+
+generic
+ type Element_Type is private; -- List elems may be of any nonlimited type.
+package FC70C00_0 is -- List abstraction.
+
+ type Node_Type;
+ type Node_Pointer is access Node_Type;
+
+ type Node_Type is record
+ Item : Element_Type;
+ Next : Node_Pointer;
+ end record;
+
+ type List_Type is record
+ First : Node_Pointer;
+ Current : Node_Pointer;
+ Last : Node_Pointer;
+ end record;
+
+end FC70C00_0;
+
+
+ --==================================================================--
+
+
+-- No body for FC70C00_0;
+
+
+ --==================================================================--
+
+
+with FC70C00_0; -- List abstraction.
+generic
+ with package List_Mgr is new FC70C00_0 (<>);
+package FC70C00_1 is -- Basic list operations.
+
+ -- Return true if current element is last in the list.
+ function End_Of_List (L : List_Mgr.List_Type) return Boolean;
+
+ -- Set "current" pointer to first list element.
+ procedure Reset (L : in out List_Mgr.List_Type);
+
+end FC70C00_1;
+
+
+ --==================================================================--
+
+
+package body FC70C00_1 is
+
+ function End_Of_List (L : List_Mgr.List_Type) return Boolean is
+ use List_Mgr; -- Renders "=" directly visible.
+ begin
+ return (L.Current = null);
+ end End_Of_List;
+
+
+ procedure Reset (L : in out List_Mgr.List_Type) is
+ begin
+ L.Current := L.First; -- Set "current" pointer to first
+ end Reset; -- list element.
+
+end FC70C00_1;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/fcndecl.ada b/gcc-4.9/gcc/testsuite/ada/acats/support/fcndecl.ada
new file mode 100644
index 000000000..53347a4ac
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/fcndecl.ada
@@ -0,0 +1,50 @@
+-- FCNDECL.ADA
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- PACKAGE THAT MAY BE MODIFIED TO DECLARE FUNCTIONS THAT RETURN
+-- VALUES USABLE FOR INITIALIZATION OF CONSTANTS IN PACKAGE SPPRT13.
+
+WITH SYSTEM;
+PACKAGE FCNDECL IS
+-- INSERT FUNCTION DECLARATIONS AS NEEDED.
+
+ type Mem is array (1 .. 100) of Long_Long_Integer;
+ Var0: Mem;
+ Var1: Mem;
+ Var2: Mem;
+
+ Var_Addr : constant System.Address := Var0'address;
+ Var_Addr1: constant System.Address := Var1'address;
+ Var_Addr2: constant System.Address := Var2'address;
+
+ Ent0: Mem;
+ Ent1: Mem;
+ Ent2: Mem;
+
+ Entry_Addr : constant System.Address := Ent0'address;
+ Entry_Addr1: constant System.Address := Ent0'address;
+ Entry_Addr2: constant System.Address := Ent0'address;
+
+END FCNDECL;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/fd72a00.a b/gcc-4.9/gcc/testsuite/ada/acats/support/fd72a00.a
new file mode 100644
index 000000000..fe662ca26
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/fd72a00.a
@@ -0,0 +1,84 @@
+-- FD72A00.A
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- FOUNDATION DESCRIPTION:
+-- This foundation provides a basis for testing package
+-- System.Address_To_Access_Conversions
+--
+-- TEST FILES:
+-- The following files comprise this foundation:
+--
+-- FD72A00.A
+--
+-- CHANGE HISTORY:
+-- 08 FEB 96 SAIC Initial version
+--
+--!
+
+with Impdef;
+with System.Storage_Elements;
+package FD72A00 is
+ use System;
+
+ subtype Number is System.Storage_Elements.Integer_Address;
+
+ package Num_IO renames Impdef.Address_Value_IO;
+
+ -- the following conversions To/From Hex are to prevent optimizers from
+ -- optimizing out the otherwise senseless identity conversions, and
+ -- given the unknown nature of the type Number, the Identity operations
+ -- provided in Report will not suffice to this cause.
+
+ function Address_To_Hex( Adder: System.Address ) return String;
+
+ function Hex_To_Address( Hex: access String ) return System.Address;
+
+end FD72A00;
+
+package body FD72A00 is
+
+ function Address_To_Hex( Adder: System.Address ) return String is
+ S : String(1..64)
+ := "uninitializedDEFuninitializedDEFuninitializedDEFuninitializedDEF";
+ DeBlank : Positive := S'First;
+ begin
+ Num_IO.Put( S, Number( System.Storage_Elements.To_Integer( Adder ) ),
+ Base => 16 );
+ while S(DeBlank) = ' ' loop
+ DeBlank := DeBlank +1;
+ end loop;
+ return S(DeBlank..S'Last);
+ end Address_To_Hex;
+
+ function Hex_To_Address( Hex: access String ) return System.Address is
+ The_Number : Number;
+ Tail : Natural;
+ begin
+ Num_IO.Get( Hex.all, The_Number, Tail );
+ return System.Storage_Elements.To_Address(
+ System.Storage_Elements.Integer_Address( The_Number ) );
+ end Hex_To_Address;
+
+end FD72A00;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/fdb0a00.a b/gcc-4.9/gcc/testsuite/ada/acats/support/fdb0a00.a
new file mode 100644
index 000000000..4888c24aa
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/fdb0a00.a
@@ -0,0 +1,144 @@
+-- FDB0A00.A
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- FOUNDATION DESCRIPTION:
+-- This foundation provides the basis for testing package
+-- System.Storage_Pools. It provides simple implementations of
+-- Allocate and Deallocate that have the side effect of calling
+-- TCTouch.Touch when they are called.
+--
+-- CHANGE HISTORY:
+-- 02 JUN 95 SAIC Initial version
+-- 05 APR 96 SAIC Fixed header for 2.1
+-- 02 JUL 98 EDS Swapped Pool.Avail change with overflow check
+--!
+
+---------------------------------------------------------------- FDB0A00
+
+with Report;
+with System.Storage_Pools;
+with System.Storage_Elements;
+package FDB0A00 is
+
+ type Stack_Heap( Water_Line: System.Storage_Elements.Storage_Count )
+ is new System.Storage_Pools.Root_Storage_Pool with private;
+
+ procedure Allocate(
+ Pool : in out Stack_Heap;
+ Storage_Address : out System.Address;
+ Size_In_Storage_Elements : in System.Storage_Elements.Storage_Count;
+ Alignment : in System.Storage_Elements.Storage_Count);
+
+ procedure Deallocate(
+ Pool : in out Stack_Heap;
+ Storage_Address : in System.Address;
+ Size_In_Storage_Elements : in System.Storage_Elements.Storage_Count;
+ Alignment : in System.Storage_Elements.Storage_Count);
+
+ function Storage_Size( Pool: in Stack_Heap )
+ return System.Storage_Elements.Storage_Count;
+
+ function TC_Largest_Request return System.Storage_Elements.Storage_Count;
+
+ Pool_Overflow : exception;
+
+private
+
+ type Data_Array is array(System.Storage_Elements.Storage_Count range <>)
+ of System.Storage_Elements.Storage_Element;
+
+ type Stack_Heap( Water_Line: System.Storage_Elements.Storage_Count )
+ is new System.Storage_Pools.Root_Storage_Pool with record
+ Data : Data_Array(1..Water_Line);
+ Avail : System.Storage_Elements.Storage_Count := 1;
+ end record;
+
+end FDB0A00;
+
+-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
+
+with TCTouch;
+package body FDB0A00 is
+
+ Largest_Request_On_Record : System.Storage_Elements.Storage_Count := 0;
+
+ procedure Allocate(
+ Pool : in out Stack_Heap;
+ Storage_Address : out System.Address;
+ Size_In_Storage_Elements : in System.Storage_Elements.Storage_Count;
+ Alignment : in System.Storage_Elements.Storage_Count) is
+ use type System.Storage_Elements.Storage_Offset;
+ begin
+ TCTouch.Touch('A'); --------------------------------------------------- A
+
+ -- set the pointer to the next correctly aligned available address
+ Pool.Avail := Pool.Avail
+ + (Alignment - (Pool.Data(Pool.Avail)'Address mod Alignment));
+
+ -- check for overflow
+ if Pool.Avail + Size_In_Storage_Elements > Pool.Water_Line then
+ raise Pool_Overflow;
+ end if;
+
+ -- set the resulting address to that address
+ Storage_Address := Pool.Data(Pool.Avail)'Address;
+
+ -- update the housekeeping
+ Pool.Avail := Pool.Avail + Size_In_Storage_Elements;
+ Largest_Request_On_Record
+ := System.Storage_Elements.Storage_Count'Max(Largest_Request_On_Record,
+ Size_In_Storage_Elements);
+ exception
+ when Constraint_Error => raise Pool_Overflow; -- in case I missed an edge
+ end Allocate;
+
+ procedure Deallocate(
+ Pool : in out Stack_Heap;
+ Storage_Address : in System.Address;
+ Size_In_Storage_Elements : in System.Storage_Elements.Storage_Count;
+ Alignment : in System.Storage_Elements.Storage_Count) is
+ begin
+ TCTouch.Touch('D'); --------------------------------------------------- D
+
+ -- for the purposes of validation, the simplest possible implementation
+ -- of Deallocate is shown below:
+
+ null;
+
+ end Deallocate;
+
+ function Storage_Size( Pool: in Stack_Heap )
+ return System.Storage_Elements.Storage_Count is
+ begin
+ TCTouch.Touch('S'); --------------------------------------------------- S
+ return Pool.Water_Line;
+ end Storage_Size;
+
+ function TC_Largest_Request return System.Storage_Elements.Storage_Count is
+ begin
+ return Largest_Request_On_Record;
+ end TC_Largest_Request;
+
+end FDB0A00;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/fdd2a00.a b/gcc-4.9/gcc/testsuite/ada/acats/support/fdd2a00.a
new file mode 100644
index 000000000..43a11101d
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/fdd2a00.a
@@ -0,0 +1,149 @@
+-- FDD2A00.A
+--
+-- Grant of Unlimited Rights
+--
+-- The Ada Conformity Assessment Authority (ACAA) holds unlimited
+-- rights in the software and documentation contained herein. Unlimited
+-- rights are the same as those granted by the U.S. Government for older
+-- parts of the Ada Conformity Assessment Test Suite, and are defined
+-- in DFAR 252.227-7013(a)(19). By making this public release, the ACAA
+-- intends to confer upon all recipients unlimited rights equal to those
+-- held by the ACAA. These rights include rights to use, duplicate,
+-- release or disclose the released technical data and computer software
+-- in whole or in part, in any manner and for any purpose whatsoever, and
+-- to have or permit others to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--
+--
+-- FOUNDATION DESCRIPTION:
+-- This foundation provides the basis for testing user-defined stream
+-- attributes. It provides operations which count calls to stream
+-- attributes.
+--
+-- CHANGE HISTORY:
+-- 30 JUL 2001 PHL Initial version.
+-- 5 DEC 2001 RLB Reformatted for ACATS.
+--
+
+with Ada.Streams;
+use Ada.Streams;
+package FDD2A00 is
+
+ type Kinds is (Read, Write, Input, Output);
+ type Counts is array (Kinds) of Natural;
+
+
+ type My_Stream (Size : Stream_Element_Count) is new Root_Stream_Type with
+ record
+ First : Stream_Element_Offset := 1;
+ Last : Stream_Element_Offset := 0;
+ Contents : Stream_Element_Array (1 .. Size);
+ end record;
+
+ procedure Clear (Stream : in out My_Stream);
+
+ procedure Read (Stream : in out My_Stream;
+ Item : out Stream_Element_Array;
+ Last : out Stream_Element_Offset);
+
+ procedure Write (Stream : in out My_Stream; Item : in Stream_Element_Array);
+
+
+ generic
+ type T (<>) is limited private;
+ with procedure Actual_Write
+ (Stream : access Root_Stream_Type'Class; Item : T);
+ with function Actual_Input
+ (Stream : access Root_Stream_Type'Class) return T;
+ with procedure Actual_Read (Stream : access Root_Stream_Type'Class;
+ Item : out T);
+ with procedure Actual_Output
+ (Stream : access Root_Stream_Type'Class; Item : T);
+ package Counting_Stream_Ops is
+
+ procedure Write (Stream : access Root_Stream_Type'Class; Item : T);
+ function Input (Stream : access Root_Stream_Type'Class) return T;
+ procedure Read (Stream : access Root_Stream_Type'Class; Item : out T);
+ procedure Output (Stream : access Root_Stream_Type'Class; Item : T);
+
+ function Get_Counts return Counts;
+
+ end Counting_Stream_Ops;
+
+end FDD2A00;
+package body FDD2A00 is
+
+ procedure Clear (Stream : in out My_Stream) is
+ begin
+ Stream.First := 1;
+ Stream.Last := 0;
+ end Clear;
+
+ procedure Read (Stream : in out My_Stream;
+ Item : out Stream_Element_Array;
+ Last : out Stream_Element_Offset) is
+ begin
+ if Item'Length >= Stream.Last - Stream.First + 1 then
+ Item (Item'First .. Item'First + Stream.Last - Stream.First) :=
+ Stream.Contents (Stream.First .. Stream.Last);
+ Last := Item'First + Stream.Last - Stream.First;
+ Stream.First := Stream.Last + 1;
+ else
+ Item := Stream.Contents (Stream.First ..
+ Stream.First + Item'Length - 1);
+ Last := Item'Last;
+ Stream.First := Stream.First + Item'Length;
+ end if;
+ end Read;
+
+ procedure Write (Stream : in out My_Stream;
+ Item : in Stream_Element_Array) is
+ begin
+ Stream.Contents (Stream.Last + 1 .. Stream.Last + Item'Length) := Item;
+ Stream.Last := Stream.Last + Item'Length;
+ end Write;
+
+
+ package body Counting_Stream_Ops is
+ Cnts : Counts := (others => 0);
+
+ procedure Write (Stream : access Root_Stream_Type'Class; Item : T) is
+ begin
+ Cnts (Write) := Cnts (Write) + 1;
+ Actual_Write (Stream, Item);
+ end Write;
+
+ function Input (Stream : access Root_Stream_Type'Class) return T is
+ begin
+ Cnts (Input) := Cnts (Input) + 1;
+ return Actual_Input (Stream);
+ end Input;
+
+ procedure Read (Stream : access Root_Stream_Type'Class; Item : out T) is
+ begin
+ Cnts (Read) := Cnts (Read) + 1;
+ Actual_Read (Stream, Item);
+ end Read;
+
+ procedure Output (Stream : access Root_Stream_Type'Class; Item : T) is
+ begin
+ Cnts (Output) := Cnts (Output) + 1;
+ Actual_Output (Stream, Item);
+ end Output;
+
+ function Get_Counts return Counts is
+ begin
+ return Cnts;
+ end Get_Counts;
+
+ end Counting_Stream_Ops;
+
+end FDD2A00;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/fxa5a00.a b/gcc-4.9/gcc/testsuite/ada/acats/support/fxa5a00.a
new file mode 100644
index 000000000..6b2fcef7d
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/fxa5a00.a
@@ -0,0 +1,121 @@
+-- FXA5A00.A
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- FOUNDATION DESCRIPTION:
+-- This foundation package contains constants and a function used in
+-- the evaluation of the Generic Elementary Functions.
+--
+-- CHANGE HISTORY:
+-- 06 Mar 95 SAIC Initial prerelease version.
+-- 03 Apr 95 SAIC Corrected error in context clause.
+-- 12 Jun 95 SAIC Added procedure Dont_Optimize. Added New_Float
+-- type, and overload of function
+-- Result_Within_Range.
+--
+--!
+
+with Ada.Numerics;
+with Report;
+
+package FXA5A00 is
+
+ -- Constants.
+
+ Epsilon : constant Float := Float'Model_Epsilon;
+ Small : constant Float := Float'Model_Small;
+ Large : constant Float := Float'Safe_Last;
+ Minus_Large : constant Float := Float'Safe_First;
+
+ Half_Pi : constant Float := Ada.Numerics.Pi / 2.0;
+ Two_Pi : constant Float := Ada.Numerics.Pi * 2.0;
+
+ Floating_Delta : constant Float := 0.05;
+ One_Plus_Delta : constant Float := 1.0 + Floating_Delta;
+ One_Minus_Delta : constant Float := 1.0 - Floating_Delta;
+ Minus_One_Plus_Delta : constant Float := -1.0 + Floating_Delta;
+ Minus_One_Minus_Delta : constant Float := -1.0 - Floating_Delta;
+
+
+ type New_Float is new Float digits 6;
+
+ function Result_Within_Range (Result : Float;
+ Expected_Result : Float;
+ Relative_Error : Float) return Boolean;
+
+ function Result_Within_Range (Result : New_Float;
+ Expected_Result : Float;
+ Relative_Error : Float) return Boolean;
+
+ -- This procedure is designed to defeat optimization attempts by an
+ -- implementation in cases where an exception is specifically raised
+ -- in a test to test a prescribed exception result condition.
+ -- The parameter Num is a unique identifier for location purposes within
+ -- the test.
+
+ generic
+ type Eval_Type is digits <>;
+ procedure Dont_Optimize (Check_Result : Eval_Type;
+ Num : Integer);
+
+end FXA5A00;
+
+---
+
+package body FXA5A00 is
+
+
+ function Result_Within_Range (Result : Float;
+ Expected_Result : Float;
+ Relative_Error : Float) return Boolean is
+ begin
+ return (Result <= Expected_Result + Relative_Error) and
+ (Result >= Expected_Result - Relative_Error);
+ end Result_Within_Range;
+
+
+ function Result_Within_Range (Result : New_Float;
+ Expected_Result : Float;
+ Relative_Error : Float) return Boolean is
+ begin
+ return (Float(Result) <= Expected_Result + Relative_Error) and
+ (Float(Result) >= Expected_Result - Relative_Error);
+ end Result_Within_Range;
+
+
+ procedure Dont_Optimize (Check_Result : Eval_Type;
+ Num : Integer) is
+ begin
+ -- Note that the use of Minus_Large here is simply as a "dummy" value,
+ -- designed to indicate use of the Check_Result parameter, and has no
+ -- pass/fail significance to any test using this procedure.
+ --
+ if Float(Check_Result) = Minus_Large then
+ Report.Comment("Attempted Defeat of Optimization ONLY -- Not " &
+ "a cause for test failure! " &
+ "Result = Minus_Large, Case:" & Integer'Image(Num));
+ end if;
+ end Dont_Optimize;
+
+end FXA5A00;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/fxaca00.a b/gcc-4.9/gcc/testsuite/ada/acats/support/fxaca00.a
new file mode 100644
index 000000000..d8aa5e592
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/fxaca00.a
@@ -0,0 +1,144 @@
+-- FXACA00.A
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- FOUNDATION DESCRIPTION:
+-- This foundation consists of type definitions and object declarations
+-- used by tests of Stream_IO functionality.
+-- Objects of both record types specified below (discriminated records
+-- with defaults, and discriminated records w/o defaults that have the
+-- discriminant included in a representation clause for the type) should
+-- have their discriminants included in the stream when using 'Write
+-- Likewise, discriminants should be extracted from the stream when
+-- using 'Read.
+--
+-- CHANGE HISTORY:
+-- 06 Dec 94 SAIC ACVC 2.0
+-- 02 May 96 SAIC Incorporated reviewer comments for ACVC 2.1.
+--
+--!
+
+with ImpDef;
+
+package FXACA00 is
+
+ type Origin_Type is (Foreign, Domestic);
+
+ for Origin_Type'Size use 1; -- Forces objects of the type to be
+ -- representable in 1 bit, used in rep clause
+ -- below for Sales_Record_Type.
+
+ type Product_Type (Manufacture : Origin_Type := Domestic) is
+ record
+ Item : String (1..8);
+ ID : Natural range 1..100;
+ case Manufacture is
+ when Foreign =>
+ Importer : String (1..10);
+ when Domestic =>
+ Distributor : String (1..10);
+ end case;
+ end record;
+
+
+ type Sales_Record_Type (Buyer : Origin_Type) is -- No default provided
+ record -- for the discriminant.
+ Name : String (1..6);
+ Sale_Item : Boolean := False;
+ case Buyer is
+ when Foreign =>
+ Quantity_Discount : Boolean;
+ when Domestic =>
+ Cash_Discount : Boolean;
+ end case;
+ end record;
+
+
+ String_Bits : constant := ImpDef.Char_Bits * 6 - 1;
+
+ -- This discriminated record type has a representation clause that
+ -- includes the discriminant of the object of this type.
+
+ for Sales_Record_Type use
+ record
+ Name at 0 range 0..String_Bits;
+ Sale_Item at ImpDef.Next_Storage_Slot range 0..0;
+ Buyer at ImpDef.Next_Storage_Slot range 1..1;
+ Quantity_Discount at ImpDef.Next_Storage_Slot range 2..2;
+ Cash_Discount at ImpDef.Next_Storage_Slot range 3..3;
+ end record;
+
+
+ type Timespan_Type is (Week, Month, Year);
+
+ type Sales_Statistics_Type is
+ array (Timespan_Type) of natural range 0 .. 500;
+
+
+ -- Object Declarations
+
+
+ Product_01 : Product_Type := (Domestic, "Product1", 1, "Distrib 01");
+ Product_02 : Product_Type (Manufacture => Foreign) := (Foreign,
+ "Product2",
+ 2,
+ "Importer02");
+ Product_03 : Product_Type (Foreign) := (Manufacture => Foreign,
+ Item => "Product3",
+ ID => 3,
+ Importer => "Importer03");
+ --
+
+ Sale_Count_01 : Integer := 2;
+ Sale_Count_02 : Integer := 0;
+ Sale_Count_03 : Integer := 3;
+
+ --
+
+ Sale_Rec_01 : Sales_Record_Type (Domestic) :=
+ (Domestic, "Buyer1", False, True);
+ Sale_Rec_02 : Sales_Record_Type (Domestic) :=
+ (Domestic, "Buyer2", True, False);
+
+ Sale_Rec_03 : Sales_Record_Type (Buyer => Foreign) :=
+ (Buyer => Foreign, Name => "Buyer3", Sale_Item => True,
+ Quantity_Discount => True);
+
+ Sale_Rec_04 : Sales_Record_Type (Foreign) :=
+ (Foreign, "Buyer4", True, False);
+ Sale_Rec_05 : Sales_Record_Type (Buyer => Foreign) := (Foreign,
+ "Buyer5",
+ False,
+ False);
+ --
+
+
+ Product_01_Stats : Sales_Statistics_Type := (2,4,8);
+ Product_02_Stats : Sales_Statistics_Type := (Week => 0,
+ Month => 5,
+ Year => 10);
+ Product_03_Stats : Sales_Statistics_Type := (3, 6, others => 12);
+
+
+end FXACA00;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/fxacb00.a b/gcc-4.9/gcc/testsuite/ada/acats/support/fxacb00.a
new file mode 100644
index 000000000..22b50efb0
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/fxacb00.a
@@ -0,0 +1,107 @@
+-- FXACB00.A
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- FOUNDATION DESCRIPTION:
+-- This foundation consists of type definitions and object declarations
+-- used by tests of Stream_IO functionality.
+-- These types include an unconstrained array type, and a discriminated
+-- record without a default discriminant, specifically chosen for use in
+-- demonstrating the capabilities of 'Output and 'Input.
+--
+-- CHANGE HISTORY:
+-- 06 Dec 94 SAIC ACVC 2.0
+--
+--!
+
+package FXACB00 is
+
+ type Customer_Type is (Residence, Apartment, Commercial);
+ type Electric_Usage_Type is range 0..100000;
+ type Months_In_Service_Type is range 1..12;
+ type Quarterly_Period_Type is (Spring, Summer, Autumn, Winter);
+ subtype Month_In_Quarter_Type is Positive range 1..3;
+ type Service_History_Type is
+ array (Quarterly_Period_Type range <>, Month_In_Quarter_Type range <>)
+ of Electric_Usage_Type;
+
+
+ type Service_Type (Customer : Customer_Type) is
+ record
+ Name : String (1..21);
+ Account_ID : Natural range 0..100;
+ case Customer is
+ when Residence | Apartment =>
+ Low_Income_Credit : Boolean := False;
+ when Commercial =>
+ Baseline_Allowance : Natural range 0..1000;
+ Quantity_Discount : Boolean := False;
+ end case;
+ end record;
+
+
+ -- Object Declarations
+
+
+ Customer1 : Service_Type (Residence) :=
+ (Residence, "1221 Morningstar Lane", 44, False);
+ Customer2 : Service_Type (Apartment) := (Customer => Apartment,
+ Account_ID => 67,
+ Name => "15 South Front St. #8",
+ Low_Income_Credit => True);
+ Customer3 : Service_Type (Commercial) := (Commercial,
+ "12442 Central Avenue ",
+ 100,
+ Baseline_Allowance => 938,
+ Quantity_Discount => True);
+
+ --
+
+ C1_Months : Months_In_Service_Type := 10;
+ C2_Months : Months_In_Service_Type := 2;
+ C3_Months : Months_In_Service_Type := 12;
+
+ --
+
+ C1_Service_History :
+ Service_History_Type (Quarterly_Period_Type, Month_In_Quarter_Type) :=
+ (Spring => (1 => 35, 2 => 39, 3 => 32),
+ Summer => (1 => 34, 2 => 33, 3 => 39),
+ Autumn => (1 => 45, 2 => 40, 3 => 38),
+ Winter => (1 => 53, 2 => 0, 3 => 0));
+
+ C2_Service_History :
+ Service_History_Type (Quarterly_Period_Type range Spring..Summer,
+ Month_In_Quarter_Type) :=
+ (Spring => (23, 22, 0), Summer => (0, 0, 0));
+
+ C3_Service_History :
+ Service_History_Type (Quarterly_Period_Type, Month_In_Quarter_Type) :=
+ (others => (others => 200));
+
+ --
+
+ Total_Customers_In_Service : constant Natural := 3;
+
+end FXACB00;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/fxacc00.a b/gcc-4.9/gcc/testsuite/ada/acats/support/fxacc00.a
new file mode 100644
index 000000000..64d63bed9
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/fxacc00.a
@@ -0,0 +1,115 @@
+-- FXACC00.A
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- FOUNDATION DESCRIPTION:
+-- This foundation consists of a tagged type definition and several
+-- record extensions. Objects of each type have also been declared
+-- and given initial values.
+--
+-- Visual Description of Type Extensions:
+--
+-- type Ticket_Request
+-- |
+-- _______________|_________________
+-- | |
+-- | |
+-- type Subscriber_Request type VIP_Request
+-- |
+-- |
+-- type Last_Minute_Request
+--
+-- CHANGE HISTORY:
+-- 06 Dec 94 SAIC ACVC 2.0
+--
+--!
+
+with Ada.Calendar;
+
+package FXACC00 is
+
+ type Location_Type is (Backstage, Orchestra, Center, Back, Balcony);
+ type Quantity_Type is range 1 .. 100;
+ subtype Season_Ticket_Type is Positive range 1 .. 1750;
+ type VIP_Status_Type is (Mayor, City_Council, Visitor);
+ type Donation_Type is (To_Charity, To_Theatre, Personal);
+
+ Show_Of_Appreciation : constant Boolean := True;
+
+ type Ticket_Request is tagged
+ record
+ Location : Location_Type;
+ Number_Of_Tickets : Quantity_Type;
+ end record;
+
+
+ type Subscriber_Request is new Ticket_Request with
+ record
+ Subscription_Number : Season_Ticket_Type;
+ end record;
+
+
+ type VIP_Request is new Ticket_Request with
+ record
+ Rank : VIP_Status_Type;
+ end record;
+
+
+ type Last_Minute_Request (Special_Consideration : Boolean)
+ is new VIP_Request with
+ record
+ Time_of_Request : Ada.Calendar.Time;
+ case Special_Consideration is
+ when True => Donation : Donation_Type;
+ when False => null;
+ end case;
+ end record;
+
+
+ -- Object Declarations.
+
+
+ Box_Office_Request : Ticket_Request :=
+ (Location => Back,
+ Number_Of_Tickets => 2);
+
+ Summer_Subscription : Subscriber_Request :=
+ (Ticket_Request'(Box_Office_Request)
+ with Subscription_Number => 567);
+
+ Mayoral_Ticket_Request : VIP_Request :=
+ (Location => Backstage,
+ Number_Of_Tickets => 6,
+ Rank => Mayor);
+
+ Late_Request : Last_Minute_Request (Show_Of_Appreciation) :=
+ (Special_Consideration => Show_Of_Appreciation,
+ Location => Orchestra,
+ Number_Of_Tickets => 2,
+ Rank => City_Council,
+ Time_Of_Request => Ada.Calendar.Clock,
+ Donation => To_Charity);
+
+
+end FXACC00;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/fxc6a00.a b/gcc-4.9/gcc/testsuite/ada/acats/support/fxc6a00.a
new file mode 100644
index 000000000..1e51d2ab3
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/fxc6a00.a
@@ -0,0 +1,162 @@
+-- FXC6A00.A
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- FOUNDATION DESCRIPTION:
+-- This foundation declares various volatile and non-volatile types. Some
+-- are by-reference types, and some allow pass-by-copy.
+--
+-- CHANGE HISTORY:
+-- 23 Jan 96 SAIC Initial version for ACVC 2.1.
+-- 02 DEC 97 EDS Removed Pragma Volatile applied to composite types.
+-- 27 AUG 99 RLB Repaired so Nonvolatile_Tagged really is
+-- Nonvolatile.
+--!
+
+package FXC6A00 is
+
+ type Roman is ('I', 'V', 'X', 'L', 'C', 'D', 'M'); -- By-copy type.
+
+ type Acc_Roman is access all Roman;
+
+
+ type Tagged_Type is tagged record -- By-reference type.
+ C: Natural;
+ end record;
+
+
+ type Volatile_Tagged is new Tagged_Type with record -- Volatile by-reference
+ R1: Roman; -- type.
+ end record;
+ pragma Volatile (Volatile_Tagged);
+
+ type Acc_Volatile_Tagged is access all Volatile_Tagged;
+
+ -- By-reference type.
+ type NonVolatile_Tagged is new Tagged_Type with record
+ R2: aliased Roman;
+ end record;
+
+
+ task type Task_Type is -- By-reference type.
+ entry Calculate (C: in out Natural);
+ end Task_Type;
+
+ type Acc_Task_Type is access all Task_Type;
+
+
+ protected type Protected_Type is -- By-reference type.
+ procedure Op;
+ private
+ Count : Natural := 0;
+ end Protected_Type;
+
+
+ protected type Volatile_Protected is -- Volatile by-reference
+ procedure Handler; -- type.
+ pragma Interrupt_Handler (Handler);
+
+ function Handled return Boolean;
+ private
+ Was_Handled : Boolean := False;
+ end Volatile_Protected;
+ pragma Volatile (Volatile_Protected);
+
+ type Acc_Vol_Protected is access all Volatile_Protected;
+
+
+ type Record_Type is record -- Allows pass-by-copy.
+ C: String(1 .. 2);
+ end record;
+
+
+ type Volatile_Record is limited record -- Volatile by-reference
+ C: String(1 .. 2); -- type.
+ end record;
+ pragma Volatile (Volatile_Record);
+
+
+ type Composite_Type is record -- By-reference type.
+ C: Tagged_Type;
+ D: aliased Volatile_Tagged; -- Volatile component.
+ end record;
+
+
+ type Private_Type is private; -- By-reference type.
+
+
+ type Array_Type is array (1..3) of Tagged_Type; -- By-reference type.
+ pragma Volatile_Components (Array_Type);
+
+ type Acc_Array_Type is access all Array_Type;
+
+
+ type Lim_Private_Type is limited private; -- By-copy type.
+
+private
+
+ type Private_Type is new Tagged_Type with record
+ D: Character;
+ end record;
+
+
+ type Lim_Private_Type is new Integer;
+
+end FXC6A00;
+
+
+ --==================================================================--
+
+
+package body FXC6A00 is
+
+ task body Task_Type is
+ begin
+ accept Calculate (C: in out Natural) do
+ C := C * 10;
+ end Calculate;
+ end Task_Type;
+
+
+ protected body Protected_Type is
+ procedure Op is
+ begin
+ Count := Count + 1;
+ end Op;
+ end Protected_Type;
+
+
+ protected body Volatile_Protected is
+ procedure Handler is
+ begin
+ Was_Handled := True;
+ end Handler;
+
+ function Handled return Boolean is
+ begin
+ return Was_Handled;
+ end Handled;
+ end Volatile_Protected;
+
+end FXC6A00;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/fxe2a00.a b/gcc-4.9/gcc/testsuite/ada/acats/support/fxe2a00.a
new file mode 100644
index 000000000..ed943155e
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/fxe2a00.a
@@ -0,0 +1,90 @@
+-- FXE2A00.A
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- FOUNDATION DESCRIPTION:
+-- This foundation provides a Declared Pure package, a Shared Passive
+-- package, a Remote Types package and a normal, unrestricted package.
+--
+-- It is used by tests checking the interrelationship between the
+-- categorized packages
+--
+-- CHANGE HISTORY:
+-- 06 Dec 94 SAIC ACVC 2.0
+--
+--!
+
+
+--====================================================================
+
+-- This is a DECLARED PURE package
+--
+package FXE2A00_0 is
+
+ pragma pure (FXE2A00_0);
+
+ type Type_From_0 is (Red, Orange, Yellow);
+
+
+end FXE2A00_0;
+
+
+--====================================================================
+
+-- This is a SHARED_PASSIVE package
+--
+package FXE2A00_1 is
+
+
+ pragma shared_passive (FXE2A00_1);
+
+ type Type_From_1 is (Blue, Indigo, Violet);
+
+end FXE2A00_1;
+
+
+--====================================================================
+
+-- This is a REMOTE TYPES package
+--
+package FXE2A00_2 is
+
+ pragma Remote_Types (FXE2A00_2);
+
+ type Type_From_2 is (Red, Orange, Yellow, Green, Blue, Indigo, Violet);
+
+end FXE2A00_2;
+
+
+--====================================================================
+
+-- This is a NORMAL unrestricted package which has no categorization
+--
+package FXE2A00_4 is
+
+ type Type_From_4 is (Black, White);
+
+end FXE2A00_4;
+
+--====================================================================
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/fxf2a00.a b/gcc-4.9/gcc/testsuite/ada/acats/support/fxf2a00.a
new file mode 100644
index 000000000..2471f5c59
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/fxf2a00.a
@@ -0,0 +1,96 @@
+-- FXF2A00.A
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- FOUNDATION DESCRIPTION:
+-- This foundation declares supporting objects, types and a generic
+-- function for testing decimal fixed point operations.
+--
+-- The generic function contains a loop which steps through two arrays:
+-- one of binary operations and one of operands. For each iteration, the
+-- current operation is performed on the current operand and a variable
+-- "Result" e.g.:
+--
+-- Result := Operation(2)(Operand(3), Result);
+--
+-- The result of each operation is cumulated in Result and returned to
+-- the caller when the loop completes.
+--
+-- CHANGE HISTORY:
+-- 12 Mar 96 SAIC Prerelease version for ACVC 2.1.
+--
+--!
+
+package FXF2A00 is
+
+ Loop_Count : constant := 30000; -- # test iterations.
+ Optr_Count : constant := 6; -- # operations in op sequence.
+ Opnd_Count : constant := 5; -- # different operands.
+
+ type Loop_Range is range 1 .. Loop_Count; -- range 1 .. 30000.
+ type Optr_Range is mod Optr_Count; -- range 0 .. 5.
+ type Opnd_Range is mod Opnd_Count; -- range 0 .. 4.
+
+
+ generic
+
+ type Decimal_Fixed is delta <> digits <>;
+
+ type Operator_Ptr is access
+ function (L, R : Decimal_Fixed) return Decimal_Fixed;
+
+ type Operator_Table is array (Optr_Range) of Operator_Ptr;
+ type Operand_Table is array (Opnd_Range) of Decimal_Fixed;
+
+ function Operations_Loop (Initial : Decimal_Fixed;
+ Operator: Operator_Table;
+ Operand : Operand_Table) return Decimal_Fixed;
+
+end FXF2A00;
+
+
+ --==================================================================--
+
+
+package body FXF2A00 is
+
+ function Operations_Loop (Initial : Decimal_Fixed;
+ Operator: Operator_Table;
+ Operand : Operand_Table) return Decimal_Fixed is
+
+ Result : Decimal_Fixed := Initial; -- Cumulator.
+ Optr_Index : Optr_Range := 0; -- Index into operations table.
+ Opnd_Index : Opnd_Range := 0; -- Index into operand table.
+
+ begin
+ for Count in Loop_Range loop
+ Result := Operator(Optr_Index) (Result, Operand(Opnd_Index));
+ Optr_Index := Optr_Index + 1; -- Modular addition.
+ Opnd_Index := Opnd_Index + 1; -- Modular addition.
+ end loop;
+
+ return Result;
+ end Operations_Loop;
+
+end FXF2A00;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/fxf3a00.a b/gcc-4.9/gcc/testsuite/ada/acats/support/fxf3a00.a
new file mode 100644
index 000000000..645010ecf
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/fxf3a00.a
@@ -0,0 +1,330 @@
+-- FXF3A00.A
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- FOUNDATION DESCRIPTION:
+-- This foundation contains decimal data values, valid and invalid
+-- Picture strings, and Edited Output result strings that will be used
+-- in tests of Appendix F.3.
+-- Note: In this foundation package, the effect of "Table Driven Data"
+-- is achieved using a series of arrays to hold the various data items.
+-- Since the data items (Picture strings, Edited Output) are often of
+-- different lengths, the arrays are defined to contain pointers to
+-- string values, thereby allowing the "tables" to hold string data of
+-- different sizes.
+--
+-- CHANGE HISTORY:
+-- 06 Dec 94 SAIC ACVC 2.0
+-- 15 Feb 95 SAIC Picture string, decimal data, and edited_output
+-- modifications.
+-- 23 Feb 95 SAIC Picture string modification.
+-- 10 Mar 95 SAIC Added explanatory comments.
+-- 15 Nov 95 SAIC Corrected picture string for ACVC 2.0.1.
+-- 06 Oct 96 SAIC Corrected invalid picture strings.
+-- 13 Feb 97 PWB.CTA Deleted invalid picture string.
+-- 17 Feb 97 PWB.CTA Added leading blank to two picture strings
+--!
+
+with Ada.Text_IO.Editing;
+
+package FXF3A00 is
+
+ Number_Of_NDP_Items : constant := 12; -- No Decimal Places.
+ Number_Of_2DP_Items : constant := 20; -- Two Decimal Places.
+ Number_Of_Valid_Strings : constant := 40;
+ Number_Of_FF_Strings : constant := 4; -- French Francs
+ Number_Of_DM_Strings : constant := 5; -- Deutchemarks
+ Number_Of_CHF_Strings : constant := 1; -- Swiss Francs
+ Number_Of_Foreign_Strings : constant := Number_Of_FF_Strings +
+ Number_Of_DM_Strings +
+ Number_Of_CHF_Strings;
+ Number_Of_Invalid_Strings : constant := 25;
+ Number_Of_Erroneous_Conditions : constant := 3;
+ Number_Of_Edited_Output_Strings : constant := 32;
+
+ -- The following string is to be used as a picture string with length
+ -- beyond the maximum (Max_Picture_Length) that is supported by the
+ -- implementation.
+
+ A_Picture_String_Too_Long : constant
+ String (1..Ada.Text_IO.Editing.Max_Picture_Length + 1) := (others => '9');
+
+
+ type Str_Ptr is access String;
+
+ type Decimal_Type_NDP is delta 1.0 digits 16; -- no decimal places
+ type Decimal_Type_2DP is delta 0.01 digits 16; -- two decimal places
+
+ type Data_Array_Type_1 is array (Integer range <>) of Decimal_Type_NDP;
+ type Data_Array_Type_2 is array (Integer range <>) of Decimal_Type_2DP;
+
+
+ type Picture_String_Array_Type is
+ array (Integer range <>) of Str_Ptr;
+
+ type Edited_Output_Results_Array_Type is
+ array (Integer range <>) of Str_Ptr;
+
+
+
+ Data_With_NDP : Data_Array_Type_1 (1..Number_Of_NDP_Items) :=
+ ( 1 => 1234.0,
+ 2 => 51234.0,
+ 3 => -1234.0,
+ 4 => 1234.0,
+ 5 => 1.0,
+ 6 => 0.0,
+ 7 => -10.0,
+ 8 => -1.0,
+ 9 => 1234.0,
+ 10 => 1.0,
+ 11 => 36.0,
+ 12 => 0.0
+ );
+
+
+ Data_With_2DP : Data_Array_Type_2 (1..Number_Of_2DP_Items) :=
+ ( 1 => 123456.78,
+ 2 => 123456.78,
+ 3 => 0.0,
+ 4 => 0.20,
+ 5 => 123456.00,
+ 6 => -123456.78,
+ 7 => 123456.78,
+ 8 => -12.34,
+ 9 => 1.23,
+ 10 => 12.34,
+
+ -- Items 11-20 are used with picture strings in evaluating use of
+ -- foreign currency symbols.
+
+ 11 => 123456.78,
+ 12 => 123456.78,
+ 13 => 32.10,
+ 14 => -5432.10,
+ 15 => -1234.57,
+ 16 => 123456.78,
+ 17 => 12.34,
+ 18 => 12.34,
+ 19 => 1.23,
+ 20 => 12345.67
+ );
+
+
+
+ Valid_Strings : Picture_String_Array_Type
+ (1..Number_Of_Valid_Strings) :=
+
+ -- Items 1-10 are used in conjunction with Data_With_2DP values
+ -- to produce edited output strings, as well as in tests of
+ -- function Valid.
+
+ ( 1 => new String'("-###**_***_**9.99"),
+ 2 => new String'("-$**_***_**9.99"),
+ 3 => new String'("-$$$$$$.$$"),
+ 4 => new String'("-$$$$$$.$$"),
+ 5 => new String'("+BBBZZ_ZZZ_ZZZ.ZZ"),
+ 6 => new String'("--_---_---_--9"),
+ 7 => new String'("-$_$$$_$$$_$$9.99"),
+ 8 => new String'("<$$_$$$9.99>"),
+ 9 => new String'("$_$$9.99"),
+ 10 => new String'("$$9.99"),
+
+ -- Items 11-22 are used in conjunction with Data_With_NDP values
+ -- to produce edited output strings.
+
+ 11 => new String'("ZZZZ9"),
+ 12 => new String'("ZZZZ9"),
+ 13 => new String'("<#Z_ZZ9>"),
+ 14 => new String'("<#Z_ZZ9>"),
+ 15 => new String'("ZZZ.ZZ"),
+ 16 => new String'("ZZZ.ZZ"),
+ 17 => new String'("<###99>"),
+ 18 => new String'("ZZZZZ-"),
+ 19 => new String'("$$$$9"),
+ 20 => new String'("$$$$$"),
+ 21 => new String'("<###99>"),
+ 22 => new String'("$$$$9"),
+
+ -- Items 23-40 are used in validation of the Valid, To_Picture, and
+ -- Pic_String subprograms of package Text_IO.Editing, and are not
+ -- used to generate edited output.
+
+ 23 => new String'("zZzZzZzZzZzZzZzZzZ"),
+ 24 => new String'("999999999999999999"),
+ 25 => new String'("******************"),
+ 26 => new String'("$$$$$$$$$$$$$$$$$$"),
+ 27 => new String'("9999/9999B9999_999909999"),
+ 28 => new String'("+999999999999999999"),
+ 29 => new String'("-999999999999999999"),
+ 30 => new String'("999999999999999999+"),
+ 31 => new String'("999999999999999999-"),
+ 32 => new String'("<<<_<<<_<<<_<<<_<<<_<<9>"),
+ 33 => new String'("++++++++++++++++++++"),
+ 34 => new String'("--------------------"),
+ 35 => new String'("zZzZzZzZzZzZzZzZzZ.zZ"),
+ 36 => new String'("******************.99"),
+ 37 => new String'("$$$$$$$$$$$$$$$$$$.99"),
+
+ -- The following string has length 30, which is the minimum value
+ -- that must be supported for Max_Picture_Length.
+
+ 38 => new String'("9_999_999_999_999_999_999BB.99"),
+ 39 => new String'("<<<_<<<_<<<_<<<.99>"),
+ 40 => new String'("ZZZZZZZZZZZZZZZZZ+")
+ );
+
+
+
+ Foreign_Strings : Picture_String_Array_Type
+ (1..Number_Of_Foreign_Strings) :=
+
+ -- These strings are going to be used in conjunction with non-default
+ -- values for Currency string, Radix mark, and Separator in calls to
+ -- Image and Put, as well as in tests of function Valid.
+
+ ( 1 => new String'("-###**_***_**9.99"), -- FF
+ 2 => new String'("-$**_***_**9.99"), -- FF
+ 3 => new String'("<###z_ZZ9.99>"), -- FF
+ 4 => new String'("<###Z_ZZ9.99>"), -- FF
+ 5 => new String'("<<<<_<<<.<<###>"), -- DM
+ 6 => new String'("-$_$$$_$$$_$$9.99"), -- DM
+ 7 => new String'("$z99.99"), -- DM
+ 8 => new String'("$$$9.99"), -- DM
+ 9 => new String'("$_$$9.99"), -- DM
+ 10 => new String'("###_###_##9.99") -- CHF
+ );
+
+
+
+ Invalid_Strings : Picture_String_Array_Type
+ (1..Number_Of_Invalid_Strings) :=
+ --
+ -- The RM references to the right of these invalid picture strings
+ -- indicates which of the composition constraints of picture strings
+ -- is violated by the particular string (and all following strings
+ -- until another reference is presented). However, certain strings
+ -- violate multiple of the constraints.
+ --
+ ( 1 => new String'("<<<"),
+ 2 => new String'("<<>>"),
+ 3 => new String'("<<<9_B0/$DB"),
+ 4 => new String'("+BB"),
+ 5 => new String'("<-"),
+ 6 => new String'("<CR"),
+ 7 => new String'("<db"),
+ 8 => new String'("<<BBBcr"),
+ 9 => new String'("<<__DB"),
+ 10 => new String'("<<<++++_++-"),
+ 11 => new String'("-999.99>"),
+ 12 => new String'("+++9.99+"),
+ 13 => new String'("++++>>"),
+ 14 => new String'("->"),
+ 15 => new String'("++9-"),
+ 16 => new String'("---999999->"),
+ 17 => new String'("+++-"),
+ 18 => new String'("+++_+++_+.--"),
+ 19 => new String'("--B.BB+>"),
+ 20 => new String'("$$#$"),
+ 21 => new String'("#B$$$$"),
+ 22 => new String'("**Z"),
+ 23 => new String'("ZZZzzz*"),
+ 24 => new String'("9.99DB(2)"),
+ 25 => new String'(A_Picture_String_Too_Long)
+ );
+
+
+ Edited_Output : Edited_Output_Results_Array_Type
+ (1..Number_Of_Edited_Output_Strings) :=
+
+ -- The following 10 edited output strings result from the first 10
+ -- valid strings when used with the first 10 Data_With_2DP numeric
+ -- values.
+ ( 1 => new String'(" $***123,456.78"),
+ 2 => new String'(" $***123,456.78"),
+ 3 => new String'(" "),
+ 4 => new String'(" $.20"),
+ 5 => new String'("+ 123,456.00"),
+ 6 => new String'(" -123,457"),
+ 7 => new String'(" $123,456.78"),
+ 8 => new String'("( $12.34)"),
+ 9 => new String'(" $1.23"),
+ 10 => new String'("$12.34"),
+
+ -- The following 10 edited output strings correspond to the 10 foreign
+ -- currency picture strings (the currency string is supplied at the
+ -- time of the call to Editing.Image or Editing.Put), when used in
+ -- conjunction with Data_With_2DP items 11-20
+
+ 11 => new String'(" FF***123.456,78"),
+ 12 => new String'(" FF***123.456,78"),
+ 13 => new String'(" FF 32,10 "),
+ 14 => new String'("( FF5.432,10)"),
+ 15 => new String'(" (1,234.57DM )"),
+ 16 => new String'(" DM123,456.78"),
+ 17 => new String'("DM 12.34"),
+ 18 => new String'(" DM12.34"),
+ 19 => new String'(" DM1.23"),
+ 20 => new String'(" CHF12,345.67"),
+
+ -- The following 12 edited output strings correspond to the 12
+ -- Data_With_NDP items formatted using Valid_String items 11-22.
+ -- This combination shows decimal data with no decimal places
+ -- formatted using picture strings.
+
+ 21 => new String'(" 1234"),
+ 22 => new String'("51234"),
+ 23 => new String'("($1,234)"),
+ 24 => new String'(" $1,234 "),
+ 25 => new String'(" 1.00"),
+ 26 => new String'(" "),
+ 27 => new String'("( $10)"),
+ 28 => new String'(" 1-"),
+ 29 => new String'("$1234"),
+ 30 => new String'(" $1"),
+ 31 => new String'(" $36 "),
+ 32 => new String'(" $0")
+ );
+
+
+
+ -- The following data is used to create exception situations in tests of
+ -- the Edited Output capabilities of package Ada.Text_IO.Editing. The data
+ -- are not themselves erroneous, but will produce exceptions based on the
+ -- data/picture string combination used.
+
+ Erroneous_Data : Data_Array_Type_2 (1..Number_Of_Erroneous_Conditions) :=
+ ( 1 => 12.34,
+ 2 => -12.34,
+ 3 => 51234.0
+ );
+
+ Erroneous_Strings : Picture_String_Array_Type
+ (1..Number_Of_Erroneous_Conditions) :=
+ ( 1 => new String'("9.99"),
+ 2 => new String'("99.99"),
+ 3 => new String'("$$$$9")
+ );
+
+end FXF3A00;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/impbit.adb b/gcc-4.9/gcc/testsuite/ada/acats/support/impbit.adb
new file mode 100644
index 000000000..5e189b062
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/impbit.adb
@@ -0,0 +1,6 @@
+with System;
+with Ada.Text_IO;
+procedure Impbit is
+begin
+ Ada.Text_IO.Put_Line (System.Address'Size'Img);
+end Impbit;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/impdef.a b/gcc-4.9/gcc/testsuite/ada/acats/support/impdef.a
new file mode 100644
index 000000000..9c23d0b7f
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/impdef.a
@@ -0,0 +1,376 @@
+-- IMPDEF.A
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- DESCRIPTION:
+-- This package provides tailorable entities for a particular
+-- implementation. Each entity may be modified to suit the needs
+-- of the implementation. Default values are provided to act as
+-- a guide.
+--
+-- The entities in this package are those which are used in at least
+-- one core test. Entities which are used exclusively in tests for
+-- annexes C-H are located in annex-specific child units of this package.
+--
+-- CHANGE HISTORY:
+-- 12 DEC 93 SAIC Initial PreRelease version
+-- 02 DEC 94 SAIC Second PreRelease version
+-- 16 May 95 SAIC Added constants specific to tests of the random
+-- number generator.
+-- 16 May 95 SAIC Added Max_RPC_Call_Time constant.
+-- 17 Jul 95 SAIC Added Non_State_String constant.
+-- 21 Aug 95 SAIC Created from existing IMPSPEC.ADA and IMPBODY.ADA
+-- files.
+-- 30 Oct 95 SAIC Added external name string constants.
+-- 24 Jan 96 SAIC Added alignment constants.
+-- 29 Jan 96 SAIC Moved entities not used in core tests into annex-
+-- specific child packages. Adjusted commentary.
+-- Renamed Validating_System_Programming_Annex to
+-- Validating_Annex_C. Added similar Validating_Annex_?
+-- constants for the other non-core annexes (D-H).
+-- 01 Mar 96 SAIC Added external name string constants.
+-- 21 Mar 96 SAIC Added external name string constants.
+-- 02 May 96 SAIC Removed constants for draft test CXA5014, which was
+-- removed from the tentative ACVC 2.1 suite.
+-- Added constants for use with FXACA00.
+-- 06 Jun 96 SAIC Added constants for wide character test files.
+-- 11 Dec 96 SAIC Updated constants for wide character test files.
+-- 13 Dec 96 SAIC Added Address_Value_IO
+-- 13 Sep 99 RLB Added more external name string constants.
+-- 16 Sep 99 RLB Corrected definition of Non_State_String constant.
+--
+--!
+
+with Report;
+with Ada.Text_IO;
+with System.Storage_Elements;
+
+package ImpDef is
+
+--=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====--
+
+ -- The following boolean constants indicate whether this validation will
+ -- include any of annexes C-H. The values of these booleans affect the
+ -- behavior of the test result reporting software.
+ --
+ -- True means the associated annex IS included in the validation.
+ -- False means the associated annex is NOT included.
+
+ Validating_Annex_C : constant Boolean := True;
+ -- ^^^^^ --- MODIFY HERE AS NEEDED
+
+ Validating_Annex_D : constant Boolean := True;
+ -- ^^^^^ --- MODIFY HERE AS NEEDED
+
+ Validating_Annex_E : constant Boolean := True;
+ -- ^^^^^ --- MODIFY HERE AS NEEDED
+
+ Validating_Annex_F : constant Boolean := True;
+ -- ^^^^^ --- MODIFY HERE AS NEEDED
+
+ Validating_Annex_G : constant Boolean := True;
+ -- ^^^^^ --- MODIFY HERE AS NEEDED
+
+ Validating_Annex_H : constant Boolean := True;
+ -- ^^^^^ --- MODIFY HERE AS NEEDED
+
+--=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====--
+
+ -- This is the minimum time required to allow another task to get
+ -- control. It is expected that the task is on the Ready queue.
+ -- A duration of 0.0 would normally be sufficient but some number
+ -- greater than that is expected.
+
+ Minimum_Task_Switch : constant Duration := 0.001;
+ -- ^^^ --- MODIFY HERE AS NEEDED
+
+ Long_Minimum_Task_Switch : constant Duration := 0.1;
+
+--=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====--
+
+ -- This is the time required to activate another task and allow it
+ -- to run to its first accept statement. We are considering a simple task
+ -- with very few Ada statements before the accept. An implementation is
+ -- free to specify a delay of several seconds, or even minutes if need be.
+ -- The main effect of specifying a longer delay than necessary will be an
+ -- extension of the time needed to run the associated tests.
+
+ Switch_To_New_Task : constant Duration := 0.001;
+ -- ^^^ -- MODIFY HERE AS NEEDED
+
+ Long_Switch_To_New_Task : constant Duration := 0.1;
+
+--=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====--
+
+ -- This is the time which will clear the queues of other tasks
+ -- waiting to run. It is expected that this will be about five
+ -- times greater than Switch_To_New_Task.
+
+ Clear_Ready_Queue : constant Duration := 0.1;
+ -- ^^^ --- MODIFY HERE AS NEEDED
+
+--=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====--
+
+ -- Some implementations will boot with the time set to 1901/1/1/0.0
+ -- When a delay of Delay_For_Time_Past is given, the implementation
+ -- guarantees that a subsequent call to Ada.Calendar.Time_Of(1901,1,1)
+ -- will yield a time that has already passed (for example, when used in
+ -- a delay_until statement).
+
+ Delay_For_Time_Past : constant Duration := 0.001;
+ -- ^^^ --- MODIFY HERE AS NEEDED
+
+--=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====--
+
+ -- Minimum time interval between calls to the time dependent Reset
+ -- procedures in Float_Random and Discrete_Random packages that is
+ -- guaranteed to initiate different sequences. See RM A.5.2(45).
+
+ Time_Dependent_Reset : constant Duration := 0.001;
+ -- ^^^ --- MODIFY HERE AS NEEDED
+
+--=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====--
+
+ -- Test CXA5013 will loop, trying to generate the required sequence
+ -- of random numbers. If the RNG is faulty, the required sequence
+ -- will never be generated. Delay_Per_Random_Test is a time-out value
+ -- which allows the test to run for a period of time after which the
+ -- test is failed if the required sequence has not been produced.
+ -- This value should be the time allowed for the test to run before it
+ -- times out. It should be long enough to allow multiple (independent)
+ -- runs of the testing code, each generating up to 1000 random
+ -- numbers.
+
+ Delay_Per_Random_Test : constant Duration := 0.001;
+ -- ^^^ --- MODIFY HERE AS NEEDED
+
+--=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====--
+
+ -- The time required to execute this procedure must be greater than the
+ -- time slice unit on implementations which use time slicing. For
+ -- implementations which do not use time slicing the body can be null.
+
+ procedure Exceed_Time_Slice;
+
+--=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====--
+
+ -- This constant must not depict a random number generator state value.
+ -- Using this string in a call to function Value from either the
+ -- Discrete_Random or Float_Random packages will result in
+ -- Constraint_Error or Program_Error (expected result in test CXA5012).
+ -- If there is no such string, set it to "**NONE**".
+
+ Non_State_String : constant String := "By No Means A State";
+ -- MODIFY HERE AS NEEDED --- ^^^^^^^^^^^^^^^^^^^
+
+--=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====--
+
+ -- This string constant must be a legal external tag value as used by
+ -- CD10001 for the type Some_Tagged_Type in the representation
+ -- specification for the value of 'External_Tag.
+
+ External_Tag_Value : constant String := "implementation_defined";
+ -- MODIFY HERE AS NEEDED --- ^^^^^^^^^^^^^^^^^^^^^^
+
+--=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====--
+
+ -- The following address constant must be a valid address to locate
+ -- the C program CD30005_1. It is shown here as a named number;
+ -- the implementation may choose to type the constant as appropriate.
+
+ function Cd30005_Proc (X : Integer) return Integer;
+ pragma Import (C, Cd30005_Proc, "_cd30005_1");
+
+ pragma Linker_Options ("ACATS4GNATDIR/support/cd300051.o");
+
+ CD30005_1_Foreign_Address : constant System.Address:= Cd30005_Proc'Address;
+
+ -- CD30005_1_Foreign_Address : constant System.Address:=
+ -- System.Storage_Elements.To_Address ( 16#0000_0000# )
+ -- --MODIFY HERE AS REQUIRED --- ^^^^^^^^^^^^^
+
+--=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====--
+
+ -- The following string constant must be the external name resulting
+ -- from the C compilation of CD30005_1. The string will be used as an
+ -- argument to pragma Import.
+
+ CD30005_1_External_Name : constant String := "_cd30005_1";
+ -- MODIFY HERE AS NEEDED --- ^^^^^^^^^
+
+--=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====--
+
+ -- The following constants should represent the largest default alignment
+ -- value and the largest alignment value supported by the linker.
+ -- See RM 13.3(35).
+
+ Max_Default_Alignment : constant := Standard'Maximum_Alignment;
+ -- ^ --- MODIFY HERE AS NEEDED
+
+ Max_Linker_Alignment : constant := Standard'Maximum_Alignment;
+ -- ^ --- MODIFY HERE AS NEEDED
+
+--=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====--
+
+ -- The following string constants must be the external names resulting
+ -- from the C compilation of CXB30040.C, CXB30060.C, CXB30130.C, and
+ -- CXB30131.C. The strings will be used as arguments to pragma Import.
+
+ CXB30040_External_Name : constant String := "CXB30040";
+ -- MODIFY HERE AS NEEDED --- ^^^^^^^^
+
+ CXB30060_External_Name : constant String := "CXB30060";
+ -- MODIFY HERE AS NEEDED --- ^^^^^^^^
+
+ CXB30130_External_Name : constant String := "CXB30130";
+ -- MODIFY HERE AS NEEDED --- ^^^^^^^^
+
+ CXB30131_External_Name : constant String := "CXB30131";
+ -- MODIFY HERE AS NEEDED --- ^^^^^^^^
+
+--=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====--
+
+ -- The following string constants must be the external names resulting
+ -- from the COBOL compilation of CXB40090.CBL, CXB40091.CBL, and
+ -- CXB40092.CBL. The strings will be used as arguments to pragma Import.
+
+ CXB40090_External_Name : constant String := "CXB40090";
+ -- MODIFY HERE AS NEEDED --- ^^^^^^^^
+
+ CXB40091_External_Name : constant String := "CXB40091";
+ -- MODIFY HERE AS NEEDED --- ^^^^^^^^
+
+ CXB40092_External_Name : constant String := "CXB40092";
+ -- MODIFY HERE AS NEEDED --- ^^^^^^^^
+
+--=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====--
+
+ -- The following string constants must be the external names resulting
+ -- from the Fortran compilation of CXB50040.FTN, CXB50041.FTN,
+ -- CXB50050.FTN, and CXB50051.FTN.
+ --
+ -- The strings will be used as arguments to pragma Import.
+ --
+ -- Note that the use of these four string constants will be split between
+ -- two tests, CXB5004 and CXB5005.
+
+ CXB50040_External_Name : constant String := "CXB50040";
+ -- MODIFY HERE AS NEEDED --- ^^^^^^^^
+
+ CXB50041_External_Name : constant String := "CXB50041";
+ -- MODIFY HERE AS NEEDED --- ^^^^^^^^
+
+ CXB50050_External_Name : constant String := "CXB50050";
+ -- MODIFY HERE AS NEEDED --- ^^^^^^^^
+
+ CXB50051_External_Name : constant String := "CXB50051";
+ -- MODIFY HERE AS NEEDED --- ^^^^^^^^
+
+--=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====--
+
+ -- The following constants have been defined for use with the
+ -- representation clause in FXACA00 of type Sales_Record_Type.
+ --
+ -- Char_Bits should be an integer at least as large as the number
+ -- of bits needed to hold a character in an array.
+ -- A value of 6 * Char_Bits will be used in a representation clause
+ -- to reserve space for a six character string.
+ --
+ -- Next_Storage_Slot should indicate the next storage unit in the record
+ -- representation clause that does not overlap the storage designated for
+ -- the six character string.
+
+ Char_Bits : constant := 8;
+ -- MODIFY HERE AS NEEDED ---^
+
+ Next_Storage_Slot : constant := 6;
+ -- MODIFY HERE AS NEEDED ---^
+
+--=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====--
+
+ -- The following string constant must be the path name for the .AW
+ -- files that will be processed by the Wide Character processor to
+ -- create the C250001 and C250002 tests. The Wide Character processor
+ -- will expect to find the files to process at this location.
+
+ Test_Path_Root : constant String :=
+ "ACATS4GNATDIR/tests/c2/";
+ -- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ --- MODIFY HERE AS NEEDED
+
+ -- The following two strings must not be modified unless the .AW file
+ -- names have been changed. The Wide Character processor will use
+ -- these strings to find the .AW files used in creating the C250001
+ -- and C250002 tests.
+
+ Wide_Character_Test : constant String := Test_Path_Root & "c250001";
+ Upper_Latin_Test : constant String := Test_Path_Root & "c250002";
+
+--=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====--
+
+ -- The following instance of Integer_IO or Modular_IO must be supplied
+ -- in order for test CD72A02 to compile correctly.
+ -- Depending on the choice of base type used for the type
+ -- System.Storage_Elements.Integer_Address; one of the two instances will
+ -- be correct. Comment out the incorrect instance.
+
+ -- package Address_Value_IO is
+ -- new Ada.Text_IO.Integer_IO(System.Storage_Elements.Integer_Address);
+
+ package Address_Value_IO is
+ new Ada.Text_IO.Modular_IO(System.Storage_Elements.Integer_Address);
+
+--=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====--
+
+ One_Second : constant Duration := 0.001;
+ One_Long_Second : constant Duration := 0.1;
+
+end ImpDef;
+
+
+ --==================================================================--
+
+
+package body ImpDef is
+
+ -- NOTE: These are example bodies. It is expected that implementors
+ -- will write their own versions of these routines.
+
+--=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====--
+
+ -- The time required to execute this procedure must be greater than the
+ -- time slice unit on implementations which use time slicing. For
+ -- implementations which do not use time slicing the body can be null.
+
+ Procedure Exceed_Time_Slice is
+ T : Integer := 0;
+ Loop_Max : constant Integer := 4_000;
+ begin
+ for I in 1..Loop_Max loop
+ T := Report.Ident_Int (1) * Report.Ident_Int (2);
+ end loop;
+ end Exceed_Time_Slice;
+
+--=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====--
+
+end ImpDef;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/impdefd.a b/gcc-4.9/gcc/testsuite/ada/acats/support/impdefd.a
new file mode 100644
index 000000000..85f6b7924
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/impdefd.a
@@ -0,0 +1,69 @@
+-- IMPDEFD.A
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- DESCRIPTION:
+-- This package provides tailorable entities for a particular
+-- implementation. Each entity may be modified to suit the needs
+-- of the implementation. Default values are provided to act as
+-- a guide.
+--
+-- The entities in this package are those which are used exclusively
+-- in tests for Annex D (Real-Time Systems).
+--
+-- APPLICABILITY CRITERIA:
+-- This package is only required for implementations validating the
+-- Real-Time Systems Annex.
+--
+-- CHANGE HISTORY:
+-- 29 Jan 96 SAIC Initial version for ACVC 2.1.
+-- 27 Aug 98 EDS Removed Processor_Type value Time_Slice
+--!
+
+package ImpDef.Annex_D is
+
+--=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====--
+
+ -- This constant is the maximum storage size that can be specified
+ -- for a task. A single task that has this size must be able to
+ -- run. Ideally, this value is large enough that two tasks of this
+ -- size cannot run at the same time. If the value is too small then
+ -- test CXDC001 may take longer to run. See the test for further
+ -- information.
+
+ Maximum_Task_Storage_Size : constant := 16_000_000;
+ -- ^^^^^^^^^^ --- MODIFY HERE AS NEEDED
+
+--=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====--
+
+ -- Indicates the type of processor on which the tests are running.
+
+ type Processor_Type is (Uni_Processor, Multi_Processor);
+
+ Processor : constant Processor_Type := Uni_Processor;
+ -- ^^^^^^^^^^^ --- MODIFY HERE AS NEEDED
+
+--=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====--
+
+end ImpDef.Annex_D;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/impdefe.a b/gcc-4.9/gcc/testsuite/ada/acats/support/impdefe.a
new file mode 100644
index 000000000..ae9f651b9
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/impdefe.a
@@ -0,0 +1,58 @@
+-- IMPDEFE.A
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- DESCRIPTION:
+-- This package provides tailorable entities for a particular
+-- implementation. Each entity may be modified to suit the needs
+-- of the implementation. Default values are provided to act as
+-- a guide.
+--
+-- The entities in this package are those which are used exclusively
+-- in tests for Annex E (Distributed Systems).
+--
+-- APPLICABILITY CRITERIA:
+-- This package is only required for implementations validating the
+-- Distributed Systems Annex.
+--
+-- CHANGE HISTORY:
+-- 29 Jan 96 SAIC Initial version for ACVC 2.1.
+--
+--!
+
+package ImpDef.Annex_E is
+
+--=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====--
+
+ -- The Max_RPC_Call_Time value is the longest time a test needs to wait for
+ -- an RPC to complete. Included in this time is the time for the called
+ -- procedure to make a task entry call where the task is ready to accept
+ -- the call.
+
+ Max_RPC_Call_Time : constant Duration := 2.0;
+ -- ^^^ --- MODIFY HERE AS NEEDED
+
+--=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====--
+
+end ImpDef.Annex_E;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/impdefg.a b/gcc-4.9/gcc/testsuite/ada/acats/support/impdefg.a
new file mode 100644
index 000000000..459ba9c94
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/impdefg.a
@@ -0,0 +1,83 @@
+-- IMPDEFG.A
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- DESCRIPTION:
+-- This package provides tailorable entities for a particular
+-- implementation. Each entity may be modified to suit the needs
+-- of the implementation. Default values are provided to act as
+-- a guide.
+--
+-- The entities in this package are those which are used exclusively
+-- in tests for Annex G (Numerics).
+--
+-- APPLICABILITY CRITERIA:
+-- This package is only required for implementations validating the
+-- Numerics Annex.
+--
+-- CHANGE HISTORY:
+-- 29 Jan 96 SAIC Initial version for ACVC 2.1.
+--
+--!
+
+package ImpDef.Annex_G is
+
+--=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====--
+
+ -- This function must return a "negative zero" value for implementations
+ -- for which Float'Signed_Zeros is True.
+
+ function Negative_Zero return Float;
+
+--=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====--
+
+end ImpDef.Annex_G;
+
+
+ --==================================================================--
+
+
+package body ImpDef.Annex_G is
+
+
+--=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====--
+
+ -- This function must return a negative zero value for implementations
+ -- for which Float'Signed_Zeros is True.
+ -- We generate the smallest normalized negative number, and divide by a
+ -- few powers of two to obtain a number whose absolute value equals zero
+ -- but whose sign is negative.
+
+ function Negative_Zero return Float is
+ negz : float := -1.0 *
+ float (float'Machine_Radix)
+ ** ( Float'Machine_Emin - Float'Machine_Mantissa);
+ begin
+ return negz / 8.0;
+ end Negative_Zero;
+
+--=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====--
+
+end ImpDef.Annex_G;
+
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/impdefh.a b/gcc-4.9/gcc/testsuite/ada/acats/support/impdefh.a
new file mode 100644
index 000000000..e6cfda717
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/impdefh.a
@@ -0,0 +1,102 @@
+-- IMPDEFH.A
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- DESCRIPTION:
+-- This package is used to define those values that are implementation
+-- defined for use with validating the Safety and Security special needs
+-- annex, Annex-H.
+--
+-- APPLICABILITY CRITERIA:
+-- This package is only required for implementations validating the
+-- Safety and Security Annex.
+--
+-- CHANGE HISTORY:
+-- 13 FEB 96 SAIC Initial version
+-- 25 NOV 96 SAIC Revised for release 2.1
+--
+--!
+
+package Impdef.Annex_H is
+
+ type Scalar_To_Normalize is
+ ( Id0, Id1, Id2, Id3, Id4, Id5, Id6, Id7, Id8, Id9,
+ Id10, Id11, Id12, Id13, Id14, Id15, Id16, Id17, Id18, Id19,
+ Id20, Id21, Id22, Id23, Id24, Id25, Id26, Id27, Id28, Id29,
+ Id30, Id31, Id32, Id33, Id34, Id35, Id36, Id37, Id38, Id39,
+ Id40, Id41, Id42, Id43, Id44, Id45, Id46, Id47, Id48, Id49,
+ Id50, Id51, Id52, Id53, Id54, Id55, Id56, Id57, Id58, Id59,
+ Id60, Id61, Id62, Id63, Id64, Id65, Id66, Id67, Id68, Id69,
+ Id70, Id71, Id72, Id73, Id74, Id75, Id76, Id77, Id78, Id79,
+ Id80, Id81, Id82, Id83, Id84, Id85, Id86, Id87, Id88, Id89,
+ Id90, Id91, Id92, Id93, Id94, Id95, Id96, Id97, Id98, Id99,
+ IdA0, IdA1, IdA2, IdA3, IdA4, IdA5, IdA6, IdA7, IdA8, IdA9,
+ IdB0, IdB1, IdB2, IdB3, IdB4, IdB5, IdB6 );
+
+ -- NO MODIFICATION NEEDED TO TYPE SCALAR_TO_NORMALIZE. DO NOT MODIFY.
+
+ type Small_Number is range 1..100;
+
+ -- NO MODIFICATION NEEDED TO TYPE SMALL_NUMBER. DO NOT MODIFY.
+
+--=====================================================================
+ -- When the value documented in H.1(5) as the predictable initial value
+ -- for an uninitialized object of the type Scalar_To_Normalize
+ -- (an enumeration type containing 127 identifiers) is to be in the range
+ -- Id0..IdB6, set the following constant to True; otherwise leave it set
+ -- to False.
+
+ Default_For_Scalar_To_Normalize_Is_In_Range : constant Boolean := False;
+ -- MODIFY HERE AS NEEDED --- ^^^^^
+
+--=====================================================================
+ -- If the above constant Default_For_Scalar_To_Normalize_Is_In_Range is
+ -- set True, the following constant must be set to the value documented
+ -- in H.1(5) as the predictable initial value for the type
+ -- Scalar_To_Normalize.
+
+ Default_For_Scalar_To_Normalize : constant Scalar_To_Normalize := Id0;
+ -- MODIFY HERE AS NEEDED --- ^^^
+
+--=====================================================================
+ -- When the value documented in H.1(5) as the predictable initial value
+ -- for an uninitialized object of the type Small_Number
+ -- (an integer type containing 100 values) is to be in the range
+ -- 1..100, set the following constant to True; otherwise leave it set
+ -- to False.
+
+ Default_For_Small_Number_Is_In_Range : constant Boolean := False;
+ -- MODIFY HERE AS NEEDED --- ^^^^^
+
+--=====================================================================
+ -- If the above constant Default_For_Small_Number_Is_In_Range is
+ -- set True, the following constant must be set to the value documented
+ -- in H.1(5) as the predictable initial value for the type Small_Number.
+
+ Default_For_Small_Number : constant Small_Number := 100;
+ -- MODIFY HERE AS NEEDED --- ^^^
+
+--=====================================================================
+
+end Impdef.Annex_H;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/lencheck.ada b/gcc-4.9/gcc/testsuite/ada/acats/support/lencheck.ada
new file mode 100644
index 000000000..f8ed1385b
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/lencheck.ada
@@ -0,0 +1,60 @@
+-- THIS GENERIC PROCEDURE IS INTENDED FOR USE IN CONJUNCTION WITH THE
+-- ACVC CHAPTER 13 C TESTS. IT IS INSTANTIATED FOR A TYPE WHOSE
+-- REPRESENTATION IS TO BE CHECKED, AND THEN THE PROCEDURE REP_CHECK
+-- IS CALLED WITH TWO ARGUMENTS, THE FIRST IS A VALUE OF THE TYPE TO
+-- BE CHECKED, AND THE SECOND IS A STRING DESCRIBING OR NAMING THE
+-- TYPE (FOR USE IN A CALL TO FAILED IF THE REPRESENTATION CHECK FAILS)
+
+-- THE CHECK IS TO CONVERT THE VALUE TO A PACKED BOOLEAN ARRAY WITH A
+-- LENGTH CORRESPONDING TO THE 'SIZE OF THE TYPE, AND THEN CONVERT IT
+-- BACK AGAIN AND CHECK THAT THE SAME VALUE IS OBTAINED. THE
+-- CONVERSIONS ARE PERFORMED USING APPROPRIATE INSTANTIATIONS OF
+-- UNCHECKED_CONVERSION.
+
+-- AUTHOR: ROBERT B. K. DEWAR, UNCOPYRIGHTED, PUBLIC DOMAIN USE
+-- AUTHORIZED
+-- DHH 03/27/89 CHANGED REP_CHECK TO LENGTH_CHECK BY ADDING A THIRD
+-- PARAMETER TO GIVE LENGTH EXPECTED AND BY DOING A BIT TO
+-- BIT COPY OF THE UNCHECKED CONVERSION BOOLEAN ARRAY SO
+-- A STRAIGHT COMPARE OF THE TWO VALUES CAN BE DONE.
+
+GENERIC
+
+ TYPE TEST_TYPE IS PRIVATE;
+
+PROCEDURE LENGTH_CHECK (TEST_VALUE : TEST_TYPE;
+ EXPECTED_LENGTH : INTEGER;
+ TYPE_ID : STRING);
+
+WITH UNCHECKED_CONVERSION;
+WITH REPORT; USE REPORT;
+
+PROCEDURE LENGTH_CHECK (TEST_VALUE : TEST_TYPE;
+ EXPECTED_LENGTH : INTEGER;
+ TYPE_ID : STRING) IS
+ LEN : CONSTANT INTEGER := EXPECTED_LENGTH;
+ TYPE BIT_ARRAY_TYPE IS ARRAY (1 .. LEN) OF BOOLEAN;
+ PRAGMA PACK (BIT_ARRAY_TYPE);
+ TYPE NEW_BIT_ARRAY_TYPE IS ARRAY (1 .. 3) OF BIT_ARRAY_TYPE;
+
+ FUNCTION TO_BITS IS NEW UNCHECKED_CONVERSION (TEST_TYPE,
+ BIT_ARRAY_TYPE);
+ FUNCTION FROM_BITS IS NEW UNCHECKED_CONVERSION (BIT_ARRAY_TYPE,
+ TEST_TYPE);
+
+ BIT_ARRAY : BIT_ARRAY_TYPE := (OTHERS => FALSE);
+
+ BIT_ARRAY_NEW : NEW_BIT_ARRAY_TYPE := (OTHERS => (OTHERS => FALSE));
+BEGIN
+
+ BIT_ARRAY := TO_BITS (TEST_VALUE);
+
+ FOR I IN 1 .. LEN LOOP
+ BIT_ARRAY_NEW(IDENT_INT(1)) (IDENT_INT(I)) := BIT_ARRAY(I);
+ END LOOP;
+
+ IF TEST_VALUE /= FROM_BITS (BIT_ARRAY_NEW(1)) THEN
+ FAILED ("CHECK ON REPRESENTATION FOR " & TYPE_ID & " FAILED.");
+ END IF;
+
+END LENGTH_CHECK;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/macro.dfs b/gcc-4.9/gcc/testsuite/ada/acats/support/macro.dfs
new file mode 100644
index 000000000..8c3723348
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/macro.dfs
@@ -0,0 +1,301 @@
+-- MACRO.DFS
+-- THIS FILE CONTAINS THE MACRO DEFINITIONS USED IN THE ACVC TESTS.
+-- THESE DEFINITIONS ARE USED BY THE ACVC TEST PRE-PROCESSOR,
+-- MACROSUB. MACROSUB WILL CALCULATE VALUES FOR THOSE MACRO SYMBOLS
+-- WHOSE DEFINITIONS DEPEND ON THE VALUE OF MAX_IN_LEN (NAMELY, THE
+-- VALUES OF THE MACRO SYMBOLS BIG_ID1, BIG_ID2, BIG_ID3, BIG_ID4,
+-- BIG_STRING1, BIG_STRING2, MAX_STRING_LITERAL, BIG_INT_LIT, BIG_REAL_LIT,
+-- AND BLANKS). THEREFORE, ANY VALUES GIVEN IN THIS FILE FOR THOSE
+-- MACRO SYMBOLS WILL BE IGNORED BY MACROSUB.
+
+-- NOTE: AS REQUIRED BY THE MACROSUB PROGRAM, THE FIRST MACRO DEFINED
+-- IN THIS FILE IS $MAX_IN_LEN. THE NEXT 5 MACRO DEFINITIONS
+-- ARE FOR THOSE MACRO SYMBOLS THAT DEPEND ON THE VALUE OF
+-- MAX_IN_LEN. THESE ARE IN ALPHABETIC ORDER. FOLLOWING THESE
+-- ARE 36 MORE DEFINITIONS, ALSO IN ALPHABETIC ORDER.
+
+-- EACH DEFINITION IS ACCORDING TO THE FOLLOWING FORMAT:
+
+-- A. A NUMBER OF LINES PRECEDED BY THE ADA COMMENT DELIMITER, --.
+-- THE FIRST OF THESE LINES CONTAINS THE MACRO SYMBOL AS IT APPEARS
+-- IN THE TEST FILES (WITH THE DOLLAR SIGN). THE NEXT FEW "COMMENT"
+-- LINES CONTAIN A DESCRIPTION OF THE VALUE TO BE SUBSTITUTED.
+-- THE REMAINING "COMMENT" LINES, THE FIRST OF WHICH BEGINS WITH THE
+-- WORDS "USED IN: " (NO QUOTES), CONTAIN A LIST OF THE TEST FILES
+-- (WITHOUT THE .TST EXTENSION) IN WHICH THE MACRO SYMBOL APPEARS.
+-- EACH TEST FILE NAME IS PRECEDED BY ONE OR MORE BLANKS.
+-- B. A LINE, WITHOUT THE COMMENT DELIMITER, CONSISTING OF THE
+-- IDENTIFIER (WITHOUT THE DOLLAR SIGN) OF THE MACRO SYMBOL,
+-- FOLLOWED BY A SPACE OR TAB, FOLLOWED BY THE VALUE TO BE
+-- SUBSTITUTED. IN THE DISTRIBUTION FILE, A SAMPLE VALUE IS
+-- PROVIDED; THIS VALUE MUST BE REPLACED BY A VALUE APPROPRIATE TO
+-- THE IMPLEMENTATION.
+
+-- DEFINITIONS ARE SEPARATED BY ONE OR MORE EMPTY LINES.
+-- THE LIST OF DEFINITIONS BEGINS AFTER THE FOLLOWING EMPTY LINE.
+
+-- $MAX_IN_LEN
+-- AN INTEGER LITERAL GIVING THE MAXIMUM LENGTH PERMITTED BY THE
+-- COMPILER FOR A LINE OF ADA SOURCE CODE (NOT INCLUDING AN END-OF-LINE
+-- CHARACTER).
+-- USED IN: A26007A
+MAX_IN_LEN 200
+
+-- $MAX_STRING_LITERAL
+-- A STRING LITERAL CONSISTING OF $MAX_IN_LEN CHARACTERS (INCLUDING THE
+-- QUOTE CHARACTERS).
+-- USED IN: A26007A
+MAX_STRING_LITERAL "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
+
+-- $BIG_ID1
+-- AN IDENTIFIER IN WHICH THE NUMBER OF CHARACTERS IS $MAX_IN_LEN.
+-- THE MACROSUB PROGRAM WILL SUPPLY AN IDENTIFIER IN WHICH THE
+-- LAST CHARACTER IS '1' AND ALL OTHERS ARE 'A'.
+-- USED IN: C23003A C23003B C23003G C23003I
+-- C35502D C35502F
+BIG_ID1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1
+
+-- $BIG_ID2
+-- AN IDENTIFIER IN WHICH THE NUMBER OF CHARACTERS IS $MAX_IN_LEN,
+-- DIFFERING FROM $BIG_ID1 ONLY IN THE LAST CHARACTER. THE MACROSUB
+-- PROGRAM WILL USE '2' AS THE LAST CHARACTER.
+-- USED IN: C23003A C23003B B23003F C23003G C23003I
+BIG_ID2 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2
+
+-- $BIG_ID3
+-- AN IDENTIFIER IN WHICH THE NUMBER OF CHARACTERS IS $MAX_IN_LEN.
+-- MACROSUB WILL USE '3' AS THE "MIDDLE" CHARACTER; ALL OTHERS ARE 'A'.
+-- USED IN: C23003A C23003B C23003G C23003I
+BIG_ID3 AAAAAAAAAAAAAAAAAAAAAAAAAAAAA3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+
+-- $BIG_ID4
+-- AN IDENTIFIER IN WHICH THE NUMBER OF CHARACTERS IS $MAX_IN_LEN,
+-- DIFFERING FROM $BIG_ID3 ONLY IN THE MIDDLE CHARACTER. MACROSUB
+-- WILL USE '4' AS THE MIDDLE CHARACTER.
+-- USED IN: C23003A C23003B C23003G C23003I
+BIG_ID4 AAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+
+-- $BIG_STRING1
+-- A STRING LITERAL (WITH QUOTES) WHOSE CATENATION WITH $BIG_STRING2
+-- ($BIG_STRING1 & $BIG_STRING2) PRODUCES THE IMAGE OF $BIG_ID1.
+-- USED IN: C35502D C35502F
+BIG_STRING1 "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
+
+-- $BIG_STRING2
+-- A STRING LITERAL (WITH QUOTES) WHOSE CATENATION WITH $BIG_STRING1
+-- ($BIG_STRING1 & $BIG_STRING2) PRODUCES THE IMAGE OF $BIG_ID1.
+-- USED IN: C35502D C35502F
+BIG_STRING2 "AAAAAAAAAAAAAAAAAAAAAAAAAAAAA1"
+
+-- $BLANKS
+-- A SEQUENCE OF ($MAX_IN_LEN - 20) BLANKS.
+-- USED IN: B22001A B22001B B22001C B22001D B22001E B22001F
+-- B22001G B22001I B22001J B22001K B22001L B22001M
+-- B22001N
+-- < LIMITS OF SAMPLE SHOWN BY ANGLE BRACKETS >
+BLANKS
+
+-- $ACC_SIZE
+-- AN INTEGER LITERAL WHOSE VALUE IS THE MINIMUM NUMBER OF BITS
+-- SUFFICIENT TO HOLD ANY VALUE OF AN ACCESS TYPE.
+-- USED IN: CD2A83C BD2A02A
+ACC_SIZE ACATS4GNATBIT
+
+-- $ALIGNMENT
+-- A VALUE THAT IS LEGITIMATE FOR USE IN A RECORD ALIGNMENT CLAUSE.
+-- USED IN: CD4041A BD4006A
+ALIGNMENT 4
+
+-- $COUNT_LAST
+-- AN INTEGER LITERAL WHOSE VALUE IS TEXT_IO.COUNT'LAST.
+-- USED IN: CE3002B
+COUNT_LAST 2147483647
+
+-- $ENTRY_ADDRESS
+-- AN EXPRESSION YIELDING A LEGAL ADDRESS FOR A TASK ENTRY
+-- (I.E., FOR AN INTERRUPT) FOR THIS IMPLEMENTATION.
+-- USED IN: SPPRT13SP
+ENTRY_ADDRESS ENTRY_ADDR
+
+-- $ENTRY_ADDRESS1
+-- AN EXPRESSION YIELDING A LEGAL ADDRESS FOR A TASK ENTRY
+-- (I.E., FOR AN INTERRUPT) FOR THIS IMPLEMENTATION. THE ADDRESS
+-- MUST BE DISTINCT FROM THAT USED IN $ENTRY_ADDRESS.
+-- USED IN: SPPRT13SP
+ENTRY_ADDRESS1 ENTRY_ADDR1
+
+-- $ENTRY_ADDRESS2
+-- AN EXPRESSION YIELDING A LEGAL ADDRESS FOR A TASK ENTRY
+-- (I.E., FOR AN INTERRUPT) FOR THIS IMPLEMENTATION. THE ADDRESS
+-- MUST BE DISTINCT FROM THOSE USED IN $ENTRY_ADDRESS
+-- AND $ENTRY_ADDRESS1.
+-- USED IN: SPPRT13SP
+ENTRY_ADDRESS2 ENTRY_ADDR2
+
+-- $FIELD_LAST
+-- AN INTEGER LITERAL WHOSE VALUE IS TEXT_IO.FIELD'LAST.
+-- USED IN: CE3002C
+FIELD_LAST 255
+
+-- $FORM_STRING
+-- A STRING LITERAL SPECIFYING THAT THE EXTERNAL FILE MEETS BOTH
+-- CONDITIONS: (1) THERE IS A VALUE OF TYPE TEXT_IO.COUNT THAT IS NOT
+-- AN APPROPRIATE LINE-LENGTH FOR THE FILE, (2) THERE IS A VALUE
+-- OF TYPE TEXT_IO.COUNT THAT IS NOT AN APPROPRIATE PAGE-LENGTH
+-- FOR THE FILE.
+-- IF IT IS NOT POSSIBLE TO SATISFY BOTH CONDITIONS, THEN SUBSTITUTE
+-- A STRING LITERAL SPECIFYING THAT THE EXTERNAL FILE SATISFIES ONE
+-- OF THE CONDITIONS. IF IT IS NOT POSSIBLE TO SATISFY EITHER CONDITION,
+-- THEN SUBSTITUTE THE NULL STRING ("").
+-- USED IN: CE3304A
+FORM_STRING ""
+
+-- $FORM_STRING2
+-- A STRING LITERAL SPECIFYING THAT THE CAPACITY OF THE FILE IS
+-- RESTRICTED TO 4096 CHARACTERS OR LESS. IF THE IMPLEMENTATION
+-- CANNOT RESTRICT FILE CAPACITY, $FORM_STRING2 SHOULD EQUAL
+-- "CANNOT_RESTRICT_FILE_CAPACITY".
+-- USED IN: CE2203A CE2403A
+FORM_STRING2 "CANNOT_RESTRICT_FILE_CAPACITY"
+
+-- $GREATER_THAN_DURATION
+-- A REAL LITERAL WHOSE VALUE (NOT SUBJECT TO ROUND-OFF ERROR
+-- IF POSSIBLE) LIES BETWEEN DURATION'BASE'LAST AND DURATION'LAST. IF
+-- NO SUCH VALUES EXIST, USE A VALUE IN DURATION'RANGE.
+-- USED IN: C96005B
+GREATER_THAN_DURATION 86_000.0
+
+
+
+
+-- $ILLEGAL_EXTERNAL_FILE_NAME1
+-- AN ILLEGAL EXTERNAL FILE NAME (E.G., TOO LONG, CONTAINING INVALID
+-- CHARACTERS, CONTAINING WILD-CARD CHARACTERS, OR SPECIFYING A
+-- NONEXISTENT DIRECTORY).
+-- USED IN: CE2102C CE2102H CE2103A CE2103B CE3102B CE3107A
+ILLEGAL_EXTERNAL_FILE_NAME1 /NODIRECTORY/FILENAME
+
+-- $ILLEGAL_EXTERNAL_FILE_NAME2
+-- AN ILLEGAL EXTERNAL FILE NAME, DIFFERENT FROM $ILLEGAL_EXTERNAL_FILE_NAME1.
+-- USED IN: CE2102C CE2102H CE2103A CE2103B CE3102B
+ILLEGAL_EXTERNAL_FILE_NAME2 /@@/@@/@@\@@\@@\@@
+
+-- $INAPPROPRIATE_LINE_LENGTH
+-- A LITERAL OF TYPE COUNT THAT IS INAPPROPRIATE AS THE LINE-LENGTH
+-- FOR THE EXTERNAL FILE. IF THERE IS NO SUCH VALUE, THEN USE -1.
+-- USED IN: CE3304A
+INAPPROPRIATE_LINE_LENGTH -1
+
+-- $INAPPROPRIATE_PAGE_LENGTH
+-- A LITERAL OF TYPE COUNT THAT IS INAPPROPRIATE AS THE PAGE-LENGTH
+-- FOR THE EXTERNAL FILE. IF THERE IS NO SUCH VALUE, THEN USE -1.
+-- USED IN: CE3304A
+INAPPROPRIATE_PAGE_LENGTH -1
+
+-- $INTEGER_FIRST
+-- AN INTEGER LITERAL, WITH SIGN, WHOSE VALUE IS INTEGER'FIRST.
+-- THE LITERAL MUST NOT INCLUDE UNDERSCORES OR LEADING OR TRAILING
+-- BLANKS.
+-- USED IN: C35503F B54B01B
+INTEGER_FIRST -2147483648
+
+-- $INTEGER_LAST
+-- AN INTEGER LITERAL WHOSE VALUE IS INTEGER'LAST. THE LITERAL MUST
+-- NOT INCLUDE UNDERSCORES OR LEADING OR TRAILING BLANKS.
+-- USED IN: C35503F B54B01B
+INTEGER_LAST 2147483647
+
+
+-- $LESS_THAN_DURATION
+-- A REAL LITERAL (WITH SIGN) WHOSE VALUE (NOT SUBJECT TO
+-- ROUND-OFF ERROR IF POSSIBLE) LIES BETWEEN DURATION'BASE'FIRST AND
+-- DURATION'FIRST. IF NO SUCH VALUES EXIST, USE A VALUE IN
+-- DURATION'RANGE.
+-- USED IN: C96005B
+LESS_THAN_DURATION -86_400.0
+
+
+-- $MACHINE_CODE_STATEMENT
+-- A VALID MACHINE CODE STATEMENT AS SPECIFIED IN THE PACKAGE
+-- MACHINE_CODE. IF THE IMPLEMENTATION DOES NOT SUPPORT MACHINE
+-- CODE THEN USE THE ADA NULL STATEMENT (I.E. NULL; ).
+-- USED IN: AD8011A BD8001A BD8002A BD8004A BD8004B
+MACHINE_CODE_STATEMENT Asm_Insn'(Asm ("ACATS4GNATINSN"));
+
+-- $MAX_INT
+-- AN INTEGER LITERAL WHOSE VALUE IS SYSTEM.MAX_INT.
+-- THE LITERAL MUST NOT INCLUDE UNDERSCORES OR LEADING OR TRAILING
+-- BLANKS.
+-- USED IN: C35503D C35503F C4A007A
+MAX_INT 9223372036854775807
+
+
+-- $MIN_INT
+-- AN INTEGER LITERAL, WITH SIGN, WHOSE VALUE IS SYSTEM.MIN_INT.
+-- THE LITERAL MUST NOT CONTAIN UNDERSCORES OR LEADING OR TRAILING
+-- BLANKS.
+-- USED IN: C35503D C35503F
+MIN_INT -9223372036854775808
+
+-- $NAME
+-- THE NAME OF A PREDEFINED INTEGER TYPE OTHER THAN INTEGER,
+-- SHORT_INTEGER, OR LONG_INTEGER.
+-- (IMPLEMENTATIONS WHICH HAVE NO SUCH TYPES SHOULD USE AN UNDEFINED
+-- IDENTIFIER SUCH AS NO_SUCH_TYPE_AVAILABLE.)
+-- USED IN: C45231D CD7101G
+NAME LONG_LONG_INTEGER
+
+-- $OPTIONAL_DISC
+-- A DISCRIMINANT USED AS THE DISCRIMINANT PART OF $RECORD_NAME.
+-- IF MACHINE CODE INSERTIONS ARE NOT SUPPORTED THEN SUBSTITUTE
+-- NO_SUCH_MACHINE_CODE_DISC.
+-- USED IN: BD8002A
+OPTIONAL_DISC
+
+-- $RECORD_DEFINITION
+-- THE RECORD TYPE DEFINITION (WITH FINAL SEMICOLON) FOR THE TYPE THAT
+-- WAS USED IN THE MACRO $RECORD_NAME, AS DECLARED IN PACKAGE
+-- MACHINE_CODE. IF THE IMPLEMENTATION DOES NOT SUPPORT MACHINE CODE,
+-- THEN USE A NULL RECORD DEFINITION
+-- USED IN: BD8002A
+RECORD_DEFINITION RECORD ASM : STRING (1..4); END RECORD;
+
+-- $RECORD_NAME
+-- A VALID RECORD TYPE NAME THAT IS DEFINED IN PACKAGE MACHINE_CODE.
+-- IF THE IMPLEMENTATION DOES NOT SUPPORT MACHINE CODE THEN
+-- USE THE NAME "NO_SUCH_MACHINE_CODE_TYPE"
+-- USED IN: BD8002A
+RECORD_NAME Asm_Insn
+
+-- $TASK_SIZE
+-- AN INTEGER LITERAL WHOSE VALUE IS THE NUMBER OF BITS REQUIRED TO
+-- HOLD A TASK OBJECT.
+-- USED IN: CD2A91C
+TASK_SIZE ACATS4GNATBIT
+
+-- $TASK_STORAGE_SIZE
+-- THE NUMBER OF STORAGE UNITS REQUIRED FOR A TASK ACTIVATION.
+-- USED IN: BD2C01D BD2C02A BD2C03A C87B62D CD1009K CD1009T
+-- CD1009U CD1C03E CD1C06A CD2C11A CC1225A CD2C11D
+TASK_STORAGE_SIZE 1024
+
+-- $VARIABLE_ADDRESS
+-- AN EXPRESSION YIELDING A LEGAL ADDRESS FOR A VARIABLE FOR THIS
+-- IMPLEMENTATION.
+-- USED IN: SPPRT13SP
+VARIABLE_ADDRESS VAR_ADDR
+
+-- $VARIABLE_ADDRESS1
+-- AN EXPRESSION YIELDING A LEGAL ADDRESS FOR A VARIABLE FOR THIS
+-- IMPLEMENTATION. THE ADDRESS MUST BE DISTINCT FROM THAT USED IN
+-- THE MACRO $VARIABLE_ADDRESS.
+-- USED IN: SPPRT13SP
+VARIABLE_ADDRESS1 VAR_ADDR1
+
+-- $VARIABLE_ADDRESS2
+-- AN EXPRESSION YIELDING A LEGAL ADDRESS FOR A VARIABLE FOR THIS
+-- IMPLEMENTATION. THE ADDRESS MUST BE DISTINCT FROM THOSE USED IN
+-- THE MACROS $VARIABLE_ADDRESS AND $VARIABLE_ADDRESS1.
+-- USED IN: SPPRT13SP
+VARIABLE_ADDRESS2 VAR_ADDR2
+
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/macrodef.adb b/gcc-4.9/gcc/testsuite/ada/acats/support/macrodef.adb
new file mode 100644
index 000000000..8a9087dc1
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/macrodef.adb
@@ -0,0 +1,11 @@
+with Ada.Text_IO;
+with System;
+procedure Macrodef is
+begin
+ Ada.Text_IO.Put_Line ("Integer'First = " & Integer'Image (Integer'First));
+ Ada.Text_IO.Put_Line ("Integer'Last = " & Integer'Image (Integer'Last));
+ Ada.Text_IO.Put_Line ("System.Min_Int = " & Long_Long_Integer'Image (System.Min_Int));
+ Ada.Text_IO.Put_Line ("System.Max_Int = " & Long_Long_Integer'Image (System.Max_Int));
+ Ada.Text_IO.Put_Line ("Ada.Text_IO.Count'Last = " & Ada.Text_IO.Count'Image (Ada.Text_IO.Count'Last));
+ Ada.Text_IO.Put_Line ("Ada.Text_IO.Field'Last = " & Ada.Text_IO.Field'Image (Ada.Text_IO.Field'Last));
+end Macrodef;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/macrosub.ada b/gcc-4.9/gcc/testsuite/ada/acats/support/macrosub.ada
new file mode 100644
index 000000000..81204fb07
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/macrosub.ada
@@ -0,0 +1,548 @@
+-- MACROSUB.ADA
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-----------------------------------------------------------------------
+-- --
+-- THIS PROGRAM IS CALLED MACROSUB. IT IS USED TO REPLACE THE --
+-- MACROS IN THE ACVC TEST SUITE WITH THEIR PROPER VALUES. THE --
+-- STEPS LISTED BELOW SHOULD BE FOLLOWED TO ENSURE PROPER RUNNING --
+-- OF THE MACROSUB PROGRAM: --
+-- --
+-- 1) Edit the file MACRO.DFS (included with the testtape) --
+-- and insert your macro values. The macros which use --
+-- the value of MAX_IN_LEN are calculated automatically --
+-- and do not need to be entered. --
+-- --
+-- 2) Create a file called TSTTESTS.DAT which includes all --
+-- of the .TST test file names and their directory --
+-- specifications, if necessary. If a different name --
+-- other than TSTTESTS.DAT is used, this name must be --
+-- substituted in the MACROSUB.ADA file. --
+-- --
+-- 3) Compile and link MACROSUB. --
+-- --
+-- 4) Run the MACROSUB program. --
+-- --
+-- WHEN THE PROGRAM FINISHES RUNNING, THE MACROS WILL HAVE BEEN --
+-- REPLACED WITH THE APPROPRIATE VALUES FROM MACRO.DFS. --
+-- --
+-- --
+-- --
+-- HISTORY: --
+-- BCB 04/17/90 CHANGED MODE OF CALC_MAX_VALS TO OUT. CHANGED --
+-- VALUE OF MAX_VAL_LENGTH FROM 512 TO 400. ADDED --
+-- EXCEPTION HANDLER SO PROGRAM DOES NOT CRASH IF --
+-- AN EXCEPTION IS RAISED. ADDED MESSAGES TO --
+-- REPORT PROGRESS OF PROGRAM. CHANGED PROGRAM SO --
+-- IT DOES NOT ABORT IF A FILE CANNOT BE FOUND. --
+-- MODIFIED PROGRAM SO IT ACCEPTS FILENAMES WITH --
+-- VERSION NUMBERS. --
+-----------------------------------------------------------------------
+
+WITH TEXT_IO;
+USE TEXT_IO;
+
+PACKAGE DEFS IS
+
+-----------------------------------------------------------------------
+-- --
+-- THIS PACKAGE IS USED BY MACROSUB.ADA, PARSEMAC.ADA, AND BY --
+-- GETSUBS.ADA. THE PACKAGE CONTAINS VARIABLE DECLARATIONS WHICH --
+-- NEED TO BE KNOWN BY ALL OF THE PROCEDURES AND PACKAGES WHICH --
+-- MAKE UP THE PROGRAM. --
+-- --
+-----------------------------------------------------------------------
+
+ MAX_VAL_LENGTH : CONSTANT INTEGER := 400;
+
+ SUBTYPE VAL_STRING IS STRING (1..MAX_VAL_LENGTH);
+
+ TYPE REC_TYPE IS RECORD
+ MACRO_NAME : STRING (1..80);
+ NAME_LENGTH, VALUE_LENGTH : INTEGER;
+ MACRO_VALUE : VAL_STRING;
+ END RECORD;
+
+ TYPE TABLE_TYPE IS ARRAY (1..100) OF REC_TYPE;
+
+ SYMBOL_TABLE : TABLE_TYPE;
+
+ NUM_MACROS : INTEGER;
+
+END DEFS;
+
+WITH TEXT_IO;
+USE TEXT_IO;
+WITH DEFS;
+USE DEFS;
+
+PACKAGE GETSUBS IS
+
+------------------------------------------------------------------------
+-- --
+-- THIS PACKAGE IS USED BY MACROSUB.ADA FOR READING FROM MACRO.DFS --
+-- THE VALUES FOR THE MACRO SUBSTITUTIONS FOR A TEST TAPE. --
+-- --
+------------------------------------------------------------------------
+
+ MAC_FILE, LINE_LEN : EXCEPTION;
+
+ PROCEDURE CALC_MAX_VALS(INDEX, LENGTH, MAX_IN_LEN : IN INTEGER;
+ CALCULATED : OUT BOOLEAN);
+
+ PROCEDURE FILL_TABLE;
+
+END GETSUBS;
+
+PACKAGE BODY GETSUBS IS
+
+-----------------------------------------------------------------------
+-- --
+-- PROCEDURE CALC_MAX_VALS CALCULATES THE VALUE FOR THE MACRO --
+-- READ FROM MACRO.DFS IF ITS LENGTH IS EQUAL OR NEARLY EQUAL TO --
+-- MAX_IN_LEN. IT THEN RETURNS A FLAG SET TO TRUE IF A VALUE WAS --
+-- CALCULATED, FALSE IF ONE WAS NOT. --
+-- --
+-----------------------------------------------------------------------
+
+ PROCEDURE CALC_MAX_VALS(INDEX, LENGTH, MAX_IN_LEN : IN INTEGER;
+ CALCULATED : OUT BOOLEAN) IS
+
+ BEGIN
+
+ IF SYMBOL_TABLE (INDEX).MACRO_NAME (1..LENGTH) = "BIG_ID1"
+ THEN SYMBOL_TABLE (INDEX).MACRO_VALUE (1..MAX_IN_LEN) :=
+ (1..(MAX_IN_LEN-1) => 'A') & "1";
+ CALCULATED := TRUE;
+ ELSIF SYMBOL_TABLE (INDEX).MACRO_NAME (1..LENGTH) =
+ "BIG_ID2" THEN SYMBOL_TABLE (INDEX).MACRO_VALUE
+ (1..MAX_IN_LEN) := (1..(MAX_IN_LEN-1) => 'A') & "2";
+ CALCULATED := TRUE;
+ ELSIF SYMBOL_TABLE (INDEX).MACRO_NAME (1..LENGTH) =
+ "BIG_ID3" THEN SYMBOL_TABLE (INDEX).MACRO_VALUE
+ (1..MAX_IN_LEN) := (1..(MAX_IN_LEN + 1)/2 => 'A') & "3" &
+ ((MAX_IN_LEN + 1)/2 + 2..MAX_IN_LEN => 'A');
+ CALCULATED := TRUE;
+ ELSIF SYMBOL_TABLE (INDEX).MACRO_NAME (1..LENGTH) =
+ "BIG_ID4" THEN SYMBOL_TABLE (INDEX).MACRO_VALUE
+ (1..MAX_IN_LEN) := (1..(MAX_IN_LEN + 1)/2 => 'A') & "4" &
+ ((MAX_IN_LEN + 1)/2 + 2..MAX_IN_LEN => 'A');
+ CALCULATED := TRUE;
+ ELSIF SYMBOL_TABLE (INDEX).MACRO_NAME (1..LENGTH) =
+ "BIG_STRING1" THEN SYMBOL_TABLE (INDEX).MACRO_VALUE
+ (1..(MAX_IN_LEN + 1)/2 + 2) :=
+ '"' & (1..(MAX_IN_LEN + 1)/2 => 'A') & '"';
+ CALCULATED := TRUE;
+ ELSIF SYMBOL_TABLE (INDEX).MACRO_NAME (1..LENGTH) =
+ "BIG_STRING2" THEN SYMBOL_TABLE (INDEX).MACRO_VALUE
+ (1..MAX_IN_LEN - (MAX_IN_LEN + 1)/2 + 2) :=
+ '"' & (2..MAX_IN_LEN - (MAX_IN_LEN + 1)/2 => 'A') &
+ '1' & '"';
+ CALCULATED := TRUE;
+ ELSIF SYMBOL_TABLE (INDEX).MACRO_NAME (1..LENGTH) =
+ "MAX_STRING_LITERAL" THEN SYMBOL_TABLE (INDEX).
+ MACRO_VALUE (1..MAX_IN_LEN) := '"' &
+ (1..MAX_IN_LEN-2 => 'A') & '"';
+ CALCULATED := TRUE;
+ ELSIF SYMBOL_TABLE (INDEX).MACRO_NAME (1..LENGTH) =
+ "BIG_INT_LIT" THEN SYMBOL_TABLE (INDEX).MACRO_VALUE
+ (1..MAX_IN_LEN) := (1..MAX_IN_LEN-3 => '0') & "298";
+ CALCULATED := TRUE;
+ ELSIF SYMBOL_TABLE (INDEX).MACRO_NAME (1..LENGTH) =
+ "BIG_REAL_LIT" THEN SYMBOL_TABLE (INDEX).MACRO_VALUE
+ (1..MAX_IN_LEN) := (1..MAX_IN_LEN-5 => '0') & "690.0";
+ CALCULATED := TRUE;
+ ELSIF SYMBOL_TABLE (INDEX).MACRO_NAME (1..LENGTH) =
+ "MAX_LEN_INT_BASED_LITERAL" THEN
+ SYMBOL_TABLE (INDEX).
+ MACRO_VALUE (1..MAX_IN_LEN) := "2:" &
+ (1..MAX_IN_LEN - 5 => '0') & "11:";
+ CALCULATED := TRUE;
+ ELSIF SYMBOL_TABLE (INDEX).MACRO_NAME (1..LENGTH) =
+ "MAX_LEN_REAL_BASED_LITERAL" THEN SYMBOL_TABLE (INDEX).
+ MACRO_VALUE (1..MAX_IN_LEN) := "16:" &
+ (1..MAX_IN_LEN - 7 => '0') & "F.E:";
+ CALCULATED := TRUE;
+ ELSIF SYMBOL_TABLE (INDEX).MACRO_NAME (1..LENGTH) =
+ "BLANKS" THEN SYMBOL_TABLE (INDEX).MACRO_VALUE
+ (1..MAX_IN_LEN-20) := (1..MAX_IN_LEN-20 => ' ');
+ CALCULATED := TRUE;
+ ELSE
+ CALCULATED := FALSE;
+ END IF;
+ IF SYMBOL_TABLE (INDEX).MACRO_NAME (1..LENGTH) =
+ "BLANKS" THEN SYMBOL_TABLE (INDEX).VALUE_LENGTH :=
+ MAX_IN_LEN - 20;
+ ELSIF SYMBOL_TABLE (INDEX).MACRO_NAME (1..LENGTH) =
+ "BIG_STRING1" THEN
+ SYMBOL_TABLE (INDEX).VALUE_LENGTH :=
+ (MAX_IN_LEN + 1)/2 + 2;
+ ELSIF SYMBOL_TABLE (INDEX).MACRO_NAME (1..LENGTH) =
+ "BIG_STRING2" THEN
+ SYMBOL_TABLE (INDEX).VALUE_LENGTH :=
+ MAX_IN_LEN - (MAX_IN_LEN + 1)/2 + 2;
+ ELSE SYMBOL_TABLE (INDEX).VALUE_LENGTH := MAX_IN_LEN;
+ END IF;
+ END CALC_MAX_VALS;
+
+-----------------------------------------------------------------------
+-- --
+-- PROCEDURE FILL_TABLE READS THE MACRO NAMES AND MACRO VALUES IN --
+-- FROM MACRO.DFS AND STORES THEM IN THE SYMBOL TABLE. PROCEDURE --
+-- CALC_MAX_VALS IS CALLED TO DETERMINE IF THE MACRO VALUE SHOULD --
+-- BE CALCULATED OR READ FROM MACRO.DFS. --
+-- --
+-----------------------------------------------------------------------
+
+ PROCEDURE FILL_TABLE IS
+
+ INFILE1 : FILE_TYPE;
+ MACRO_FILE : CONSTANT STRING := "MACRO.DFS";
+ A_LINE : VAL_STRING;
+ I, INDEX, LENGTH, HOLD, A_LENGTH, NAME : INTEGER;
+ MAX_IN_LEN : INTEGER := 1;
+ CALCULATED : BOOLEAN;
+
+ BEGIN
+ INDEX := 1;
+ BEGIN
+ OPEN (INFILE1, IN_FILE, MACRO_FILE);
+ EXCEPTION
+ WHEN NAME_ERROR =>
+ PUT_LINE ("** ERROR: MACRO FILE " & MACRO_FILE &
+ " NOT FOUND.");
+ RAISE MAC_FILE;
+ END;
+ WHILE NOT END_OF_FILE (INFILE1) LOOP
+ GET_LINE (INFILE1, A_LINE, A_LENGTH);
+ IF A_LENGTH > 0 AND A_LINE (1..2) /= "--" AND
+ A_LINE (1) /= ' ' AND A_LINE (1) /= ASCII.HT THEN
+ I := 1;
+ WHILE I <= A_LENGTH AND THEN
+ ((A_LINE (I) IN 'A'..'Z') OR
+ (A_LINE (I) IN '0'..'9') OR
+ A_LINE (I) = '_') LOOP
+ I := I + 1;
+ END LOOP;
+ I := I - 1;
+ LENGTH := I;
+ BEGIN
+ SYMBOL_TABLE (INDEX).MACRO_NAME (1..LENGTH) :=
+ A_LINE (1..I);
+ EXCEPTION
+ WHEN CONSTRAINT_ERROR =>
+ PUT_LINE ("** ERROR: LINE LENGTH IS " &
+ "GREATER THAN MAX_VAL_LENGTH.");
+ RAISE LINE_LEN;
+ END;
+ SYMBOL_TABLE (INDEX).NAME_LENGTH := I;
+ CALC_MAX_VALS (INDEX, LENGTH, MAX_IN_LEN,
+ CALCULATED);
+ IF NOT CALCULATED THEN
+ I := I + 1;
+ WHILE A_LINE (I) = ' ' OR A_LINE (I) =
+ ASCII.HT LOOP
+ I := I + 1;
+ IF SYMBOL_TABLE (INDEX).MACRO_NAME
+ (1..LENGTH) = "BLANKS" THEN
+ EXIT;
+ END IF;
+ END LOOP;
+ HOLD := I;
+
+-- MACRO VALUE BEGINS AT POSITION HOLD.
+-- NOW FIND WHERE IT ENDS BY STARTING AT THE END OF THE INPUT
+-- LINE AND SEARCHING BACKWARD FOR A NON-BLANK.
+
+ I := A_LENGTH;
+ WHILE I > HOLD AND THEN (A_LINE (I) = ' '
+ OR A_LINE(I) = ASCII.HT) LOOP
+ I := I - 1;
+ END LOOP;
+ LENGTH := I - HOLD + 1;
+ SYMBOL_TABLE (INDEX).MACRO_VALUE (1..LENGTH)
+ := A_LINE (HOLD..I);
+ SYMBOL_TABLE (INDEX).VALUE_LENGTH := LENGTH;
+ NAME := SYMBOL_TABLE (INDEX).NAME_LENGTH;
+ IF SYMBOL_TABLE (INDEX).MACRO_NAME (1..NAME) =
+ "MAX_IN_LEN" THEN MAX_IN_LEN :=
+ INTEGER'VALUE (SYMBOL_TABLE (INDEX).
+ MACRO_VALUE (1..LENGTH));
+ END IF;
+ END IF;
+ INDEX := INDEX + 1;
+ END IF;
+ END LOOP;
+ NUM_MACROS := INDEX - 1;
+ CLOSE (INFILE1);
+ END FILL_TABLE;
+
+BEGIN
+ NULL;
+END GETSUBS;
+
+WITH TEXT_IO;
+USE TEXT_IO;
+WITH DEFS;
+USE DEFS;
+
+PACKAGE PARSEMAC IS
+
+------------------------------------------------------------------------
+-- --
+-- THIS PACKAGE IS USED BY MACROSUB.ADA FOR FINDING A MACRO TO --
+-- SUBSTITUTE. MACRO SUBSTITUTIONS ARE MADE IN *.TST TESTS IN THE --
+-- ACVC TEST SUITE. THIS PROCEDURE IS CURRENTLY SET UP FOR ACVC --
+-- VERSION 1.10. --
+-- --
+------------------------------------------------------------------------
+
+ PROCEDURE LOOK_FOR_MACRO (A_LINE : IN STRING;
+ A_LENGTH : IN INTEGER;
+ PTR : IN OUT INTEGER;
+ MACRO : OUT STRING;
+ MACRO_LEN : IN OUT INTEGER);
+
+
+ PROCEDURE WHICH_MACRO (MACRO : IN STRING;
+ MACRO_LEN : IN INTEGER;
+ TEMP_MACRO : OUT STRING;
+ TEMP_MACRO_LEN : IN OUT INTEGER);
+
+END PARSEMAC;
+
+PACKAGE BODY PARSEMAC IS
+
+-----------------------------------------------------------------------
+-- PROCEDURE LOOK_FOR_MACRO LOOKS FOR A DOLLAR SIGN WHICH SIGNALS --
+-- THE START OF A MACRO IN THE *.TST FILES. IT THEN COUNTS --
+-- CHARACTERS UNTIL A <LETTER>, <NUMBER>, OR <_> IS NOT FOUND. --
+-- RETURN PARAMETERS SEND THE BEGINNING POINTER AND LENGTH OF THE --
+-- MACRO BACK TO THE MAIN PROGRAM. ALSO RETURNED IS THE MACRO --
+-- STRING. --
+-----------------------------------------------------------------------
+
+ PROCEDURE LOOK_FOR_MACRO (A_LINE : IN STRING;
+ A_LENGTH : IN INTEGER;
+ PTR : IN OUT INTEGER;
+ MACRO : OUT STRING;
+ MACRO_LEN : IN OUT INTEGER) IS
+
+ II, J : INTEGER := INTEGER'LAST;
+
+ BEGIN
+ FOR I IN PTR..A_LENGTH LOOP
+ IF A_LINE (I) = '$' THEN
+ II := I+1;
+ EXIT;
+ END IF;
+ II := I;
+ END LOOP;
+ IF II < A_LENGTH THEN -- DOLLAR SIGN IS FOUND.
+ J := II;
+ WHILE J <= A_LENGTH AND THEN ((A_LINE(J) IN 'A'..'Z') OR
+ (A_LINE(J) IN '0'..'9') OR
+ A_LINE(J) = '_') LOOP
+ J := J+1;
+ END LOOP;
+ J := J-1;
+ MACRO_LEN := (J-II+1);
+ MACRO (1..MACRO_LEN) := A_LINE (II .. J);
+ -- DON'T INCLUDE THE DOLLAR SIGN
+ PTR := J+1;
+ ELSE
+ MACRO_LEN := 0;
+ END IF;
+ RETURN;
+ END LOOK_FOR_MACRO;
+
+------------------------------------------------------------------------
+-- PROCEDURE WHICH_MACRO COMPARES THE INPUT MACRO STRING TO A --
+-- VALUE READ FROM MACRO.DFS AND STORED IN THE SYMBOL TABLE AND --
+-- RETURNS THE MACRO SUBSTITUTION STRING BACK TO THE MAIN PROGRAM. --
+------------------------------------------------------------------------
+
+ PROCEDURE WHICH_MACRO (MACRO : IN STRING;
+ MACRO_LEN : IN INTEGER;
+ TEMP_MACRO : OUT STRING;
+ TEMP_MACRO_LEN : IN OUT INTEGER) IS
+
+ BEGIN
+ FOR INDEX IN 1 .. NUM_MACROS LOOP
+ IF MACRO (1..MACRO_LEN) =
+ SYMBOL_TABLE (INDEX).MACRO_NAME
+ (1..SYMBOL_TABLE (INDEX).NAME_LENGTH) THEN
+ TEMP_MACRO_LEN :=
+ SYMBOL_TABLE (INDEX).VALUE_LENGTH;
+ TEMP_MACRO (1..TEMP_MACRO_LEN) :=
+ SYMBOL_TABLE (INDEX).MACRO_VALUE
+ (1..TEMP_MACRO_LEN);
+ EXIT;
+ END IF;
+ IF INDEX = NUM_MACROS THEN
+ PUT_LINE ("** ERROR: MACRO " & MACRO (1..MACRO_LEN)
+ & " NOT FOUND. UPDATE PROGRAM.");
+ TEMP_MACRO_LEN := MACRO_LEN;
+ TEMP_MACRO (1..TEMP_MACRO_LEN) :=
+ MACRO (1..MACRO_LEN);
+ END IF;
+ END LOOP;
+
+ END WHICH_MACRO;
+
+BEGIN
+ NULL;
+END PARSEMAC;
+
+WITH TEXT_IO, GETSUBS, PARSEMAC, DEFS;
+USE TEXT_IO, GETSUBS, PARSEMAC, DEFS;
+
+PROCEDURE MACROSUB IS
+
+------------------------------------------------------------------------
+-- --
+-- MACROSUB IS THE MAIN PROGRAM THAT CALLS PROCEDURES IN TWO --
+-- PACKAGES, GETSUBS AND PARSEMAC. THIS PROGRAM IS USED TO MAKE --
+-- THE MACRO SUBSTITUTIONS FOR TST TESTS IN THE ACVC TEST SUITE. --
+-- --
+------------------------------------------------------------------------
+
+ INFILE1, INFILE2, OUTFILE1 : FILE_TYPE;
+ FNAME, MACRO : VAL_STRING;
+ LENGTH, A_LENGTH, PTR,
+ TEMP_MACRO_LENGTH, MACRO_LEN, FILE_COUNT : INTEGER := 0;
+ A_LINE, TEMP_MACRO, TEMP_LINE, NEW_LINE : VAL_STRING;
+ END_OF_LINE_SEARCH, FLAG : BOOLEAN := FALSE;
+ TESTS_FILE : CONSTANT STRING := "TSTTESTS.DAT";
+ TSTTESTS,FILE_CRE : EXCEPTION;
+
+BEGIN
+ PUT_LINE ("BEGINNING MACRO SUBSTITUTIONS.");
+ FILL_TABLE;
+ BEGIN
+ OPEN (INFILE2, IN_FILE, TESTS_FILE);
+ EXCEPTION
+ WHEN NAME_ERROR =>
+ PUT_LINE ("** ERROR: ERROR DURING OPENING OF " &
+ "TSTTESTS.DAT");
+ RAISE TSTTESTS;
+ END;
+ WHILE NOT END_OF_FILE (INFILE2) LOOP
+ GET_LINE (INFILE2, FNAME, LENGTH);
+ FILE_COUNT := FILE_COUNT + 1;
+ BEGIN
+ OPEN (INFILE1, IN_FILE, FNAME(1..LENGTH));
+ EXCEPTION
+ WHEN NAME_ERROR =>
+ PUT_LINE ("** ERROR: ERROR DURING OPENING OF " &
+ FNAME(1..LENGTH) & ".");
+ FLAG := TRUE;
+ END;
+ IF NOT FLAG THEN
+ PUT_LINE ("WORKING ON " & FNAME(1..LENGTH));
+ IF FILE_COUNT = 70 THEN
+ PUT_LINE ("MACRO SUBSTITUTIONS HALF COMPLETED.");
+ END IF;
+ FOR I IN REVERSE 1 .. LENGTH LOOP
+ IF FNAME(I) = ';' THEN
+ LENGTH := I - 1;
+ EXIT;
+ END IF;
+ END LOOP;
+ IF FNAME (LENGTH-2..LENGTH) = "TST" THEN
+ FNAME (LENGTH-2..LENGTH) := "ADT";
+ ELSIF FNAME (LENGTH-2..LENGTH) = "tst" THEN
+ FNAME (LENGTH-2..LENGTH) := "adt";
+ END IF;
+ BEGIN
+ CREATE (OUTFILE1, OUT_FILE, FNAME (1..LENGTH));
+ EXCEPTION
+ WHEN OTHERS =>
+ PUT_LINE ("** ERROR: EXCEPTION RAISED DURING" &
+ " ATTEMPTED CREATION OF " &
+ FNAME(1..LENGTH) & ".");
+ RAISE FILE_CRE;
+ END;
+ WHILE NOT END_OF_FILE (INFILE1) LOOP
+ GET_LINE (INFILE1, A_LINE, A_LENGTH);
+ IF A_LENGTH > 0 AND A_LINE(1..2) /= "--" THEN
+ END_OF_LINE_SEARCH := FALSE;
+ PTR := 1;
+ WHILE NOT END_OF_LINE_SEARCH LOOP
+ LOOK_FOR_MACRO (A_LINE, A_LENGTH, PTR,
+ MACRO, MACRO_LEN);
+ IF MACRO_LEN = 0 THEN
+ END_OF_LINE_SEARCH := TRUE;
+ ELSE -- SEE WHICH MACRO IT IS
+ WHICH_MACRO (MACRO, MACRO_LEN,
+ TEMP_MACRO, TEMP_MACRO_LENGTH);
+ END IF;
+ IF NOT END_OF_LINE_SEARCH THEN
+ IF PTR-MACRO_LEN-2 > 0 THEN
+ -- IF MACRO IS NOT FIRST ON THE LINE
+ NEW_LINE (1..PTR-MACRO_LEN-2)
+ := A_LINE(1..PTR-MACRO_LEN -2);
+ -- THE OLD LINE UNTIL THE DOLLAR SIGN
+ END IF;
+ NEW_LINE(PTR-MACRO_LEN-1 ..
+ TEMP_MACRO_LENGTH +
+ (PTR-MACRO_LEN) - 2) :=
+ TEMP_MACRO(1..TEMP_MACRO_LENGTH);
+ IF PTR <= A_LENGTH THEN
+ -- IF MACRO IS NOT LAST ON THE LINE
+ NEW_LINE (TEMP_MACRO_LENGTH +
+ PTR-MACRO_LEN - 1 ..
+ TEMP_MACRO_LENGTH - 1 +
+ A_LENGTH - MACRO_LEN) :=
+ A_LINE (PTR..A_LENGTH);
+ ELSE
+ END_OF_LINE_SEARCH := TRUE;
+ END IF;
+ A_LENGTH := A_LENGTH +
+ TEMP_MACRO_LENGTH -
+ MACRO_LEN - 1;
+ A_LINE (1..A_LENGTH) :=
+ NEW_LINE (1..A_LENGTH);
+ PTR := PTR - MACRO_LEN +
+ TEMP_MACRO_LENGTH - 1;
+ END IF;
+ END LOOP;
+ END IF;
+ PUT_LINE (OUTFILE1, A_LINE (1..A_LENGTH));
+ END LOOP;
+ CLOSE (OUTFILE1);
+ CLOSE (INFILE1);
+ ELSE
+ FLAG := FALSE;
+ END IF;
+ END LOOP;
+ CLOSE (INFILE2);
+ PUT_LINE ("MACRO SUBSTITUTIONS COMPLETED.");
+EXCEPTION
+ WHEN MAC_FILE | LINE_LEN | TSTTESTS | FILE_CRE =>
+ NULL;
+ WHEN OTHERS =>
+ PUT_LINE ("UNEXPECTED EXCEPTION RAISED");
+END MACROSUB;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/repbody.ada b/gcc-4.9/gcc/testsuite/ada/acats/support/repbody.ada
new file mode 100644
index 000000000..dd5c53b90
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/repbody.ada
@@ -0,0 +1,329 @@
+-- REPBODY.ADA
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- HISTORY:
+-- DCB 04/27/80
+-- JRK 6/10/80
+-- JRK 11/12/80
+-- JRK 8/6/81
+-- JRK 10/27/82
+-- JRK 6/1/84
+-- JRK 11/18/85 ADDED PRAGMA ELABORATE.
+-- PWB 07/29/87 ADDED STATUS ACTION_REQUIRED AND
+-- PROCEDURE SPECIAL_ACTION.
+-- TBN 08/20/87 ADDED FUNCTION LEGAL_FILE_NAME.
+-- BCB 05/17/90 MODIFIED TO ALLOW OUTPUT TO DIRECT_IO FILE.
+-- ADDED TIME-STAMP.
+-- LDC 05/17/90 REMOVED OUTPUT TO DIRECT_IO FILE.
+-- WMC 08/11/92 UPDATED ACVC VERSION STRING TO "9X BASIC".
+-- DTN 07/05/92 UPDATED ACVC VERSION STRING TO
+-- "ACVC 2.0 JULY 6 1993 DRAFT".
+-- WMC 01/24/94 MODIFIED LEGAL_FILE_NAME TO ALLOW FIVE POSSIBLE
+-- FILE NAMES (INCREASED RANGE OF TYPE FILE_NUM TO 1..5).
+-- WMC 11/06/94 UPDATED ACVC VERSION STRING TO
+-- "ACVC 2.0 NOVEMBER 6 1994 DRAFT".
+-- DTN 12/04/94 UPDATED ACVC VERSION STRING TO
+-- "ACVC 2.0".
+-- KAS 06/19/95 ADDED FUNCTION IDENT_WIDE_CHAR.
+-- KAS 06/19/95 ADDED FUNCTION IDENT_WIDE_STR.
+-- DTN 11/21/95 UPDATED ACVC VERSION STRING TO
+-- "ACVC 2.0.1".
+-- DTN 12/14/95 UPDATED ACVC VERSION STRING TO
+-- "ACVC 2.1".
+-- EDS 12/17/97 UPDATED ACVC VERSION STRING TO
+-- "2.2".
+-- RLB 3/16/00 UPDATED ACATS VERSION STRING TO "2.3".
+-- CHANGED VARIOUS STRINGS TO READ "ACATS".
+-- RLB 3/22/01 UPDATED ACATS VERSION STRING TO "2.4".
+-- RLB 3/29/01 UPDATED ACATS VERSION STRING TO "2.5".
+
+WITH TEXT_IO, CALENDAR;
+USE TEXT_IO, CALENDAR;
+PRAGMA ELABORATE (TEXT_IO, CALENDAR);
+
+PACKAGE BODY REPORT IS
+
+ TYPE STATUS IS (PASS, FAIL, DOES_NOT_APPLY, ACTION_REQUIRED,
+ UNKNOWN);
+
+ TYPE TIME_INTEGER IS RANGE 0 .. 86_400;
+
+ TEST_STATUS : STATUS := FAIL;
+
+ MAX_NAME_LEN : CONSTANT := 15; -- MAXIMUM TEST NAME LENGTH.
+ TEST_NAME : STRING (1..MAX_NAME_LEN);
+
+ NO_NAME : CONSTANT STRING (1..7) := "NO_NAME";
+ TEST_NAME_LEN : INTEGER RANGE 0..MAX_NAME_LEN := 0;
+
+
+
+ ACATS_VERSION : CONSTANT STRING := "2.5";
+ -- VERSION OF ACATS BEING RUN (X.XX).
+
+ PROCEDURE PUT_MSG (MSG : STRING) IS
+ -- WRITE MESSAGE. LONG MESSAGES ARE FOLDED (AND INDENTED).
+ MAX_LEN : CONSTANT INTEGER RANGE 50..150 := 72; -- MAXIMUM
+ -- OUTPUT LINE LENGTH.
+ INDENT : CONSTANT INTEGER := TEST_NAME_LEN + 9; -- AMOUNT TO
+ -- INDENT CONTINUATION LINES.
+ I : INTEGER := 0; -- CURRENT INDENTATION.
+ M : INTEGER := MSG'FIRST; -- START OF MESSAGE SLICE.
+ N : INTEGER; -- END OF MESSAGE SLICE.
+ BEGIN
+ LOOP
+ IF I + (MSG'LAST-M+1) > MAX_LEN THEN
+ N := M + (MAX_LEN-I) - 1;
+ IF MSG (N) /= ' ' THEN
+ WHILE N >= M AND THEN MSG (N+1) /= ' ' LOOP
+ N := N - 1;
+ END LOOP;
+ IF N < M THEN
+ N := M + (MAX_LEN-I) - 1;
+ END IF;
+ END IF;
+ ELSE N := MSG'LAST;
+ END IF;
+ SET_COL (STANDARD_OUTPUT, TEXT_IO.COUNT (I+1));
+ PUT_LINE (STANDARD_OUTPUT, MSG (M..N));
+ I := INDENT;
+ M := N + 1;
+ WHILE M <= MSG'LAST AND THEN MSG (M) = ' ' LOOP
+ M := M + 1;
+ END LOOP;
+ EXIT WHEN M > MSG'LAST;
+ END LOOP;
+ END PUT_MSG;
+
+ FUNCTION TIME_STAMP RETURN STRING IS
+ TIME_NOW : CALENDAR.TIME;
+ YEAR,
+ MONTH,
+ DAY,
+ HOUR,
+ MINUTE,
+ SECOND : TIME_INTEGER := 1;
+
+ FUNCTION CONVERT (NUMBER : TIME_INTEGER) RETURN STRING IS
+ STR : STRING (1..2) := (OTHERS => '0');
+ DEC_DIGIT : CONSTANT STRING := "0123456789";
+ NUM : TIME_INTEGER := NUMBER;
+ BEGIN
+ IF NUM = 0 THEN
+ RETURN STR;
+ ELSE
+ NUM := NUM MOD 100;
+ STR (2) := DEC_DIGIT (INTEGER (NUM MOD 10 + 1));
+ NUM := NUM / 10;
+ STR (1) := DEC_DIGIT (INTEGER (NUM + 1));
+ RETURN STR;
+ END IF;
+ END CONVERT;
+ BEGIN
+ TIME_NOW := CALENDAR.CLOCK;
+ SPLIT (TIME_NOW, YEAR_NUMBER (YEAR), MONTH_NUMBER (MONTH),
+ DAY_NUMBER (DAY), DAY_DURATION (SECOND));
+ HOUR := SECOND / 3600;
+ SECOND := SECOND MOD 3600;
+ MINUTE := SECOND / 60;
+ SECOND := SECOND MOD 60;
+ RETURN (CONVERT (TIME_INTEGER (YEAR)) & "-" &
+ CONVERT (TIME_INTEGER (MONTH)) & "-" &
+ CONVERT (TIME_INTEGER (DAY)) & " " &
+ CONVERT (TIME_INTEGER (HOUR)) & ":" &
+ CONVERT (TIME_INTEGER (MINUTE)) & ":" &
+ CONVERT (TIME_INTEGER (SECOND)));
+ END TIME_STAMP;
+
+ PROCEDURE TEST (NAME : STRING; DESCR : STRING) IS
+ BEGIN
+ TEST_STATUS := PASS;
+ IF NAME'LENGTH <= MAX_NAME_LEN THEN
+ TEST_NAME_LEN := NAME'LENGTH;
+ ELSE TEST_NAME_LEN := MAX_NAME_LEN;
+ END IF;
+ TEST_NAME (1..TEST_NAME_LEN) :=
+ NAME (NAME'FIRST .. NAME'FIRST+TEST_NAME_LEN-1);
+
+ PUT_MSG ("");
+ PUT_MSG (",.,. " & TEST_NAME (1..TEST_NAME_LEN) & " " &
+ "ACATS " & ACATS_VERSION & " " & TIME_STAMP);
+ PUT_MSG ("---- " & TEST_NAME (1..TEST_NAME_LEN) & " " &
+ DESCR & ".");
+ END TEST;
+
+ PROCEDURE COMMENT (DESCR : STRING) IS
+ BEGIN
+ PUT_MSG (" - " & TEST_NAME (1..TEST_NAME_LEN) & " " &
+ DESCR & ".");
+ END COMMENT;
+
+ PROCEDURE FAILED (DESCR : STRING) IS
+ BEGIN
+ TEST_STATUS := FAIL;
+ PUT_MSG (" * " & TEST_NAME (1..TEST_NAME_LEN) & " " &
+ DESCR & ".");
+ END FAILED;
+
+ PROCEDURE NOT_APPLICABLE (DESCR : STRING) IS
+ BEGIN
+ IF TEST_STATUS = PASS OR TEST_STATUS = ACTION_REQUIRED THEN
+ TEST_STATUS := DOES_NOT_APPLY;
+ END IF;
+ PUT_MSG (" + " & TEST_NAME (1..TEST_NAME_LEN) & " " &
+ DESCR & ".");
+ END NOT_APPLICABLE;
+
+ PROCEDURE SPECIAL_ACTION (DESCR : STRING) IS
+ BEGIN
+ IF TEST_STATUS = PASS THEN
+ TEST_STATUS := ACTION_REQUIRED;
+ END IF;
+ PUT_MSG (" ! " & TEST_NAME (1..TEST_NAME_LEN) & " " &
+ DESCR & ".");
+ END SPECIAL_ACTION;
+
+ PROCEDURE RESULT IS
+ BEGIN
+ CASE TEST_STATUS IS
+ WHEN PASS =>
+ PUT_MSG ("==== " & TEST_NAME (1..TEST_NAME_LEN) &
+ " PASSED ============================.");
+ WHEN DOES_NOT_APPLY =>
+ PUT_MSG ("++++ " & TEST_NAME (1..TEST_NAME_LEN) &
+ " NOT-APPLICABLE ++++++++++++++++++++.");
+ WHEN ACTION_REQUIRED =>
+ PUT_MSG ("!!!! " & TEST_NAME (1..TEST_NAME_LEN) &
+ " TENTATIVELY PASSED !!!!!!!!!!!!!!!!.");
+ PUT_MSG ("!!!! " & (1..TEST_NAME_LEN => ' ') &
+ " SEE '!' COMMENTS FOR SPECIAL NOTES!!");
+ WHEN OTHERS =>
+ PUT_MSG ("**** " & TEST_NAME (1..TEST_NAME_LEN) &
+ " FAILED ****************************.");
+ END CASE;
+ TEST_STATUS := FAIL;
+ TEST_NAME_LEN := NO_NAME'LENGTH;
+ TEST_NAME (1..TEST_NAME_LEN) := NO_NAME;
+ END RESULT;
+
+ FUNCTION IDENT_INT (X : INTEGER) RETURN INTEGER IS
+ BEGIN
+ IF EQUAL (X, X) THEN -- ALWAYS EQUAL.
+ RETURN X; -- ALWAYS EXECUTED.
+ END IF;
+ RETURN 0; -- NEVER EXECUTED.
+ END IDENT_INT;
+
+ FUNCTION IDENT_CHAR (X : CHARACTER) RETURN CHARACTER IS
+ BEGIN
+ IF EQUAL (CHARACTER'POS(X), CHARACTER'POS(X)) THEN -- ALWAYS
+ -- EQUAL.
+ RETURN X; -- ALWAYS EXECUTED.
+ END IF;
+ RETURN '0'; -- NEVER EXECUTED.
+ END IDENT_CHAR;
+
+ FUNCTION IDENT_WIDE_CHAR (X : WIDE_CHARACTER) RETURN WIDE_CHARACTER IS
+ BEGIN
+ IF EQUAL (WIDE_CHARACTER'POS(X), WIDE_CHARACTER'POS(X)) THEN
+ -- ALWAYS EQUAL.
+ RETURN X; -- ALWAYS EXECUTED.
+ END IF;
+ RETURN '0'; -- NEVER EXECUTED.
+ END IDENT_WIDE_CHAR;
+
+ FUNCTION IDENT_BOOL (X : BOOLEAN) RETURN BOOLEAN IS
+ BEGIN
+ IF EQUAL (BOOLEAN'POS(X), BOOLEAN'POS(X)) THEN -- ALWAYS
+ -- EQUAL.
+ RETURN X; -- ALWAYS EXECUTED.
+ END IF;
+ RETURN FALSE; -- NEVER EXECUTED.
+ END IDENT_BOOL;
+
+ FUNCTION IDENT_STR (X : STRING) RETURN STRING IS
+ BEGIN
+ IF EQUAL (X'LENGTH, X'LENGTH) THEN -- ALWAYS EQUAL.
+ RETURN X; -- ALWAYS EXECUTED.
+ END IF;
+ RETURN ""; -- NEVER EXECUTED.
+ END IDENT_STR;
+
+ FUNCTION IDENT_WIDE_STR (X : WIDE_STRING) RETURN WIDE_STRING IS
+ BEGIN
+ IF EQUAL (X'LENGTH, X'LENGTH) THEN -- ALWAYS EQUAL.
+ RETURN X; -- ALWAYS EXECUTED.
+ END IF;
+ RETURN ""; -- NEVER EXECUTED.
+ END IDENT_WIDE_STR;
+
+ FUNCTION EQUAL (X, Y : INTEGER) RETURN BOOLEAN IS
+ REC_LIMIT : CONSTANT INTEGER RANGE 1..100 := 3; -- RECURSION
+ -- LIMIT.
+ Z : BOOLEAN; -- RESULT.
+ BEGIN
+ IF X < 0 THEN
+ IF Y < 0 THEN
+ Z := EQUAL (-X, -Y);
+ ELSE Z := FALSE;
+ END IF;
+ ELSIF X > REC_LIMIT THEN
+ Z := EQUAL (REC_LIMIT, Y-X+REC_LIMIT);
+ ELSIF X > 0 THEN
+ Z := EQUAL (X-1, Y-1);
+ ELSE Z := Y = 0;
+ END IF;
+ RETURN Z;
+ EXCEPTION
+ WHEN OTHERS =>
+ RETURN X = Y;
+ END EQUAL;
+
+ FUNCTION LEGAL_FILE_NAME (X : FILE_NUM := 1;
+ NAM : STRING := "")
+ RETURN STRING IS
+ SUFFIX : STRING (2..6);
+ BEGIN
+ IF NAM = "" THEN
+ SUFFIX := TEST_NAME(3..7);
+ ELSE
+ SUFFIX := NAM(3..7);
+ END IF;
+
+ CASE X IS
+ WHEN 1 => RETURN ('X' & SUFFIX);
+ WHEN 2 => RETURN ('Y' & SUFFIX);
+ WHEN 3 => RETURN ('Z' & SUFFIX);
+ WHEN 4 => RETURN ('V' & SUFFIX);
+ WHEN 5 => RETURN ('W' & SUFFIX);
+ END CASE;
+ END LEGAL_FILE_NAME;
+
+BEGIN
+
+ TEST_NAME_LEN := NO_NAME'LENGTH;
+ TEST_NAME (1..TEST_NAME_LEN) := NO_NAME;
+
+END REPORT;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/repspec.ada b/gcc-4.9/gcc/testsuite/ada/acats/support/repspec.ada
new file mode 100644
index 000000000..19c371f9b
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/repspec.ada
@@ -0,0 +1,149 @@
+-- REPSPEC.ADA
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- PURPOSE:
+-- THIS REPORT PACKAGE PROVIDES THE MECHANISM FOR REPORTING THE
+-- PASS/FAIL/NOT-APPLICABLE RESULTS OF EXECUTABLE (CLASSES A, C,
+-- D, E, AND L) TESTS.
+
+-- IT ALSO PROVIDES THE MECHANISM FOR GUARANTEEING THAT CERTAIN
+-- VALUES BECOME DYNAMIC (NOT KNOWN AT COMPILE-TIME).
+
+-- HISTORY:
+-- JRK 12/13/79
+-- JRK 06/10/80
+-- JRK 08/06/81
+-- JRK 10/27/82
+-- JRK 06/01/84
+-- PWB 07/30/87 ADDED PROCEDURE SPECIAL_ACTION.
+-- TBN 08/20/87 ADDED FUNCTION LEGAL_FILE_NAME.
+-- BCB 05/17/90 ADDED FUNCTION TIME_STAMP.
+-- WMC 01/24/94 INCREASED RANGE OF TYPE FILE_NUM FROM 1..3 TO 1..5.
+-- KAS 06/19/95 ADDED FUNCTION IDENT_WIDE_CHAR.
+-- KAS 06/19/95 ADDED FUNCTION IDENT_WIDE_STR.
+
+PACKAGE REPORT IS
+
+ SUBTYPE FILE_NUM IS INTEGER RANGE 1..5;
+
+ -- THE REPORT ROUTINES.
+
+ PROCEDURE TEST -- THIS ROUTINE MUST BE INVOKED AT THE
+ -- START OF A TEST, BEFORE ANY OF THE
+ -- OTHER REPORT ROUTINES ARE INVOKED.
+ -- IT SAVES THE TEST NAME AND OUTPUTS THE
+ -- NAME AND DESCRIPTION.
+ ( NAME : STRING; -- TEST NAME, E.G., "C23001A-AB".
+ DESCR : STRING -- BRIEF DESCRIPTION OF TEST, E.G.,
+ -- "UPPER/LOWER CASE EQUIVALENCE IN " &
+ -- "IDENTIFIERS".
+ );
+
+ PROCEDURE FAILED -- OUTPUT A FAILURE MESSAGE. SHOULD BE
+ -- INVOKED SEPARATELY TO REPORT THE
+ -- FAILURE OF EACH SUBTEST WITHIN A TEST.
+ ( DESCR : STRING -- BRIEF DESCRIPTION OF WHAT FAILED.
+ -- SHOULD BE PHRASED AS:
+ -- "(FAILED BECAUSE) ...REASON...".
+ );
+
+ PROCEDURE NOT_APPLICABLE -- OUTPUT A NOT-APPLICABLE MESSAGE.
+ -- SHOULD BE INVOKED SEPARATELY TO REPORT
+ -- THE NON-APPLICABILITY OF EACH SUBTEST
+ -- WITHIN A TEST.
+ ( DESCR : STRING -- BRIEF DESCRIPTION OF WHAT IS
+ -- NOT-APPLICABLE. SHOULD BE PHRASED AS:
+ -- "(NOT-APPLICABLE BECAUSE)...REASON...".
+ );
+
+ PROCEDURE SPECIAL_ACTION -- OUTPUT A MESSAGE DESCRIBING SPECIAL
+ -- ACTIONS TO BE TAKEN.
+ -- SHOULD BE INVOKED SEPARATELY TO GIVE
+ -- EACH SPECIAL ACTION.
+ ( DESCR : STRING -- BRIEF DESCRIPTION OF ACTION TO BE
+ -- TAKEN.
+ );
+
+ PROCEDURE COMMENT -- OUTPUT A COMMENT MESSAGE.
+ ( DESCR : STRING -- THE MESSAGE.
+ );
+
+ PROCEDURE RESULT; -- THIS ROUTINE MUST BE INVOKED AT THE
+ -- END OF A TEST. IT OUTPUTS A MESSAGE
+ -- INDICATING WHETHER THE TEST AS A
+ -- WHOLE HAS PASSED, FAILED, IS
+ -- NOT-APPLICABLE, OR HAS TENTATIVELY
+ -- PASSED PENDING SPECIAL ACTIONS.
+
+ -- THE DYNAMIC VALUE ROUTINES.
+
+ -- EVEN WITH STATIC ARGUMENTS, THESE FUNCTIONS WILL HAVE DYNAMIC
+ -- RESULTS.
+
+ FUNCTION IDENT_INT -- AN IDENTITY FUNCTION FOR TYPE INTEGER.
+ ( X : INTEGER -- THE ARGUMENT.
+ ) RETURN INTEGER; -- X.
+
+ FUNCTION IDENT_CHAR -- AN IDENTITY FUNCTION FOR TYPE
+ -- CHARACTER.
+ ( X : CHARACTER -- THE ARGUMENT.
+ ) RETURN CHARACTER; -- X.
+
+ FUNCTION IDENT_WIDE_CHAR -- AN IDENTITY FUNCTION FOR TYPE
+ -- WIDE_CHARACTER.
+ ( X : WIDE_CHARACTER -- THE ARGUMENT.
+ ) RETURN WIDE_CHARACTER; -- X.
+
+ FUNCTION IDENT_BOOL -- AN IDENTITY FUNCTION FOR TYPE BOOLEAN.
+ ( X : BOOLEAN -- THE ARGUMENT.
+ ) RETURN BOOLEAN; -- X.
+
+ FUNCTION IDENT_STR -- AN IDENTITY FUNCTION FOR TYPE STRING.
+ ( X : STRING -- THE ARGUMENT.
+ ) RETURN STRING; -- X.
+
+ FUNCTION IDENT_WIDE_STR -- AN IDENTITY FUNCTION FOR TYPE WIDE_STRING.
+ ( X : WIDE_STRING -- THE ARGUMENT.
+ ) RETURN WIDE_STRING; -- X.
+
+ FUNCTION EQUAL -- A RECURSIVE EQUALITY FUNCTION FOR TYPE
+ -- INTEGER.
+ ( X, Y : INTEGER -- THE ARGUMENTS.
+ ) RETURN BOOLEAN; -- X = Y.
+
+-- OTHER UTILITY ROUTINES.
+
+ FUNCTION LEGAL_FILE_NAME -- A FUNCTION TO GENERATE LEGAL EXTERNAL
+ -- FILE NAMES.
+ ( X : FILE_NUM := 1; -- DETERMINES FIRST CHARACTER OF NAME.
+ NAM : STRING := "" -- DETERMINES REST OF NAME.
+ ) RETURN STRING; -- THE GENERATED NAME.
+
+ FUNCTION TIME_STAMP -- A FUNCTION TO GENERATE THE TIME AND
+ -- DATE TO PLACE IN THE OUTPUT OF AN ACVC
+ -- TEST.
+ RETURN STRING; -- THE TIME AND DATE.
+
+END REPORT;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/spprt13s.tst b/gcc-4.9/gcc/testsuite/ada/acats/support/spprt13s.tst
new file mode 100644
index 000000000..64b47315a
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/spprt13s.tst
@@ -0,0 +1,67 @@
+-- SPPRT13SP.TST
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- SPECIFICATION FOR PACKAGE SPPRT13
+
+-- PURPOSE:
+-- THIS PACKAGE CONTAINS CONSTANTS OF TYPE SYSTEM.ADDRESS.
+-- THESE CONSTANTS ARE USED BY SELECTED CHAPTER 13 TESTS,
+-- BY PARTS OF THE AVAT SYSTEM, AND BY ISOLATED TESTS FOR
+-- OTHER CHAPTERS.
+
+-- MACRO SUBSTITUTIONS:
+-- $VARIABLE_ADDRESS, $VARIABLE_ADDRESS1, AND $VARIABLE_ADDRESS2 ARE
+-- EXPRESSIONS YIELDING LEGAL ADDRESSES FOR VARIABLES FOR THIS
+-- IMPLEMENTATION.
+
+-- $ENTRY_ADDRESS, $ENTRY_ADDRESS1, AND $ENTRY_ADDRESS2 ARE
+-- EXPRESSIONS YIELDING LEGAL ADDRESSES FOR TASK ENTRIES
+-- (I.E., FOR INTERRUPTS) FOR THIS IMPLEMENTATION.
+
+-- IF NO EXPRESSIONS CAN BE GIVEN THAT ARE SATISFACTORY FOR THE
+-- VALUES OF THESE CONSTANTS, THEN DECLARE SUITABLE FUNCTIONS
+-- IN THE SPECIFICATION OF PACKAGE FCNDECL, CREATE A PACKAGE BODY
+-- CONTAINING BODIES FOR THE FUNCTIONS, AND REPLACE THE MACROS WITH
+-- APPROPRIATE FUNCTION CALLS.
+
+WITH FCNDECL; USE FCNDECL;
+WITH SYSTEM;
+PACKAGE SPPRT13 IS
+
+ VARIABLE_ADDRESS : CONSTANT SYSTEM.ADDRESS :=
+ $VARIABLE_ADDRESS;
+ VARIABLE_ADDRESS1 : CONSTANT SYSTEM.ADDRESS :=
+ $VARIABLE_ADDRESS1;
+ VARIABLE_ADDRESS2 : CONSTANT SYSTEM.ADDRESS :=
+ $VARIABLE_ADDRESS2;
+
+ ENTRY_ADDRESS : CONSTANT SYSTEM.ADDRESS :=
+ $ENTRY_ADDRESS;
+ ENTRY_ADDRESS1 : CONSTANT SYSTEM.ADDRESS :=
+ $ENTRY_ADDRESS1;
+ ENTRY_ADDRESS2 : CONSTANT SYSTEM.ADDRESS :=
+ $ENTRY_ADDRESS2;
+
+END SPPRT13;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/tctouch.ada b/gcc-4.9/gcc/testsuite/ada/acats/support/tctouch.ada
new file mode 100644
index 000000000..8fd4f0014
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/tctouch.ada
@@ -0,0 +1,264 @@
+-- TCTouch.A
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- FOUNDATION DESCRIPTION:
+-- The tools in this foundation are not peculiar to any particular
+-- aspect of the language, but simplify the test writing and reading
+-- process. Assert and Assert_Not are used to reduce the textual
+-- overhead of the test-that-this-condition-is-(not)-true paradigm.
+-- Touch and Validate are used to simplify tracing an expected path
+-- of execution.
+-- A tag comment of the form:
+--
+-- TCTouch.Touch( 'A' ); ----------------------------------------- A
+--
+-- is recommended to improve readability of this feature.
+--
+-- Report.Test must be called before any of the procedures in this
+-- package with the exception of Touch.
+-- The usage paradigm is to call Touch in locations in the test where you
+-- want a trace of execution. Each call to Touch should have a unique
+-- character associated with it. At each place where a check can
+-- reasonably be performed to determine correct execution of a
+-- sub-test, a call to Validate should be made. The first parameter
+-- passed to Validate is the expected string of characters produced by
+-- call(s) to Touch in the subtest just executed. The second parameter
+-- is the message to pass to Report.Failed if the expected sequence was
+-- not executed.
+--
+-- Validate should always be called after calls to Touch before a test
+-- completes.
+--
+-- In the event that calls may have been made to Touch that are not
+-- intended to be recorded, or, the failure of a previous subtest may
+-- leave Touch calls "Unvalidated", the procedure Flush will reset the
+-- tracker to the "empty" state. Flush does not make any calls to
+-- Report.
+--
+-- Calls to Assert and Assert_Not are to replace the idiom:
+--
+-- if BadCondition then -- or if not PositiveTest then
+-- Report.Failed(Message);
+-- end if;
+--
+-- with:
+--
+-- Assert_Not( BadCondition, Message ); -- or
+-- Assert( PositiveTest, Message );
+--
+-- Implementation_Check is for use with tests that cross the boundary
+-- between the core and the Special Needs Annexes. There are several
+-- instances where language in the core becomes enforceable only when
+-- a Special Needs Annex is supported. Implementation_Check should be
+-- called in place of Report.Failed in these cases; it examines the
+-- constants in Impdef that indicate if the particular Special Needs
+-- Annex is being validated with this validation; and acts accordingly.
+--
+-- The constant Foundation_ID contains the internal change version
+-- for this software.
+--
+-- ERROR CONDITIONS:
+--
+-- It is an error to perform more than Max_Touch_Count (80) calls to
+-- Touch without a subsequent call to Validate. To do so will cause
+-- a false test failure.
+--
+-- CHANGE HISTORY:
+-- 02 JUN 94 SAIC Initial version
+-- 27 OCT 94 SAIC Revised version
+-- 07 AUG 95 SAIC Added Implementation_Check
+-- 07 FEB 96 SAIC Changed to match new Impdef for 2.1
+-- 16 MAR 00 RLB Changed foundation id to reflect test suite version.
+-- 22 MAR 01 RLB Changed foundation id to reflect test suite version.
+-- 29 MAR 02 RLB Changed foundation id to reflect test suite version.
+--
+--!
+
+package TCTouch is
+ Foundation_ID : constant String := "TCTouch ACATS 2.5";
+ Max_Touch_Count : constant := 80;
+
+ procedure Assert ( SB_True : Boolean; Message : String );
+ procedure Assert_Not( SB_False : Boolean; Message : String );
+
+ procedure Touch ( A_Tag : Character );
+ procedure Validate( Expected: String;
+ Message : String;
+ Order_Meaningful : Boolean := True );
+
+ procedure Flush;
+
+ type Special_Needs_Annexes is ( Annex_C, Annex_D, Annex_E,
+ Annex_F, Annex_G, Annex_H );
+
+ procedure Implementation_Check( Message : in String;
+ Annex : in Special_Needs_Annexes
+ := Annex_C );
+ -- If Impdef.Validating_Annex_<Annex> is true, will call Report.Failed
+ -- otherwise will call Report.Not_Applicable. This is to allow tests
+ -- which are driven by wording in the core of the language, yet have
+ -- their functionality dictated by the Special Needs Annexes to perform
+ -- dual purpose.
+ -- The default of Annex_C for the Annex parameter is to support early
+ -- tests written with the assumption that Implementation_Check was
+ -- expressly for use with the Systems Programming Annex.
+
+end TCTouch;
+
+with Report;
+with Impdef;
+package body TCTouch is
+
+ procedure Assert( SB_True : Boolean; Message : String ) is
+ begin
+ if not SB_True then
+ Report.Failed( "Assertion failed: " & Message );
+ end if;
+ end Assert;
+
+ procedure Assert_Not( SB_False : Boolean; Message : String ) is
+ begin
+ if SB_False then
+ Report.Failed( "Assertion failed: " & Message );
+ end if;
+ end Assert_Not;
+
+ Collection : String(1..Max_Touch_Count);
+ Finger : Natural := 0;
+
+ procedure Touch ( A_Tag : Character ) is
+ begin
+ Finger := Finger+1;
+ Collection(Finger) := A_Tag;
+ exception
+ when Constraint_Error =>
+ Report.Failed("Trace Overflow: " & Collection);
+ Finger := 0;
+ end Touch;
+
+ procedure Sort_String( S: in out String ) is
+ -- algorithm from Booch Components Page 472
+ No_Swaps : Boolean;
+ procedure Swap(C1, C2: in out Character) is
+ T: Character := C1;
+ begin C1 := C2; C2 := T; end Swap;
+ begin
+ for OI in S'First+1..S'Last loop
+ No_Swaps := True;
+ for II in reverse OI..S'Last loop
+ if S(II) < S(II-1) then
+ Swap(S(II),S(II-1));
+ No_Swaps := False;
+ end if;
+ end loop;
+ exit when No_Swaps;
+ end loop;
+ end Sort_String;
+
+ procedure Validate( Expected: String;
+ Message : String;
+ Order_Meaningful : Boolean := True) is
+ Want : String(1..Expected'Length) := Expected;
+ begin
+ if not Order_Meaningful then
+ Sort_String( Want );
+ Sort_String( Collection(1..Finger) );
+ end if;
+ if Collection(1..Finger) /= Want then
+ Report.Failed( Message & " Expecting: " & Want
+ & " Got: " & Collection(1..Finger) );
+ end if;
+ Finger := 0;
+ end Validate;
+
+ procedure Flush is
+ begin
+ Finger := 0;
+ end Flush;
+
+ procedure Implementation_Check( Message : in String;
+ Annex : in Special_Needs_Annexes
+ := Annex_C ) is
+ -- default to cover some legacy
+ -- USAGE DISCIPLINE:
+ -- Implementation_Check is designed to be used in tests that have
+ -- interdependency on one of the Special Needs Annexes, yet are _really_
+ -- tests based in the core language. There will be instances where the
+ -- execution of a test would be failing in the light of the requirements
+ -- of the annex, yet from the point of view of the core language without
+ -- the additional requirements of the annex, the test does not apply.
+ -- In these cases, rather than issuing a call to Report.Failed, calling
+ -- TCTouch.Implementation_Check will check that sensitivity, and if
+ -- the implementation is attempting to validate against the specific
+ -- annex, Report.Failed will be called, otherwise, Report.Not_Applicable
+ -- will be called.
+ begin
+
+ case Annex is
+ when Annex_C =>
+ if ImpDef.Validating_Annex_C then
+ Report.Failed( Message );
+ else
+ Report.Not_Applicable( Message & " Annex C not supported" );
+ end if;
+
+ when Annex_D =>
+ if ImpDef.Validating_Annex_D then
+ Report.Failed( Message );
+ else
+ Report.Not_Applicable( Message & " Annex D not supported" );
+ end if;
+
+ when Annex_E =>
+ if ImpDef.Validating_Annex_E then
+ Report.Failed( Message );
+ else
+ Report.Not_Applicable( Message & " Annex E not supported" );
+ end if;
+
+ when Annex_F =>
+ if ImpDef.Validating_Annex_F then
+ Report.Failed( Message );
+ else
+ Report.Not_Applicable( Message & " Annex F not supported" );
+ end if;
+
+ when Annex_G =>
+ if ImpDef.Validating_Annex_G then
+ Report.Failed( Message );
+ else
+ Report.Not_Applicable( Message & " Annex G not supported" );
+ end if;
+
+ when Annex_H =>
+ if ImpDef.Validating_Annex_H then
+ Report.Failed( Message );
+ else
+ Report.Not_Applicable( Message & " Annex H not supported" );
+ end if;
+ end case;
+ end Implementation_Check;
+
+end TCTouch;
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/tsttests.dat b/gcc-4.9/gcc/testsuite/ada/acats/support/tsttests.dat
new file mode 100644
index 000000000..60a8bf8c1
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/tsttests.dat
@@ -0,0 +1,38 @@
+ACATS4GNATDIR/tests/a/a26007a.tst
+ACATS4GNATDIR/tests/a/ad8011a.tst
+ACATS4GNATDIR/tests/c2/c23003a.tst
+ACATS4GNATDIR/tests/c2/c23003b.tst
+ACATS4GNATDIR/tests/c2/c23003g.tst
+ACATS4GNATDIR/tests/c2/c23003i.tst
+ACATS4GNATDIR/tests/c3/c35502d.tst
+ACATS4GNATDIR/tests/c3/c35502f.tst
+ACATS4GNATDIR/tests/c3/c35503d.tst
+ACATS4GNATDIR/tests/c3/c35503f.tst
+ACATS4GNATDIR/tests/c4/c45231d.tst
+ACATS4GNATDIR/tests/c4/c4a007a.tst
+ACATS4GNATDIR/tests/c8/c87b62d.tst
+ACATS4GNATDIR/tests/c9/c96005b.tst
+ACATS4GNATDIR/tests/cc/cc1225a.tst
+ACATS4GNATDIR/tests/cd/cd1009k.tst
+ACATS4GNATDIR/tests/cd/cd1009t.tst
+ACATS4GNATDIR/tests/cd/cd1009u.tst
+ACATS4GNATDIR/tests/cd/cd1c03e.tst
+ACATS4GNATDIR/tests/cd/cd1c06a.tst
+ACATS4GNATDIR/tests/cd/cd2a83c.tst
+ACATS4GNATDIR/tests/cd/cd2a91c.tst
+ACATS4GNATDIR/tests/cd/cd2c11a.tst
+ACATS4GNATDIR/tests/cd/cd2c11d.tst
+ACATS4GNATDIR/tests/cd/cd4041a.tst
+ACATS4GNATDIR/tests/cd/cd7101g.tst
+ACATS4GNATDIR/tests/ce/ce2102c.tst
+ACATS4GNATDIR/tests/ce/ce2102h.tst
+ACATS4GNATDIR/tests/ce/ce2103a.tst
+ACATS4GNATDIR/tests/ce/ce2103b.tst
+ACATS4GNATDIR/tests/ce/ce2203a.tst
+ACATS4GNATDIR/tests/ce/ce2403a.tst
+ACATS4GNATDIR/tests/ce/ce3002b.tst
+ACATS4GNATDIR/tests/ce/ce3002c.tst
+ACATS4GNATDIR/tests/ce/ce3102b.tst
+ACATS4GNATDIR/tests/ce/ce3107a.tst
+ACATS4GNATDIR/tests/ce/ce3304a.tst
+ACATS4GNATDIR/support/spprt13s.tst
diff --git a/gcc-4.9/gcc/testsuite/ada/acats/support/widechr.a b/gcc-4.9/gcc/testsuite/ada/acats/support/widechr.a
new file mode 100644
index 000000000..2eac588b8
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/ada/acats/support/widechr.a
@@ -0,0 +1,294 @@
+-- WIDECHR.A
+--
+-- Grant of Unlimited Rights
+--
+-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
+-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
+-- unlimited rights in the software and documentation contained herein.
+-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making
+-- this public release, the Government intends to confer upon all
+-- recipients unlimited rights equal to those held by the Government.
+-- These rights include rights to use, duplicate, release or disclose the
+-- released technical data and computer software in whole or in part, in
+-- any manner and for any purpose whatsoever, and to have or permit others
+-- to do so.
+--
+-- DISCLAIMER
+--
+-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
+-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
+-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
+-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
+-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
+-- PARTICULAR PURPOSE OF SAID MATERIAL.
+--*
+--
+-- DESCRIPTION:
+--
+-- This program reads C250001.AW and C250002.AW; translates a special
+-- character sequence into characters and wide characters with positions
+-- above ASCII.DEL. The resulting tests are written as C250001.A and
+-- C250002.A respectively. This program may need to
+-- be modified if the Wide_Character representation recognized by
+-- your compiler differs from the Wide_Character
+-- representation generated by the package Ada.Wide_Text_IO.
+-- Modify this program as needed to translate that file.
+--
+-- A wide character is represented by an 8 character sequence:
+--
+-- ["abcd"]
+--
+-- where the character code represented is specified by four hexadecimal
+-- digits, abcd, with letters in upper case. For example the wide
+-- character with the code 16#AB13# is represented by the eight
+-- character sequence:
+--
+-- ["AB13"]
+--
+-- ASSUMPTIONS:
+--
+-- The path for these files is specified in ImpDef.
+--
+-- SPECIAL REQUIREMENTS:
+--
+-- Compile, bind and execute this program. It will process the ".AW"
+-- tests, "translating" them to ".A" tests.
+--
+-- CHANGE HISTORY:
+-- 11 DEC 96 SAIC ACVC 2.1 Release
+--
+-- 11 DEC 96 Keith Constructed initial release version
+--!
+
+with Ada.Text_IO;
+with Ada.Wide_Text_IO;
+with Ada.Strings.Fixed;
+with Impdef;
+
+procedure WideChr is
+
+ -- Debug
+ --
+ -- To have the program generate trace/debugging information, de-comment
+ -- the call to Put_Line
+
+ procedure Debug( S: String ) is
+ begin
+ null; -- Ada.Text_IO.Put_Line(S);
+ end Debug;
+
+ package TIO renames Ada.Text_IO;
+ package WIO renames Ada.Wide_Text_IO;
+ package SF renames Ada.Strings.Fixed;
+
+ In_File : TIO.File_Type;
+
+ -- This program is actually dual-purpose. It translates the ["xxxx"]
+ -- notation to Wide_Character, as well as a similar notation ["xx"] into
+ -- Character. The intent of the latter being the ability to represent
+ -- literals in the Latin-1 character set that have position numbers
+ -- greater than ASCII.DEL. The variable Output_Mode drives the algorithms
+ -- to generate Wide_Character output (Wide) or Character output (Narrow).
+
+ type Output_Modes is ( Wide, Narrow );
+ Output_Mode : Output_Modes := Wide;
+
+ Wide_Out : WIO.File_Type;
+ Narrow_Out : TIO.File_Type;
+
+ In_Line : String(1..132); -- SB: $MAX_LINE_LENGTH
+
+ -- Index variables
+ --
+ -- the following index variables: In_Length, Front, Open_Bracket and
+ -- Close_Bracket are used by the scanning software to keep track of
+ -- what's where.
+ --
+ -- In_Length stores the value returned by Ada.Text_IO.Get_Line indicating
+ -- the position of the last "useful" character in the string In_Line.
+ --
+ -- Front retains the index of the first non-translating character in
+ -- In_Line, it is used to indicate the starting index of the portion of
+ -- the string to save without special interpretation. In the example
+ -- below, where there are two consecutive characters to translate, we see
+ -- that Front will assume three different values processing the string,
+ -- these are indicated by the digits '1', '2' & '3' in the comment
+ -- attached to the declaration. The processing software will dump
+ -- In_Line(Front..Open_Bracket-1) to the output stream. Note that in
+ -- the second case, this results in a null string, and in the third case,
+ -- where Open_Bracket does not obtain a third value, the slice
+ -- In_Line(Front..In_Length) is used instead.
+ --
+ -- Open_Bracket and Close_Bracket are used to retain the starting index
+ -- of the character pairs [" and "] respectively. For the purposes of
+ -- this software the character pairs are what are considered to be the
+ -- "brackets" enclosing the hexadecimal values to be translated.
+ -- Looking at the example below you will see where these index variables
+ -- will "point" in the first and second case.
+
+ In_Length : Natural := 0; ---> Some_["0A12"]["0B13"]_Thing
+ Front : Natural := 0; -- 1 2 3
+ Open_Bracket : Natural := 0; -- 1 2
+ Close_Bracket : Natural := 0; -- 1 2
+
+ -- Xlation
+ --
+ -- This translation table gives an easy way to translate the "decimal"
+ -- value of a hex digit (as represented by a Latin-1 character)
+
+ type Xlate is array(Character range '0'..'F') of Natural;
+ Xlation : constant Xlate :=
+ ('0' => 0, '1' => 1, '2' => 2, '3' => 3, '4' => 4,
+ '5' => 5, '6' => 6, '7' => 7, '8' => 8, '9' => 9,
+ 'A' => 10, 'B' => 11, 'C' => 12, 'D' => 13, 'E' => 14,
+ 'F' => 15,
+ others => 0);
+
+ -- To_Ch
+ --
+ -- This function takes a string which is assumed to be trimmed to just a
+ -- hexadecimal representation of a Latin-1 character. The result of the
+ -- function is the Latin-1 character at the position designated by the
+ -- incoming hexadecimal value. (hexadecimal in human readable form)
+
+ function To_Ch( S:String ) return Character is
+ Numerical : Natural := 0;
+ begin
+ Debug("To Wide: " & S);
+ for I in S'Range loop
+ Numerical := Numerical * 16 + Xlation(S(I));
+ end loop;
+ return Character'Val(Numerical);
+ exception
+ when Constraint_Error => return '_';
+ end To_Ch;
+
+ -- To_Wide
+ --
+ -- This function takes a string which is assumed to be trimmed to just a
+ -- hexadecimal representation of a Wide_character. The result of the
+ -- function is the Wide_character at the position designated by the
+ -- incoming hexadecimal value. (hexadecimal in human readable form)
+
+ function To_Wide( S:String ) return Wide_character is
+ Numerical : Natural := 0;
+ begin
+ Debug("To Wide: " & S);
+ for I in S'Range loop
+ Numerical := Numerical * 16 + Xlation(S(I));
+ end loop;
+ return Wide_Character'Val(Numerical);
+ exception
+ when Constraint_Error => return '_';
+ end To_Wide;
+
+ -- Make_Wide
+ --
+ -- this function converts a String to a Wide_String
+
+ function Make_Wide( S: String ) return Wide_String is
+ W: Wide_String(S'Range);
+ begin
+ for I in S'Range loop
+ W(I) := Wide_Character'Val( Character'Pos(S(I)) );
+ end loop;
+ return W;
+ end Make_Wide;
+
+ -- Close_Files
+ --
+ -- Depending on which input we've processed, close the output file
+
+ procedure Close_Files is
+ begin
+ TIO.Close(In_File);
+ if Output_Mode = Wide then
+ WIO.Close(Wide_Out);
+ else
+ TIO.Close(Narrow_Out);
+ end if;
+ end Close_Files;
+
+ -- Process
+ --
+ -- for all lines in the input file
+ -- scan the file for occurrences of [" and "]
+ -- for found occurrence, attempt translation of the characters found
+ -- between the brackets. As a safeguard, unrecognizable character
+ -- sequences will be replaced with the underscore character. This
+ -- handles the cases in the tests where the test documentation includes
+ -- examples that are non-conformant: i.e. ["abcd"] or ["XXXX"]
+
+ procedure Process( Input_File_Name: String ) is
+ begin
+ TIO.Open(In_File,TIO.In_File,Input_File_Name & ".aw" );
+
+ if Output_Mode = Wide then
+ WIO.Create(Wide_Out,WIO.Out_File, Input_File_Name & ".a" );
+ else
+ TIO.Create(Narrow_Out,TIO.Out_File, Input_File_Name & ".a" );
+ end if;
+
+ File: while not TIO.End_Of_File( In_File ) loop
+ In_Line := (others => ' ');
+ TIO.Get_Line(In_File,In_Line,In_Length);
+ Debug(In_Line(1..In_Length));
+
+ Front := 1;
+
+ Line: loop
+ -- scan for next occurrence of ["abcd"]
+ Open_Bracket := SF.Index( In_Line(Front..In_Length), "[""" );
+ Close_Bracket := SF.Index( In_Line(Front..In_Length), """]" );
+ Debug( "[=" & Natural'Image(Open_Bracket) );
+ Debug( "]=" & Natural'Image(Close_Bracket) );
+
+ if Open_Bracket = 0 or Close_Bracket = 0 then
+ -- done with the line, output remaining characters and exit
+ Debug("Done with line");
+ if Output_Mode = Wide then
+ WIO.Put_Line(Wide_Out, Make_Wide(In_Line(Front..In_Length)) );
+ else
+ TIO.Put_Line(Narrow_Out, In_Line(Front..In_Length) );
+ end if;
+ exit Line;
+ else
+ -- output the "normal" stuff up to the bracket
+ if Output_Mode = Wide then
+ WIO.Put(Wide_Out, Make_Wide(In_Line(Front..Open_Bracket-1)) );
+ else
+ TIO.Put(Narrow_Out, In_Line(Front..Open_Bracket-1) );
+ end if;
+
+ -- point beyond the closing bracket
+ Front := Close_Bracket +2;
+
+ -- output the translated hexadecimal character
+ if Output_Mode = Wide then
+ WIO.Put(Wide_Out,
+ To_Wide( In_Line(Open_Bracket+2..Close_Bracket-1) ));
+ else
+ TIO.Put(Narrow_Out,
+ To_Ch( In_Line(Open_Bracket+2..Close_Bracket-1)) );
+ end if;
+ end if;
+ end loop Line;
+
+ end loop File;
+
+ Close_Files;
+ exception
+ when others =>
+ Ada.Text_IO.Put_Line("Error in processing " & Input_File_Name);
+ raise;
+ end Process;
+
+begin
+
+ Output_Mode := Wide;
+ Process( Impdef.Wide_Character_Test );
+
+ Output_Mode := Narrow;
+ Process( Impdef.Upper_Latin_Test );
+
+end WideChr;