aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/libgnat
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada/libgnat')
-rw-r--r--gcc/ada/libgnat/a-assert.adb2
-rw-r--r--gcc/ada/libgnat/a-assert.ads2
-rw-r--r--gcc/ada/libgnat/a-btgbso.adb2
-rw-r--r--gcc/ada/libgnat/a-btgbso.ads2
-rw-r--r--gcc/ada/libgnat/a-calari.adb2
-rw-r--r--gcc/ada/libgnat/a-calari.ads2
-rw-r--r--gcc/ada/libgnat/a-calcon.adb3
-rw-r--r--gcc/ada/libgnat/a-calcon.ads5
-rw-r--r--gcc/ada/libgnat/a-caldel.adb4
-rw-r--r--gcc/ada/libgnat/a-caldel.ads2
-rw-r--r--gcc/ada/libgnat/a-calend.adb22
-rw-r--r--gcc/ada/libgnat/a-calend.ads30
-rw-r--r--gcc/ada/libgnat/a-calfor.adb2
-rw-r--r--gcc/ada/libgnat/a-calfor.ads10
-rw-r--r--gcc/ada/libgnat/a-catizo.adb12
-rw-r--r--gcc/ada/libgnat/a-catizo.ads5
-rw-r--r--gcc/ada/libgnat/a-cbdlli.adb60
-rw-r--r--gcc/ada/libgnat/a-cbdlli.ads6
-rw-r--r--gcc/ada/libgnat/a-cbhama.adb18
-rw-r--r--gcc/ada/libgnat/a-cbhama.ads6
-rw-r--r--gcc/ada/libgnat/a-cbhase.adb14
-rw-r--r--gcc/ada/libgnat/a-cbhase.ads6
-rw-r--r--gcc/ada/libgnat/a-cbmutr.adb66
-rw-r--r--gcc/ada/libgnat/a-cbmutr.ads6
-rw-r--r--gcc/ada/libgnat/a-cborma.adb14
-rw-r--r--gcc/ada/libgnat/a-cborma.ads6
-rw-r--r--gcc/ada/libgnat/a-cborse.adb18
-rw-r--r--gcc/ada/libgnat/a-cborse.ads6
-rw-r--r--gcc/ada/libgnat/a-cbprqu.adb6
-rw-r--r--gcc/ada/libgnat/a-cbprqu.ads6
-rw-r--r--gcc/ada/libgnat/a-cbsyqu.adb6
-rw-r--r--gcc/ada/libgnat/a-cbsyqu.ads6
-rw-r--r--gcc/ada/libgnat/a-cdlili.adb52
-rw-r--r--gcc/ada/libgnat/a-cdlili.ads6
-rw-r--r--gcc/ada/libgnat/a-cfdlli.adb2
-rw-r--r--gcc/ada/libgnat/a-cfdlli.ads9
-rw-r--r--gcc/ada/libgnat/a-cfhama.adb2
-rw-r--r--gcc/ada/libgnat/a-cfhama.ads9
-rw-r--r--gcc/ada/libgnat/a-cfhase.adb2
-rw-r--r--gcc/ada/libgnat/a-cfhase.ads9
-rw-r--r--gcc/ada/libgnat/a-cfinve.adb2
-rw-r--r--gcc/ada/libgnat/a-cfinve.ads2
-rw-r--r--gcc/ada/libgnat/a-cforma.adb2
-rw-r--r--gcc/ada/libgnat/a-cforma.ads9
-rw-r--r--gcc/ada/libgnat/a-cforse.adb2
-rw-r--r--gcc/ada/libgnat/a-cforse.ads9
-rw-r--r--gcc/ada/libgnat/a-cgaaso.adb2
-rw-r--r--gcc/ada/libgnat/a-cgaaso.ads2
-rw-r--r--gcc/ada/libgnat/a-cgarso.adb2
-rw-r--r--gcc/ada/libgnat/a-cgcaso.adb2
-rw-r--r--gcc/ada/libgnat/a-chacon.adb2
-rw-r--r--gcc/ada/libgnat/a-chacon.ads2
-rw-r--r--gcc/ada/libgnat/a-chahan.adb13
-rw-r--r--gcc/ada/libgnat/a-chahan.ads3
-rw-r--r--gcc/ada/libgnat/a-chlat9.ads2
-rw-r--r--gcc/ada/libgnat/a-chtgbk.adb11
-rw-r--r--gcc/ada/libgnat/a-chtgbk.ads2
-rw-r--r--gcc/ada/libgnat/a-chtgbo.adb2
-rw-r--r--gcc/ada/libgnat/a-chtgbo.ads2
-rw-r--r--gcc/ada/libgnat/a-chtgke.adb4
-rw-r--r--gcc/ada/libgnat/a-chtgke.ads2
-rw-r--r--gcc/ada/libgnat/a-chtgop.adb2
-rw-r--r--gcc/ada/libgnat/a-chtgop.ads2
-rw-r--r--gcc/ada/libgnat/a-chzla1.ads2
-rw-r--r--gcc/ada/libgnat/a-chzla9.ads2
-rw-r--r--gcc/ada/libgnat/a-cidlli.adb48
-rw-r--r--gcc/ada/libgnat/a-cidlli.ads6
-rw-r--r--gcc/ada/libgnat/a-cihama.adb18
-rw-r--r--gcc/ada/libgnat/a-cihama.ads6
-rw-r--r--gcc/ada/libgnat/a-cihase.adb18
-rw-r--r--gcc/ada/libgnat/a-cihase.ads6
-rw-r--r--gcc/ada/libgnat/a-cimutr.adb62
-rw-r--r--gcc/ada/libgnat/a-cimutr.ads6
-rw-r--r--gcc/ada/libgnat/a-ciorma.adb14
-rw-r--r--gcc/ada/libgnat/a-ciorma.ads6
-rw-r--r--gcc/ada/libgnat/a-ciormu.adb6
-rw-r--r--gcc/ada/libgnat/a-ciormu.ads6
-rw-r--r--gcc/ada/libgnat/a-ciorse.adb14
-rw-r--r--gcc/ada/libgnat/a-ciorse.ads6
-rw-r--r--gcc/ada/libgnat/a-clrefi.adb2
-rw-r--r--gcc/ada/libgnat/a-clrefi.ads2
-rw-r--r--gcc/ada/libgnat/a-coboho.adb2
-rw-r--r--gcc/ada/libgnat/a-coboho.ads2
-rw-r--r--gcc/ada/libgnat/a-cobove.adb73
-rw-r--r--gcc/ada/libgnat/a-cobove.ads2
-rw-r--r--gcc/ada/libgnat/a-cofove.adb6
-rw-r--r--gcc/ada/libgnat/a-cofove.ads2
-rw-r--r--gcc/ada/libgnat/a-cofuba.adb2
-rw-r--r--gcc/ada/libgnat/a-cofuba.ads2
-rw-r--r--gcc/ada/libgnat/a-cofuma.adb2
-rw-r--r--gcc/ada/libgnat/a-cofuma.ads2
-rw-r--r--gcc/ada/libgnat/a-cofuse.adb2
-rw-r--r--gcc/ada/libgnat/a-cofuse.ads2
-rw-r--r--gcc/ada/libgnat/a-cofuve.adb2
-rw-r--r--gcc/ada/libgnat/a-cofuve.ads5
-rw-r--r--gcc/ada/libgnat/a-cogeso.adb2
-rw-r--r--gcc/ada/libgnat/a-cogeso.ads2
-rw-r--r--gcc/ada/libgnat/a-cohama.adb18
-rw-r--r--gcc/ada/libgnat/a-cohama.ads6
-rw-r--r--gcc/ada/libgnat/a-cohase.adb14
-rw-r--r--gcc/ada/libgnat/a-cohase.ads6
-rw-r--r--gcc/ada/libgnat/a-cohata.ads2
-rw-r--r--gcc/ada/libgnat/a-coinho.adb26
-rw-r--r--gcc/ada/libgnat/a-coinho.ads4
-rw-r--r--gcc/ada/libgnat/a-coinho__shared.adb26
-rw-r--r--gcc/ada/libgnat/a-coinho__shared.ads4
-rw-r--r--gcc/ada/libgnat/a-coinve.adb70
-rw-r--r--gcc/ada/libgnat/a-coinve.ads6
-rw-r--r--gcc/ada/libgnat/a-colien.adb2
-rw-r--r--gcc/ada/libgnat/a-colien.ads2
-rw-r--r--gcc/ada/libgnat/a-colire.adb2
-rw-r--r--gcc/ada/libgnat/a-colire.ads2
-rw-r--r--gcc/ada/libgnat/a-comlin.adb2
-rw-r--r--gcc/ada/libgnat/a-comlin.ads2
-rw-r--r--gcc/ada/libgnat/a-comutr.adb66
-rw-r--r--gcc/ada/libgnat/a-comutr.ads6
-rw-r--r--gcc/ada/libgnat/a-conhel.adb2
-rw-r--r--gcc/ada/libgnat/a-conhel.ads2
-rw-r--r--gcc/ada/libgnat/a-convec.adb102
-rw-r--r--gcc/ada/libgnat/a-convec.ads12
-rw-r--r--gcc/ada/libgnat/a-coorma.adb14
-rw-r--r--gcc/ada/libgnat/a-coorma.ads6
-rw-r--r--gcc/ada/libgnat/a-coormu.adb6
-rw-r--r--gcc/ada/libgnat/a-coormu.ads6
-rw-r--r--gcc/ada/libgnat/a-coorse.adb14
-rw-r--r--gcc/ada/libgnat/a-coorse.ads6
-rw-r--r--gcc/ada/libgnat/a-coprnu.adb2
-rw-r--r--gcc/ada/libgnat/a-coprnu.ads2
-rw-r--r--gcc/ada/libgnat/a-crbltr.ads2
-rw-r--r--gcc/ada/libgnat/a-crbtgk.adb6
-rw-r--r--gcc/ada/libgnat/a-crbtgk.ads2
-rw-r--r--gcc/ada/libgnat/a-crbtgo.adb6
-rw-r--r--gcc/ada/libgnat/a-crbtgo.ads2
-rw-r--r--gcc/ada/libgnat/a-crdlli.adb2
-rw-r--r--gcc/ada/libgnat/a-crdlli.ads2
-rw-r--r--gcc/ada/libgnat/a-csquin.ads2
-rw-r--r--gcc/ada/libgnat/a-cuprqu.adb2
-rw-r--r--gcc/ada/libgnat/a-cuprqu.ads2
-rw-r--r--gcc/ada/libgnat/a-cusyqu.adb2
-rw-r--r--gcc/ada/libgnat/a-cusyqu.ads2
-rw-r--r--gcc/ada/libgnat/a-cwila1.ads2
-rw-r--r--gcc/ada/libgnat/a-cwila9.ads2
-rw-r--r--gcc/ada/libgnat/a-decima.adb2
-rw-r--r--gcc/ada/libgnat/a-decima.ads2
-rw-r--r--gcc/ada/libgnat/a-dhfina.adb2
-rw-r--r--gcc/ada/libgnat/a-dhfina.ads2
-rw-r--r--gcc/ada/libgnat/a-diocst.adb2
-rw-r--r--gcc/ada/libgnat/a-diocst.ads2
-rw-r--r--gcc/ada/libgnat/a-direct.adb2
-rw-r--r--gcc/ada/libgnat/a-direct.ads2
-rw-r--r--gcc/ada/libgnat/a-direio.adb2
-rw-r--r--gcc/ada/libgnat/a-direio.ads2
-rw-r--r--gcc/ada/libgnat/a-dirval.adb2
-rw-r--r--gcc/ada/libgnat/a-dirval.ads2
-rw-r--r--gcc/ada/libgnat/a-dirval__mingw.adb2
-rw-r--r--gcc/ada/libgnat/a-einuoc.adb2
-rw-r--r--gcc/ada/libgnat/a-einuoc.ads2
-rw-r--r--gcc/ada/libgnat/a-elchha.adb2
-rw-r--r--gcc/ada/libgnat/a-elchha.ads2
-rw-r--r--gcc/ada/libgnat/a-elchha__vxworks-ppc-full.adb2
-rw-r--r--gcc/ada/libgnat/a-envvar.adb2
-rw-r--r--gcc/ada/libgnat/a-excach.adb2
-rw-r--r--gcc/ada/libgnat/a-except.adb6
-rw-r--r--gcc/ada/libgnat/a-except.ads2
-rw-r--r--gcc/ada/libgnat/a-excpol.adb2
-rw-r--r--gcc/ada/libgnat/a-excpol__abort.adb2
-rw-r--r--gcc/ada/libgnat/a-exctra.adb2
-rw-r--r--gcc/ada/libgnat/a-exctra.ads2
-rw-r--r--gcc/ada/libgnat/a-exexda.adb2
-rw-r--r--gcc/ada/libgnat/a-exexpr.adb2
-rw-r--r--gcc/ada/libgnat/a-exextr.adb26
-rw-r--r--gcc/ada/libgnat/a-exstat.adb2
-rw-r--r--gcc/ada/libgnat/a-finali.adb2
-rw-r--r--gcc/ada/libgnat/a-finali.ads2
-rw-r--r--gcc/ada/libgnat/a-locale.adb2
-rw-r--r--gcc/ada/libgnat/a-locale.ads2
-rw-r--r--gcc/ada/libgnat/a-nbnbin.adb183
-rw-r--r--gcc/ada/libgnat/a-nbnbin.ads150
-rw-r--r--gcc/ada/libgnat/a-nbnbin__gmp.adb118
-rw-r--r--gcc/ada/libgnat/a-nbnbre.adb88
-rw-r--r--gcc/ada/libgnat/a-nbnbre.ads154
-rw-r--r--gcc/ada/libgnat/a-ngcefu.adb2
-rw-r--r--gcc/ada/libgnat/a-ngcoar.adb2
-rw-r--r--gcc/ada/libgnat/a-ngcoty.adb12
-rw-r--r--gcc/ada/libgnat/a-ngcoty.ads2
-rw-r--r--gcc/ada/libgnat/a-ngelfu.adb4
-rw-r--r--gcc/ada/libgnat/a-ngelfu.ads2
-rw-r--r--gcc/ada/libgnat/a-ngrear.adb4
-rw-r--r--gcc/ada/libgnat/a-ngrear.ads2
-rw-r--r--gcc/ada/libgnat/a-nubinu.ads4
-rw-r--r--gcc/ada/libgnat/a-nudira.adb13
-rw-r--r--gcc/ada/libgnat/a-nudira.ads8
-rw-r--r--gcc/ada/libgnat/a-nuflra.adb2
-rw-r--r--gcc/ada/libgnat/a-nuflra.ads2
-rw-r--r--gcc/ada/libgnat/a-numaux.ads2
-rw-r--r--gcc/ada/libgnat/a-numaux__darwin.adb2
-rw-r--r--gcc/ada/libgnat/a-numaux__darwin.ads2
-rw-r--r--gcc/ada/libgnat/a-numaux__dummy.adb32
-rw-r--r--gcc/ada/libgnat/a-numaux__libc-x86.ads2
-rw-r--r--gcc/ada/libgnat/a-numaux__vxworks.ads2
-rw-r--r--gcc/ada/libgnat/a-numaux__x86.adb577
-rw-r--r--gcc/ada/libgnat/a-rbtgbk.adb2
-rw-r--r--gcc/ada/libgnat/a-rbtgbk.ads2
-rw-r--r--gcc/ada/libgnat/a-rbtgbo.adb2
-rw-r--r--gcc/ada/libgnat/a-rbtgbo.ads2
-rw-r--r--gcc/ada/libgnat/a-rbtgso.adb8
-rw-r--r--gcc/ada/libgnat/a-rbtgso.ads2
-rw-r--r--gcc/ada/libgnat/a-sbecin.adb2
-rw-r--r--gcc/ada/libgnat/a-sbecin.ads2
-rw-r--r--gcc/ada/libgnat/a-sbhcin.adb2
-rw-r--r--gcc/ada/libgnat/a-sbhcin.ads2
-rw-r--r--gcc/ada/libgnat/a-sblcin.adb2
-rw-r--r--gcc/ada/libgnat/a-sblcin.ads2
-rw-r--r--gcc/ada/libgnat/a-secain.adb2
-rw-r--r--gcc/ada/libgnat/a-secain.ads2
-rw-r--r--gcc/ada/libgnat/a-sequio.adb4
-rw-r--r--gcc/ada/libgnat/a-sequio.ads2
-rw-r--r--gcc/ada/libgnat/a-sfecin.ads2
-rw-r--r--gcc/ada/libgnat/a-sfhcin.ads2
-rw-r--r--gcc/ada/libgnat/a-sflcin.ads2
-rw-r--r--gcc/ada/libgnat/a-shcain.adb2
-rw-r--r--gcc/ada/libgnat/a-shcain.ads2
-rw-r--r--gcc/ada/libgnat/a-siocst.adb2
-rw-r--r--gcc/ada/libgnat/a-siocst.ads2
-rw-r--r--gcc/ada/libgnat/a-slcain.adb2
-rw-r--r--gcc/ada/libgnat/a-slcain.ads2
-rw-r--r--gcc/ada/libgnat/a-ssicst.adb2
-rw-r--r--gcc/ada/libgnat/a-ssicst.ads2
-rw-r--r--gcc/ada/libgnat/a-stboha.adb2
-rw-r--r--gcc/ada/libgnat/a-stmaco.ads2
-rw-r--r--gcc/ada/libgnat/a-stobbu.adb53
-rw-r--r--gcc/ada/libgnat/a-stobbu.ads34
-rw-r--r--gcc/ada/libgnat/a-stobfi.adb118
-rw-r--r--gcc/ada/libgnat/a-stobfi.ads66
-rw-r--r--gcc/ada/libgnat/a-storio.adb2
-rw-r--r--gcc/ada/libgnat/a-stoubu.adb138
-rw-r--r--gcc/ada/libgnat/a-stoubu.ads73
-rw-r--r--gcc/ada/libgnat/a-stoufi.adb123
-rw-r--r--gcc/ada/libgnat/a-stoufi.ads72
-rw-r--r--gcc/ada/libgnat/a-stoufo.adb155
-rw-r--r--gcc/ada/libgnat/a-stoufo.ads72
-rw-r--r--gcc/ada/libgnat/a-stouut.adb271
-rw-r--r--gcc/ada/libgnat/a-stouut.ads106
-rw-r--r--gcc/ada/libgnat/a-strbou.adb2
-rw-r--r--gcc/ada/libgnat/a-strbou.ads2
-rw-r--r--gcc/ada/libgnat/a-stream.adb2
-rw-r--r--gcc/ada/libgnat/a-stream.ads2
-rw-r--r--gcc/ada/libgnat/a-strfix.adb6
-rw-r--r--gcc/ada/libgnat/a-strhas.adb2
-rw-r--r--gcc/ada/libgnat/a-strmap.adb2
-rw-r--r--gcc/ada/libgnat/a-strmap.ads2
-rw-r--r--gcc/ada/libgnat/a-strsea.adb2
-rw-r--r--gcc/ada/libgnat/a-strsea.ads2
-rw-r--r--gcc/ada/libgnat/a-strsto.ads44
-rw-r--r--gcc/ada/libgnat/a-strsup.adb2
-rw-r--r--gcc/ada/libgnat/a-strsup.ads2
-rw-r--r--gcc/ada/libgnat/a-strunb.adb85
-rw-r--r--gcc/ada/libgnat/a-strunb.ads2
-rw-r--r--gcc/ada/libgnat/a-strunb__shared.adb156
-rw-r--r--gcc/ada/libgnat/a-strunb__shared.ads8
-rw-r--r--gcc/ada/libgnat/a-ststbo.adb117
-rw-r--r--gcc/ada/libgnat/a-ststbo.ads73
-rw-r--r--gcc/ada/libgnat/a-ststio.adb2
-rw-r--r--gcc/ada/libgnat/a-ststio.ads2
-rw-r--r--gcc/ada/libgnat/a-ststun.adb151
-rw-r--r--gcc/ada/libgnat/a-ststun.ads91
-rw-r--r--gcc/ada/libgnat/a-stteou.ads191
-rw-r--r--gcc/ada/libgnat/a-stunau.adb2
-rw-r--r--gcc/ada/libgnat/a-stunau.ads2
-rw-r--r--gcc/ada/libgnat/a-stunau__shared.adb2
-rw-r--r--gcc/ada/libgnat/a-stunha.adb2
-rw-r--r--gcc/ada/libgnat/a-stuten.adb2
-rw-r--r--gcc/ada/libgnat/a-stwibo.adb2
-rw-r--r--gcc/ada/libgnat/a-stwibo.ads2
-rw-r--r--gcc/ada/libgnat/a-stwifi.adb2
-rw-r--r--gcc/ada/libgnat/a-stwiha.adb2
-rw-r--r--gcc/ada/libgnat/a-stwima.adb2
-rw-r--r--gcc/ada/libgnat/a-stwima.ads2
-rw-r--r--gcc/ada/libgnat/a-stwise.adb2
-rw-r--r--gcc/ada/libgnat/a-stwise.ads2
-rw-r--r--gcc/ada/libgnat/a-stwisu.adb2
-rw-r--r--gcc/ada/libgnat/a-stwisu.ads2
-rw-r--r--gcc/ada/libgnat/a-stwiun.adb2
-rw-r--r--gcc/ada/libgnat/a-stwiun.ads2
-rw-r--r--gcc/ada/libgnat/a-stwiun__shared.adb2
-rw-r--r--gcc/ada/libgnat/a-stwiun__shared.ads2
-rw-r--r--gcc/ada/libgnat/a-stzbou.adb2
-rw-r--r--gcc/ada/libgnat/a-stzbou.ads2
-rw-r--r--gcc/ada/libgnat/a-stzfix.adb2
-rw-r--r--gcc/ada/libgnat/a-stzhas.adb2
-rw-r--r--gcc/ada/libgnat/a-stzmap.adb2
-rw-r--r--gcc/ada/libgnat/a-stzmap.ads2
-rw-r--r--gcc/ada/libgnat/a-stzsea.adb2
-rw-r--r--gcc/ada/libgnat/a-stzsea.ads2
-rw-r--r--gcc/ada/libgnat/a-stzsup.adb2
-rw-r--r--gcc/ada/libgnat/a-stzsup.ads2
-rw-r--r--gcc/ada/libgnat/a-stzunb.adb2
-rw-r--r--gcc/ada/libgnat/a-stzunb.ads2
-rw-r--r--gcc/ada/libgnat/a-stzunb__shared.adb2
-rw-r--r--gcc/ada/libgnat/a-stzunb__shared.ads2
-rw-r--r--gcc/ada/libgnat/a-suecin.adb2
-rw-r--r--gcc/ada/libgnat/a-suecin.ads2
-rw-r--r--gcc/ada/libgnat/a-suenco.adb2
-rw-r--r--gcc/ada/libgnat/a-suenst.adb2
-rw-r--r--gcc/ada/libgnat/a-suewst.adb2
-rw-r--r--gcc/ada/libgnat/a-suezst.adb2
-rw-r--r--gcc/ada/libgnat/a-suhcin.adb2
-rw-r--r--gcc/ada/libgnat/a-suhcin.ads2
-rw-r--r--gcc/ada/libgnat/a-sulcin.adb2
-rw-r--r--gcc/ada/libgnat/a-sulcin.ads2
-rw-r--r--gcc/ada/libgnat/a-suteio.adb2
-rw-r--r--gcc/ada/libgnat/a-suteio.ads2
-rw-r--r--gcc/ada/libgnat/a-suteio__shared.adb2
-rw-r--r--gcc/ada/libgnat/a-swbwha.adb2
-rw-r--r--gcc/ada/libgnat/a-swmwco.ads2
-rw-r--r--gcc/ada/libgnat/a-swunau.adb2
-rw-r--r--gcc/ada/libgnat/a-swunau.ads2
-rw-r--r--gcc/ada/libgnat/a-swunau__shared.adb2
-rw-r--r--gcc/ada/libgnat/a-swuwha.adb2
-rw-r--r--gcc/ada/libgnat/a-swuwti.adb2
-rw-r--r--gcc/ada/libgnat/a-swuwti.ads2
-rw-r--r--gcc/ada/libgnat/a-swuwti__shared.adb2
-rw-r--r--gcc/ada/libgnat/a-szbzha.adb2
-rw-r--r--gcc/ada/libgnat/a-szmzco.ads2
-rw-r--r--gcc/ada/libgnat/a-szunau.adb2
-rw-r--r--gcc/ada/libgnat/a-szunau.ads2
-rw-r--r--gcc/ada/libgnat/a-szunau__shared.adb2
-rw-r--r--gcc/ada/libgnat/a-szuzha.adb2
-rw-r--r--gcc/ada/libgnat/a-szuzti.adb2
-rw-r--r--gcc/ada/libgnat/a-szuzti.ads2
-rw-r--r--gcc/ada/libgnat/a-szuzti__shared.adb2
-rw-r--r--gcc/ada/libgnat/a-tags.adb7
-rw-r--r--gcc/ada/libgnat/a-tags.ads21
-rw-r--r--gcc/ada/libgnat/a-teioed.adb2
-rw-r--r--gcc/ada/libgnat/a-teioed.ads2
-rw-r--r--gcc/ada/libgnat/a-textio.adb2
-rw-r--r--gcc/ada/libgnat/a-textio.ads4
-rw-r--r--gcc/ada/libgnat/a-tiboio.adb2
-rw-r--r--gcc/ada/libgnat/a-ticoau.adb2
-rw-r--r--gcc/ada/libgnat/a-ticoau.ads2
-rw-r--r--gcc/ada/libgnat/a-ticoio.adb2
-rw-r--r--gcc/ada/libgnat/a-ticoio.ads2
-rw-r--r--gcc/ada/libgnat/a-tideau.adb2
-rw-r--r--gcc/ada/libgnat/a-tideau.ads2
-rw-r--r--gcc/ada/libgnat/a-tideio.adb2
-rw-r--r--gcc/ada/libgnat/a-tideio.ads2
-rw-r--r--gcc/ada/libgnat/a-tienau.adb2
-rw-r--r--gcc/ada/libgnat/a-tienau.ads2
-rw-r--r--gcc/ada/libgnat/a-tienio.adb2
-rw-r--r--gcc/ada/libgnat/a-tifiio.adb2
-rw-r--r--gcc/ada/libgnat/a-tiflau.adb6
-rw-r--r--gcc/ada/libgnat/a-tiflau.ads2
-rw-r--r--gcc/ada/libgnat/a-tiflio.adb2
-rw-r--r--gcc/ada/libgnat/a-tiflio.ads2
-rw-r--r--gcc/ada/libgnat/a-tigeau.adb2
-rw-r--r--gcc/ada/libgnat/a-tigeau.ads2
-rw-r--r--gcc/ada/libgnat/a-tigeli.adb2
-rw-r--r--gcc/ada/libgnat/a-tiinau.adb2
-rw-r--r--gcc/ada/libgnat/a-tiinau.ads2
-rw-r--r--gcc/ada/libgnat/a-tiinio.adb2
-rw-r--r--gcc/ada/libgnat/a-tiinio.ads2
-rw-r--r--gcc/ada/libgnat/a-timoau.adb2
-rw-r--r--gcc/ada/libgnat/a-timoau.ads2
-rw-r--r--gcc/ada/libgnat/a-timoio.adb2
-rw-r--r--gcc/ada/libgnat/a-timoio.ads2
-rw-r--r--gcc/ada/libgnat/a-tiocst.adb2
-rw-r--r--gcc/ada/libgnat/a-tiocst.ads2
-rw-r--r--gcc/ada/libgnat/a-tirsfi.adb2
-rw-r--r--gcc/ada/libgnat/a-tirsfi.ads2
-rw-r--r--gcc/ada/libgnat/a-titest.adb2
-rw-r--r--gcc/ada/libgnat/a-undesu.adb2
-rw-r--r--gcc/ada/libgnat/a-wichha.adb34
-rw-r--r--gcc/ada/libgnat/a-wichha.ads24
-rw-r--r--gcc/ada/libgnat/a-wichun.adb40
-rw-r--r--gcc/ada/libgnat/a-wichun.ads22
-rw-r--r--gcc/ada/libgnat/a-witeio.adb2
-rw-r--r--gcc/ada/libgnat/a-witeio.ads2
-rw-r--r--gcc/ada/libgnat/a-wrstfi.adb2
-rw-r--r--gcc/ada/libgnat/a-wrstfi.ads2
-rw-r--r--gcc/ada/libgnat/a-wtcoau.adb2
-rw-r--r--gcc/ada/libgnat/a-wtcoau.ads2
-rw-r--r--gcc/ada/libgnat/a-wtcoio.adb2
-rw-r--r--gcc/ada/libgnat/a-wtcstr.adb2
-rw-r--r--gcc/ada/libgnat/a-wtcstr.ads2
-rw-r--r--gcc/ada/libgnat/a-wtdeau.adb2
-rw-r--r--gcc/ada/libgnat/a-wtdeau.ads2
-rw-r--r--gcc/ada/libgnat/a-wtdeio.adb2
-rw-r--r--gcc/ada/libgnat/a-wtedit.adb2
-rw-r--r--gcc/ada/libgnat/a-wtedit.ads2
-rw-r--r--gcc/ada/libgnat/a-wtenau.adb2
-rw-r--r--gcc/ada/libgnat/a-wtenau.ads2
-rw-r--r--gcc/ada/libgnat/a-wtenio.adb2
-rw-r--r--gcc/ada/libgnat/a-wtfiio.adb2
-rw-r--r--gcc/ada/libgnat/a-wtflau.adb2
-rw-r--r--gcc/ada/libgnat/a-wtflau.ads2
-rw-r--r--gcc/ada/libgnat/a-wtflio.adb2
-rw-r--r--gcc/ada/libgnat/a-wtgeau.adb2
-rw-r--r--gcc/ada/libgnat/a-wtgeau.ads2
-rw-r--r--gcc/ada/libgnat/a-wtinau.adb2
-rw-r--r--gcc/ada/libgnat/a-wtinau.ads2
-rw-r--r--gcc/ada/libgnat/a-wtinio.adb2
-rw-r--r--gcc/ada/libgnat/a-wtmoau.adb2
-rw-r--r--gcc/ada/libgnat/a-wtmoau.ads2
-rw-r--r--gcc/ada/libgnat/a-wtmoio.adb2
-rw-r--r--gcc/ada/libgnat/a-wtmoio.ads2
-rw-r--r--gcc/ada/libgnat/a-wttest.adb2
-rw-r--r--gcc/ada/libgnat/a-wwboio.adb2
-rw-r--r--gcc/ada/libgnat/a-zchhan.adb9
-rw-r--r--gcc/ada/libgnat/a-zchhan.ads6
-rw-r--r--gcc/ada/libgnat/a-zchuni.adb11
-rw-r--r--gcc/ada/libgnat/a-zchuni.ads8
-rw-r--r--gcc/ada/libgnat/a-zrstfi.adb2
-rw-r--r--gcc/ada/libgnat/a-zrstfi.ads2
-rw-r--r--gcc/ada/libgnat/a-ztcoau.adb2
-rw-r--r--gcc/ada/libgnat/a-ztcoio.adb2
-rw-r--r--gcc/ada/libgnat/a-ztcstr.adb2
-rw-r--r--gcc/ada/libgnat/a-ztcstr.ads2
-rw-r--r--gcc/ada/libgnat/a-ztdeau.adb2
-rw-r--r--gcc/ada/libgnat/a-ztdeau.ads2
-rw-r--r--gcc/ada/libgnat/a-ztdeio.adb2
-rw-r--r--gcc/ada/libgnat/a-ztedit.adb2
-rw-r--r--gcc/ada/libgnat/a-ztedit.ads2
-rw-r--r--gcc/ada/libgnat/a-ztenau.adb2
-rw-r--r--gcc/ada/libgnat/a-ztenau.ads2
-rw-r--r--gcc/ada/libgnat/a-ztenio.adb2
-rw-r--r--gcc/ada/libgnat/a-ztexio.adb2
-rw-r--r--gcc/ada/libgnat/a-ztexio.ads2
-rw-r--r--gcc/ada/libgnat/a-ztfiio.adb2
-rw-r--r--gcc/ada/libgnat/a-ztflau.adb2
-rw-r--r--gcc/ada/libgnat/a-ztflau.ads2
-rw-r--r--gcc/ada/libgnat/a-ztflio.adb2
-rw-r--r--gcc/ada/libgnat/a-ztgeau.adb2
-rw-r--r--gcc/ada/libgnat/a-ztgeau.ads2
-rw-r--r--gcc/ada/libgnat/a-ztinau.adb2
-rw-r--r--gcc/ada/libgnat/a-ztinau.ads2
-rw-r--r--gcc/ada/libgnat/a-ztinio.adb2
-rw-r--r--gcc/ada/libgnat/a-ztmoau.adb2
-rw-r--r--gcc/ada/libgnat/a-ztmoau.ads2
-rw-r--r--gcc/ada/libgnat/a-ztmoio.adb2
-rw-r--r--gcc/ada/libgnat/a-zttest.adb2
-rw-r--r--gcc/ada/libgnat/a-zzboio.adb2
-rw-r--r--gcc/ada/libgnat/g-allein.ads2
-rw-r--r--gcc/ada/libgnat/g-alleve.adb2
-rw-r--r--gcc/ada/libgnat/g-alleve.ads2
-rw-r--r--gcc/ada/libgnat/g-alleve__hard.adb2
-rw-r--r--gcc/ada/libgnat/g-alleve__hard.ads2
-rw-r--r--gcc/ada/libgnat/g-altcon.adb2
-rw-r--r--gcc/ada/libgnat/g-altcon.ads2
-rw-r--r--gcc/ada/libgnat/g-altive.ads2
-rw-r--r--gcc/ada/libgnat/g-alveop.adb2
-rw-r--r--gcc/ada/libgnat/g-alveop.ads2
-rw-r--r--gcc/ada/libgnat/g-alvety.ads2
-rw-r--r--gcc/ada/libgnat/g-alvevi.ads2
-rw-r--r--gcc/ada/libgnat/g-arrspl.adb2
-rw-r--r--gcc/ada/libgnat/g-arrspl.ads2
-rw-r--r--gcc/ada/libgnat/g-awk.adb2
-rw-r--r--gcc/ada/libgnat/g-awk.ads2
-rw-r--r--gcc/ada/libgnat/g-binenv.adb2
-rw-r--r--gcc/ada/libgnat/g-binenv.ads2
-rw-r--r--gcc/ada/libgnat/g-brapre.ads2
-rw-r--r--gcc/ada/libgnat/g-bubsor.adb2
-rw-r--r--gcc/ada/libgnat/g-bubsor.ads2
-rw-r--r--gcc/ada/libgnat/g-busora.adb2
-rw-r--r--gcc/ada/libgnat/g-busora.ads2
-rw-r--r--gcc/ada/libgnat/g-busorg.adb2
-rw-r--r--gcc/ada/libgnat/g-busorg.ads2
-rw-r--r--gcc/ada/libgnat/g-byorma.adb2
-rw-r--r--gcc/ada/libgnat/g-byorma.ads2
-rw-r--r--gcc/ada/libgnat/g-bytswa.adb8
-rw-r--r--gcc/ada/libgnat/g-bytswa.ads2
-rw-r--r--gcc/ada/libgnat/g-calend.adb11
-rw-r--r--gcc/ada/libgnat/g-calend.ads2
-rw-r--r--gcc/ada/libgnat/g-casuti.adb2
-rw-r--r--gcc/ada/libgnat/g-casuti.ads2
-rw-r--r--gcc/ada/libgnat/g-catiio.adb315
-rw-r--r--gcc/ada/libgnat/g-catiio.ads29
-rw-r--r--gcc/ada/libgnat/g-cgi.adb2
-rw-r--r--gcc/ada/libgnat/g-cgi.ads2
-rw-r--r--gcc/ada/libgnat/g-cgicoo.adb2
-rw-r--r--gcc/ada/libgnat/g-cgicoo.ads2
-rw-r--r--gcc/ada/libgnat/g-cgideb.adb2
-rw-r--r--gcc/ada/libgnat/g-cgideb.ads2
-rw-r--r--gcc/ada/libgnat/g-comlin.adb3
-rw-r--r--gcc/ada/libgnat/g-comlin.ads2
-rw-r--r--gcc/ada/libgnat/g-comver.adb2
-rw-r--r--gcc/ada/libgnat/g-comver.ads2
-rw-r--r--gcc/ada/libgnat/g-cppexc.adb2
-rw-r--r--gcc/ada/libgnat/g-cppexc.ads2
-rw-r--r--gcc/ada/libgnat/g-crc32.adb2
-rw-r--r--gcc/ada/libgnat/g-crc32.ads2
-rw-r--r--gcc/ada/libgnat/g-ctrl_c.adb2
-rw-r--r--gcc/ada/libgnat/g-ctrl_c.ads2
-rw-r--r--gcc/ada/libgnat/g-curexc.ads2
-rw-r--r--gcc/ada/libgnat/g-debpoo.adb3
-rw-r--r--gcc/ada/libgnat/g-debpoo.ads2
-rw-r--r--gcc/ada/libgnat/g-debuti.adb2
-rw-r--r--gcc/ada/libgnat/g-debuti.ads2
-rw-r--r--gcc/ada/libgnat/g-decstr.adb2
-rw-r--r--gcc/ada/libgnat/g-decstr.ads2
-rw-r--r--gcc/ada/libgnat/g-deutst.ads2
-rw-r--r--gcc/ada/libgnat/g-diopit.adb2
-rw-r--r--gcc/ada/libgnat/g-diopit.ads2
-rw-r--r--gcc/ada/libgnat/g-dirope.adb4
-rw-r--r--gcc/ada/libgnat/g-dirope.ads2
-rw-r--r--gcc/ada/libgnat/g-dynhta.adb2
-rw-r--r--gcc/ada/libgnat/g-dynhta.ads2
-rw-r--r--gcc/ada/libgnat/g-dyntab.adb2
-rw-r--r--gcc/ada/libgnat/g-dyntab.ads2
-rw-r--r--gcc/ada/libgnat/g-eacodu.adb2
-rw-r--r--gcc/ada/libgnat/g-encstr.adb2
-rw-r--r--gcc/ada/libgnat/g-encstr.ads2
-rw-r--r--gcc/ada/libgnat/g-enutst.ads2
-rw-r--r--gcc/ada/libgnat/g-excact.adb27
-rw-r--r--gcc/ada/libgnat/g-excact.ads7
-rw-r--r--gcc/ada/libgnat/g-except.ads2
-rw-r--r--gcc/ada/libgnat/g-exctra.adb2
-rw-r--r--gcc/ada/libgnat/g-exctra.ads2
-rw-r--r--gcc/ada/libgnat/g-expect.adb2
-rw-r--r--gcc/ada/libgnat/g-expect.ads2
-rw-r--r--gcc/ada/libgnat/g-exptty.adb8
-rw-r--r--gcc/ada/libgnat/g-exptty.ads8
-rw-r--r--gcc/ada/libgnat/g-flocon.ads2
-rw-r--r--gcc/ada/libgnat/g-forstr.adb2
-rw-r--r--gcc/ada/libgnat/g-forstr.ads2
-rw-r--r--gcc/ada/libgnat/g-graphs.adb2
-rw-r--r--gcc/ada/libgnat/g-graphs.ads2
-rw-r--r--gcc/ada/libgnat/g-heasor.adb2
-rw-r--r--gcc/ada/libgnat/g-heasor.ads2
-rw-r--r--gcc/ada/libgnat/g-hesora.adb2
-rw-r--r--gcc/ada/libgnat/g-hesora.ads2
-rw-r--r--gcc/ada/libgnat/g-hesorg.adb4
-rw-r--r--gcc/ada/libgnat/g-hesorg.ads2
-rw-r--r--gcc/ada/libgnat/g-htable.adb2
-rw-r--r--gcc/ada/libgnat/g-htable.ads2
-rw-r--r--gcc/ada/libgnat/g-io-put__vxworks.adb2
-rw-r--r--gcc/ada/libgnat/g-io.adb14
-rw-r--r--gcc/ada/libgnat/g-io.ads2
-rw-r--r--gcc/ada/libgnat/g-io_aux.adb2
-rw-r--r--gcc/ada/libgnat/g-io_aux.ads2
-rw-r--r--gcc/ada/libgnat/g-lists.adb2
-rw-r--r--gcc/ada/libgnat/g-lists.ads2
-rw-r--r--gcc/ada/libgnat/g-locfil.adb2
-rw-r--r--gcc/ada/libgnat/g-locfil.ads2
-rw-r--r--gcc/ada/libgnat/g-mbdira.adb2
-rw-r--r--gcc/ada/libgnat/g-mbdira.ads2
-rw-r--r--gcc/ada/libgnat/g-mbflra.adb2
-rw-r--r--gcc/ada/libgnat/g-mbflra.ads2
-rw-r--r--gcc/ada/libgnat/g-md5.adb2
-rw-r--r--gcc/ada/libgnat/g-md5.ads2
-rw-r--r--gcc/ada/libgnat/g-memdum.adb2
-rw-r--r--gcc/ada/libgnat/g-memdum.ads2
-rw-r--r--gcc/ada/libgnat/g-moreex.adb2
-rw-r--r--gcc/ada/libgnat/g-moreex.ads2
-rw-r--r--gcc/ada/libgnat/g-os_lib.adb2
-rw-r--r--gcc/ada/libgnat/g-os_lib.ads2
-rw-r--r--gcc/ada/libgnat/g-pehage.adb11
-rw-r--r--gcc/ada/libgnat/g-pehage.ads2
-rw-r--r--gcc/ada/libgnat/g-rannum.adb2
-rw-r--r--gcc/ada/libgnat/g-rannum.ads2
-rw-r--r--gcc/ada/libgnat/g-regexp.adb2
-rw-r--r--gcc/ada/libgnat/g-regexp.ads2
-rw-r--r--gcc/ada/libgnat/g-regist.adb2
-rw-r--r--gcc/ada/libgnat/g-regist.ads2
-rw-r--r--gcc/ada/libgnat/g-regpat.adb2
-rw-r--r--gcc/ada/libgnat/g-regpat.ads2
-rw-r--r--gcc/ada/libgnat/g-rewdat.adb2
-rw-r--r--gcc/ada/libgnat/g-rewdat.ads2
-rw-r--r--gcc/ada/libgnat/g-sechas.adb130
-rw-r--r--gcc/ada/libgnat/g-sechas.ads30
-rw-r--r--gcc/ada/libgnat/g-sehamd.adb2
-rw-r--r--gcc/ada/libgnat/g-sehamd.ads2
-rw-r--r--gcc/ada/libgnat/g-sehash.adb2
-rw-r--r--gcc/ada/libgnat/g-sehash.ads2
-rw-r--r--gcc/ada/libgnat/g-sercom.adb2
-rw-r--r--gcc/ada/libgnat/g-sercom.ads2
-rw-r--r--gcc/ada/libgnat/g-sercom__linux.adb2
-rw-r--r--gcc/ada/libgnat/g-sercom__mingw.adb2
-rw-r--r--gcc/ada/libgnat/g-sestin.ads2
-rw-r--r--gcc/ada/libgnat/g-sets.adb2
-rw-r--r--gcc/ada/libgnat/g-sets.ads2
-rw-r--r--gcc/ada/libgnat/g-sha1.adb2
-rw-r--r--gcc/ada/libgnat/g-sha1.ads2
-rw-r--r--gcc/ada/libgnat/g-sha224.ads2
-rw-r--r--gcc/ada/libgnat/g-sha256.ads2
-rw-r--r--gcc/ada/libgnat/g-sha384.ads2
-rw-r--r--gcc/ada/libgnat/g-sha512.ads2
-rw-r--r--gcc/ada/libgnat/g-shsh32.adb2
-rw-r--r--gcc/ada/libgnat/g-shsh32.ads2
-rw-r--r--gcc/ada/libgnat/g-shsh64.adb2
-rw-r--r--gcc/ada/libgnat/g-shsh64.ads2
-rw-r--r--gcc/ada/libgnat/g-shshco.adb5
-rw-r--r--gcc/ada/libgnat/g-shshco.ads2
-rw-r--r--gcc/ada/libgnat/g-soccon.ads2
-rw-r--r--gcc/ada/libgnat/g-socket.adb68
-rw-r--r--gcc/ada/libgnat/g-socket.ads2
-rw-r--r--gcc/ada/libgnat/g-socket__dummy.adb2
-rw-r--r--gcc/ada/libgnat/g-socket__dummy.ads2
-rw-r--r--gcc/ada/libgnat/g-socthi.adb26
-rw-r--r--gcc/ada/libgnat/g-socthi.ads10
-rw-r--r--gcc/ada/libgnat/g-socthi__dummy.adb2
-rw-r--r--gcc/ada/libgnat/g-socthi__dummy.ads2
-rw-r--r--gcc/ada/libgnat/g-socthi__mingw.adb2
-rw-r--r--gcc/ada/libgnat/g-socthi__mingw.ads2
-rw-r--r--gcc/ada/libgnat/g-socthi__vxworks.adb24
-rw-r--r--gcc/ada/libgnat/g-socthi__vxworks.ads10
-rw-r--r--gcc/ada/libgnat/g-soliop.ads2
-rw-r--r--gcc/ada/libgnat/g-soliop__lynxos.ads2
-rw-r--r--gcc/ada/libgnat/g-soliop__mingw.ads2
-rw-r--r--gcc/ada/libgnat/g-soliop__qnx.ads2
-rw-r--r--gcc/ada/libgnat/g-soliop__solaris.ads2
-rw-r--r--gcc/ada/libgnat/g-sothco.adb2
-rw-r--r--gcc/ada/libgnat/g-sothco.ads23
-rw-r--r--gcc/ada/libgnat/g-sothco__dummy.adb2
-rw-r--r--gcc/ada/libgnat/g-sothco__dummy.ads2
-rw-r--r--gcc/ada/libgnat/g-souinf.ads2
-rw-r--r--gcc/ada/libgnat/g-spchge.adb2
-rw-r--r--gcc/ada/libgnat/g-spchge.ads2
-rw-r--r--gcc/ada/libgnat/g-speche.adb2
-rw-r--r--gcc/ada/libgnat/g-speche.ads2
-rw-r--r--gcc/ada/libgnat/g-spipat.adb2
-rw-r--r--gcc/ada/libgnat/g-spipat.ads2
-rw-r--r--gcc/ada/libgnat/g-spitbo.adb2
-rw-r--r--gcc/ada/libgnat/g-spitbo.ads6
-rw-r--r--gcc/ada/libgnat/g-sptabo.ads2
-rw-r--r--gcc/ada/libgnat/g-sptain.ads2
-rw-r--r--gcc/ada/libgnat/g-sptavs.ads2
-rw-r--r--gcc/ada/libgnat/g-sse.ads2
-rw-r--r--gcc/ada/libgnat/g-ssvety.ads2
-rw-r--r--gcc/ada/libgnat/g-sthcso.adb2
-rw-r--r--gcc/ada/libgnat/g-stheme.adb2
-rw-r--r--gcc/ada/libgnat/g-strhas.ads2
-rw-r--r--gcc/ada/libgnat/g-string.adb2
-rw-r--r--gcc/ada/libgnat/g-string.ads2
-rw-r--r--gcc/ada/libgnat/g-strspl.ads2
-rw-r--r--gcc/ada/libgnat/g-stseme.adb2
-rw-r--r--gcc/ada/libgnat/g-stsifd__sockets.adb2
-rw-r--r--gcc/ada/libgnat/g-table.adb2
-rw-r--r--gcc/ada/libgnat/g-table.ads2
-rw-r--r--gcc/ada/libgnat/g-tasloc.adb2
-rw-r--r--gcc/ada/libgnat/g-tasloc.ads2
-rw-r--r--gcc/ada/libgnat/g-timsta.adb2
-rw-r--r--gcc/ada/libgnat/g-timsta.ads2
-rw-r--r--gcc/ada/libgnat/g-traceb.adb2
-rw-r--r--gcc/ada/libgnat/g-traceb.ads2
-rw-r--r--gcc/ada/libgnat/g-trasym.adb2
-rw-r--r--gcc/ada/libgnat/g-trasym.ads2
-rw-r--r--gcc/ada/libgnat/g-tty.adb2
-rw-r--r--gcc/ada/libgnat/g-tty.ads2
-rw-r--r--gcc/ada/libgnat/g-u3spch.adb2
-rw-r--r--gcc/ada/libgnat/g-u3spch.ads2
-rw-r--r--gcc/ada/libgnat/g-utf_32.adb2
-rw-r--r--gcc/ada/libgnat/g-utf_32.ads2
-rw-r--r--gcc/ada/libgnat/g-wispch.adb2
-rw-r--r--gcc/ada/libgnat/g-wispch.ads2
-rw-r--r--gcc/ada/libgnat/g-wistsp.ads2
-rw-r--r--gcc/ada/libgnat/g-zspche.adb2
-rw-r--r--gcc/ada/libgnat/g-zspche.ads2
-rw-r--r--gcc/ada/libgnat/g-zstspl.ads2
-rw-r--r--gcc/ada/libgnat/gnat.ads2
-rw-r--r--gcc/ada/libgnat/i-c.adb2
-rw-r--r--gcc/ada/libgnat/i-c.ads8
-rw-r--r--gcc/ada/libgnat/i-cexten.ads6
-rw-r--r--gcc/ada/libgnat/i-cobol.adb7
-rw-r--r--gcc/ada/libgnat/i-cobol.ads2
-rw-r--r--gcc/ada/libgnat/i-cpoint.adb2
-rw-r--r--gcc/ada/libgnat/i-cpoint.ads2
-rw-r--r--gcc/ada/libgnat/i-cstrea.adb2
-rw-r--r--gcc/ada/libgnat/i-cstrea.ads2
-rw-r--r--gcc/ada/libgnat/i-cstrin.adb2
-rw-r--r--gcc/ada/libgnat/i-cstrin.ads2
-rw-r--r--gcc/ada/libgnat/i-fortra.adb2
-rw-r--r--gcc/ada/libgnat/i-pacdec.adb2
-rw-r--r--gcc/ada/libgnat/i-pacdec.ads2
-rw-r--r--gcc/ada/libgnat/i-vxwoio.adb2
-rw-r--r--gcc/ada/libgnat/i-vxwoio.ads2
-rw-r--r--gcc/ada/libgnat/i-vxwork.ads2
-rw-r--r--gcc/ada/libgnat/i-vxwork__x86.ads2
-rw-r--r--gcc/ada/libgnat/interfac.ads2
-rw-r--r--gcc/ada/libgnat/libada.gpr77
-rw-r--r--gcc/ada/libgnat/libgnat.gpr69
-rw-r--r--gcc/ada/libgnat/libgnat_common.gpr19
-rw-r--r--gcc/ada/libgnat/memtrack.adb2
-rw-r--r--gcc/ada/libgnat/s-addima.adb2
-rw-r--r--gcc/ada/libgnat/s-addima.ads2
-rw-r--r--gcc/ada/libgnat/s-addope.adb2
-rw-r--r--gcc/ada/libgnat/s-addope.ads2
-rw-r--r--gcc/ada/libgnat/s-aoinar.adb (renamed from gcc/ada/libgnat/s-atopar.adb)100
-rw-r--r--gcc/ada/libgnat/s-aoinar.ads (renamed from gcc/ada/libgnat/s-atopar.ads)15
-rw-r--r--gcc/ada/libgnat/s-aomoar.adb215
-rw-r--r--gcc/ada/libgnat/s-aomoar.ads66
-rw-r--r--gcc/ada/libgnat/s-aotase.adb2
-rw-r--r--gcc/ada/libgnat/s-aotase.ads7
-rw-r--r--gcc/ada/libgnat/s-arit64.adb2
-rw-r--r--gcc/ada/libgnat/s-arit64.ads2
-rw-r--r--gcc/ada/libgnat/s-assert.adb2
-rw-r--r--gcc/ada/libgnat/s-assert.ads2
-rw-r--r--gcc/ada/libgnat/s-atacco.adb2
-rw-r--r--gcc/ada/libgnat/s-atacco.ads2
-rw-r--r--gcc/ada/libgnat/s-atocou.adb2
-rw-r--r--gcc/ada/libgnat/s-atocou.ads2
-rw-r--r--gcc/ada/libgnat/s-atocou__builtin.adb2
-rw-r--r--gcc/ada/libgnat/s-atocou__x86.adb2
-rw-r--r--gcc/ada/libgnat/s-atoope.ads6
-rw-r--r--gcc/ada/libgnat/s-atopex.adb9
-rw-r--r--gcc/ada/libgnat/s-atopex.ads9
-rw-r--r--gcc/ada/libgnat/s-atopri.adb2
-rw-r--r--gcc/ada/libgnat/s-atopri.ads2
-rw-r--r--gcc/ada/libgnat/s-auxdec.adb2
-rw-r--r--gcc/ada/libgnat/s-auxdec.ads4
-rw-r--r--gcc/ada/libgnat/s-bignum.adb143
-rw-r--r--gcc/ada/libgnat/s-bignum.ads8
-rw-r--r--gcc/ada/libgnat/s-bitfie.ads2
-rw-r--r--gcc/ada/libgnat/s-bitops.adb2
-rw-r--r--gcc/ada/libgnat/s-bitops.ads2
-rw-r--r--gcc/ada/libgnat/s-bituti.adb2
-rw-r--r--gcc/ada/libgnat/s-bituti.ads2
-rw-r--r--gcc/ada/libgnat/s-boarop.ads2
-rw-r--r--gcc/ada/libgnat/s-boustr.adb2
-rw-r--r--gcc/ada/libgnat/s-boustr.ads2
-rw-r--r--gcc/ada/libgnat/s-bytswa.ads2
-rw-r--r--gcc/ada/libgnat/s-carsi8.adb2
-rw-r--r--gcc/ada/libgnat/s-carsi8.ads2
-rw-r--r--gcc/ada/libgnat/s-carun8.adb2
-rw-r--r--gcc/ada/libgnat/s-carun8.ads2
-rw-r--r--gcc/ada/libgnat/s-casi16.adb2
-rw-r--r--gcc/ada/libgnat/s-casi16.ads2
-rw-r--r--gcc/ada/libgnat/s-casi32.adb2
-rw-r--r--gcc/ada/libgnat/s-casi32.ads2
-rw-r--r--gcc/ada/libgnat/s-casi64.adb2
-rw-r--r--gcc/ada/libgnat/s-casi64.ads2
-rw-r--r--gcc/ada/libgnat/s-casuti.adb2
-rw-r--r--gcc/ada/libgnat/s-casuti.ads2
-rw-r--r--gcc/ada/libgnat/s-caun16.adb2
-rw-r--r--gcc/ada/libgnat/s-caun16.ads2
-rw-r--r--gcc/ada/libgnat/s-caun32.adb2
-rw-r--r--gcc/ada/libgnat/s-caun32.ads2
-rw-r--r--gcc/ada/libgnat/s-caun64.adb2
-rw-r--r--gcc/ada/libgnat/s-caun64.ads2
-rw-r--r--gcc/ada/libgnat/s-chepoo.ads2
-rw-r--r--gcc/ada/libgnat/s-commun.adb2
-rw-r--r--gcc/ada/libgnat/s-commun.ads2
-rw-r--r--gcc/ada/libgnat/s-conca2.adb2
-rw-r--r--gcc/ada/libgnat/s-conca2.ads2
-rw-r--r--gcc/ada/libgnat/s-conca3.adb2
-rw-r--r--gcc/ada/libgnat/s-conca3.ads2
-rw-r--r--gcc/ada/libgnat/s-conca4.adb2
-rw-r--r--gcc/ada/libgnat/s-conca4.ads2
-rw-r--r--gcc/ada/libgnat/s-conca5.adb2
-rw-r--r--gcc/ada/libgnat/s-conca5.ads2
-rw-r--r--gcc/ada/libgnat/s-conca6.adb2
-rw-r--r--gcc/ada/libgnat/s-conca6.ads2
-rw-r--r--gcc/ada/libgnat/s-conca7.adb2
-rw-r--r--gcc/ada/libgnat/s-conca7.ads2
-rw-r--r--gcc/ada/libgnat/s-conca8.adb2
-rw-r--r--gcc/ada/libgnat/s-conca8.ads2
-rw-r--r--gcc/ada/libgnat/s-conca9.adb2
-rw-r--r--gcc/ada/libgnat/s-conca9.ads2
-rw-r--r--gcc/ada/libgnat/s-crc32.adb2
-rw-r--r--gcc/ada/libgnat/s-crc32.ads2
-rw-r--r--gcc/ada/libgnat/s-crtl.ads2
-rw-r--r--gcc/ada/libgnat/s-dfmkio.ads2
-rw-r--r--gcc/ada/libgnat/s-dfmopr.ads2
-rw-r--r--gcc/ada/libgnat/s-dgmgop.ads2
-rw-r--r--gcc/ada/libgnat/s-diflio.adb2
-rw-r--r--gcc/ada/libgnat/s-diflio.ads2
-rw-r--r--gcc/ada/libgnat/s-diflmk.ads2
-rw-r--r--gcc/ada/libgnat/s-digemk.ads2
-rw-r--r--gcc/ada/libgnat/s-diinio.adb2
-rw-r--r--gcc/ada/libgnat/s-diinio.ads2
-rw-r--r--gcc/ada/libgnat/s-dilomk.ads2
-rw-r--r--gcc/ada/libgnat/s-dim.ads2
-rw-r--r--gcc/ada/libgnat/s-dimkio.ads2
-rw-r--r--gcc/ada/libgnat/s-dimmks.ads2
-rw-r--r--gcc/ada/libgnat/s-direio.adb2
-rw-r--r--gcc/ada/libgnat/s-direio.ads2
-rw-r--r--gcc/ada/libgnat/s-dlmkio.ads2
-rw-r--r--gcc/ada/libgnat/s-dlmopr.ads2
-rw-r--r--gcc/ada/libgnat/s-dmotpr.ads2
-rw-r--r--gcc/ada/libgnat/s-dsaser.ads2
-rw-r--r--gcc/ada/libgnat/s-dwalin.adb19
-rw-r--r--gcc/ada/libgnat/s-dwalin.ads4
-rw-r--r--gcc/ada/libgnat/s-elaall.adb2
-rw-r--r--gcc/ada/libgnat/s-elaall.ads2
-rw-r--r--gcc/ada/libgnat/s-excdeb.adb2
-rw-r--r--gcc/ada/libgnat/s-excdeb.ads2
-rw-r--r--gcc/ada/libgnat/s-except.adb2
-rw-r--r--gcc/ada/libgnat/s-except.ads2
-rw-r--r--gcc/ada/libgnat/s-excmac__arm.adb2
-rw-r--r--gcc/ada/libgnat/s-excmac__arm.ads2
-rw-r--r--gcc/ada/libgnat/s-excmac__gcc.adb2
-rw-r--r--gcc/ada/libgnat/s-excmac__gcc.ads2
-rw-r--r--gcc/ada/libgnat/s-exctab.adb2
-rw-r--r--gcc/ada/libgnat/s-exctab.ads2
-rw-r--r--gcc/ada/libgnat/s-exctra.adb2
-rw-r--r--gcc/ada/libgnat/s-exctra.ads2
-rw-r--r--gcc/ada/libgnat/s-exnint.adb2
-rw-r--r--gcc/ada/libgnat/s-exnint.ads2
-rw-r--r--gcc/ada/libgnat/s-exnllf.adb2
-rw-r--r--gcc/ada/libgnat/s-exnllf.ads2
-rw-r--r--gcc/ada/libgnat/s-exnlli.adb2
-rw-r--r--gcc/ada/libgnat/s-exnlli.ads2
-rw-r--r--gcc/ada/libgnat/s-expint.adb2
-rw-r--r--gcc/ada/libgnat/s-expint.ads2
-rw-r--r--gcc/ada/libgnat/s-explli.adb2
-rw-r--r--gcc/ada/libgnat/s-explli.ads2
-rw-r--r--gcc/ada/libgnat/s-expllu.adb2
-rw-r--r--gcc/ada/libgnat/s-expllu.ads2
-rw-r--r--gcc/ada/libgnat/s-expmod.adb2
-rw-r--r--gcc/ada/libgnat/s-expmod.ads2
-rw-r--r--gcc/ada/libgnat/s-expuns.adb2
-rw-r--r--gcc/ada/libgnat/s-expuns.ads2
-rw-r--r--gcc/ada/libgnat/s-fatflt.ads2
-rw-r--r--gcc/ada/libgnat/s-fatgen.adb6
-rw-r--r--gcc/ada/libgnat/s-fatgen.ads2
-rw-r--r--gcc/ada/libgnat/s-fatlfl.ads2
-rw-r--r--gcc/ada/libgnat/s-fatllf.ads2
-rw-r--r--gcc/ada/libgnat/s-fatsfl.ads2
-rw-r--r--gcc/ada/libgnat/s-ficobl.ads2
-rw-r--r--gcc/ada/libgnat/s-filatt.ads2
-rw-r--r--gcc/ada/libgnat/s-fileio.adb2
-rw-r--r--gcc/ada/libgnat/s-fileio.ads2
-rw-r--r--gcc/ada/libgnat/s-finmas.adb2
-rw-r--r--gcc/ada/libgnat/s-finmas.ads2
-rw-r--r--gcc/ada/libgnat/s-finroo.adb2
-rw-r--r--gcc/ada/libgnat/s-finroo.ads2
-rw-r--r--gcc/ada/libgnat/s-flocon.adb2
-rw-r--r--gcc/ada/libgnat/s-flocon.ads2
-rw-r--r--gcc/ada/libgnat/s-flocon__none.adb2
-rw-r--r--gcc/ada/libgnat/s-fore.adb2
-rw-r--r--gcc/ada/libgnat/s-fore.ads2
-rw-r--r--gcc/ada/libgnat/s-gearop.adb9
-rw-r--r--gcc/ada/libgnat/s-gearop.ads2
-rw-r--r--gcc/ada/libgnat/s-genbig.adb557
-rw-r--r--gcc/ada/libgnat/s-genbig.ads106
-rw-r--r--gcc/ada/libgnat/s-geveop.adb2
-rw-r--r--gcc/ada/libgnat/s-geveop.ads2
-rw-r--r--gcc/ada/libgnat/s-gloloc.adb2
-rw-r--r--gcc/ada/libgnat/s-gloloc.ads2
-rw-r--r--gcc/ada/libgnat/s-gloloc__mingw.adb2
-rw-r--r--gcc/ada/libgnat/s-htable.adb2
-rw-r--r--gcc/ada/libgnat/s-htable.ads2
-rw-r--r--gcc/ada/libgnat/s-imenne.adb2
-rw-r--r--gcc/ada/libgnat/s-imenne.ads2
-rw-r--r--gcc/ada/libgnat/s-imgbiu.adb2
-rw-r--r--gcc/ada/libgnat/s-imgbiu.ads2
-rw-r--r--gcc/ada/libgnat/s-imgboo.adb2
-rw-r--r--gcc/ada/libgnat/s-imgboo.ads2
-rw-r--r--gcc/ada/libgnat/s-imgcha.adb2
-rw-r--r--gcc/ada/libgnat/s-imgcha.ads2
-rw-r--r--gcc/ada/libgnat/s-imgdec.adb2
-rw-r--r--gcc/ada/libgnat/s-imgdec.ads2
-rw-r--r--gcc/ada/libgnat/s-imgenu.adb2
-rw-r--r--gcc/ada/libgnat/s-imgenu.ads2
-rw-r--r--gcc/ada/libgnat/s-imgint.adb2
-rw-r--r--gcc/ada/libgnat/s-imgint.ads2
-rw-r--r--gcc/ada/libgnat/s-imgllb.adb2
-rw-r--r--gcc/ada/libgnat/s-imgllb.ads2
-rw-r--r--gcc/ada/libgnat/s-imglld.adb2
-rw-r--r--gcc/ada/libgnat/s-imglld.ads2
-rw-r--r--gcc/ada/libgnat/s-imglli.adb2
-rw-r--r--gcc/ada/libgnat/s-imglli.ads2
-rw-r--r--gcc/ada/libgnat/s-imgllu.adb2
-rw-r--r--gcc/ada/libgnat/s-imgllu.ads2
-rw-r--r--gcc/ada/libgnat/s-imgllw.adb2
-rw-r--r--gcc/ada/libgnat/s-imgllw.ads2
-rw-r--r--gcc/ada/libgnat/s-imgrea.adb18
-rw-r--r--gcc/ada/libgnat/s-imgrea.ads7
-rw-r--r--gcc/ada/libgnat/s-imguns.adb2
-rw-r--r--gcc/ada/libgnat/s-imguns.ads2
-rw-r--r--gcc/ada/libgnat/s-imgwch.adb2
-rw-r--r--gcc/ada/libgnat/s-imgwch.ads2
-rw-r--r--gcc/ada/libgnat/s-imgwiu.adb2
-rw-r--r--gcc/ada/libgnat/s-imgwiu.ads2
-rw-r--r--gcc/ada/libgnat/s-io.adb10
-rw-r--r--gcc/ada/libgnat/s-io.ads2
-rw-r--r--gcc/ada/libgnat/s-llflex.ads2
-rw-r--r--gcc/ada/libgnat/s-maccod.ads2
-rw-r--r--gcc/ada/libgnat/s-mantis.adb2
-rw-r--r--gcc/ada/libgnat/s-mantis.ads2
-rw-r--r--gcc/ada/libgnat/s-mastop.adb2
-rw-r--r--gcc/ada/libgnat/s-mastop.ads2
-rw-r--r--gcc/ada/libgnat/s-memcop.ads2
-rw-r--r--gcc/ada/libgnat/s-memory.adb2
-rw-r--r--gcc/ada/libgnat/s-memory.ads2
-rw-r--r--gcc/ada/libgnat/s-mmap.adb2
-rw-r--r--gcc/ada/libgnat/s-mmap.ads4
-rw-r--r--gcc/ada/libgnat/s-mmauni__long.ads2
-rw-r--r--gcc/ada/libgnat/s-mmosin__mingw.adb2
-rw-r--r--gcc/ada/libgnat/s-mmosin__mingw.ads2
-rw-r--r--gcc/ada/libgnat/s-mmosin__unix.adb2
-rw-r--r--gcc/ada/libgnat/s-mmosin__unix.ads2
-rw-r--r--gcc/ada/libgnat/s-multip.adb2
-rw-r--r--gcc/ada/libgnat/s-objrea.adb2
-rw-r--r--gcc/ada/libgnat/s-objrea.ads2
-rw-r--r--gcc/ada/libgnat/s-optide.adb2
-rw-r--r--gcc/ada/libgnat/s-os_lib.adb273
-rw-r--r--gcc/ada/libgnat/s-os_lib.ads2
-rw-r--r--gcc/ada/libgnat/s-osprim.ads2
-rw-r--r--gcc/ada/libgnat/s-osprim__darwin.adb2
-rw-r--r--gcc/ada/libgnat/s-osprim__lynxos.ads2
-rw-r--r--gcc/ada/libgnat/s-osprim__mingw.adb2
-rw-r--r--gcc/ada/libgnat/s-osprim__posix.adb2
-rw-r--r--gcc/ada/libgnat/s-osprim__posix2008.adb2
-rw-r--r--gcc/ada/libgnat/s-osprim__rtems.adb2
-rw-r--r--gcc/ada/libgnat/s-osprim__solaris.adb2
-rw-r--r--gcc/ada/libgnat/s-osprim__unix.adb2
-rw-r--r--gcc/ada/libgnat/s-osprim__vxworks.adb2
-rw-r--r--gcc/ada/libgnat/s-osprim__x32.adb2
-rw-r--r--gcc/ada/libgnat/s-osvers__vxworks-653.ads2
-rw-r--r--gcc/ada/libgnat/s-pack03.adb2
-rw-r--r--gcc/ada/libgnat/s-pack03.ads2
-rw-r--r--gcc/ada/libgnat/s-pack05.adb2
-rw-r--r--gcc/ada/libgnat/s-pack05.ads2
-rw-r--r--gcc/ada/libgnat/s-pack06.adb2
-rw-r--r--gcc/ada/libgnat/s-pack06.ads2
-rw-r--r--gcc/ada/libgnat/s-pack07.adb2
-rw-r--r--gcc/ada/libgnat/s-pack07.ads2
-rw-r--r--gcc/ada/libgnat/s-pack09.adb2
-rw-r--r--gcc/ada/libgnat/s-pack09.ads2
-rw-r--r--gcc/ada/libgnat/s-pack10.adb2
-rw-r--r--gcc/ada/libgnat/s-pack10.ads2
-rw-r--r--gcc/ada/libgnat/s-pack11.adb2
-rw-r--r--gcc/ada/libgnat/s-pack11.ads2
-rw-r--r--gcc/ada/libgnat/s-pack12.adb2
-rw-r--r--gcc/ada/libgnat/s-pack12.ads2
-rw-r--r--gcc/ada/libgnat/s-pack13.adb2
-rw-r--r--gcc/ada/libgnat/s-pack13.ads2
-rw-r--r--gcc/ada/libgnat/s-pack14.adb2
-rw-r--r--gcc/ada/libgnat/s-pack14.ads2
-rw-r--r--gcc/ada/libgnat/s-pack15.adb2
-rw-r--r--gcc/ada/libgnat/s-pack15.ads2
-rw-r--r--gcc/ada/libgnat/s-pack17.adb2
-rw-r--r--gcc/ada/libgnat/s-pack17.ads2
-rw-r--r--gcc/ada/libgnat/s-pack18.adb2
-rw-r--r--gcc/ada/libgnat/s-pack18.ads2
-rw-r--r--gcc/ada/libgnat/s-pack19.adb2
-rw-r--r--gcc/ada/libgnat/s-pack19.ads2
-rw-r--r--gcc/ada/libgnat/s-pack20.adb2
-rw-r--r--gcc/ada/libgnat/s-pack20.ads2
-rw-r--r--gcc/ada/libgnat/s-pack21.adb2
-rw-r--r--gcc/ada/libgnat/s-pack21.ads2
-rw-r--r--gcc/ada/libgnat/s-pack22.adb2
-rw-r--r--gcc/ada/libgnat/s-pack22.ads2
-rw-r--r--gcc/ada/libgnat/s-pack23.adb2
-rw-r--r--gcc/ada/libgnat/s-pack23.ads2
-rw-r--r--gcc/ada/libgnat/s-pack24.adb2
-rw-r--r--gcc/ada/libgnat/s-pack24.ads2
-rw-r--r--gcc/ada/libgnat/s-pack25.adb2
-rw-r--r--gcc/ada/libgnat/s-pack25.ads2
-rw-r--r--gcc/ada/libgnat/s-pack26.adb2
-rw-r--r--gcc/ada/libgnat/s-pack26.ads2
-rw-r--r--gcc/ada/libgnat/s-pack27.adb2
-rw-r--r--gcc/ada/libgnat/s-pack27.ads2
-rw-r--r--gcc/ada/libgnat/s-pack28.adb2
-rw-r--r--gcc/ada/libgnat/s-pack28.ads2
-rw-r--r--gcc/ada/libgnat/s-pack29.adb2
-rw-r--r--gcc/ada/libgnat/s-pack29.ads2
-rw-r--r--gcc/ada/libgnat/s-pack30.adb2
-rw-r--r--gcc/ada/libgnat/s-pack30.ads2
-rw-r--r--gcc/ada/libgnat/s-pack31.adb2
-rw-r--r--gcc/ada/libgnat/s-pack31.ads2
-rw-r--r--gcc/ada/libgnat/s-pack33.adb2
-rw-r--r--gcc/ada/libgnat/s-pack33.ads2
-rw-r--r--gcc/ada/libgnat/s-pack34.adb2
-rw-r--r--gcc/ada/libgnat/s-pack34.ads2
-rw-r--r--gcc/ada/libgnat/s-pack35.adb2
-rw-r--r--gcc/ada/libgnat/s-pack35.ads2
-rw-r--r--gcc/ada/libgnat/s-pack36.adb2
-rw-r--r--gcc/ada/libgnat/s-pack36.ads2
-rw-r--r--gcc/ada/libgnat/s-pack37.adb2
-rw-r--r--gcc/ada/libgnat/s-pack37.ads2
-rw-r--r--gcc/ada/libgnat/s-pack38.adb2
-rw-r--r--gcc/ada/libgnat/s-pack38.ads2
-rw-r--r--gcc/ada/libgnat/s-pack39.adb2
-rw-r--r--gcc/ada/libgnat/s-pack39.ads2
-rw-r--r--gcc/ada/libgnat/s-pack40.adb2
-rw-r--r--gcc/ada/libgnat/s-pack40.ads2
-rw-r--r--gcc/ada/libgnat/s-pack41.adb2
-rw-r--r--gcc/ada/libgnat/s-pack41.ads2
-rw-r--r--gcc/ada/libgnat/s-pack42.adb2
-rw-r--r--gcc/ada/libgnat/s-pack42.ads2
-rw-r--r--gcc/ada/libgnat/s-pack43.adb2
-rw-r--r--gcc/ada/libgnat/s-pack43.ads2
-rw-r--r--gcc/ada/libgnat/s-pack44.adb2
-rw-r--r--gcc/ada/libgnat/s-pack44.ads2
-rw-r--r--gcc/ada/libgnat/s-pack45.adb2
-rw-r--r--gcc/ada/libgnat/s-pack45.ads2
-rw-r--r--gcc/ada/libgnat/s-pack46.adb2
-rw-r--r--gcc/ada/libgnat/s-pack46.ads2
-rw-r--r--gcc/ada/libgnat/s-pack47.adb2
-rw-r--r--gcc/ada/libgnat/s-pack47.ads2
-rw-r--r--gcc/ada/libgnat/s-pack48.adb2
-rw-r--r--gcc/ada/libgnat/s-pack48.ads2
-rw-r--r--gcc/ada/libgnat/s-pack49.adb2
-rw-r--r--gcc/ada/libgnat/s-pack49.ads2
-rw-r--r--gcc/ada/libgnat/s-pack50.adb2
-rw-r--r--gcc/ada/libgnat/s-pack50.ads2
-rw-r--r--gcc/ada/libgnat/s-pack51.adb2
-rw-r--r--gcc/ada/libgnat/s-pack51.ads2
-rw-r--r--gcc/ada/libgnat/s-pack52.adb2
-rw-r--r--gcc/ada/libgnat/s-pack52.ads2
-rw-r--r--gcc/ada/libgnat/s-pack53.adb2
-rw-r--r--gcc/ada/libgnat/s-pack53.ads2
-rw-r--r--gcc/ada/libgnat/s-pack54.adb2
-rw-r--r--gcc/ada/libgnat/s-pack54.ads2
-rw-r--r--gcc/ada/libgnat/s-pack55.adb2
-rw-r--r--gcc/ada/libgnat/s-pack55.ads2
-rw-r--r--gcc/ada/libgnat/s-pack56.adb2
-rw-r--r--gcc/ada/libgnat/s-pack56.ads2
-rw-r--r--gcc/ada/libgnat/s-pack57.adb2
-rw-r--r--gcc/ada/libgnat/s-pack57.ads2
-rw-r--r--gcc/ada/libgnat/s-pack58.adb2
-rw-r--r--gcc/ada/libgnat/s-pack58.ads2
-rw-r--r--gcc/ada/libgnat/s-pack59.adb2
-rw-r--r--gcc/ada/libgnat/s-pack59.ads2
-rw-r--r--gcc/ada/libgnat/s-pack60.adb2
-rw-r--r--gcc/ada/libgnat/s-pack60.ads2
-rw-r--r--gcc/ada/libgnat/s-pack61.adb2
-rw-r--r--gcc/ada/libgnat/s-pack61.ads2
-rw-r--r--gcc/ada/libgnat/s-pack62.adb2
-rw-r--r--gcc/ada/libgnat/s-pack62.ads2
-rw-r--r--gcc/ada/libgnat/s-pack63.adb2
-rw-r--r--gcc/ada/libgnat/s-pack63.ads2
-rw-r--r--gcc/ada/libgnat/s-parame.adb2
-rw-r--r--gcc/ada/libgnat/s-parame.ads17
-rw-r--r--gcc/ada/libgnat/s-parame__ae653.ads17
-rw-r--r--gcc/ada/libgnat/s-parame__hpux.ads17
-rw-r--r--gcc/ada/libgnat/s-parame__rtems.adb2
-rw-r--r--gcc/ada/libgnat/s-parame__vxworks.adb2
-rw-r--r--gcc/ada/libgnat/s-parame__vxworks.ads15
-rw-r--r--gcc/ada/libgnat/s-parint.adb2
-rw-r--r--gcc/ada/libgnat/s-parint.ads2
-rw-r--r--gcc/ada/libgnat/s-pooglo.adb2
-rw-r--r--gcc/ada/libgnat/s-pooglo.ads2
-rw-r--r--gcc/ada/libgnat/s-pooloc.adb2
-rw-r--r--gcc/ada/libgnat/s-pooloc.ads2
-rw-r--r--gcc/ada/libgnat/s-poosiz.adb2
-rw-r--r--gcc/ada/libgnat/s-poosiz.ads2
-rw-r--r--gcc/ada/libgnat/s-powtab.ads2
-rw-r--r--gcc/ada/libgnat/s-purexc.ads2
-rw-r--r--gcc/ada/libgnat/s-putaim.adb51
-rw-r--r--gcc/ada/libgnat/s-putaim.ads (renamed from gcc/ada/libgnat/a-numaux__x86.ads)56
-rw-r--r--gcc/ada/libgnat/s-putima.adb260
-rw-r--r--gcc/ada/libgnat/s-putima.ads102
-rw-r--r--gcc/ada/libgnat/s-rannum.adb29
-rw-r--r--gcc/ada/libgnat/s-rannum.ads9
-rw-r--r--gcc/ada/libgnat/s-ransee.adb2
-rw-r--r--gcc/ada/libgnat/s-ransee.ads2
-rw-r--r--gcc/ada/libgnat/s-regexp.adb2
-rw-r--r--gcc/ada/libgnat/s-regexp.ads8
-rw-r--r--gcc/ada/libgnat/s-regpat.adb33
-rw-r--r--gcc/ada/libgnat/s-regpat.ads2
-rw-r--r--gcc/ada/libgnat/s-resfil.adb2
-rw-r--r--gcc/ada/libgnat/s-resfil.ads2
-rw-r--r--gcc/ada/libgnat/s-restri.adb2
-rw-r--r--gcc/ada/libgnat/s-restri.ads2
-rw-r--r--gcc/ada/libgnat/s-rident.ads81
-rw-r--r--gcc/ada/libgnat/s-rpc.adb2
-rw-r--r--gcc/ada/libgnat/s-rpc.ads2
-rw-r--r--gcc/ada/libgnat/s-scaval.adb2
-rw-r--r--gcc/ada/libgnat/s-scaval.ads2
-rw-r--r--gcc/ada/libgnat/s-secsta.adb6
-rw-r--r--gcc/ada/libgnat/s-secsta.ads21
-rw-r--r--gcc/ada/libgnat/s-sequio.adb2
-rw-r--r--gcc/ada/libgnat/s-sequio.ads2
-rw-r--r--gcc/ada/libgnat/s-shabig.ads80
-rw-r--r--gcc/ada/libgnat/s-shasto.adb2
-rw-r--r--gcc/ada/libgnat/s-shasto.ads2
-rw-r--r--gcc/ada/libgnat/s-soflin.adb2
-rw-r--r--gcc/ada/libgnat/s-soflin.ads2
-rw-r--r--gcc/ada/libgnat/s-soliin.adb2
-rw-r--r--gcc/ada/libgnat/s-soliin.ads2
-rw-r--r--gcc/ada/libgnat/s-sopco3.adb2
-rw-r--r--gcc/ada/libgnat/s-sopco3.ads2
-rw-r--r--gcc/ada/libgnat/s-sopco4.adb2
-rw-r--r--gcc/ada/libgnat/s-sopco4.ads2
-rw-r--r--gcc/ada/libgnat/s-sopco5.adb2
-rw-r--r--gcc/ada/libgnat/s-sopco5.ads2
-rw-r--r--gcc/ada/libgnat/s-spsufi.adb2
-rw-r--r--gcc/ada/libgnat/s-spsufi.ads2
-rw-r--r--gcc/ada/libgnat/s-stache.adb2
-rw-r--r--gcc/ada/libgnat/s-stache.ads2
-rw-r--r--gcc/ada/libgnat/s-stalib.adb2
-rw-r--r--gcc/ada/libgnat/s-stalib.ads3
-rw-r--r--gcc/ada/libgnat/s-statxd.adb (renamed from gcc/ada/libgnat/s-stratt__xdr.adb)233
-rw-r--r--gcc/ada/libgnat/s-statxd.ads117
-rw-r--r--gcc/ada/libgnat/s-stausa.adb2
-rw-r--r--gcc/ada/libgnat/s-stausa.ads2
-rw-r--r--gcc/ada/libgnat/s-stchop.adb2
-rw-r--r--gcc/ada/libgnat/s-stchop.ads2
-rw-r--r--gcc/ada/libgnat/s-stchop__limit.ads2
-rw-r--r--gcc/ada/libgnat/s-stchop__rtems.adb2
-rw-r--r--gcc/ada/libgnat/s-stchop__vxworks.adb2
-rw-r--r--gcc/ada/libgnat/s-stoele.adb2
-rw-r--r--gcc/ada/libgnat/s-stoele.ads2
-rw-r--r--gcc/ada/libgnat/s-stopoo.adb2
-rw-r--r--gcc/ada/libgnat/s-stopoo.ads8
-rw-r--r--gcc/ada/libgnat/s-stposu.adb17
-rw-r--r--gcc/ada/libgnat/s-stposu.ads4
-rw-r--r--gcc/ada/libgnat/s-stratt.adb342
-rw-r--r--gcc/ada/libgnat/s-stratt.ads19
-rw-r--r--gcc/ada/libgnat/s-strcom.adb2
-rw-r--r--gcc/ada/libgnat/s-strcom.ads2
-rw-r--r--gcc/ada/libgnat/s-strhas.adb2
-rw-r--r--gcc/ada/libgnat/s-strhas.ads2
-rw-r--r--gcc/ada/libgnat/s-string.adb2
-rw-r--r--gcc/ada/libgnat/s-string.ads2
-rw-r--r--gcc/ada/libgnat/s-strops.adb2
-rw-r--r--gcc/ada/libgnat/s-strops.ads2
-rw-r--r--gcc/ada/libgnat/s-ststop.adb29
-rw-r--r--gcc/ada/libgnat/s-ststop.ads8
-rw-r--r--gcc/ada/libgnat/s-tasloc.adb2
-rw-r--r--gcc/ada/libgnat/s-tasloc.ads2
-rw-r--r--gcc/ada/libgnat/s-thread.ads2
-rw-r--r--gcc/ada/libgnat/s-thread__ae653.adb57
-rw-r--r--gcc/ada/libgnat/s-traceb.adb2
-rw-r--r--gcc/ada/libgnat/s-traceb.ads2
-rw-r--r--gcc/ada/libgnat/s-traceb__hpux.adb2
-rw-r--r--gcc/ada/libgnat/s-traceb__mastop.adb2
-rw-r--r--gcc/ada/libgnat/s-traent.adb2
-rw-r--r--gcc/ada/libgnat/s-traent.ads2
-rw-r--r--gcc/ada/libgnat/s-trasym.adb2
-rw-r--r--gcc/ada/libgnat/s-trasym.ads2
-rw-r--r--gcc/ada/libgnat/s-trasym__dwarf.adb4
-rw-r--r--gcc/ada/libgnat/s-tsmona.adb2
-rw-r--r--gcc/ada/libgnat/s-tsmona__linux.adb2
-rw-r--r--gcc/ada/libgnat/s-tsmona__mingw.adb2
-rw-r--r--gcc/ada/libgnat/s-unstyp.ads22
-rw-r--r--gcc/ada/libgnat/s-utf_32.adb6229
-rw-r--r--gcc/ada/libgnat/s-utf_32.ads19
-rw-r--r--gcc/ada/libgnat/s-valboo.adb2
-rw-r--r--gcc/ada/libgnat/s-valboo.ads2
-rw-r--r--gcc/ada/libgnat/s-valcha.adb2
-rw-r--r--gcc/ada/libgnat/s-valcha.ads2
-rw-r--r--gcc/ada/libgnat/s-valdec.adb2
-rw-r--r--gcc/ada/libgnat/s-valdec.ads2
-rw-r--r--gcc/ada/libgnat/s-valenu.adb2
-rw-r--r--gcc/ada/libgnat/s-valenu.ads2
-rw-r--r--gcc/ada/libgnat/s-valint.adb2
-rw-r--r--gcc/ada/libgnat/s-valint.ads2
-rw-r--r--gcc/ada/libgnat/s-vallld.adb2
-rw-r--r--gcc/ada/libgnat/s-vallld.ads2
-rw-r--r--gcc/ada/libgnat/s-vallli.adb2
-rw-r--r--gcc/ada/libgnat/s-vallli.ads2
-rw-r--r--gcc/ada/libgnat/s-valllu.adb2
-rw-r--r--gcc/ada/libgnat/s-valllu.ads2
-rw-r--r--gcc/ada/libgnat/s-valrea.adb14
-rw-r--r--gcc/ada/libgnat/s-valrea.ads2
-rw-r--r--gcc/ada/libgnat/s-valuns.adb2
-rw-r--r--gcc/ada/libgnat/s-valuns.ads2
-rw-r--r--gcc/ada/libgnat/s-valuti.adb2
-rw-r--r--gcc/ada/libgnat/s-valuti.ads2
-rw-r--r--gcc/ada/libgnat/s-valwch.adb2
-rw-r--r--gcc/ada/libgnat/s-valwch.ads2
-rw-r--r--gcc/ada/libgnat/s-veboop.adb2
-rw-r--r--gcc/ada/libgnat/s-veboop.ads2
-rw-r--r--gcc/ada/libgnat/s-vector.ads2
-rw-r--r--gcc/ada/libgnat/s-vercon.adb2
-rw-r--r--gcc/ada/libgnat/s-vercon.ads2
-rw-r--r--gcc/ada/libgnat/s-wchcnv.adb2
-rw-r--r--gcc/ada/libgnat/s-wchcnv.ads2
-rw-r--r--gcc/ada/libgnat/s-wchcon.adb2
-rw-r--r--gcc/ada/libgnat/s-wchcon.ads2
-rw-r--r--gcc/ada/libgnat/s-wchjis.adb2
-rw-r--r--gcc/ada/libgnat/s-wchjis.ads2
-rw-r--r--gcc/ada/libgnat/s-wchstw.adb2
-rw-r--r--gcc/ada/libgnat/s-wchstw.ads2
-rw-r--r--gcc/ada/libgnat/s-wchwts.adb2
-rw-r--r--gcc/ada/libgnat/s-wchwts.ads2
-rw-r--r--gcc/ada/libgnat/s-widboo.adb2
-rw-r--r--gcc/ada/libgnat/s-widboo.ads2
-rw-r--r--gcc/ada/libgnat/s-widcha.adb2
-rw-r--r--gcc/ada/libgnat/s-widcha.ads2
-rw-r--r--gcc/ada/libgnat/s-widenu.adb2
-rw-r--r--gcc/ada/libgnat/s-widenu.ads2
-rw-r--r--gcc/ada/libgnat/s-widlli.adb2
-rw-r--r--gcc/ada/libgnat/s-widlli.ads2
-rw-r--r--gcc/ada/libgnat/s-widllu.adb2
-rw-r--r--gcc/ada/libgnat/s-widllu.ads2
-rw-r--r--gcc/ada/libgnat/s-widwch.adb2
-rw-r--r--gcc/ada/libgnat/s-widwch.ads2
-rw-r--r--gcc/ada/libgnat/s-win32.ads2
-rw-r--r--gcc/ada/libgnat/s-winext.ads2
-rw-r--r--gcc/ada/libgnat/s-wwdcha.adb2
-rw-r--r--gcc/ada/libgnat/s-wwdcha.ads2
-rw-r--r--gcc/ada/libgnat/s-wwdenu.adb2
-rw-r--r--gcc/ada/libgnat/s-wwdenu.ads2
-rw-r--r--gcc/ada/libgnat/s-wwdwch.adb2
-rw-r--r--gcc/ada/libgnat/s-wwdwch.ads2
-rw-r--r--gcc/ada/libgnat/system-aix.ads2
-rw-r--r--gcc/ada/libgnat/system-darwin-arm.ads2
-rw-r--r--gcc/ada/libgnat/system-darwin-ppc.ads2
-rw-r--r--gcc/ada/libgnat/system-darwin-x86.ads2
-rw-r--r--gcc/ada/libgnat/system-djgpp.ads2
-rw-r--r--gcc/ada/libgnat/system-dragonfly-x86_64.ads2
-rw-r--r--gcc/ada/libgnat/system-freebsd.ads2
-rw-r--r--gcc/ada/libgnat/system-hpux-ia64.ads2
-rw-r--r--gcc/ada/libgnat/system-hpux.ads2
-rw-r--r--gcc/ada/libgnat/system-linux-alpha.ads2
-rw-r--r--gcc/ada/libgnat/system-linux-arm.ads2
-rw-r--r--gcc/ada/libgnat/system-linux-hppa.ads2
-rw-r--r--gcc/ada/libgnat/system-linux-ia64.ads2
-rw-r--r--gcc/ada/libgnat/system-linux-m68k.ads2
-rw-r--r--gcc/ada/libgnat/system-linux-mips.ads2
-rw-r--r--gcc/ada/libgnat/system-linux-ppc.ads2
-rw-r--r--gcc/ada/libgnat/system-linux-riscv.ads2
-rw-r--r--gcc/ada/libgnat/system-linux-s390.ads2
-rw-r--r--gcc/ada/libgnat/system-linux-sh4.ads2
-rw-r--r--gcc/ada/libgnat/system-linux-sparc.ads2
-rw-r--r--gcc/ada/libgnat/system-linux-x86.ads2
-rw-r--r--gcc/ada/libgnat/system-lynxos178-ppc.ads2
-rw-r--r--gcc/ada/libgnat/system-lynxos178-x86.ads2
-rw-r--r--gcc/ada/libgnat/system-mingw.ads7
-rw-r--r--gcc/ada/libgnat/system-qnx-aarch64.ads2
-rw-r--r--gcc/ada/libgnat/system-rtems.ads2
-rw-r--r--gcc/ada/libgnat/system-solaris-sparc.ads2
-rw-r--r--gcc/ada/libgnat/system-solaris-x86.ads2
-rw-r--r--gcc/ada/libgnat/system-vxworks-arm-rtp-smp.ads2
-rw-r--r--gcc/ada/libgnat/system-vxworks-arm-rtp.ads2
-rw-r--r--gcc/ada/libgnat/system-vxworks-arm.ads2
-rw-r--r--gcc/ada/libgnat/system-vxworks-e500-kernel.ads2
-rw-r--r--gcc/ada/libgnat/system-vxworks-e500-rtp-smp.ads2
-rw-r--r--gcc/ada/libgnat/system-vxworks-e500-rtp.ads2
-rw-r--r--gcc/ada/libgnat/system-vxworks-e500-vthread.ads2
-rw-r--r--gcc/ada/libgnat/system-vxworks-ppc-kernel.ads2
-rw-r--r--gcc/ada/libgnat/system-vxworks-ppc-ravenscar.ads2
-rw-r--r--gcc/ada/libgnat/system-vxworks-ppc-rtp-smp.ads2
-rw-r--r--gcc/ada/libgnat/system-vxworks-ppc-rtp.ads2
-rw-r--r--gcc/ada/libgnat/system-vxworks-ppc-vthread.ads2
-rw-r--r--gcc/ada/libgnat/system-vxworks-ppc.ads2
-rw-r--r--gcc/ada/libgnat/system-vxworks-x86-kernel.ads2
-rw-r--r--gcc/ada/libgnat/system-vxworks-x86-rtp-smp.ads2
-rw-r--r--gcc/ada/libgnat/system-vxworks-x86-rtp.ads2
-rw-r--r--gcc/ada/libgnat/system-vxworks-x86-vthread.ads2
-rw-r--r--gcc/ada/libgnat/system-vxworks-x86.ads2
-rw-r--r--gcc/ada/libgnat/system-vxworks7-aarch64-rtp-smp.ads2
-rw-r--r--gcc/ada/libgnat/system-vxworks7-aarch64.ads2
-rw-r--r--gcc/ada/libgnat/system-vxworks7-arm-rtp-smp.ads2
-rw-r--r--gcc/ada/libgnat/system-vxworks7-arm.ads2
-rw-r--r--gcc/ada/libgnat/system-vxworks7-e500-kernel.ads2
-rw-r--r--gcc/ada/libgnat/system-vxworks7-e500-rtp-smp.ads2
-rw-r--r--gcc/ada/libgnat/system-vxworks7-e500-rtp.ads2
-rw-r--r--gcc/ada/libgnat/system-vxworks7-ppc-kernel.ads2
-rw-r--r--gcc/ada/libgnat/system-vxworks7-ppc-rtp-smp.ads2
-rw-r--r--gcc/ada/libgnat/system-vxworks7-ppc-rtp.ads2
-rw-r--r--gcc/ada/libgnat/system-vxworks7-ppc64-kernel.ads2
-rw-r--r--gcc/ada/libgnat/system-vxworks7-ppc64-rtp-smp.ads2
-rw-r--r--gcc/ada/libgnat/system-vxworks7-x86-kernel.ads2
-rw-r--r--gcc/ada/libgnat/system-vxworks7-x86-rtp-smp.ads2
-rw-r--r--gcc/ada/libgnat/system-vxworks7-x86-rtp.ads2
-rw-r--r--gcc/ada/libgnat/system-vxworks7-x86_64-kernel.ads2
-rw-r--r--gcc/ada/libgnat/system-vxworks7-x86_64-rtp-smp.ads2
-rw-r--r--gcc/ada/libgnat/system.ads2
1253 files changed, 13806 insertions, 3776 deletions
diff --git a/gcc/ada/libgnat/a-assert.adb b/gcc/ada/libgnat/a-assert.adb
index c76b7c3..f3fb837 100644
--- a/gcc/ada/libgnat/a-assert.adb
+++ b/gcc/ada/libgnat/a-assert.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2007-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2007-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-assert.ads b/gcc/ada/libgnat/a-assert.ads
index 362989a..f7aef0f 100644
--- a/gcc/ada/libgnat/a-assert.ads
+++ b/gcc/ada/libgnat/a-assert.ads
@@ -4,7 +4,7 @@
-- --
-- A D A . A S S E R T I O N S --
-- --
--- Copyright (C) 2015-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2015-2020, Free Software Foundation, Inc. --
-- --
-- S p e c --
-- --
diff --git a/gcc/ada/libgnat/a-btgbso.adb b/gcc/ada/libgnat/a-btgbso.adb
index 08b4198..75c6dd5 100644
--- a/gcc/ada/libgnat/a-btgbso.adb
+++ b/gcc/ada/libgnat/a-btgbso.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-btgbso.ads b/gcc/ada/libgnat/a-btgbso.ads
index 389824a..a30ccf3 100644
--- a/gcc/ada/libgnat/a-btgbso.ads
+++ b/gcc/ada/libgnat/a-btgbso.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-calari.adb b/gcc/ada/libgnat/a-calari.adb
index 4c8bf46..27d6da4 100644
--- a/gcc/ada/libgnat/a-calari.adb
+++ b/gcc/ada/libgnat/a-calari.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2006-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2006-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-calari.ads b/gcc/ada/libgnat/a-calari.ads
index 4dc26e6..f319572 100644
--- a/gcc/ada/libgnat/a-calari.ads
+++ b/gcc/ada/libgnat/a-calari.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2005-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2005-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. In accordance with the copyright of that document, you can freely --
diff --git a/gcc/ada/libgnat/a-calcon.adb b/gcc/ada/libgnat/a-calcon.adb
index a6bb156..3b5ec6b 100644
--- a/gcc/ada/libgnat/a-calcon.adb
+++ b/gcc/ada/libgnat/a-calcon.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2008-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2008-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -30,7 +30,6 @@
------------------------------------------------------------------------------
with Interfaces.C; use Interfaces.C;
-with Interfaces.C.Extensions; use Interfaces.C.Extensions;
package body Ada.Calendar.Conversions is
diff --git a/gcc/ada/libgnat/a-calcon.ads b/gcc/ada/libgnat/a-calcon.ads
index 0847f36..23f176e 100644
--- a/gcc/ada/libgnat/a-calcon.ads
+++ b/gcc/ada/libgnat/a-calcon.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2008-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2008-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -33,7 +33,6 @@
-- time models - Time, Duration, struct tm and struct timespec.
with Interfaces.C;
-with Interfaces.C.Extensions;
package Ada.Calendar.Conversions is
@@ -112,7 +111,7 @@ package Ada.Calendar.Conversions is
-- fit into a Time value.
function To_Unix_Nano_Time
- (Ada_Time : Time) return Interfaces.C.Extensions.long_long;
+ (Ada_Time : Time) return Interfaces.C.long_long;
-- Convert a time value represented as number of time units since the Ada
-- implementation-defined Epoch to a value relative to the Unix Epoch. The
-- units of the result are nanoseconds. Raises Time_Error if the result
diff --git a/gcc/ada/libgnat/a-caldel.adb b/gcc/ada/libgnat/a-caldel.adb
index b7cfefc..5b64ef7 100644
--- a/gcc/ada/libgnat/a-caldel.adb
+++ b/gcc/ada/libgnat/a-caldel.adb
@@ -7,7 +7,7 @@
-- B o d y --
-- --
-- Copyright (C) 1991-2017, Florida State University --
--- Copyright (C) 1995-2019, AdaCore --
+-- Copyright (C) 1995-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -103,6 +103,8 @@ begin
-- this soft link, or this will be overridden during the elaboration of
-- System.Tasking.Initialization
+ pragma Annotate (CodePeer, Modified, SSL.Timed_Delay);
+
if SSL.Timed_Delay = null then
SSL.Timed_Delay := Timed_Delay_NT'Access;
end if;
diff --git a/gcc/ada/libgnat/a-caldel.ads b/gcc/ada/libgnat/a-caldel.ads
index c45b765..9fa5d60 100644
--- a/gcc/ada/libgnat/a-caldel.ads
+++ b/gcc/ada/libgnat/a-caldel.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNARL is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-calend.adb b/gcc/ada/libgnat/a-calend.adb
index 4cbfeff..f457412 100644
--- a/gcc/ada/libgnat/a-calend.adb
+++ b/gcc/ada/libgnat/a-calend.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -167,9 +167,9 @@ is
Secs_In_Non_Leap_Year : constant := 365 * Secs_In_Day;
Nanos_In_Four_Years : constant := Secs_In_Four_Years * Nano;
- -- Lower and upper bound of Ada time. The zero (0) value of type Time is
- -- positioned at year 2150. Note that the lower and upper bound account
- -- for the non-leap centennial years.
+ -- Lower and upper bound of Ada time. Note that the lower and upper bound
+ -- account for the non-leap centennial years. See "Implementation of Time"
+ -- in the spec for what the zero value represents.
Ada_Low : constant Time_Rep := -(61 * 366 + 188 * 365) * Nanos_In_Day;
Ada_High : constant Time_Rep := (60 * 366 + 190 * 365) * Nanos_In_Day;
@@ -435,18 +435,14 @@ is
if End_T < Leap_Second_Times (1) then
Elapsed_Leaps := 0;
Next_Leap := Leap_Second_Times (1);
- return;
elsif Start_T > Leap_Second_Times (Leap_Seconds_Count) then
Elapsed_Leaps := 0;
Next_Leap := End_Of_Time;
- return;
- end if;
-
- -- Perform the calculations only if the start date is within the leap
- -- second occurrences table.
- if Start_T <= Leap_Second_Times (Leap_Seconds_Count) then
+ else
+ -- Perform the calculations only if the start date is within the leap
+ -- second occurrences table.
-- 1 2 N - 1 N
-- +----+----+-- . . . --+-------+---+
@@ -480,9 +476,6 @@ is
end if;
Elapsed_Leaps := End_Index - Start_Index;
-
- else
- Elapsed_Leaps := 0;
end if;
end Cumulative_Leap_Seconds;
@@ -763,6 +756,7 @@ is
(Secs_T'Unchecked_Access,
Flag'Unchecked_Access,
Offset'Unchecked_Access);
+ pragma Annotate (CodePeer, Modified, Offset);
return Long_Integer (Offset);
end UTC_Time_Offset;
diff --git a/gcc/ada/libgnat/a-calend.ads b/gcc/ada/libgnat/a-calend.ads
index 1b782f0..e7eb3ef 100644
--- a/gcc/ada/libgnat/a-calend.ads
+++ b/gcc/ada/libgnat/a-calend.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -157,16 +157,20 @@ private
-- Implementation of Time --
----------------------------
- -- Time is represented as a signed 64 bit integer count of nanoseconds
- -- since the start of Ada time (1901-01-01 00:00:00.0 UTC). Time values
- -- produced by Time_Of are internally normalized to UTC regardless of their
- -- local time zone. This representation ensures correct handling of leap
- -- seconds as well as performing arithmetic. In Ada 95, Split and Time_Of
- -- will treat a time value as being in the local time zone, in Ada 2005,
- -- Split and Time_Of will treat a time value as being in the designated
- -- time zone by the formal parameter or in UTC by default. The size of the
- -- type is large enough to cover the Ada 2005 range of time (1901-01-01
- -- 00:00:00.0 UTC - 2399-12-31-23:59:59.999999999 UTC).
+ -- Time is represented as a signed 64 bit signed integer count of
+ -- nanoseconds since the "epoch" 2150-01-01 00:00:00 UTC. Thus a value of 0
+ -- represents the epoch. As of this writing, the epoch is in the future,
+ -- so Time values returned by Clock will be negative.
+ --
+ -- Time values produced by Time_Of are internally normalized to UTC
+ -- regardless of their local time zone. This representation ensures correct
+ -- handling of leap seconds as well as performing arithmetic. In Ada 95,
+ -- Split and Time_Of will treat a time value as being in the local time
+ -- zone, in Ada 2005, Split and Time_Of will treat a time value as being in
+ -- the designated time zone by the formal parameter or in UTC by
+ -- default. The size of the type is large enough to cover the Ada
+ -- range of time (1901-01-01T00:00:00.0 UTC - 2399-12-31T23:59:59.999999999
+ -- UTC).
------------------
-- Leap Seconds --
@@ -234,8 +238,8 @@ private
function Epoch_Offset return Time_Rep;
pragma Inline (Epoch_Offset);
- -- Return the difference between 2150-1-1 UTC and 1970-1-1 UTC expressed in
- -- nanoseconds. Note that year 2100 is non-leap.
+ -- Return the difference between our epoch and 1970-1-1 UTC (the Unix
+ -- epoch) expressed in nanoseconds. Note that year 2100 is non-leap.
Days_In_Month : constant array (Month_Number) of Day_Number :=
(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
diff --git a/gcc/ada/libgnat/a-calfor.adb b/gcc/ada/libgnat/a-calfor.adb
index 5cc151d..7d53d56 100644
--- a/gcc/ada/libgnat/a-calfor.adb
+++ b/gcc/ada/libgnat/a-calfor.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2006-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2006-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-calfor.ads b/gcc/ada/libgnat/a-calfor.ads
index 60a586e..599e395 100644
--- a/gcc/ada/libgnat/a-calfor.ads
+++ b/gcc/ada/libgnat/a-calfor.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2005-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2005-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. In accordance with the copyright of that document, you can freely --
@@ -206,6 +206,14 @@ package Ada.Calendar.Formatting is
-- prefixed with a minus sign. If abs Elapsed_Time represents 100 hours or
-- more, Time_Error is raised.
+ function Local_Image
+ (Date : Time;
+ Include_Time_Fraction : Boolean := False) return String
+ is (Image (Date,
+ Include_Time_Fraction,
+ Time_Zones.Local_Time_Offset (Date)));
+ -- Returns a string form of Date relative to the local time offset.
+
function Value (Elapsed_Time : String) return Duration;
-- Returns a Duration value for the image given as Elapsed_Time.
-- Constraint_Error is raised if the string is not formatted as described
diff --git a/gcc/ada/libgnat/a-catizo.adb b/gcc/ada/libgnat/a-catizo.adb
index 8937572..f183445 100644
--- a/gcc/ada/libgnat/a-catizo.adb
+++ b/gcc/ada/libgnat/a-catizo.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2009-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2009-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -38,11 +38,11 @@ package body Ada.Calendar.Time_Zones is
-- All operations in this package are target and time representation
-- independent, thus only one source file is needed for multiple targets.
- ---------------------
- -- UTC_Time_Offset --
- ---------------------
+ -----------------------
+ -- Local_Time_Offset --
+ -----------------------
- function UTC_Time_Offset (Date : Time := Clock) return Time_Offset is
+ function Local_Time_Offset (Date : Time := Clock) return Time_Offset is
Offset_L : constant Long_Integer :=
Time_Zones_Operations.UTC_Time_Offset (Date);
Offset : Time_Offset;
@@ -64,6 +64,6 @@ package body Ada.Calendar.Time_Zones is
end if;
return Offset;
- end UTC_Time_Offset;
+ end Local_Time_Offset;
end Ada.Calendar.Time_Zones;
diff --git a/gcc/ada/libgnat/a-catizo.ads b/gcc/ada/libgnat/a-catizo.ads
index 5f55869..8ef139c 100644
--- a/gcc/ada/libgnat/a-catizo.ads
+++ b/gcc/ada/libgnat/a-catizo.ads
@@ -21,10 +21,13 @@ package Ada.Calendar.Time_Zones is
-- Time zone manipulation
type Time_Offset is range -(28 * 60) .. 28 * 60;
+ -- Offset in minutes
Unknown_Zone_Error : exception;
- function UTC_Time_Offset (Date : Time := Clock) return Time_Offset;
+ function Local_Time_Offset (Date : Time := Clock) return Time_Offset;
+ function UTC_Time_Offset (Date : Time := Clock) return Time_Offset
+ renames Local_Time_Offset;
-- Returns (in minutes), the difference between the implementation-defined
-- time zone of Calendar, and UTC time, at the time Date. If the time zone
-- of the Calendar implementation is unknown, raises Unknown_Zone_Error.
diff --git a/gcc/ada/libgnat/a-cbdlli.adb b/gcc/ada/libgnat/a-cbdlli.adb
index 9a2282b..0f0c872 100644
--- a/gcc/ada/libgnat/a-cbdlli.adb
+++ b/gcc/ada/libgnat/a-cbdlli.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -29,7 +29,9 @@
with System; use type System.Address;
-package body Ada.Containers.Bounded_Doubly_Linked_Lists is
+package body Ada.Containers.Bounded_Doubly_Linked_Lists with
+ SPARK_Mode => Off
+is
pragma Warnings (Off, "variable ""Busy*"" is not referenced");
pragma Warnings (Off, "variable ""Lock*"" is not referenced");
@@ -358,6 +360,8 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is
X : Count_Type;
begin
+ TC_Check (Container.TC);
+
if Checks and then Position.Node = 0 then
raise Constraint_Error with
"Position cursor has no element";
@@ -386,8 +390,6 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is
return;
end if;
- TC_Check (Container.TC);
-
for Index in 1 .. Count loop
pragma Assert (Container.Length >= 2);
@@ -427,6 +429,8 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is
X : Count_Type;
begin
+ TC_Check (Container.TC);
+
if Count >= Container.Length then
Clear (Container);
return;
@@ -436,8 +440,6 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is
return;
end if;
- TC_Check (Container.TC);
-
for J in 1 .. Count loop
X := Container.First;
pragma Assert (N (N (X).Next).Prev = Container.First);
@@ -463,6 +465,8 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is
X : Count_Type;
begin
+ TC_Check (Container.TC);
+
if Count >= Container.Length then
Clear (Container);
return;
@@ -472,8 +476,6 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is
return;
end if;
- TC_Check (Container.TC);
-
for J in 1 .. Count loop
X := Container.Last;
pragma Assert (N (N (X).Prev).Next = Container.Last);
@@ -759,6 +761,9 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is
Source : in out List)
is
begin
+ TC_Check (Target.TC);
+ TC_Check (Source.TC);
+
-- The semantics of Merge changed slightly per AI05-0021. It was
-- originally the case that if Target and Source denoted the same
-- container object, then the GNAT implementation of Merge did
@@ -786,9 +791,6 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is
raise Capacity_Error with "new length exceeds target capacity";
end if;
- TC_Check (Target.TC);
- TC_Check (Source.TC);
-
-- Per AI05-0022, the container implementation is required to detect
-- element tampering by a generic actual subprogram.
@@ -964,6 +966,8 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is
New_Node : Count_Type;
begin
+ TC_Check (Container.TC);
+
if Before.Container /= null then
if Checks and then Before.Container /= Container'Unrestricted_Access
then
@@ -983,8 +987,6 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is
raise Capacity_Error with "capacity exceeded";
end if;
- TC_Check (Container.TC);
-
Allocate (Container, New_Item, New_Node);
First_Node := New_Node;
Insert_Internal (Container, Before.Node, New_Node);
@@ -1261,6 +1263,8 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is
X : Count_Type;
begin
+ TC_Check (Source.TC);
+
if Target'Address = Source'Address then
return;
end if;
@@ -1269,8 +1273,6 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is
raise Capacity_Error with "Source length exceeds Target capacity";
end if;
- TC_Check (Source.TC);
-
-- Clear target, note that this checks busy bits of Target
Clear (Target);
@@ -1579,6 +1581,8 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is
New_Item : Element_Type)
is
begin
+ TE_Check (Container.TC);
+
if Checks and then Position.Container = null then
raise Constraint_Error with "Position cursor has no element";
end if;
@@ -1588,8 +1592,6 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is
"Position cursor designates wrong container";
end if;
- TE_Check (Container.TC);
-
pragma Assert (Vet (Position), "bad cursor in Replace_Element");
Container.Nodes (Position.Node).Element := New_Item;
@@ -1751,6 +1753,9 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is
Source : in out List)
is
begin
+ TC_Check (Target.TC);
+ TC_Check (Source.TC);
+
if Before.Container /= null then
if Checks and then Before.Container /= Target'Unrestricted_Access then
raise Program_Error with
@@ -1772,9 +1777,6 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is
raise Capacity_Error with "new length exceeds target capacity";
end if;
- TC_Check (Target.TC);
- TC_Check (Source.TC);
-
Splice_Internal (Target, Before.Node, Source);
end Splice;
@@ -1786,6 +1788,8 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is
N : Node_Array renames Container.Nodes;
begin
+ TC_Check (Container.TC);
+
if Before.Container /= null then
if Checks and then Before.Container /= Container'Unchecked_Access then
raise Program_Error with
@@ -1815,8 +1819,6 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is
pragma Assert (Container.Length >= 2);
- TC_Check (Container.TC);
-
if Before.Node = 0 then
pragma Assert (Position.Node /= Container.Last);
@@ -1894,6 +1896,9 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is
return;
end if;
+ TC_Check (Target.TC);
+ TC_Check (Source.TC);
+
if Before.Container /= null then
if Checks and then Before.Container /= Target'Unrestricted_Access then
raise Program_Error with
@@ -1918,9 +1923,6 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is
raise Capacity_Error with "Target is full";
end if;
- TC_Check (Target.TC);
- TC_Check (Source.TC);
-
Splice_Internal
(Target => Target,
Before => Before.Node,
@@ -2063,6 +2065,8 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is
I, J : Cursor)
is
begin
+ TE_Check (Container.TC);
+
if Checks and then I.Node = 0 then
raise Constraint_Error with "I cursor has no element";
end if;
@@ -2083,8 +2087,6 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is
return;
end if;
- TE_Check (Container.TC);
-
pragma Assert (Vet (I), "bad I cursor in Swap");
pragma Assert (Vet (J), "bad J cursor in Swap");
@@ -2109,6 +2111,8 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is
I, J : Cursor)
is
begin
+ TC_Check (Container.TC);
+
if Checks and then I.Node = 0 then
raise Constraint_Error with "I cursor has no element";
end if;
@@ -2129,8 +2133,6 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is
return;
end if;
- TC_Check (Container.TC);
-
pragma Assert (Vet (I), "bad I cursor in Swap_Links");
pragma Assert (Vet (J), "bad J cursor in Swap_Links");
diff --git a/gcc/ada/libgnat/a-cbdlli.ads b/gcc/ada/libgnat/a-cbdlli.ads
index ca58c70..74639cf 100644
--- a/gcc/ada/libgnat/a-cbdlli.ads
+++ b/gcc/ada/libgnat/a-cbdlli.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -43,7 +43,9 @@ generic
with function "=" (Left, Right : Element_Type)
return Boolean is <>;
-package Ada.Containers.Bounded_Doubly_Linked_Lists is
+package Ada.Containers.Bounded_Doubly_Linked_Lists with
+ SPARK_Mode => Off
+is
pragma Annotate (CodePeer, Skip_Analysis);
pragma Pure;
pragma Remote_Types;
diff --git a/gcc/ada/libgnat/a-cbhama.adb b/gcc/ada/libgnat/a-cbhama.adb
index d5cc820..1881db2 100644
--- a/gcc/ada/libgnat/a-cbhama.adb
+++ b/gcc/ada/libgnat/a-cbhama.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -39,7 +39,9 @@ with Ada.Containers.Prime_Numbers; use Ada.Containers.Prime_Numbers;
with System; use type System.Address;
-package body Ada.Containers.Bounded_Hashed_Maps is
+package body Ada.Containers.Bounded_Hashed_Maps with
+ SPARK_Mode => Off
+is
pragma Warnings (Off, "variable ""Busy*"" is not referenced");
pragma Warnings (Off, "variable ""Lock*"" is not referenced");
@@ -311,6 +313,8 @@ package body Ada.Containers.Bounded_Hashed_Maps is
procedure Delete (Container : in out Map; Position : in out Cursor) is
begin
+ TC_Check (Container.TC);
+
if Checks and then Position.Node = 0 then
raise Constraint_Error with
"Position cursor of Delete equals No_Element";
@@ -322,8 +326,6 @@ package body Ada.Containers.Bounded_Hashed_Maps is
"Position cursor of Delete designates wrong map";
end if;
- TC_Check (Container.TC);
-
pragma Assert (Vet (Position), "bad cursor in Delete");
HT_Ops.Delete_Node_Sans_Free (Container, Position.Node);
@@ -1029,13 +1031,13 @@ package body Ada.Containers.Bounded_Hashed_Maps is
Node : constant Count_Type := Key_Ops.Find (Container, Key);
begin
+ TE_Check (Container.TC);
+
if Checks and then Node = 0 then
raise Constraint_Error with
"attempt to replace key not in map";
end if;
- TE_Check (Container.TC);
-
declare
N : Node_Type renames Container.Nodes (Node);
begin
@@ -1054,6 +1056,8 @@ package body Ada.Containers.Bounded_Hashed_Maps is
New_Item : Element_Type)
is
begin
+ TE_Check (Position.Container.TC);
+
if Checks and then Position.Node = 0 then
raise Constraint_Error with
"Position cursor of Replace_Element equals No_Element";
@@ -1065,8 +1069,6 @@ package body Ada.Containers.Bounded_Hashed_Maps is
"Position cursor of Replace_Element designates wrong map";
end if;
- TE_Check (Position.Container.TC);
-
pragma Assert (Vet (Position), "bad cursor in Replace_Element");
Container.Nodes (Position.Node).Element := New_Item;
diff --git a/gcc/ada/libgnat/a-cbhama.ads b/gcc/ada/libgnat/a-cbhama.ads
index 0238548..86fed4e 100644
--- a/gcc/ada/libgnat/a-cbhama.ads
+++ b/gcc/ada/libgnat/a-cbhama.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -45,7 +45,9 @@ generic
with function Equivalent_Keys (Left, Right : Key_Type) return Boolean;
with function "=" (Left, Right : Element_Type) return Boolean is <>;
-package Ada.Containers.Bounded_Hashed_Maps is
+package Ada.Containers.Bounded_Hashed_Maps with
+ SPARK_Mode => Off
+is
pragma Annotate (CodePeer, Skip_Analysis);
pragma Pure;
pragma Remote_Types;
diff --git a/gcc/ada/libgnat/a-cbhase.adb b/gcc/ada/libgnat/a-cbhase.adb
index 1fa2c21..a332bd7 100644
--- a/gcc/ada/libgnat/a-cbhase.adb
+++ b/gcc/ada/libgnat/a-cbhase.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -39,7 +39,9 @@ with Ada.Containers.Prime_Numbers; use Ada.Containers.Prime_Numbers;
with System; use type System.Address;
-package body Ada.Containers.Bounded_Hashed_Sets is
+package body Ada.Containers.Bounded_Hashed_Sets with
+ SPARK_Mode => Off
+is
pragma Warnings (Off, "variable ""Busy*"" is not referenced");
pragma Warnings (Off, "variable ""Lock*"" is not referenced");
@@ -309,6 +311,8 @@ package body Ada.Containers.Bounded_Hashed_Sets is
Position : in out Cursor)
is
begin
+ TC_Check (Container.TC);
+
if Checks and then Position.Node = 0 then
raise Constraint_Error with "Position cursor equals No_Element";
end if;
@@ -318,8 +322,6 @@ package body Ada.Containers.Bounded_Hashed_Sets is
raise Program_Error with "Position cursor designates wrong set";
end if;
- TC_Check (Container.TC);
-
pragma Assert (Vet (Position), "bad cursor in Delete");
HT_Ops.Delete_Node_Sans_Free (Container, Position.Node);
@@ -1179,13 +1181,13 @@ package body Ada.Containers.Bounded_Hashed_Sets is
Node : constant Count_Type := Element_Keys.Find (Container, New_Item);
begin
+ TE_Check (Container.TC);
+
if Checks and then Node = 0 then
raise Constraint_Error with
"attempt to replace element not in set";
end if;
- TE_Check (Container.TC);
-
Container.Nodes (Node).Element := New_Item;
end Replace;
diff --git a/gcc/ada/libgnat/a-cbhase.ads b/gcc/ada/libgnat/a-cbhase.ads
index cb9150b..01903c7 100644
--- a/gcc/ada/libgnat/a-cbhase.ads
+++ b/gcc/ada/libgnat/a-cbhase.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -48,7 +48,9 @@ generic
with function "=" (Left, Right : Element_Type) return Boolean is <>;
-package Ada.Containers.Bounded_Hashed_Sets is
+package Ada.Containers.Bounded_Hashed_Sets with
+ SPARK_Mode => Off
+is
pragma Annotate (CodePeer, Skip_Analysis);
pragma Pure;
pragma Remote_Types;
diff --git a/gcc/ada/libgnat/a-cbmutr.adb b/gcc/ada/libgnat/a-cbmutr.adb
index ad9edaa..58db8cf 100644
--- a/gcc/ada/libgnat/a-cbmutr.adb
+++ b/gcc/ada/libgnat/a-cbmutr.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2011-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2011-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -30,7 +30,9 @@
with Ada.Finalization;
with System; use type System.Address;
-package body Ada.Containers.Bounded_Multiway_Trees is
+package body Ada.Containers.Bounded_Multiway_Trees with
+ SPARK_Mode => Off
+is
pragma Warnings (Off, "variable ""Busy*"" is not referenced");
pragma Warnings (Off, "variable ""Lock*"" is not referenced");
@@ -366,6 +368,8 @@ package body Ada.Containers.Bounded_Multiway_Trees is
First, Last : Count_Type;
begin
+ TC_Check (Container.TC);
+
if Checks and then Parent = No_Element then
raise Constraint_Error with "Parent cursor has no element";
end if;
@@ -383,8 +387,6 @@ package body Ada.Containers.Bounded_Multiway_Trees is
with "requested count exceeds available storage";
end if;
- TC_Check (Container.TC);
-
if Container.Count = 0 then
Initialize_Root (Container);
end if;
@@ -985,6 +987,8 @@ package body Ada.Containers.Bounded_Multiway_Trees is
Count : Count_Type;
begin
+ TC_Check (Container.TC);
+
if Checks and then Parent = No_Element then
raise Constraint_Error with "Parent cursor has no element";
end if;
@@ -993,8 +997,6 @@ package body Ada.Containers.Bounded_Multiway_Trees is
raise Program_Error with "Parent cursor not in container";
end if;
- TC_Check (Container.TC);
-
if Container.Count = 0 then
pragma Assert (Is_Root (Parent));
return;
@@ -1024,6 +1026,8 @@ package body Ada.Containers.Bounded_Multiway_Trees is
X : Count_Type;
begin
+ TC_Check (Container.TC);
+
if Checks and then Position = No_Element then
raise Constraint_Error with "Position cursor has no element";
end if;
@@ -1041,8 +1045,6 @@ package body Ada.Containers.Bounded_Multiway_Trees is
raise Constraint_Error with "Position cursor does not designate leaf";
end if;
- TC_Check (Container.TC);
-
X := Position.Node;
Position := No_Element;
@@ -1064,6 +1066,8 @@ package body Ada.Containers.Bounded_Multiway_Trees is
Count : Count_Type;
begin
+ TC_Check (Container.TC);
+
if Checks and then Position = No_Element then
raise Constraint_Error with "Position cursor has no element";
end if;
@@ -1077,8 +1081,6 @@ package body Ada.Containers.Bounded_Multiway_Trees is
raise Program_Error with "Position cursor designates root";
end if;
- TC_Check (Container.TC);
-
X := Position.Node;
Position := No_Element;
@@ -1506,6 +1508,8 @@ package body Ada.Containers.Bounded_Multiway_Trees is
Last : Count_Type;
begin
+ TC_Check (Container.TC);
+
if Checks and then Parent = No_Element then
raise Constraint_Error with "Parent cursor has no element";
end if;
@@ -1537,8 +1541,6 @@ package body Ada.Containers.Bounded_Multiway_Trees is
with "requested count exceeds available storage";
end if;
- TC_Check (Container.TC);
-
if Container.Count = 0 then
Initialize_Root (Container);
end if;
@@ -1584,6 +1586,8 @@ package body Ada.Containers.Bounded_Multiway_Trees is
-- OK to reference, see below
begin
+ TC_Check (Container.TC);
+
if Checks and then Parent = No_Element then
raise Constraint_Error with "Parent cursor has no element";
end if;
@@ -1615,8 +1619,6 @@ package body Ada.Containers.Bounded_Multiway_Trees is
with "requested count exceeds available storage";
end if;
- TC_Check (Container.TC);
-
if Container.Count = 0 then
Initialize_Root (Container);
end if;
@@ -2181,6 +2183,8 @@ package body Ada.Containers.Bounded_Multiway_Trees is
First, Last : Count_Type;
begin
+ TC_Check (Container.TC);
+
if Checks and then Parent = No_Element then
raise Constraint_Error with "Parent cursor has no element";
end if;
@@ -2198,8 +2202,6 @@ package body Ada.Containers.Bounded_Multiway_Trees is
with "requested count exceeds available storage";
end if;
- TC_Check (Container.TC);
-
if Container.Count = 0 then
Initialize_Root (Container);
end if;
@@ -2545,6 +2547,8 @@ package body Ada.Containers.Bounded_Multiway_Trees is
New_Item : Element_Type)
is
begin
+ TE_Check (Container.TC);
+
if Checks and then Position = No_Element then
raise Constraint_Error with "Position cursor has no element";
end if;
@@ -2558,8 +2562,6 @@ package body Ada.Containers.Bounded_Multiway_Trees is
raise Program_Error with "Position cursor designates root";
end if;
- TE_Check (Container.TC);
-
Container.Elements (Position.Node) := New_Item;
end Replace_Element;
@@ -2627,6 +2629,9 @@ package body Ada.Containers.Bounded_Multiway_Trees is
Source_Parent : Cursor)
is
begin
+ TC_Check (Target.TC);
+ TC_Check (Source.TC);
+
if Checks and then Target_Parent = No_Element then
raise Constraint_Error with "Target_Parent cursor has no element";
end if;
@@ -2671,8 +2676,6 @@ package body Ada.Containers.Bounded_Multiway_Trees is
return;
end if;
- TC_Check (Target.TC);
-
if Checks and then Is_Reachable (Container => Target,
From => Target_Parent.Node,
To => Source_Parent.Node)
@@ -2690,9 +2693,6 @@ package body Ada.Containers.Bounded_Multiway_Trees is
return;
end if;
- TC_Check (Target.TC);
- TC_Check (Source.TC);
-
if Target.Count = 0 then
Initialize_Root (Target);
end if;
@@ -2712,6 +2712,8 @@ package body Ada.Containers.Bounded_Multiway_Trees is
Source_Parent : Cursor)
is
begin
+ TC_Check (Container.TC);
+
if Checks and then Target_Parent = No_Element then
raise Constraint_Error with "Target_Parent cursor has no element";
end if;
@@ -2755,8 +2757,6 @@ package body Ada.Containers.Bounded_Multiway_Trees is
pragma Assert (Container.Count > 0);
- TC_Check (Container.TC);
-
if Checks and then Is_Reachable (Container => Container,
From => Target_Parent.Node,
To => Source_Parent.Node)
@@ -2911,6 +2911,9 @@ package body Ada.Containers.Bounded_Multiway_Trees is
Position : in out Cursor)
is
begin
+ TC_Check (Target.TC);
+ TC_Check (Source.TC);
+
if Checks and then Parent = No_Element then
raise Constraint_Error with "Parent cursor has no element";
end if;
@@ -2957,8 +2960,6 @@ package body Ada.Containers.Bounded_Multiway_Trees is
end if;
end if;
- TC_Check (Target.TC);
-
if Checks and then Is_Reachable (Container => Target,
From => Parent.Node,
To => Position.Node)
@@ -2974,9 +2975,6 @@ package body Ada.Containers.Bounded_Multiway_Trees is
return;
end if;
- TC_Check (Target.TC);
- TC_Check (Source.TC);
-
if Target.Count = 0 then
Initialize_Root (Target);
end if;
@@ -2998,6 +2996,8 @@ package body Ada.Containers.Bounded_Multiway_Trees is
Position : Cursor)
is
begin
+ TC_Check (Container.TC);
+
if Checks and then Parent = No_Element then
raise Constraint_Error with "Parent cursor has no element";
end if;
@@ -3048,8 +3048,6 @@ package body Ada.Containers.Bounded_Multiway_Trees is
end if;
end if;
- TC_Check (Container.TC);
-
if Checks and then Is_Reachable (Container => Container,
From => Parent.Node,
To => Position.Node)
@@ -3176,6 +3174,8 @@ package body Ada.Containers.Bounded_Multiway_Trees is
I, J : Cursor)
is
begin
+ TE_Check (Container.TC);
+
if Checks and then I = No_Element then
raise Constraint_Error with "I cursor has no element";
end if;
@@ -3204,8 +3204,6 @@ package body Ada.Containers.Bounded_Multiway_Trees is
raise Program_Error with "J cursor designates root";
end if;
- TE_Check (Container.TC);
-
declare
EE : Element_Array renames Container.Elements;
EI : constant Element_Type := EE (I.Node);
diff --git a/gcc/ada/libgnat/a-cbmutr.ads b/gcc/ada/libgnat/a-cbmutr.ads
index f491ad4..653407b 100644
--- a/gcc/ada/libgnat/a-cbmutr.ads
+++ b/gcc/ada/libgnat/a-cbmutr.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2014-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2014-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -41,7 +41,9 @@ generic
with function "=" (Left, Right : Element_Type) return Boolean is <>;
-package Ada.Containers.Bounded_Multiway_Trees is
+package Ada.Containers.Bounded_Multiway_Trees with
+ SPARK_Mode => Off
+is
pragma Annotate (CodePeer, Skip_Analysis);
pragma Pure;
pragma Remote_Types;
diff --git a/gcc/ada/libgnat/a-cborma.adb b/gcc/ada/libgnat/a-cborma.adb
index 005bca5..6f59471 100644
--- a/gcc/ada/libgnat/a-cborma.adb
+++ b/gcc/ada/libgnat/a-cborma.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -39,7 +39,9 @@ pragma Elaborate_All
with System; use type System.Address;
-package body Ada.Containers.Bounded_Ordered_Maps is
+package body Ada.Containers.Bounded_Ordered_Maps with
+ SPARK_Mode => Off
+is
pragma Warnings (Off, "variable ""Busy*"" is not referenced");
pragma Warnings (Off, "variable ""Lock*"" is not referenced");
@@ -1418,12 +1420,12 @@ package body Ada.Containers.Bounded_Ordered_Maps is
Node : constant Count_Type := Key_Ops.Find (Container, Key);
begin
+ TE_Check (Container.TC);
+
if Checks and then Node = 0 then
raise Constraint_Error with "key not in map";
end if;
- TE_Check (Container.TC);
-
declare
N : Node_Type renames Container.Nodes (Node);
@@ -1443,6 +1445,8 @@ package body Ada.Containers.Bounded_Ordered_Maps is
New_Item : Element_Type)
is
begin
+ TE_Check (Container.TC);
+
if Checks and then Position.Node = 0 then
raise Constraint_Error with
"Position cursor of Replace_Element equals No_Element";
@@ -1454,8 +1458,6 @@ package body Ada.Containers.Bounded_Ordered_Maps is
"Position cursor of Replace_Element designates wrong map";
end if;
- TE_Check (Container.TC);
-
pragma Assert (Vet (Container, Position.Node),
"Position cursor of Replace_Element is bad");
diff --git a/gcc/ada/libgnat/a-cborma.ads b/gcc/ada/libgnat/a-cborma.ads
index ba5d4fe..c199a09 100644
--- a/gcc/ada/libgnat/a-cborma.ads
+++ b/gcc/ada/libgnat/a-cborma.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -44,7 +44,9 @@ generic
with function "<" (Left, Right : Key_Type) return Boolean is <>;
with function "=" (Left, Right : Element_Type) return Boolean is <>;
-package Ada.Containers.Bounded_Ordered_Maps is
+package Ada.Containers.Bounded_Ordered_Maps with
+ SPARK_Mode => Off
+is
pragma Annotate (CodePeer, Skip_Analysis);
pragma Pure;
pragma Remote_Types;
diff --git a/gcc/ada/libgnat/a-cborse.adb b/gcc/ada/libgnat/a-cborse.adb
index b553048..af4f87f 100644
--- a/gcc/ada/libgnat/a-cborse.adb
+++ b/gcc/ada/libgnat/a-cborse.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -42,7 +42,9 @@ pragma Elaborate_All
with System; use type System.Address;
-package body Ada.Containers.Bounded_Ordered_Sets is
+package body Ada.Containers.Bounded_Ordered_Sets with
+ SPARK_Mode => Off
+is
pragma Warnings (Off, "variable ""Busy*"" is not referenced");
pragma Warnings (Off, "variable ""Lock*"" is not referenced");
@@ -461,6 +463,8 @@ package body Ada.Containers.Bounded_Ordered_Sets is
procedure Delete (Container : in out Set; Position : in out Cursor) is
begin
+ TC_Check (Container.TC);
+
if Checks and then Position.Node = 0 then
raise Constraint_Error with "Position cursor equals No_Element";
end if;
@@ -470,8 +474,6 @@ package body Ada.Containers.Bounded_Ordered_Sets is
raise Program_Error with "Position cursor designates wrong set";
end if;
- TC_Check (Container.TC);
-
pragma Assert (Vet (Container, Position.Node),
"bad cursor in Delete");
@@ -933,7 +935,7 @@ package body Ada.Containers.Bounded_Ordered_Sets is
Control =>
(Controlled with
Container.TC'Unrestricted_Access,
- Container => Container'Access,
+ Container => Container'Unchecked_Access,
Pos => Position,
Old_Key => new Key_Type'(Key (Position))))
do
@@ -961,7 +963,7 @@ package body Ada.Containers.Bounded_Ordered_Sets is
Control =>
(Controlled with
Container.TC'Unrestricted_Access,
- Container => Container'Access,
+ Container => Container'Unchecked_Access,
Pos => Find (Container, Key),
Old_Key => new Key_Type'(Key)))
do
@@ -1682,13 +1684,13 @@ package body Ada.Containers.Bounded_Ordered_Sets is
Node : constant Count_Type := Element_Keys.Find (Container, New_Item);
begin
+ TE_Check (Container.TC);
+
if Checks and then Node = 0 then
raise Constraint_Error with
"attempt to replace element not in set";
end if;
- TE_Check (Container.TC);
-
Container.Nodes (Node).Element := New_Item;
end Replace;
diff --git a/gcc/ada/libgnat/a-cborse.ads b/gcc/ada/libgnat/a-cborse.ads
index fd4d12d..52b8786 100644
--- a/gcc/ada/libgnat/a-cborse.ads
+++ b/gcc/ada/libgnat/a-cborse.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -44,7 +44,9 @@ generic
with function "<" (Left, Right : Element_Type) return Boolean is <>;
with function "=" (Left, Right : Element_Type) return Boolean is <>;
-package Ada.Containers.Bounded_Ordered_Sets is
+package Ada.Containers.Bounded_Ordered_Sets with
+ SPARK_Mode => Off
+is
pragma Annotate (CodePeer, Skip_Analysis);
pragma Pure;
pragma Remote_Types;
diff --git a/gcc/ada/libgnat/a-cbprqu.adb b/gcc/ada/libgnat/a-cbprqu.adb
index c714b76..2e97291 100644
--- a/gcc/ada/libgnat/a-cbprqu.adb
+++ b/gcc/ada/libgnat/a-cbprqu.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2011-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2011-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -27,7 +27,9 @@
-- This unit was originally developed by Matthew J Heaney. --
------------------------------------------------------------------------------
-package body Ada.Containers.Bounded_Priority_Queues is
+package body Ada.Containers.Bounded_Priority_Queues with
+ SPARK_Mode => Off
+is
package body Implementation is
diff --git a/gcc/ada/libgnat/a-cbprqu.ads b/gcc/ada/libgnat/a-cbprqu.ads
index 1eb2674..6259a47 100644
--- a/gcc/ada/libgnat/a-cbprqu.ads
+++ b/gcc/ada/libgnat/a-cbprqu.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2011-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2011-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -51,7 +51,9 @@ generic
Default_Capacity : Count_Type;
Default_Ceiling : System.Any_Priority := System.Priority'Last;
-package Ada.Containers.Bounded_Priority_Queues is
+package Ada.Containers.Bounded_Priority_Queues with
+ SPARK_Mode => Off
+is
pragma Annotate (CodePeer, Skip_Analysis);
pragma Preelaborate;
diff --git a/gcc/ada/libgnat/a-cbsyqu.adb b/gcc/ada/libgnat/a-cbsyqu.adb
index 4de9f25..abb0e79 100644
--- a/gcc/ada/libgnat/a-cbsyqu.adb
+++ b/gcc/ada/libgnat/a-cbsyqu.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2011-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2011-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -27,7 +27,9 @@
-- This unit was originally developed by Matthew J Heaney. --
------------------------------------------------------------------------------
-package body Ada.Containers.Bounded_Synchronized_Queues is
+package body Ada.Containers.Bounded_Synchronized_Queues with
+ SPARK_Mode => Off
+is
package body Implementation is
diff --git a/gcc/ada/libgnat/a-cbsyqu.ads b/gcc/ada/libgnat/a-cbsyqu.ads
index e457e4c..61504fa 100644
--- a/gcc/ada/libgnat/a-cbsyqu.ads
+++ b/gcc/ada/libgnat/a-cbsyqu.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2011-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2011-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -41,7 +41,9 @@ generic
Default_Capacity : Count_Type;
Default_Ceiling : System.Any_Priority := System.Priority'Last;
-package Ada.Containers.Bounded_Synchronized_Queues is
+package Ada.Containers.Bounded_Synchronized_Queues with
+ SPARK_Mode => Off
+is
pragma Annotate (CodePeer, Skip_Analysis);
pragma Preelaborate;
diff --git a/gcc/ada/libgnat/a-cdlili.adb b/gcc/ada/libgnat/a-cdlili.adb
index 949fb0f..a668db1 100644
--- a/gcc/ada/libgnat/a-cdlili.adb
+++ b/gcc/ada/libgnat/a-cdlili.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -31,7 +31,9 @@ with Ada.Unchecked_Deallocation;
with System; use type System.Address;
-package body Ada.Containers.Doubly_Linked_Lists is
+package body Ada.Containers.Doubly_Linked_Lists with
+ SPARK_Mode => Off
+is
pragma Warnings (Off, "variable ""Busy*"" is not referenced");
pragma Warnings (Off, "variable ""Lock*"" is not referenced");
@@ -295,6 +297,8 @@ package body Ada.Containers.Doubly_Linked_Lists is
X : Node_Access;
begin
+ TC_Check (Container.TC);
+
if Checks and then Position.Node = null then
raise Constraint_Error with
"Position cursor has no element";
@@ -319,8 +323,6 @@ package body Ada.Containers.Doubly_Linked_Lists is
return;
end if;
- TC_Check (Container.TC);
-
for Index in 1 .. Count loop
X := Position.Node;
Container.Length := Container.Length - 1;
@@ -604,6 +606,9 @@ package body Ada.Containers.Doubly_Linked_Lists is
Source : in out List)
is
begin
+ TC_Check (Target.TC);
+ TC_Check (Source.TC);
+
-- The semantics of Merge changed slightly per AI05-0021. It was
-- originally the case that if Target and Source denoted the same
-- container object, then the GNAT implementation of Merge did
@@ -626,9 +631,6 @@ package body Ada.Containers.Doubly_Linked_Lists is
raise Constraint_Error with "new length exceeds maximum";
end if;
- TC_Check (Target.TC);
- TC_Check (Source.TC);
-
-- Per AI05-0022, the container implementation is required to detect
-- element tampering by a generic actual subprogram.
@@ -796,6 +798,8 @@ package body Ada.Containers.Doubly_Linked_Lists is
New_Node : Node_Access;
begin
+ TC_Check (Container.TC);
+
if Before.Container /= null then
if Checks and then Before.Container /= Container'Unrestricted_Access
then
@@ -815,8 +819,6 @@ package body Ada.Containers.Doubly_Linked_Lists is
raise Constraint_Error with "new length exceeds maximum";
end if;
- TC_Check (Container.TC);
-
New_Node := new Node_Type'(New_Item, null, null);
First_Node := New_Node;
Insert_Internal (Container, Before.Node, New_Node);
@@ -851,6 +853,8 @@ package body Ada.Containers.Doubly_Linked_Lists is
New_Node : Node_Access;
begin
+ TC_Check (Container.TC);
+
if Before.Container /= null then
if Checks and then Before.Container /= Container'Unrestricted_Access
then
@@ -870,8 +874,6 @@ package body Ada.Containers.Doubly_Linked_Lists is
raise Constraint_Error with "new length exceeds maximum";
end if;
- TC_Check (Container.TC);
-
New_Node := new Node_Type;
First_Node := New_Node;
Insert_Internal (Container, Before.Node, New_Node);
@@ -1372,6 +1374,8 @@ package body Ada.Containers.Doubly_Linked_Lists is
New_Item : Element_Type)
is
begin
+ TE_Check (Container.TC);
+
if Checks and then Position.Container = null then
raise Constraint_Error with "Position cursor has no element";
end if;
@@ -1381,8 +1385,6 @@ package body Ada.Containers.Doubly_Linked_Lists is
"Position cursor designates wrong container";
end if;
- TE_Check (Container.TC);
-
pragma Assert (Vet (Position), "bad cursor in Replace_Element");
Position.Node.Element := New_Item;
@@ -1543,6 +1545,9 @@ package body Ada.Containers.Doubly_Linked_Lists is
Source : in out List)
is
begin
+ TC_Check (Target.TC);
+ TC_Check (Source.TC);
+
if Before.Container /= null then
if Checks and then Before.Container /= Target'Unrestricted_Access then
raise Program_Error with
@@ -1560,9 +1565,6 @@ package body Ada.Containers.Doubly_Linked_Lists is
raise Constraint_Error with "new length exceeds maximum";
end if;
- TC_Check (Target.TC);
- TC_Check (Source.TC);
-
Splice_Internal (Target, Before.Node, Source);
end Splice;
@@ -1572,6 +1574,8 @@ package body Ada.Containers.Doubly_Linked_Lists is
Position : Cursor)
is
begin
+ TC_Check (Container.TC);
+
if Before.Container /= null then
if Checks and then Before.Container /= Container'Unchecked_Access then
raise Program_Error with
@@ -1601,8 +1605,6 @@ package body Ada.Containers.Doubly_Linked_Lists is
pragma Assert (Container.Length >= 2);
- TC_Check (Container.TC);
-
if Before.Node = null then
pragma Assert (Position.Node /= Container.Last);
@@ -1678,6 +1680,9 @@ package body Ada.Containers.Doubly_Linked_Lists is
return;
end if;
+ TC_Check (Target.TC);
+ TC_Check (Source.TC);
+
if Before.Container /= null then
if Checks and then Before.Container /= Target'Unrestricted_Access then
raise Program_Error with
@@ -1702,9 +1707,6 @@ package body Ada.Containers.Doubly_Linked_Lists is
raise Constraint_Error with "Target is full";
end if;
- TC_Check (Target.TC);
- TC_Check (Source.TC);
-
Splice_Internal (Target, Before.Node, Source, Position.Node);
Position.Container := Target'Unchecked_Access;
end Splice;
@@ -1862,6 +1864,8 @@ package body Ada.Containers.Doubly_Linked_Lists is
I, J : Cursor)
is
begin
+ TE_Check (Container.TC);
+
if Checks and then I.Node = null then
raise Constraint_Error with "I cursor has no element";
end if;
@@ -1882,8 +1886,6 @@ package body Ada.Containers.Doubly_Linked_Lists is
return;
end if;
- TE_Check (Container.TC);
-
pragma Assert (Vet (I), "bad I cursor in Swap");
pragma Assert (Vet (J), "bad J cursor in Swap");
@@ -1908,6 +1910,8 @@ package body Ada.Containers.Doubly_Linked_Lists is
I, J : Cursor)
is
begin
+ TC_Check (Container.TC);
+
if Checks and then I.Node = null then
raise Constraint_Error with "I cursor has no element";
end if;
@@ -1928,8 +1932,6 @@ package body Ada.Containers.Doubly_Linked_Lists is
return;
end if;
- TC_Check (Container.TC);
-
pragma Assert (Vet (I), "bad I cursor in Swap_Links");
pragma Assert (Vet (J), "bad J cursor in Swap_Links");
diff --git a/gcc/ada/libgnat/a-cdlili.ads b/gcc/ada/libgnat/a-cdlili.ads
index e7f40b1..89216e0 100644
--- a/gcc/ada/libgnat/a-cdlili.ads
+++ b/gcc/ada/libgnat/a-cdlili.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -43,7 +43,9 @@ generic
with function "=" (Left, Right : Element_Type)
return Boolean is <>;
-package Ada.Containers.Doubly_Linked_Lists is
+package Ada.Containers.Doubly_Linked_Lists with
+ SPARK_Mode => Off
+is
pragma Annotate (CodePeer, Skip_Analysis);
pragma Preelaborate;
pragma Remote_Types;
diff --git a/gcc/ada/libgnat/a-cfdlli.adb b/gcc/ada/libgnat/a-cfdlli.adb
index 1f23f4b..9713f4c 100644
--- a/gcc/ada/libgnat/a-cfdlli.adb
+++ b/gcc/ada/libgnat/a-cfdlli.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2010-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2010-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-cfdlli.ads b/gcc/ada/libgnat/a-cfdlli.ads
index b8df023..6131239 100644
--- a/gcc/ada/libgnat/a-cfdlli.ads
+++ b/gcc/ada/libgnat/a-cfdlli.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -789,9 +789,10 @@ is
Count => Count);
procedure Delete (Container : in out List; Position : in out Cursor) with
- Global => null,
- Pre => Has_Element (Container, Position),
- Post =>
+ Global => null,
+ Depends => (Container =>+ Position, Position => null),
+ Pre => Has_Element (Container, Position),
+ Post =>
Length (Container) = Length (Container)'Old - 1
-- Position is set to No_Element
diff --git a/gcc/ada/libgnat/a-cfhama.adb b/gcc/ada/libgnat/a-cfhama.adb
index 580ca12..b5c37d2 100644
--- a/gcc/ada/libgnat/a-cfhama.adb
+++ b/gcc/ada/libgnat/a-cfhama.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2010-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2010-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-cfhama.ads b/gcc/ada/libgnat/a-cfhama.ads
index c4e8221..8a73508 100644
--- a/gcc/ada/libgnat/a-cfhama.ads
+++ b/gcc/ada/libgnat/a-cfhama.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -669,9 +669,10 @@ is
Find (Container, Key)'Old);
procedure Delete (Container : in out Map; Position : in out Cursor) with
- Global => null,
- Pre => Has_Element (Container, Position),
- Post =>
+ Global => null,
+ Depends => (Container =>+ Position, Position => null),
+ Pre => Has_Element (Container, Position),
+ Post =>
Position = No_Element
and Length (Container) = Length (Container)'Old - 1
diff --git a/gcc/ada/libgnat/a-cfhase.adb b/gcc/ada/libgnat/a-cfhase.adb
index 8cc220c..121708c 100644
--- a/gcc/ada/libgnat/a-cfhase.adb
+++ b/gcc/ada/libgnat/a-cfhase.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2010-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2010-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-cfhase.ads b/gcc/ada/libgnat/a-cfhase.ads
index 3e72aef..37022ca 100644
--- a/gcc/ada/libgnat/a-cfhase.ads
+++ b/gcc/ada/libgnat/a-cfhase.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -801,9 +801,10 @@ is
-- already in the set.)
procedure Delete (Container : in out Set; Position : in out Cursor) with
- Global => null,
- Pre => Has_Element (Container, Position),
- Post =>
+ Global => null,
+ Depends => (Container =>+ Position, Position => null),
+ Pre => Has_Element (Container, Position),
+ Post =>
Position = No_Element
and Length (Container) = Length (Container)'Old - 1
diff --git a/gcc/ada/libgnat/a-cfinve.adb b/gcc/ada/libgnat/a-cfinve.adb
index b5c318b..28e31d1 100644
--- a/gcc/ada/libgnat/a-cfinve.adb
+++ b/gcc/ada/libgnat/a-cfinve.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2010-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2010-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-cfinve.ads b/gcc/ada/libgnat/a-cfinve.ads
index 87940d2..3e2e350 100644
--- a/gcc/ada/libgnat/a-cfinve.ads
+++ b/gcc/ada/libgnat/a-cfinve.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2014-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2014-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-cforma.adb b/gcc/ada/libgnat/a-cforma.adb
index 15d142d..004b31e 100644
--- a/gcc/ada/libgnat/a-cforma.adb
+++ b/gcc/ada/libgnat/a-cforma.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2010-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2010-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-cforma.ads b/gcc/ada/libgnat/a-cforma.ads
index a13bce4..99b02a5 100644
--- a/gcc/ada/libgnat/a-cforma.ads
+++ b/gcc/ada/libgnat/a-cforma.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -733,9 +733,10 @@ is
Cut => Find (Keys (Container), Key)'Old);
procedure Delete (Container : in out Map; Position : in out Cursor) with
- Global => null,
- Pre => Has_Element (Container, Position),
- Post =>
+ Global => null,
+ Depends => (Container =>+ Position, Position => null),
+ Pre => Has_Element (Container, Position),
+ Post =>
Position = No_Element
and Length (Container) = Length (Container)'Old - 1
diff --git a/gcc/ada/libgnat/a-cforse.adb b/gcc/ada/libgnat/a-cforse.adb
index 71d9b47..991d1dc 100644
--- a/gcc/ada/libgnat/a-cforse.adb
+++ b/gcc/ada/libgnat/a-cforse.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2010-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2010-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-cforse.ads b/gcc/ada/libgnat/a-cforse.ads
index 3cd62af..a818726 100644
--- a/gcc/ada/libgnat/a-cforse.ads
+++ b/gcc/ada/libgnat/a-cforse.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -858,9 +858,10 @@ is
(Container : in out Set;
Position : in out Cursor)
with
- Global => null,
- Pre => Has_Element (Container, Position),
- Post =>
+ Global => null,
+ Depends => (Container =>+ Position, Position => null),
+ Pre => Has_Element (Container, Position),
+ Post =>
Position = No_Element
and Length (Container) = Length (Container)'Old - 1
diff --git a/gcc/ada/libgnat/a-cgaaso.adb b/gcc/ada/libgnat/a-cgaaso.adb
index 0169c9b..6d0049a 100644
--- a/gcc/ada/libgnat/a-cgaaso.adb
+++ b/gcc/ada/libgnat/a-cgaaso.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-cgaaso.ads b/gcc/ada/libgnat/a-cgaaso.ads
index 3622702..c809b65 100644
--- a/gcc/ada/libgnat/a-cgaaso.ads
+++ b/gcc/ada/libgnat/a-cgaaso.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-cgarso.adb b/gcc/ada/libgnat/a-cgarso.adb
index 9117fd4..5f4e594 100644
--- a/gcc/ada/libgnat/a-cgarso.adb
+++ b/gcc/ada/libgnat/a-cgarso.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-cgcaso.adb b/gcc/ada/libgnat/a-cgcaso.adb
index 25508fd..877abab 100644
--- a/gcc/ada/libgnat/a-cgcaso.adb
+++ b/gcc/ada/libgnat/a-cgcaso.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-chacon.adb b/gcc/ada/libgnat/a-chacon.adb
index 2415103..638dcc4 100644
--- a/gcc/ada/libgnat/a-chacon.adb
+++ b/gcc/ada/libgnat/a-chacon.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2005-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2005-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-chacon.ads b/gcc/ada/libgnat/a-chacon.ads
index fe8d5e2..df2e276 100644
--- a/gcc/ada/libgnat/a-chacon.ads
+++ b/gcc/ada/libgnat/a-chacon.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2005-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2005-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-chahan.adb b/gcc/ada/libgnat/a-chahan.adb
index e4827a1..de66846 100644
--- a/gcc/ada/libgnat/a-chahan.adb
+++ b/gcc/ada/libgnat/a-chahan.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -399,6 +399,17 @@ package body Ada.Characters.Handling is
return False;
end Is_Mark;
+ -------------
+ -- Is_NFKC --
+ -------------
+
+ function Is_NFKC (Item : Character) return Boolean is
+ begin
+ return Character'Pos (Item) not in
+ 160 | 168 | 170 | 175 | 178 | 179 | 180 | 181 | 184 | 185 | 186 |
+ 188 | 189 | 190;
+ end Is_NFKC;
+
---------------------
-- Is_Other_Format --
---------------------
diff --git a/gcc/ada/libgnat/a-chahan.ads b/gcc/ada/libgnat/a-chahan.ads
index 867c893..04f975c 100644
--- a/gcc/ada/libgnat/a-chahan.ads
+++ b/gcc/ada/libgnat/a-chahan.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -58,6 +58,7 @@ package Ada.Characters.Handling is
function Is_Other_Format (Item : Character) return Boolean;
function Is_Punctuation_Connector (Item : Character) return Boolean;
function Is_Space (Item : Character) return Boolean;
+ function Is_NFKC (Item : Character) return Boolean;
---------------------------------------------------
-- Conversion Functions for Character and String --
diff --git a/gcc/ada/libgnat/a-chlat9.ads b/gcc/ada/libgnat/a-chlat9.ads
index b58585c..de9b54e 100644
--- a/gcc/ada/libgnat/a-chlat9.ads
+++ b/gcc/ada/libgnat/a-chlat9.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2002-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2002-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-chtgbk.adb b/gcc/ada/libgnat/a-chtgbk.adb
index f567cd5..89358e4 100644
--- a/gcc/ada/libgnat/a-chtgbk.adb
+++ b/gcc/ada/libgnat/a-chtgbk.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -228,6 +228,8 @@ package body Ada.Containers.Hash_Tables.Generic_Bounded_Keys is
N, M : Count_Type;
begin
+ TC_Check (HT.TC);
+
-- Per AI05-0022, the container implementation is required to detect
-- element tampering by a generic actual subprogram.
@@ -250,8 +252,6 @@ package body Ada.Containers.Hash_Tables.Generic_Bounded_Keys is
-- hash table as this one, a key is mapped to exactly one node.)
if Checked_Equivalent_Keys (HT, Key, Node) then
- TE_Check (HT.TC);
-
-- The new Key value is mapped to this same Node, so Node
-- stays in the same bucket.
@@ -292,10 +292,7 @@ package body Ada.Containers.Hash_Tables.Generic_Bounded_Keys is
return;
end if;
- -- The node is a bucket different from the bucket implied by Key
-
- TC_Check (HT.TC);
-
+ -- The node is in a bucket different from the bucket implied by Key.
-- Do the assignment first, before moving the node, so that if Assign
-- propagates an exception, then the hash table will not have been
-- modified (except for any possible side-effect Assign had on Node).
diff --git a/gcc/ada/libgnat/a-chtgbk.ads b/gcc/ada/libgnat/a-chtgbk.ads
index 6b46903..43ad208 100644
--- a/gcc/ada/libgnat/a-chtgbk.ads
+++ b/gcc/ada/libgnat/a-chtgbk.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-chtgbo.adb b/gcc/ada/libgnat/a-chtgbo.adb
index ace096d..9fec5c4 100644
--- a/gcc/ada/libgnat/a-chtgbo.adb
+++ b/gcc/ada/libgnat/a-chtgbo.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-chtgbo.ads b/gcc/ada/libgnat/a-chtgbo.ads
index 8dfe3aa..5fc852d 100644
--- a/gcc/ada/libgnat/a-chtgbo.ads
+++ b/gcc/ada/libgnat/a-chtgbo.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-chtgke.adb b/gcc/ada/libgnat/a-chtgke.adb
index 3c5fff3..fdd62b7 100644
--- a/gcc/ada/libgnat/a-chtgke.adb
+++ b/gcc/ada/libgnat/a-chtgke.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -91,7 +91,6 @@ package body Ada.Containers.Hash_Tables.Generic_Keys is
end if;
if Checked_Equivalent_Keys (HT, Key, X) then
- TC_Check (HT.TC);
HT.Buckets (Indx) := Next (X);
HT.Length := HT.Length - 1;
return;
@@ -106,7 +105,6 @@ package body Ada.Containers.Hash_Tables.Generic_Keys is
end if;
if Checked_Equivalent_Keys (HT, Key, X) then
- TC_Check (HT.TC);
Set_Next (Node => Prev, Next => Next (X));
HT.Length := HT.Length - 1;
return;
diff --git a/gcc/ada/libgnat/a-chtgke.ads b/gcc/ada/libgnat/a-chtgke.ads
index 43b0275b..375ddf6 100644
--- a/gcc/ada/libgnat/a-chtgke.ads
+++ b/gcc/ada/libgnat/a-chtgke.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-chtgop.adb b/gcc/ada/libgnat/a-chtgop.adb
index 7eba2b8..6e7511f 100644
--- a/gcc/ada/libgnat/a-chtgop.adb
+++ b/gcc/ada/libgnat/a-chtgop.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-chtgop.ads b/gcc/ada/libgnat/a-chtgop.ads
index 6ebb9e5..9073d57 100644
--- a/gcc/ada/libgnat/a-chtgop.ads
+++ b/gcc/ada/libgnat/a-chtgop.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-chzla1.ads b/gcc/ada/libgnat/a-chzla1.ads
index 724a36e..8afca7d 100644
--- a/gcc/ada/libgnat/a-chzla1.ads
+++ b/gcc/ada/libgnat/a-chzla1.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-chzla9.ads b/gcc/ada/libgnat/a-chzla9.ads
index d61e62c..389bccf 100644
--- a/gcc/ada/libgnat/a-chzla9.ads
+++ b/gcc/ada/libgnat/a-chzla9.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-cidlli.adb b/gcc/ada/libgnat/a-cidlli.adb
index 65e4c10..0898db8 100644
--- a/gcc/ada/libgnat/a-cidlli.adb
+++ b/gcc/ada/libgnat/a-cidlli.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -31,7 +31,9 @@ with Ada.Unchecked_Deallocation;
with System; use type System.Address;
-package body Ada.Containers.Indefinite_Doubly_Linked_Lists is
+package body Ada.Containers.Indefinite_Doubly_Linked_Lists with
+ SPARK_Mode => Off
+is
pragma Warnings (Off, "variable ""Busy*"" is not referenced");
pragma Warnings (Off, "variable ""Lock*"" is not referenced");
@@ -320,6 +322,8 @@ package body Ada.Containers.Indefinite_Doubly_Linked_Lists is
X : Node_Access;
begin
+ TC_Check (Container.TC);
+
if Checks and then Position.Node = null then
raise Constraint_Error with
"Position cursor has no element";
@@ -349,8 +353,6 @@ package body Ada.Containers.Indefinite_Doubly_Linked_Lists is
return;
end if;
- TC_Check (Container.TC);
-
for Index in 1 .. Count loop
X := Position.Node;
Container.Length := Container.Length - 1;
@@ -667,6 +669,9 @@ package body Ada.Containers.Indefinite_Doubly_Linked_Lists is
return;
end if;
+ TC_Check (Target.TC);
+ TC_Check (Source.TC);
+
if Checks and then Target'Address = Source'Address then
raise Program_Error with
"Target and Source denote same non-empty container";
@@ -677,9 +682,6 @@ package body Ada.Containers.Indefinite_Doubly_Linked_Lists is
raise Constraint_Error with "new length exceeds maximum";
end if;
- TC_Check (Target.TC);
- TC_Check (Source.TC);
-
declare
Lock_Target : With_Lock (Target.TC'Unchecked_Access);
Lock_Source : With_Lock (Source.TC'Unchecked_Access);
@@ -847,6 +849,8 @@ package body Ada.Containers.Indefinite_Doubly_Linked_Lists is
New_Node : Node_Access;
begin
+ TC_Check (Container.TC);
+
if Before.Container /= null then
if Checks and then Before.Container /= Container'Unrestricted_Access
then
@@ -873,8 +877,6 @@ package body Ada.Containers.Indefinite_Doubly_Linked_Lists is
raise Constraint_Error with "new length exceeds maximum";
end if;
- TC_Check (Container.TC);
-
declare
-- The element allocator may need an accessibility check in the case
-- the actual type is class-wide or has access discriminants (see
@@ -1420,6 +1422,8 @@ package body Ada.Containers.Indefinite_Doubly_Linked_Lists is
New_Item : Element_Type)
is
begin
+ TE_Check (Container.TC);
+
if Checks and then Position.Container = null then
raise Constraint_Error with "Position cursor has no element";
end if;
@@ -1429,8 +1433,6 @@ package body Ada.Containers.Indefinite_Doubly_Linked_Lists is
"Position cursor designates wrong container";
end if;
- TE_Check (Container.TC);
-
if Checks and then Position.Node.Element = null then
raise Program_Error with
"Position cursor has no element";
@@ -1612,6 +1614,9 @@ package body Ada.Containers.Indefinite_Doubly_Linked_Lists is
Source : in out List)
is
begin
+ TC_Check (Target.TC);
+ TC_Check (Source.TC);
+
if Before.Container /= null then
if Checks and then Before.Container /= Target'Unrestricted_Access then
raise Program_Error with
@@ -1636,9 +1641,6 @@ package body Ada.Containers.Indefinite_Doubly_Linked_Lists is
raise Constraint_Error with "new length exceeds maximum";
end if;
- TC_Check (Target.TC);
- TC_Check (Source.TC);
-
Splice_Internal (Target, Before.Node, Source);
end Splice;
@@ -1648,6 +1650,8 @@ package body Ada.Containers.Indefinite_Doubly_Linked_Lists is
Position : Cursor)
is
begin
+ TC_Check (Container.TC);
+
if Before.Container /= null then
if Checks and then Before.Container /= Container'Unchecked_Access then
raise Program_Error with
@@ -1688,8 +1692,6 @@ package body Ada.Containers.Indefinite_Doubly_Linked_Lists is
pragma Assert (Container.Length >= 2);
- TC_Check (Container.TC);
-
if Before.Node = null then
pragma Assert (Position.Node /= Container.Last);
@@ -1765,6 +1767,9 @@ package body Ada.Containers.Indefinite_Doubly_Linked_Lists is
return;
end if;
+ TC_Check (Target.TC);
+ TC_Check (Source.TC);
+
if Before.Container /= null then
if Checks and then Before.Container /= Target'Unrestricted_Access then
raise Program_Error with
@@ -1801,9 +1806,6 @@ package body Ada.Containers.Indefinite_Doubly_Linked_Lists is
raise Constraint_Error with "Target is full";
end if;
- TC_Check (Target.TC);
- TC_Check (Source.TC);
-
Splice_Internal (Target, Before.Node, Source, Position.Node);
Position.Container := Target'Unchecked_Access;
end Splice;
@@ -1960,6 +1962,8 @@ package body Ada.Containers.Indefinite_Doubly_Linked_Lists is
I, J : Cursor)
is
begin
+ TE_Check (Container.TC);
+
if Checks and then I.Node = null then
raise Constraint_Error with "I cursor has no element";
end if;
@@ -1980,8 +1984,6 @@ package body Ada.Containers.Indefinite_Doubly_Linked_Lists is
return;
end if;
- TE_Check (Container.TC);
-
pragma Assert (Vet (I), "bad I cursor in Swap");
pragma Assert (Vet (J), "bad J cursor in Swap");
@@ -2003,6 +2005,8 @@ package body Ada.Containers.Indefinite_Doubly_Linked_Lists is
I, J : Cursor)
is
begin
+ TC_Check (Container.TC);
+
if Checks and then I.Node = null then
raise Constraint_Error with "I cursor has no element";
end if;
@@ -2023,8 +2027,6 @@ package body Ada.Containers.Indefinite_Doubly_Linked_Lists is
return;
end if;
- TC_Check (Container.TC);
-
pragma Assert (Vet (I), "bad I cursor in Swap_Links");
pragma Assert (Vet (J), "bad J cursor in Swap_Links");
diff --git a/gcc/ada/libgnat/a-cidlli.ads b/gcc/ada/libgnat/a-cidlli.ads
index 14d1065..e9220a6 100644
--- a/gcc/ada/libgnat/a-cidlli.ads
+++ b/gcc/ada/libgnat/a-cidlli.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -43,7 +43,9 @@ generic
with function "=" (Left, Right : Element_Type)
return Boolean is <>;
-package Ada.Containers.Indefinite_Doubly_Linked_Lists is
+package Ada.Containers.Indefinite_Doubly_Linked_Lists with
+ SPARK_Mode => Off
+is
pragma Annotate (CodePeer, Skip_Analysis);
pragma Preelaborate;
pragma Remote_Types;
diff --git a/gcc/ada/libgnat/a-cihama.adb b/gcc/ada/libgnat/a-cihama.adb
index b33246d..9f5aed7 100644
--- a/gcc/ada/libgnat/a-cihama.adb
+++ b/gcc/ada/libgnat/a-cihama.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -39,7 +39,9 @@ with Ada.Unchecked_Deallocation;
with System; use type System.Address;
-package body Ada.Containers.Indefinite_Hashed_Maps is
+package body Ada.Containers.Indefinite_Hashed_Maps with
+ SPARK_Mode => Off
+is
pragma Warnings (Off, "variable ""Busy*"" is not referenced");
pragma Warnings (Off, "variable ""Lock*"" is not referenced");
@@ -327,6 +329,8 @@ package body Ada.Containers.Indefinite_Hashed_Maps is
procedure Delete (Container : in out Map; Position : in out Cursor) is
begin
+ TC_Check (Container.HT.TC);
+
if Checks and then Position.Node = null then
raise Constraint_Error with
"Position cursor of Delete equals No_Element";
@@ -338,8 +342,6 @@ package body Ada.Containers.Indefinite_Hashed_Maps is
"Position cursor of Delete designates wrong map";
end if;
- TC_Check (Container.HT.TC);
-
pragma Assert (Vet (Position), "bad cursor in Delete");
HT_Ops.Delete_Node_Sans_Free (Container.HT, Position.Node);
@@ -1106,13 +1108,13 @@ package body Ada.Containers.Indefinite_Hashed_Maps is
E : Element_Access;
begin
+ TE_Check (Container.HT.TC);
+
if Checks and then Node = null then
raise Constraint_Error with
"attempt to replace key not in map";
end if;
- TE_Check (Container.HT.TC);
-
K := Node.Key;
E := Node.Element;
@@ -1148,6 +1150,8 @@ package body Ada.Containers.Indefinite_Hashed_Maps is
New_Item : Element_Type)
is
begin
+ TE_Check (Position.Container.HT.TC);
+
if Checks and then Position.Node = null then
raise Constraint_Error with
"Position cursor of Replace_Element equals No_Element";
@@ -1166,8 +1170,6 @@ package body Ada.Containers.Indefinite_Hashed_Maps is
"Position cursor of Replace_Element designates wrong map";
end if;
- TE_Check (Position.Container.HT.TC);
-
pragma Assert (Vet (Position), "bad cursor in Replace_Element");
declare
diff --git a/gcc/ada/libgnat/a-cihama.ads b/gcc/ada/libgnat/a-cihama.ads
index 97a78b2..fb6f4e0 100644
--- a/gcc/ada/libgnat/a-cihama.ads
+++ b/gcc/ada/libgnat/a-cihama.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -45,7 +45,9 @@ generic
with function Equivalent_Keys (Left, Right : Key_Type) return Boolean;
with function "=" (Left, Right : Element_Type) return Boolean is <>;
-package Ada.Containers.Indefinite_Hashed_Maps is
+package Ada.Containers.Indefinite_Hashed_Maps with
+ SPARK_Mode => Off
+is
pragma Annotate (CodePeer, Skip_Analysis);
pragma Preelaborate;
pragma Remote_Types;
diff --git a/gcc/ada/libgnat/a-cihase.adb b/gcc/ada/libgnat/a-cihase.adb
index bec48d0..b91532d 100644
--- a/gcc/ada/libgnat/a-cihase.adb
+++ b/gcc/ada/libgnat/a-cihase.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -41,7 +41,9 @@ with Ada.Containers.Prime_Numbers;
with System; use type System.Address;
-package body Ada.Containers.Indefinite_Hashed_Sets is
+package body Ada.Containers.Indefinite_Hashed_Sets with
+ SPARK_Mode => Off
+is
pragma Warnings (Off, "variable ""Busy*"" is not referenced");
pragma Warnings (Off, "variable ""Lock*"" is not referenced");
@@ -320,6 +322,8 @@ package body Ada.Containers.Indefinite_Hashed_Sets is
Position : in out Cursor)
is
begin
+ TC_Check (Container.HT.TC);
+
if Checks and then Position.Node = null then
raise Constraint_Error with "Position cursor equals No_Element";
end if;
@@ -333,8 +337,6 @@ package body Ada.Containers.Indefinite_Hashed_Sets is
raise Program_Error with "Position cursor designates wrong set";
end if;
- TC_Check (Container.HT.TC);
-
pragma Assert (Vet (Position), "Position cursor is bad");
HT_Ops.Delete_Node_Sans_Free (Container.HT, Position.Node);
@@ -1321,13 +1323,13 @@ package body Ada.Containers.Indefinite_Hashed_Sets is
pragma Warnings (Off, X);
begin
+ TE_Check (Container.HT.TC);
+
if Checks and then Node = null then
raise Constraint_Error with
"attempt to replace element not in set";
end if;
- TE_Check (Container.HT.TC);
-
X := Node.Element;
declare
@@ -2227,7 +2229,7 @@ package body Ada.Containers.Indefinite_Hashed_Sets is
Control =>
(Controlled with
HT.TC'Unrestricted_Access,
- Container => Container'Access,
+ Container => Container'Unchecked_Access,
Index => HT_Ops.Index (HT, Position.Node),
Old_Pos => Position,
Old_Hash => Hash (Key (Position))))
@@ -2261,7 +2263,7 @@ package body Ada.Containers.Indefinite_Hashed_Sets is
Control =>
(Controlled with
HT.TC'Unrestricted_Access,
- Container => Container'Access,
+ Container => Container'Unchecked_Access,
Index => HT_Ops.Index (HT, P.Node),
Old_Pos => P,
Old_Hash => Hash (Key)))
diff --git a/gcc/ada/libgnat/a-cihase.ads b/gcc/ada/libgnat/a-cihase.ads
index ed62c01..926e07f 100644
--- a/gcc/ada/libgnat/a-cihase.ads
+++ b/gcc/ada/libgnat/a-cihase.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -48,7 +48,9 @@ generic
with function "=" (Left, Right : Element_Type) return Boolean is <>;
-package Ada.Containers.Indefinite_Hashed_Sets is
+package Ada.Containers.Indefinite_Hashed_Sets with
+ SPARK_Mode => Off
+is
pragma Annotate (CodePeer, Skip_Analysis);
pragma Preelaborate;
pragma Remote_Types;
diff --git a/gcc/ada/libgnat/a-cimutr.adb b/gcc/ada/libgnat/a-cimutr.adb
index c5cf221..293275a 100644
--- a/gcc/ada/libgnat/a-cimutr.adb
+++ b/gcc/ada/libgnat/a-cimutr.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -31,7 +31,9 @@ with Ada.Unchecked_Deallocation;
with System; use type System.Address;
-package body Ada.Containers.Indefinite_Multiway_Trees is
+package body Ada.Containers.Indefinite_Multiway_Trees with
+ SPARK_Mode => Off
+is
pragma Warnings (Off, "variable ""Busy*"" is not referenced");
pragma Warnings (Off, "variable ""Lock*"" is not referenced");
@@ -261,6 +263,8 @@ package body Ada.Containers.Indefinite_Multiway_Trees is
Element : Element_Access;
begin
+ TC_Check (Container.TC);
+
if Checks and then Parent = No_Element then
raise Constraint_Error with "Parent cursor has no element";
end if;
@@ -273,8 +277,6 @@ package body Ada.Containers.Indefinite_Multiway_Trees is
return;
end if;
- TC_Check (Container.TC);
-
declare
-- The element allocator may need an accessibility check in the case
-- the actual type is class-wide or has access discriminants (see
@@ -738,6 +740,8 @@ package body Ada.Containers.Indefinite_Multiway_Trees is
Count : Count_Type;
begin
+ TC_Check (Container.TC);
+
if Checks and then Parent = No_Element then
raise Constraint_Error with "Parent cursor has no element";
end if;
@@ -746,8 +750,6 @@ package body Ada.Containers.Indefinite_Multiway_Trees is
raise Program_Error with "Parent cursor not in container";
end if;
- TC_Check (Container.TC);
-
-- Deallocate_Children returns a count of the number of nodes
-- that it deallocates, but it works by incrementing the
-- value that is passed in. We must therefore initialize
@@ -772,6 +774,8 @@ package body Ada.Containers.Indefinite_Multiway_Trees is
X : Tree_Node_Access;
begin
+ TC_Check (Container.TC);
+
if Checks and then Position = No_Element then
raise Constraint_Error with "Position cursor has no element";
end if;
@@ -789,8 +793,6 @@ package body Ada.Containers.Indefinite_Multiway_Trees is
raise Constraint_Error with "Position cursor does not designate leaf";
end if;
- TC_Check (Container.TC);
-
X := Position.Node;
Position := No_Element;
@@ -819,6 +821,8 @@ package body Ada.Containers.Indefinite_Multiway_Trees is
Count : Count_Type;
begin
+ TC_Check (Container.TC);
+
if Checks and then Position = No_Element then
raise Constraint_Error with "Position cursor has no element";
end if;
@@ -832,8 +836,6 @@ package body Ada.Containers.Indefinite_Multiway_Trees is
raise Program_Error with "Position cursor designates root";
end if;
- TC_Check (Container.TC);
-
X := Position.Node;
Position := No_Element;
@@ -1191,6 +1193,8 @@ package body Ada.Containers.Indefinite_Multiway_Trees is
Element : Element_Access;
begin
+ TC_Check (Container.TC);
+
if Checks and then Parent = No_Element then
raise Constraint_Error with "Parent cursor has no element";
end if;
@@ -1215,8 +1219,6 @@ package body Ada.Containers.Indefinite_Multiway_Trees is
return;
end if;
- TC_Check (Container.TC);
-
declare
-- The element allocator may need an accessibility check in the case
-- the actual type is class-wide or has access discriminants (see
@@ -1735,6 +1737,8 @@ package body Ada.Containers.Indefinite_Multiway_Trees is
Element : Element_Access;
begin
+ TC_Check (Container.TC);
+
if Checks and then Parent = No_Element then
raise Constraint_Error with "Parent cursor has no element";
end if;
@@ -1747,8 +1751,6 @@ package body Ada.Containers.Indefinite_Multiway_Trees is
return;
end if;
- TC_Check (Container.TC);
-
declare
-- The element allocator may need an accessibility check in the case
-- the actual type is class-wide or has access discriminants (see
@@ -2096,6 +2098,8 @@ package body Ada.Containers.Indefinite_Multiway_Trees is
E, X : Element_Access;
begin
+ TE_Check (Container.TC);
+
if Checks and then Position = No_Element then
raise Constraint_Error with "Position cursor has no element";
end if;
@@ -2109,8 +2113,6 @@ package body Ada.Containers.Indefinite_Multiway_Trees is
raise Program_Error with "Position cursor designates root";
end if;
- TE_Check (Container.TC);
-
declare
-- The element allocator may need an accessibility check in the case
-- the actual type is class-wide or has access discriminants (see
@@ -2182,6 +2184,9 @@ package body Ada.Containers.Indefinite_Multiway_Trees is
Count : Count_Type;
begin
+ TC_Check (Target.TC);
+ TC_Check (Source.TC);
+
if Checks and then Target_Parent = No_Element then
raise Constraint_Error with "Target_Parent cursor has no element";
end if;
@@ -2219,8 +2224,6 @@ package body Ada.Containers.Indefinite_Multiway_Trees is
return;
end if;
- TC_Check (Target.TC);
-
if Checks and then Is_Reachable (From => Target_Parent.Node,
To => Source_Parent.Node)
then
@@ -2236,9 +2239,6 @@ package body Ada.Containers.Indefinite_Multiway_Trees is
return;
end if;
- TC_Check (Target.TC);
- TC_Check (Source.TC);
-
-- We cache the count of the nodes we have allocated, so that operation
-- Node_Count can execute in O(1) time. But that means we must count the
-- nodes in the subtree we remove from Source and insert into Target, in
@@ -2265,6 +2265,8 @@ package body Ada.Containers.Indefinite_Multiway_Trees is
Source_Parent : Cursor)
is
begin
+ TC_Check (Container.TC);
+
if Checks and then Target_Parent = No_Element then
raise Constraint_Error with "Target_Parent cursor has no element";
end if;
@@ -2304,8 +2306,6 @@ package body Ada.Containers.Indefinite_Multiway_Trees is
return;
end if;
- TC_Check (Container.TC);
-
if Checks and then Is_Reachable (From => Target_Parent.Node,
To => Source_Parent.Node)
then
@@ -2363,6 +2363,9 @@ package body Ada.Containers.Indefinite_Multiway_Trees is
Subtree_Count : Count_Type;
begin
+ TC_Check (Target.TC);
+ TC_Check (Source.TC);
+
if Checks and then Parent = No_Element then
raise Constraint_Error with "Parent cursor has no element";
end if;
@@ -2404,8 +2407,6 @@ package body Ada.Containers.Indefinite_Multiway_Trees is
end if;
end if;
- TC_Check (Target.TC);
-
if Checks and then
Is_Reachable (From => Parent.Node, To => Position.Node)
then
@@ -2420,9 +2421,6 @@ package body Ada.Containers.Indefinite_Multiway_Trees is
return;
end if;
- TC_Check (Target.TC);
- TC_Check (Source.TC);
-
-- This is an unfortunate feature of this API: we must count the nodes
-- in the subtree that we remove from the source tree, which is an O(n)
-- operation. It would have been better if the Tree container did not
@@ -2455,6 +2453,8 @@ package body Ada.Containers.Indefinite_Multiway_Trees is
Position : Cursor)
is
begin
+ TC_Check (Container.TC);
+
if Checks and then Parent = No_Element then
raise Constraint_Error with "Parent cursor has no element";
end if;
@@ -2500,8 +2500,6 @@ package body Ada.Containers.Indefinite_Multiway_Trees is
end if;
end if;
- TC_Check (Container.TC);
-
if Checks and then
Is_Reachable (From => Parent.Node, To => Position.Node)
then
@@ -2553,6 +2551,8 @@ package body Ada.Containers.Indefinite_Multiway_Trees is
I, J : Cursor)
is
begin
+ TE_Check (Container.TC);
+
if Checks and then I = No_Element then
raise Constraint_Error with "I cursor has no element";
end if;
@@ -2581,8 +2581,6 @@ package body Ada.Containers.Indefinite_Multiway_Trees is
raise Program_Error with "J cursor designates root";
end if;
- TE_Check (Container.TC);
-
declare
EI : constant Element_Access := I.Node.Element;
diff --git a/gcc/ada/libgnat/a-cimutr.ads b/gcc/ada/libgnat/a-cimutr.ads
index 6441aeb..474a1b5 100644
--- a/gcc/ada/libgnat/a-cimutr.ads
+++ b/gcc/ada/libgnat/a-cimutr.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -42,7 +42,9 @@ generic
with function "=" (Left, Right : Element_Type) return Boolean is <>;
-package Ada.Containers.Indefinite_Multiway_Trees is
+package Ada.Containers.Indefinite_Multiway_Trees with
+ SPARK_Mode => Off
+is
pragma Annotate (CodePeer, Skip_Analysis);
pragma Preelaborate;
pragma Remote_Types;
diff --git a/gcc/ada/libgnat/a-ciorma.adb b/gcc/ada/libgnat/a-ciorma.adb
index 818a2ae..86cd01f 100644
--- a/gcc/ada/libgnat/a-ciorma.adb
+++ b/gcc/ada/libgnat/a-ciorma.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -39,7 +39,9 @@ pragma Elaborate_All (Ada.Containers.Red_Black_Trees.Generic_Keys);
with System; use type System.Address;
-package body Ada.Containers.Indefinite_Ordered_Maps is
+package body Ada.Containers.Indefinite_Ordered_Maps with
+ SPARK_Mode => Off
+is
pragma Suppress (All_Checks);
pragma Warnings (Off, "variable ""Busy*"" is not referenced");
@@ -1435,12 +1437,12 @@ package body Ada.Containers.Indefinite_Ordered_Maps is
E : Element_Access;
begin
+ TE_Check (Container.Tree.TC);
+
if Checks and then Node = null then
raise Constraint_Error with "key not in map";
end if;
- TE_Check (Container.Tree.TC);
-
K := Node.Key;
E := Node.Element;
@@ -1476,6 +1478,8 @@ package body Ada.Containers.Indefinite_Ordered_Maps is
New_Item : Element_Type)
is
begin
+ TE_Check (Container.Tree.TC);
+
if Checks and then Position.Node = null then
raise Constraint_Error with
"Position cursor of Replace_Element equals No_Element";
@@ -1494,8 +1498,6 @@ package body Ada.Containers.Indefinite_Ordered_Maps is
"Position cursor of Replace_Element designates wrong map";
end if;
- TE_Check (Container.Tree.TC);
-
pragma Assert (Vet (Container.Tree, Position.Node),
"Position cursor of Replace_Element is bad");
diff --git a/gcc/ada/libgnat/a-ciorma.ads b/gcc/ada/libgnat/a-ciorma.ads
index 5a872dd..a7799a6 100644
--- a/gcc/ada/libgnat/a-ciorma.ads
+++ b/gcc/ada/libgnat/a-ciorma.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -44,7 +44,9 @@ generic
with function "<" (Left, Right : Key_Type) return Boolean is <>;
with function "=" (Left, Right : Element_Type) return Boolean is <>;
-package Ada.Containers.Indefinite_Ordered_Maps is
+package Ada.Containers.Indefinite_Ordered_Maps with
+ SPARK_Mode => Off
+is
pragma Annotate (CodePeer, Skip_Analysis);
pragma Preelaborate;
pragma Remote_Types;
diff --git a/gcc/ada/libgnat/a-ciormu.adb b/gcc/ada/libgnat/a-ciormu.adb
index 70fb4cf..110d734 100644
--- a/gcc/ada/libgnat/a-ciormu.adb
+++ b/gcc/ada/libgnat/a-ciormu.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -40,7 +40,9 @@ pragma Elaborate_All (Ada.Containers.Red_Black_Trees.Generic_Set_Operations);
with System; use type System.Address;
-package body Ada.Containers.Indefinite_Ordered_Multisets is
+package body Ada.Containers.Indefinite_Ordered_Multisets with
+ SPARK_Mode => Off
+is
pragma Warnings (Off, "variable ""Busy*"" is not referenced");
pragma Warnings (Off, "variable ""Lock*"" is not referenced");
diff --git a/gcc/ada/libgnat/a-ciormu.ads b/gcc/ada/libgnat/a-ciormu.ads
index f8f4991..474ccc7 100644
--- a/gcc/ada/libgnat/a-ciormu.ads
+++ b/gcc/ada/libgnat/a-ciormu.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -43,7 +43,9 @@ generic
with function "<" (Left, Right : Element_Type) return Boolean is <>;
with function "=" (Left, Right : Element_Type) return Boolean is <>;
-package Ada.Containers.Indefinite_Ordered_Multisets is
+package Ada.Containers.Indefinite_Ordered_Multisets with
+ SPARK_Mode => Off
+is
pragma Annotate (CodePeer, Skip_Analysis);
pragma Preelaborate;
pragma Remote_Types;
diff --git a/gcc/ada/libgnat/a-ciorse.adb b/gcc/ada/libgnat/a-ciorse.adb
index 7cc7dca..772061d 100644
--- a/gcc/ada/libgnat/a-ciorse.adb
+++ b/gcc/ada/libgnat/a-ciorse.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -42,7 +42,9 @@ with Ada.Unchecked_Deallocation;
with System; use type System.Address;
-package body Ada.Containers.Indefinite_Ordered_Sets is
+package body Ada.Containers.Indefinite_Ordered_Sets with
+ SPARK_Mode => Off
+is
pragma Warnings (Off, "variable ""Busy*"" is not referenced");
pragma Warnings (Off, "variable ""Lock*"" is not referenced");
@@ -1013,7 +1015,7 @@ package body Ada.Containers.Indefinite_Ordered_Sets is
Control =>
(Controlled with
Tree.TC'Unrestricted_Access,
- Container => Container'Access,
+ Container => Container'Unchecked_Access,
Pos => Position,
Old_Key => new Key_Type'(Key (Position))))
do
@@ -1045,7 +1047,7 @@ package body Ada.Containers.Indefinite_Ordered_Sets is
Control =>
(Controlled with
Tree.TC'Unrestricted_Access,
- Container => Container'Access,
+ Container => Container'Unchecked_Access,
Pos => Find (Container, Key),
Old_Key => new Key_Type'(Key)))
do
@@ -1788,12 +1790,12 @@ package body Ada.Containers.Indefinite_Ordered_Sets is
pragma Warnings (Off, X);
begin
+ TE_Check (Container.Tree.TC);
+
if Checks and then Node = null then
raise Constraint_Error with "attempt to replace element not in set";
end if;
- TE_Check (Container.Tree.TC);
-
declare
-- The element allocator may need an accessibility check in the case
-- the actual type is class-wide or has access discriminants (see
diff --git a/gcc/ada/libgnat/a-ciorse.ads b/gcc/ada/libgnat/a-ciorse.ads
index 0a98d18..1eb8135 100644
--- a/gcc/ada/libgnat/a-ciorse.ads
+++ b/gcc/ada/libgnat/a-ciorse.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -44,7 +44,9 @@ generic
with function "<" (Left, Right : Element_Type) return Boolean is <>;
with function "=" (Left, Right : Element_Type) return Boolean is <>;
-package Ada.Containers.Indefinite_Ordered_Sets is
+package Ada.Containers.Indefinite_Ordered_Sets with
+ SPARK_Mode => Off
+is
pragma Annotate (CodePeer, Skip_Analysis);
pragma Preelaborate;
pragma Remote_Types;
diff --git a/gcc/ada/libgnat/a-clrefi.adb b/gcc/ada/libgnat/a-clrefi.adb
index 51d1a84..2d2c78c 100644
--- a/gcc/ada/libgnat/a-clrefi.adb
+++ b/gcc/ada/libgnat/a-clrefi.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2007-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2007-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-clrefi.ads b/gcc/ada/libgnat/a-clrefi.ads
index 27e9c39..4aace2d 100644
--- a/gcc/ada/libgnat/a-clrefi.ads
+++ b/gcc/ada/libgnat/a-clrefi.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2007-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2007-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-coboho.adb b/gcc/ada/libgnat/a-coboho.adb
index 45b2210..eefb106 100644
--- a/gcc/ada/libgnat/a-coboho.adb
+++ b/gcc/ada/libgnat/a-coboho.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2015-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2015-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-coboho.ads b/gcc/ada/libgnat/a-coboho.ads
index 036569c..cb24c89 100644
--- a/gcc/ada/libgnat/a-coboho.ads
+++ b/gcc/ada/libgnat/a-coboho.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2015-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2015-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-cobove.adb b/gcc/ada/libgnat/a-cobove.adb
index 7508794..fe94ea5 100644
--- a/gcc/ada/libgnat/a-cobove.adb
+++ b/gcc/ada/libgnat/a-cobove.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -483,6 +483,8 @@ package body Ada.Containers.Bounded_Vectors is
Off : Count_Type'Base; -- Index expressed as offset from IT'First
begin
+ TC_Check (Container.TC);
+
-- Delete removes items from the vector, the number of which is the
-- minimum of the specified Count and the items (if any) that exist from
-- Index to Container.Last. There are no constraints on the specified
@@ -532,8 +534,6 @@ package body Ada.Containers.Bounded_Vectors is
-- the count on exit. Delete checks the count to determine whether it is
-- being called while the associated callback procedure is executing.
- TC_Check (Container.TC);
-
-- We first calculate what's available for deletion starting at
-- Index. Here and elsewhere we use the wider of Index_Type'Base and
-- Count_Type'Base as the type for intermediate values. (See function
@@ -636,15 +636,6 @@ package body Ada.Containers.Bounded_Vectors is
Count : Count_Type := 1)
is
begin
- -- It is not permitted to delete items while the container is busy (for
- -- example, we're in the middle of a passive iteration). However, we
- -- always treat deleting 0 items as a no-op, even when we're busy, so we
- -- simply return without checking.
-
- if Count = 0 then
- return;
- end if;
-
-- The tampering bits exist to prevent an item from being deleted (or
-- otherwise harmfully manipulated) while it is being visited. Query,
-- Update, and Iterate increment the busy count on entry, and decrement
@@ -654,6 +645,10 @@ package body Ada.Containers.Bounded_Vectors is
TC_Check (Container.TC);
+ if Count = 0 then
+ return;
+ end if;
+
-- There is no restriction on how large Count can be when deleting
-- items. If it is equal or greater than the current length, then this
-- is equivalent to clearing the vector. (In particular, there's no need
@@ -882,6 +877,8 @@ package body Ada.Containers.Bounded_Vectors is
return;
end if;
+ TC_Check (Source.TC);
+
if Checks and then Target'Address = Source'Address then
raise Program_Error with
"Target and Source denote same non-empty container";
@@ -892,8 +889,6 @@ package body Ada.Containers.Bounded_Vectors is
return;
end if;
- TC_Check (Source.TC);
-
I := Target.Length;
Target.Set_Length (I + Source.Length);
@@ -1021,6 +1016,14 @@ package body Ada.Containers.Bounded_Vectors is
J : Count_Type'Base; -- scratch
begin
+ -- The tampering bits exist to prevent an item from being harmfully
+ -- manipulated while it is being visited. Query, Update, and Iterate
+ -- increment the busy count on entry, and decrement the count on
+ -- exit. Insert checks the count to determine whether it is being called
+ -- while the associated callback procedure is executing.
+
+ TC_Check (Container.TC);
+
-- As a precondition on the generic actual Index_Type, the base type
-- must include Index_Type'Pred (Index_Type'First); this is the value
-- that Container.Last assumes when the vector is empty. However, we do
@@ -1176,14 +1179,6 @@ package body Ada.Containers.Bounded_Vectors is
raise Constraint_Error with "Count is out of range";
end if;
- -- The tampering bits exist to prevent an item from being harmfully
- -- manipulated while it is being visited. Query, Update, and Iterate
- -- increment the busy count on entry, and decrement the count on
- -- exit. Insert checks the count to determine whether it is being called
- -- while the associated callback procedure is executing.
-
- TC_Check (Container.TC);
-
if Checks and then New_Length > Container.Capacity then
raise Capacity_Error with "New length is larger than capacity";
end if;
@@ -1491,6 +1486,14 @@ package body Ada.Containers.Bounded_Vectors is
J : Count_Type'Base; -- scratch
begin
+ -- The tampering bits exist to prevent an item from being harmfully
+ -- manipulated while it is being visited. Query, Update, and Iterate
+ -- increment the busy count on entry, and decrement the count on
+ -- exit. Insert checks the count to determine whether it is being called
+ -- while the associated callback procedure is executing.
+
+ TC_Check (Container.TC);
+
-- As a precondition on the generic actual Index_Type, the base type
-- must include Index_Type'Pred (Index_Type'First); this is the value
-- that Container.Last assumes when the vector is empty. However, we do
@@ -1646,14 +1649,6 @@ package body Ada.Containers.Bounded_Vectors is
raise Constraint_Error with "Count is out of range";
end if;
- -- The tampering bits exist to prevent an item from being harmfully
- -- manipulated while it is being visited. Query, Update, and Iterate
- -- increment the busy count on entry, and decrement the count on
- -- exit. Insert checks the count to determine whether it is being called
- -- while the associated callback procedure is executing.
-
- TC_Check (Container.TC);
-
-- An internal array has already been allocated, so we need to check
-- whether there is enough unused storage for the new items.
@@ -1937,14 +1932,14 @@ package body Ada.Containers.Bounded_Vectors is
return;
end if;
+ TC_Check (Target.TC);
+ TC_Check (Source.TC);
+
if Checks and then Target.Capacity < Source.Length then
raise Capacity_Error -- ???
with "Target capacity is less than Source length";
end if;
- TC_Check (Target.TC);
- TC_Check (Source.TC);
-
-- Clear Target now, in case element assignment fails
Target.Last := No_Index;
@@ -2222,12 +2217,12 @@ package body Ada.Containers.Bounded_Vectors is
New_Item : Element_Type)
is
begin
+ TE_Check (Container.TC);
+
if Checks and then Index > Container.Last then
raise Constraint_Error with "Index is out of range";
end if;
- TE_Check (Container.TC);
-
Container.Elements (To_Array_Index (Index)) := New_Item;
end Replace_Element;
@@ -2237,6 +2232,8 @@ package body Ada.Containers.Bounded_Vectors is
New_Item : Element_Type)
is
begin
+ TE_Check (Container.TC);
+
if Checks and then Position.Container = null then
raise Constraint_Error with "Position cursor has no element";
end if;
@@ -2250,8 +2247,6 @@ package body Ada.Containers.Bounded_Vectors is
raise Constraint_Error with "Position cursor is out of range";
end if;
- TE_Check (Container.TC);
-
Container.Elements (To_Array_Index (Position.Index)) := New_Item;
end Replace_Element;
@@ -2425,6 +2420,8 @@ package body Ada.Containers.Bounded_Vectors is
E : Elements_Array renames Container.Elements;
begin
+ TE_Check (Container.TC);
+
if Checks and then I > Container.Last then
raise Constraint_Error with "I index is out of range";
end if;
@@ -2437,8 +2434,6 @@ package body Ada.Containers.Bounded_Vectors is
return;
end if;
- TE_Check (Container.TC);
-
declare
EI_Copy : constant Element_Type := E (To_Array_Index (I));
begin
diff --git a/gcc/ada/libgnat/a-cobove.ads b/gcc/ada/libgnat/a-cobove.ads
index 34a1fc00..72da498 100644
--- a/gcc/ada/libgnat/a-cobove.ads
+++ b/gcc/ada/libgnat/a-cobove.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-cofove.adb b/gcc/ada/libgnat/a-cofove.adb
index 1240a50..41c69a8 100644
--- a/gcc/ada/libgnat/a-cofove.adb
+++ b/gcc/ada/libgnat/a-cofove.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2010-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2010-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -868,7 +868,11 @@ is
-- less than 0, so it is safe to compute the following sum without
-- fear of overflow.
+ pragma Warnings
+ (Off, "value not in range of type ""T"" defined at line 4");
Index := No_Index + Index_Type'Base (Count_Type'Last);
+ pragma Warnings
+ (On, "value not in range of type ""T"" defined at line 4");
if Index <= Index_Type'Last then
diff --git a/gcc/ada/libgnat/a-cofove.ads b/gcc/ada/libgnat/a-cofove.ads
index 5fb3bc9..5712e63 100644
--- a/gcc/ada/libgnat/a-cofove.ads
+++ b/gcc/ada/libgnat/a-cofove.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-cofuba.adb b/gcc/ada/libgnat/a-cofuba.adb
index 5c5f488..6f2b1f3 100644
--- a/gcc/ada/libgnat/a-cofuba.adb
+++ b/gcc/ada/libgnat/a-cofuba.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2016-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2016-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-cofuba.ads b/gcc/ada/libgnat/a-cofuba.ads
index b693baa..7865342 100644
--- a/gcc/ada/libgnat/a-cofuba.ads
+++ b/gcc/ada/libgnat/a-cofuba.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2016-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2016-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-cofuma.adb b/gcc/ada/libgnat/a-cofuma.adb
index e8da187..4defdf2 100644
--- a/gcc/ada/libgnat/a-cofuma.adb
+++ b/gcc/ada/libgnat/a-cofuma.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2016-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2016-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-cofuma.ads b/gcc/ada/libgnat/a-cofuma.ads
index e458b06..d50d5de 100644
--- a/gcc/ada/libgnat/a-cofuma.ads
+++ b/gcc/ada/libgnat/a-cofuma.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2016-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2016-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-cofuse.adb b/gcc/ada/libgnat/a-cofuse.adb
index e087d64..668c6d0 100644
--- a/gcc/ada/libgnat/a-cofuse.adb
+++ b/gcc/ada/libgnat/a-cofuse.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2016-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2016-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-cofuse.ads b/gcc/ada/libgnat/a-cofuse.ads
index c91a1d1..4209e74 100644
--- a/gcc/ada/libgnat/a-cofuse.ads
+++ b/gcc/ada/libgnat/a-cofuse.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2016-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2016-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-cofuve.adb b/gcc/ada/libgnat/a-cofuve.adb
index 026a32c..0ff2204 100644
--- a/gcc/ada/libgnat/a-cofuve.adb
+++ b/gcc/ada/libgnat/a-cofuve.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2016-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2016-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-cofuve.ads b/gcc/ada/libgnat/a-cofuve.ads
index 804d7b0..cfccf1d 100644
--- a/gcc/ada/libgnat/a-cofuve.ads
+++ b/gcc/ada/libgnat/a-cofuve.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2016-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2016-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -92,7 +92,8 @@ package Ada.Containers.Functional_Vectors with SPARK_Mode is
Length (Container));
pragma Annotate (GNATprove, Inline_For_Proof, Last);
- function First return Extended_Index is (Index_Type'First);
+ function First return Extended_Index is (Index_Type'First) with
+ Global => null;
-- First index of a sequence
------------------------
diff --git a/gcc/ada/libgnat/a-cogeso.adb b/gcc/ada/libgnat/a-cogeso.adb
index 447b03d..7a71772 100644
--- a/gcc/ada/libgnat/a-cogeso.adb
+++ b/gcc/ada/libgnat/a-cogeso.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2011-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2011-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-cogeso.ads b/gcc/ada/libgnat/a-cogeso.ads
index e77558f..6457e64 100644
--- a/gcc/ada/libgnat/a-cogeso.ads
+++ b/gcc/ada/libgnat/a-cogeso.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2011-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2011-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-cohama.adb b/gcc/ada/libgnat/a-cohama.adb
index e7da020..7f2d8e1 100644
--- a/gcc/ada/libgnat/a-cohama.adb
+++ b/gcc/ada/libgnat/a-cohama.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -39,7 +39,9 @@ with Ada.Containers.Helpers; use Ada.Containers.Helpers;
with System; use type System.Address;
-package body Ada.Containers.Hashed_Maps is
+package body Ada.Containers.Hashed_Maps with
+ SPARK_Mode => Off
+is
pragma Warnings (Off, "variable ""Busy*"" is not referenced");
pragma Warnings (Off, "variable ""Lock*"" is not referenced");
@@ -314,6 +316,8 @@ package body Ada.Containers.Hashed_Maps is
procedure Delete (Container : in out Map; Position : in out Cursor) is
begin
+ TC_Check (Container.HT.TC);
+
if Checks and then Position.Node = null then
raise Constraint_Error with
"Position cursor of Delete equals No_Element";
@@ -325,8 +329,6 @@ package body Ada.Containers.Hashed_Maps is
"Position cursor of Delete designates wrong map";
end if;
- TC_Check (Container.HT.TC);
-
pragma Assert (Vet (Position), "bad cursor in Delete");
HT_Ops.Delete_Node_Sans_Free (Container.HT, Position.Node);
@@ -999,13 +1001,13 @@ package body Ada.Containers.Hashed_Maps is
Node : constant Node_Access := Key_Ops.Find (Container.HT, Key);
begin
+ TE_Check (Container.HT.TC);
+
if Checks and then Node = null then
raise Constraint_Error with
"attempt to replace key not in map";
end if;
- TE_Check (Container.HT.TC);
-
Node.Key := Key;
Node.Element := New_Item;
end Replace;
@@ -1020,6 +1022,8 @@ package body Ada.Containers.Hashed_Maps is
New_Item : Element_Type)
is
begin
+ TE_Check (Position.Container.HT.TC);
+
if Checks and then Position.Node = null then
raise Constraint_Error with
"Position cursor of Replace_Element equals No_Element";
@@ -1031,8 +1035,6 @@ package body Ada.Containers.Hashed_Maps is
"Position cursor of Replace_Element designates wrong map";
end if;
- TE_Check (Position.Container.HT.TC);
-
pragma Assert (Vet (Position), "bad cursor in Replace_Element");
Position.Node.Element := New_Item;
diff --git a/gcc/ada/libgnat/a-cohama.ads b/gcc/ada/libgnat/a-cohama.ads
index d16e246..9d927bd 100644
--- a/gcc/ada/libgnat/a-cohama.ads
+++ b/gcc/ada/libgnat/a-cohama.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -88,7 +88,9 @@ generic
-- map values returns an unspecified value. The exact arguments and number
-- of calls of this generic formal function by the function "=" on map
-- values are unspecified.
-package Ada.Containers.Hashed_Maps is
+package Ada.Containers.Hashed_Maps with
+ SPARK_Mode => Off
+is
pragma Annotate (CodePeer, Skip_Analysis);
pragma Preelaborate;
pragma Remote_Types;
diff --git a/gcc/ada/libgnat/a-cohase.adb b/gcc/ada/libgnat/a-cohase.adb
index 61ebf87..bc4e53f 100644
--- a/gcc/ada/libgnat/a-cohase.adb
+++ b/gcc/ada/libgnat/a-cohase.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -41,7 +41,9 @@ with Ada.Containers.Prime_Numbers;
with System; use type System.Address;
-package body Ada.Containers.Hashed_Sets is
+package body Ada.Containers.Hashed_Sets with
+ SPARK_Mode => Off
+is
pragma Warnings (Off, "variable ""Busy*"" is not referenced");
pragma Warnings (Off, "variable ""Lock*"" is not referenced");
@@ -299,6 +301,8 @@ package body Ada.Containers.Hashed_Sets is
Position : in out Cursor)
is
begin
+ TC_Check (Container.HT.TC);
+
if Checks and then Position.Node = null then
raise Constraint_Error with "Position cursor equals No_Element";
end if;
@@ -308,8 +312,6 @@ package body Ada.Containers.Hashed_Sets is
raise Program_Error with "Position cursor designates wrong set";
end if;
- TC_Check (Container.HT.TC);
-
pragma Assert (Vet (Position), "bad cursor in Delete");
HT_Ops.Delete_Node_Sans_Free (Container.HT, Position.Node);
@@ -1204,13 +1206,13 @@ package body Ada.Containers.Hashed_Sets is
Element_Keys.Find (Container.HT, New_Item);
begin
+ TE_Check (Container.HT.TC);
+
if Checks and then Node = null then
raise Constraint_Error with
"attempt to replace element not in set";
end if;
- TE_Check (Container.HT.TC);
-
Node.Element := New_Item;
end Replace;
diff --git a/gcc/ada/libgnat/a-cohase.ads b/gcc/ada/libgnat/a-cohase.ads
index 7cfd1a3..3645ed0 100644
--- a/gcc/ada/libgnat/a-cohase.ads
+++ b/gcc/ada/libgnat/a-cohase.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -48,7 +48,9 @@ generic
with function "=" (Left, Right : Element_Type) return Boolean is <>;
-package Ada.Containers.Hashed_Sets is
+package Ada.Containers.Hashed_Sets with
+ SPARK_Mode => Off
+is
pragma Annotate (CodePeer, Skip_Analysis);
pragma Preelaborate;
pragma Remote_Types;
diff --git a/gcc/ada/libgnat/a-cohata.ads b/gcc/ada/libgnat/a-cohata.ads
index cf209bd..9033c52 100644
--- a/gcc/ada/libgnat/a-cohata.ads
+++ b/gcc/ada/libgnat/a-cohata.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-coinho.adb b/gcc/ada/libgnat/a-coinho.adb
index bc06ffb..c5da943 100644
--- a/gcc/ada/libgnat/a-coinho.adb
+++ b/gcc/ada/libgnat/a-coinho.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2012-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2012-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -304,6 +304,30 @@ package body Ada.Containers.Indefinite_Holders is
end;
end Replace_Element;
+ ----------
+ -- Swap --
+ ----------
+
+ procedure Swap (Left, Right : in out Holder) is
+ begin
+ if Left.Busy /= 0 then
+ raise Program_Error with "attempt to tamper with elements";
+ end if;
+
+ if Right.Busy /= 0 then
+ raise Program_Error with "attempt to tamper with elements";
+ end if;
+
+ if Left.Element /= Right.Element then
+ declare
+ Tmp : constant Element_Access := Left.Element;
+ begin
+ Left.Element := Right.Element;
+ Right.Element := Tmp;
+ end;
+ end if;
+ end Swap;
+
---------------
-- To_Holder --
---------------
diff --git a/gcc/ada/libgnat/a-coinho.ads b/gcc/ada/libgnat/a-coinho.ads
index c9035cd..bf6165e 100644
--- a/gcc/ada/libgnat/a-coinho.ads
+++ b/gcc/ada/libgnat/a-coinho.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2011-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2011-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -92,6 +92,8 @@ package Ada.Containers.Indefinite_Holders is
procedure Move (Target : in out Holder; Source : in out Holder);
+ procedure Swap (Left, Right : in out Holder);
+
private
use Ada.Finalization;
diff --git a/gcc/ada/libgnat/a-coinho__shared.adb b/gcc/ada/libgnat/a-coinho__shared.adb
index d96069f..43f5d52 100644
--- a/gcc/ada/libgnat/a-coinho__shared.adb
+++ b/gcc/ada/libgnat/a-coinho__shared.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2013-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2013-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -426,6 +426,30 @@ package body Ada.Containers.Indefinite_Holders is
end if;
end Replace_Element;
+ ----------
+ -- Swap --
+ ----------
+
+ procedure Swap (Left, Right : in out Holder) is
+ begin
+ if Left.Busy /= 0 then
+ raise Program_Error with "attempt to tamper with elements";
+ end if;
+
+ if Right.Busy /= 0 then
+ raise Program_Error with "attempt to tamper with elements";
+ end if;
+
+ if Left.Reference /= Right.Reference then
+ declare
+ Tmp : constant Shared_Holder_Access := Left.Reference;
+ begin
+ Left.Reference := Right.Reference;
+ Right.Reference := Tmp;
+ end;
+ end if;
+ end Swap;
+
---------------
-- To_Holder --
---------------
diff --git a/gcc/ada/libgnat/a-coinho__shared.ads b/gcc/ada/libgnat/a-coinho__shared.ads
index e29e5d0..0345b5e 100644
--- a/gcc/ada/libgnat/a-coinho__shared.ads
+++ b/gcc/ada/libgnat/a-coinho__shared.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2013-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2013-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -96,6 +96,8 @@ package Ada.Containers.Indefinite_Holders is
procedure Move (Target : in out Holder; Source : in out Holder);
+ procedure Swap (Left, Right : in out Holder);
+
private
use Ada.Finalization;
diff --git a/gcc/ada/libgnat/a-coinve.adb b/gcc/ada/libgnat/a-coinve.adb
index 0dfe1c6..79e36ae 100644
--- a/gcc/ada/libgnat/a-coinve.adb
+++ b/gcc/ada/libgnat/a-coinve.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -32,7 +32,9 @@ with Ada.Unchecked_Deallocation;
with System; use type System.Address;
-package body Ada.Containers.Indefinite_Vectors is
+package body Ada.Containers.Indefinite_Vectors with
+ SPARK_Mode => Off
+is
pragma Warnings (Off, "variable ""Busy*"" is not referenced");
pragma Warnings (Off, "variable ""Lock*"" is not referenced");
@@ -408,6 +410,14 @@ package body Ada.Containers.Indefinite_Vectors is
J : Index_Type'Base; -- first index of items that slide down
begin
+ -- The tampering bits exist to prevent an item from being deleted (or
+ -- otherwise harmfully manipulated) while it is being visited. Query,
+ -- Update, and Iterate increment the busy count on entry, and decrement
+ -- the count on exit. Delete checks the count to determine whether it is
+ -- being called while the associated callback procedure is executing.
+
+ TC_Check (Container.TC);
+
-- Delete removes items from the vector, the number of which is the
-- minimum of the specified Count and the items (if any) that exist from
-- Index to Container.Last. There are no constraints on the specified
@@ -460,14 +470,6 @@ package body Ada.Containers.Indefinite_Vectors is
return;
end if;
- -- The tampering bits exist to prevent an item from being deleted (or
- -- otherwise harmfully manipulated) while it is being visited. Query,
- -- Update, and Iterate increment the busy count on entry, and decrement
- -- the count on exit. Delete checks the count to determine whether it is
- -- being called while the associated callback procedure is executing.
-
- TC_Check (Container.TC);
-
-- We first calculate what's available for deletion starting at
-- Index. Here and elsewhere we use the wider of Index_Type'Base and
-- Count_Type'Base as the type for intermediate values. (See function
@@ -942,6 +944,8 @@ package body Ada.Containers.Indefinite_Vectors is
I, J : Index_Type'Base;
begin
+ TC_Check (Source.TC);
+
-- The semantics of Merge changed slightly per AI05-0021. It was
-- originally the case that if Target and Source denoted the same
-- container object, then the GNAT implementation of Merge did
@@ -964,8 +968,6 @@ package body Ada.Containers.Indefinite_Vectors is
return;
end if;
- TC_Check (Source.TC);
-
I := Target.Last; -- original value (before Set_Length)
Target.Set_Length (Length (Target) + Length (Source));
@@ -1128,6 +1130,14 @@ package body Ada.Containers.Indefinite_Vectors is
Dst : Elements_Access; -- new, expanded internal array
begin
+ -- The tampering bits exist to prevent an item from being harmfully
+ -- manipulated while it is being visited. Query, Update, and Iterate
+ -- increment the busy count on entry, and decrement the count on
+ -- exit. Insert checks the count to determine whether it is being called
+ -- while the associated callback procedure is executing.
+
+ TC_Check (Container.TC);
+
if Checks then
-- As a precondition on the generic actual Index_Type, the base type
-- must include Index_Type'Pred (Index_Type'First); this is the value
@@ -1335,14 +1345,6 @@ package body Ada.Containers.Indefinite_Vectors is
return;
end if;
- -- The tampering bits exist to prevent an item from being harmfully
- -- manipulated while it is being visited. Query, Update, and Iterate
- -- increment the busy count on entry, and decrement the count on
- -- exit. Insert checks the count to determine whether it is being called
- -- while the associated callback procedure is executing.
-
- TC_Check (Container.TC);
-
if New_Length <= Container.Elements.EA'Length then
-- In this case, we're inserting elements into a vector that has
@@ -1908,6 +1910,14 @@ package body Ada.Containers.Indefinite_Vectors is
Dst : Elements_Access; -- new, expanded internal array
begin
+ -- The tampering bits exist to prevent an item from being harmfully
+ -- manipulated while it is being visited. Query, Update, and Iterate
+ -- increment the busy count on entry, and decrement the count on exit.
+ -- Insert checks the count to determine whether it is being called while
+ -- the associated callback procedure is executing.
+
+ TC_Check (Container.TC);
+
if Checks then
-- As a precondition on the generic actual Index_Type, the base type
-- must include Index_Type'Pred (Index_Type'First); this is the value
@@ -2090,14 +2100,6 @@ package body Ada.Containers.Indefinite_Vectors is
return;
end if;
- -- The tampering bits exist to prevent an item from being harmfully
- -- manipulated while it is being visited. Query, Update, and Iterate
- -- increment the busy count on entry, and decrement the count on exit.
- -- Insert checks the count to determine whether it is being called while
- -- the associated callback procedure is executing.
-
- TC_Check (Container.TC);
-
if New_Length <= Container.Elements.EA'Length then
-- In this case, we are inserting elements into a vector that has
@@ -2757,12 +2759,12 @@ package body Ada.Containers.Indefinite_Vectors is
New_Item : Element_Type)
is
begin
+ TE_Check (Container.TC);
+
if Checks and then Index > Container.Last then
raise Constraint_Error with "Index is out of range";
end if;
- TE_Check (Container.TC);
-
declare
X : Element_Access := Container.Elements.EA (Index);
@@ -2784,6 +2786,8 @@ package body Ada.Containers.Indefinite_Vectors is
New_Item : Element_Type)
is
begin
+ TE_Check (Container.TC);
+
if Checks then
if Position.Container = null then
raise Constraint_Error with "Position cursor has no element";
@@ -2798,8 +2802,6 @@ package body Ada.Containers.Indefinite_Vectors is
end if;
end if;
- TE_Check (Container.TC);
-
declare
X : Element_Access := Container.Elements.EA (Position.Index);
@@ -3258,6 +3260,8 @@ package body Ada.Containers.Indefinite_Vectors is
procedure Swap (Container : in out Vector; I, J : Index_Type) is
begin
+ TE_Check (Container.TC);
+
if Checks then
if I > Container.Last then
raise Constraint_Error with "I index is out of range";
@@ -3272,8 +3276,6 @@ package body Ada.Containers.Indefinite_Vectors is
return;
end if;
- TE_Check (Container.TC);
-
declare
EI : Element_Access renames Container.Elements.EA (I);
EJ : Element_Access renames Container.Elements.EA (J);
diff --git a/gcc/ada/libgnat/a-coinve.ads b/gcc/ada/libgnat/a-coinve.ads
index 9ca73ce..075a184 100644
--- a/gcc/ada/libgnat/a-coinve.ads
+++ b/gcc/ada/libgnat/a-coinve.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -43,7 +43,9 @@ generic
with function "=" (Left, Right : Element_Type) return Boolean is <>;
-package Ada.Containers.Indefinite_Vectors is
+package Ada.Containers.Indefinite_Vectors with
+ SPARK_Mode => Off
+is
pragma Annotate (CodePeer, Skip_Analysis);
pragma Preelaborate;
pragma Remote_Types;
diff --git a/gcc/ada/libgnat/a-colien.adb b/gcc/ada/libgnat/a-colien.adb
index 7211c5e..9ea536d 100644
--- a/gcc/ada/libgnat/a-colien.adb
+++ b/gcc/ada/libgnat/a-colien.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1996-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1996-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-colien.ads b/gcc/ada/libgnat/a-colien.ads
index 87de37b..cdcb842 100644
--- a/gcc/ada/libgnat/a-colien.ads
+++ b/gcc/ada/libgnat/a-colien.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1996-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1996-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-colire.adb b/gcc/ada/libgnat/a-colire.adb
index 32d78df..c341773 100644
--- a/gcc/ada/libgnat/a-colire.adb
+++ b/gcc/ada/libgnat/a-colire.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1999-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1999-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-colire.ads b/gcc/ada/libgnat/a-colire.ads
index cf04606..975c0db 100644
--- a/gcc/ada/libgnat/a-colire.ads
+++ b/gcc/ada/libgnat/a-colire.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1999-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1999-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-comlin.adb b/gcc/ada/libgnat/a-comlin.adb
index 1471282..e6e6174 100644
--- a/gcc/ada/libgnat/a-comlin.adb
+++ b/gcc/ada/libgnat/a-comlin.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-comlin.ads b/gcc/ada/libgnat/a-comlin.ads
index 4191fd3..8dbbb07 100644
--- a/gcc/ada/libgnat/a-comlin.ads
+++ b/gcc/ada/libgnat/a-comlin.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-comutr.adb b/gcc/ada/libgnat/a-comutr.adb
index 9e6a00e..76ff751 100644
--- a/gcc/ada/libgnat/a-comutr.adb
+++ b/gcc/ada/libgnat/a-comutr.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -32,7 +32,9 @@ with Ada.Unchecked_Deallocation;
with System; use type System.Address;
-package body Ada.Containers.Multiway_Trees is
+package body Ada.Containers.Multiway_Trees with
+ SPARK_Mode => Off
+is
pragma Warnings (Off, "variable ""Busy*"" is not referenced");
pragma Warnings (Off, "variable ""Lock*"" is not referenced");
@@ -263,6 +265,8 @@ package body Ada.Containers.Multiway_Trees is
Last : Tree_Node_Access;
begin
+ TC_Check (Container.TC);
+
if Checks and then Parent = No_Element then
raise Constraint_Error with "Parent cursor has no element";
end if;
@@ -275,8 +279,6 @@ package body Ada.Containers.Multiway_Trees is
return;
end if;
- TC_Check (Container.TC);
-
First := new Tree_Node_Type'(Parent => Parent.Node,
Element => New_Item,
others => <>);
@@ -699,6 +701,8 @@ package body Ada.Containers.Multiway_Trees is
Count : Count_Type;
begin
+ TC_Check (Container.TC);
+
if Checks and then Parent = No_Element then
raise Constraint_Error with "Parent cursor has no element";
end if;
@@ -707,8 +711,6 @@ package body Ada.Containers.Multiway_Trees is
raise Program_Error with "Parent cursor not in container";
end if;
- TC_Check (Container.TC);
-
-- Deallocate_Children returns a count of the number of nodes that it
-- deallocates, but it works by incrementing the value that is passed
-- in. We must therefore initialize the count value before calling
@@ -733,6 +735,8 @@ package body Ada.Containers.Multiway_Trees is
X : Tree_Node_Access;
begin
+ TC_Check (Container.TC);
+
if Checks and then Position = No_Element then
raise Constraint_Error with "Position cursor has no element";
end if;
@@ -750,8 +754,6 @@ package body Ada.Containers.Multiway_Trees is
raise Constraint_Error with "Position cursor does not designate leaf";
end if;
- TC_Check (Container.TC);
-
X := Position.Node;
Position := No_Element;
@@ -780,6 +782,8 @@ package body Ada.Containers.Multiway_Trees is
Count : Count_Type;
begin
+ TC_Check (Container.TC);
+
if Checks and then Position = No_Element then
raise Constraint_Error with "Position cursor has no element";
end if;
@@ -793,8 +797,6 @@ package body Ada.Containers.Multiway_Trees is
raise Program_Error with "Position cursor designates root";
end if;
- TC_Check (Container.TC);
-
X := Position.Node;
Position := No_Element;
@@ -1145,6 +1147,8 @@ package body Ada.Containers.Multiway_Trees is
Last : Tree_Node_Access;
begin
+ TC_Check (Container.TC);
+
if Checks and then Parent = No_Element then
raise Constraint_Error with "Parent cursor has no element";
end if;
@@ -1169,8 +1173,6 @@ package body Ada.Containers.Multiway_Trees is
return;
end if;
- TC_Check (Container.TC);
-
First := new Tree_Node_Type'(Parent => Parent.Node,
Element => New_Item,
others => <>);
@@ -1214,6 +1216,8 @@ package body Ada.Containers.Multiway_Trees is
Last : Tree_Node_Access;
begin
+ TC_Check (Container.TC);
+
if Checks and then Parent = No_Element then
raise Constraint_Error with "Parent cursor has no element";
end if;
@@ -1238,8 +1242,6 @@ package body Ada.Containers.Multiway_Trees is
return;
end if;
- TC_Check (Container.TC);
-
First := new Tree_Node_Type'(Parent => Parent.Node,
Element => <>,
others => <>);
@@ -1737,6 +1739,8 @@ package body Ada.Containers.Multiway_Trees is
First, Last : Tree_Node_Access;
begin
+ TC_Check (Container.TC);
+
if Checks and then Parent = No_Element then
raise Constraint_Error with "Parent cursor has no element";
end if;
@@ -1749,8 +1753,6 @@ package body Ada.Containers.Multiway_Trees is
return;
end if;
- TC_Check (Container.TC);
-
First := new Tree_Node_Type'(Parent => Parent.Node,
Element => New_Item,
others => <>);
@@ -2073,6 +2075,8 @@ package body Ada.Containers.Multiway_Trees is
New_Item : Element_Type)
is
begin
+ TE_Check (Container.TC);
+
if Checks and then Position = No_Element then
raise Constraint_Error with "Position cursor has no element";
end if;
@@ -2086,8 +2090,6 @@ package body Ada.Containers.Multiway_Trees is
raise Program_Error with "Position cursor designates root";
end if;
- TE_Check (Container.TC);
-
Position.Node.Element := New_Item;
end Replace_Element;
@@ -2160,6 +2162,9 @@ package body Ada.Containers.Multiway_Trees is
Count : Count_Type;
begin
+ TC_Check (Target.TC);
+ TC_Check (Source.TC);
+
if Checks and then Target_Parent = No_Element then
raise Constraint_Error with "Target_Parent cursor has no element";
end if;
@@ -2197,8 +2202,6 @@ package body Ada.Containers.Multiway_Trees is
return;
end if;
- TC_Check (Target.TC);
-
if Checks and then Is_Reachable (From => Target_Parent.Node,
To => Source_Parent.Node)
then
@@ -2214,9 +2217,6 @@ package body Ada.Containers.Multiway_Trees is
return;
end if;
- TC_Check (Target.TC);
- TC_Check (Source.TC);
-
-- We cache the count of the nodes we have allocated, so that operation
-- Node_Count can execute in O(1) time. But that means we must count the
-- nodes in the subtree we remove from Source and insert into Target, in
@@ -2243,6 +2243,8 @@ package body Ada.Containers.Multiway_Trees is
Source_Parent : Cursor)
is
begin
+ TC_Check (Container.TC);
+
if Checks and then Target_Parent = No_Element then
raise Constraint_Error with "Target_Parent cursor has no element";
end if;
@@ -2282,8 +2284,6 @@ package body Ada.Containers.Multiway_Trees is
return;
end if;
- TC_Check (Container.TC);
-
if Checks and then Is_Reachable (From => Target_Parent.Node,
To => Source_Parent.Node)
then
@@ -2341,6 +2341,9 @@ package body Ada.Containers.Multiway_Trees is
Subtree_Count : Count_Type;
begin
+ TC_Check (Target.TC);
+ TC_Check (Source.TC);
+
if Checks and then Parent = No_Element then
raise Constraint_Error with "Parent cursor has no element";
end if;
@@ -2382,8 +2385,6 @@ package body Ada.Containers.Multiway_Trees is
end if;
end if;
- TC_Check (Target.TC);
-
if Checks and then
Is_Reachable (From => Parent.Node, To => Position.Node)
then
@@ -2398,9 +2399,6 @@ package body Ada.Containers.Multiway_Trees is
return;
end if;
- TC_Check (Target.TC);
- TC_Check (Source.TC);
-
-- This is an unfortunate feature of this API: we must count the nodes
-- in the subtree that we remove from the source tree, which is an O(n)
-- operation. It would have been better if the Tree container did not
@@ -2433,6 +2431,8 @@ package body Ada.Containers.Multiway_Trees is
Position : Cursor)
is
begin
+ TC_Check (Container.TC);
+
if Checks and then Parent = No_Element then
raise Constraint_Error with "Parent cursor has no element";
end if;
@@ -2478,8 +2478,6 @@ package body Ada.Containers.Multiway_Trees is
end if;
end if;
- TC_Check (Container.TC);
-
if Checks and then
Is_Reachable (From => Parent.Node, To => Position.Node)
then
@@ -2531,6 +2529,8 @@ package body Ada.Containers.Multiway_Trees is
I, J : Cursor)
is
begin
+ TE_Check (Container.TC);
+
if Checks and then I = No_Element then
raise Constraint_Error with "I cursor has no element";
end if;
@@ -2559,8 +2559,6 @@ package body Ada.Containers.Multiway_Trees is
raise Program_Error with "J cursor designates root";
end if;
- TE_Check (Container.TC);
-
declare
EI : constant Element_Type := I.Node.Element;
diff --git a/gcc/ada/libgnat/a-comutr.ads b/gcc/ada/libgnat/a-comutr.ads
index e6a8dbd..46934a1 100644
--- a/gcc/ada/libgnat/a-comutr.ads
+++ b/gcc/ada/libgnat/a-comutr.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -42,7 +42,9 @@ generic
with function "=" (Left, Right : Element_Type) return Boolean is <>;
-package Ada.Containers.Multiway_Trees is
+package Ada.Containers.Multiway_Trees with
+ SPARK_Mode => Off
+is
pragma Annotate (CodePeer, Skip_Analysis);
pragma Preelaborate;
pragma Remote_Types;
diff --git a/gcc/ada/libgnat/a-conhel.adb b/gcc/ada/libgnat/a-conhel.adb
index 06af0da..1a30b53 100644
--- a/gcc/ada/libgnat/a-conhel.adb
+++ b/gcc/ada/libgnat/a-conhel.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2015-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2015-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-conhel.ads b/gcc/ada/libgnat/a-conhel.ads
index b76f519..80ae980 100644
--- a/gcc/ada/libgnat/a-conhel.ads
+++ b/gcc/ada/libgnat/a-conhel.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2015-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2015-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-convec.adb b/gcc/ada/libgnat/a-convec.adb
index f5e2eb4..c2a0a83 100644
--- a/gcc/ada/libgnat/a-convec.adb
+++ b/gcc/ada/libgnat/a-convec.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -31,8 +31,11 @@ with Ada.Containers.Generic_Array_Sort;
with Ada.Unchecked_Deallocation;
with System; use type System.Address;
+with System.Put_Images;
-package body Ada.Containers.Vectors is
+package body Ada.Containers.Vectors with
+ SPARK_Mode => Off
+is
pragma Warnings (Off, "variable ""Busy*"" is not referenced");
pragma Warnings (Off, "variable ""Lock*"" is not referenced");
@@ -377,6 +380,14 @@ package body Ada.Containers.Vectors is
J : Index_Type'Base; -- first index of items that slide down
begin
+ -- The tampering bits exist to prevent an item from being deleted (or
+ -- otherwise harmfully manipulated) while it is being visited. Query,
+ -- Update, and Iterate increment the busy count on entry, and decrement
+ -- the count on exit. Delete checks the count to determine whether it is
+ -- being called while the associated callback procedure is executing.
+
+ TC_Check (Container.TC);
+
-- Delete removes items from the vector, the number of which is the
-- minimum of the specified Count and the items (if any) that exist from
-- Index to Container.Last. There are no constraints on the specified
@@ -420,14 +431,6 @@ package body Ada.Containers.Vectors is
return;
end if;
- -- The tampering bits exist to prevent an item from being deleted (or
- -- otherwise harmfully manipulated) while it is being visited. Query,
- -- Update, and Iterate increment the busy count on entry, and decrement
- -- the count on exit. Delete checks the count to determine whether it is
- -- being called while the associated callback procedure is executing.
-
- TC_Check (Container.TC);
-
-- We first calculate what's available for deletion starting at
-- Index. Here and elsewhere we use the wider of Index_Type'Base and
-- Count_Type'Base as the type for intermediate values. (See function
@@ -781,6 +784,8 @@ package body Ada.Containers.Vectors is
J : Index_Type'Base;
begin
+ TC_Check (Source.TC);
+
-- The semantics of Merge changed slightly per AI05-0021. It was
-- originally the case that if Target and Source denoted the same
-- container object, then the GNAT implementation of Merge did
@@ -803,8 +808,6 @@ package body Ada.Containers.Vectors is
return;
end if;
- TC_Check (Source.TC);
-
Target.Set_Length (Length (Target) + Length (Source));
-- Per AI05-0022, the container implementation is required to detect
@@ -861,10 +864,6 @@ package body Ada.Containers.Vectors is
"<" => "<");
begin
- if Container.Last <= Index_Type'First then
- return;
- end if;
-
-- The exception behavior for the vector container must match that
-- for the list container, so we check for cursor tampering here
-- (which will catch more things) instead of for element tampering
@@ -878,6 +877,10 @@ package body Ada.Containers.Vectors is
TC_Check (Container.TC);
+ if Container.Last <= Index_Type'First then
+ return;
+ end if;
+
-- Per AI05-0022, the container implementation is required to detect
-- element tampering by a generic actual subprogram.
@@ -933,6 +936,14 @@ package body Ada.Containers.Vectors is
Dst : Elements_Access; -- new, expanded internal array
begin
+ -- The tampering bits exist to prevent an item from being harmfully
+ -- manipulated while it is being visited. Query, Update, and Iterate
+ -- increment the busy count on entry, and decrement the count on
+ -- exit. Insert checks the count to determine whether it is being called
+ -- while the associated callback procedure is executing.
+
+ TC_Check (Container.TC);
+
if Checks then
-- As a precondition on the generic actual Index_Type, the base type
-- must include Index_Type'Pred (Index_Type'First); this is the value
@@ -1124,14 +1135,6 @@ package body Ada.Containers.Vectors is
return;
end if;
- -- The tampering bits exist to prevent an item from being harmfully
- -- manipulated while it is being visited. Query, Update, and Iterate
- -- increment the busy count on entry, and decrement the count on
- -- exit. Insert checks the count to determine whether it is being called
- -- while the associated callback procedure is executing.
-
- TC_Check (Container.TC);
-
-- An internal array has already been allocated, so we must determine
-- whether there is enough unused storage for the new items.
@@ -1595,6 +1598,14 @@ package body Ada.Containers.Vectors is
Dst : Elements_Access; -- new, expanded internal array
begin
+ -- The tampering bits exist to prevent an item from being harmfully
+ -- manipulated while it is being visited. Query, Update, and Iterate
+ -- increment the busy count on entry, and decrement the count on
+ -- exit. Insert checks the count to determine whether it is being called
+ -- while the associated callback procedure is executing.
+
+ TC_Check (Container.TC);
+
if Checks then
-- As a precondition on the generic actual Index_Type, the base type
-- must include Index_Type'Pred (Index_Type'First); this is the value
@@ -1784,14 +1795,6 @@ package body Ada.Containers.Vectors is
return;
end if;
- -- The tampering bits exist to prevent an item from being harmfully
- -- manipulated while it is being visited. Query, Update, and Iterate
- -- increment the busy count on entry, and decrement the count on
- -- exit. Insert checks the count to determine whether it is being called
- -- while the associated callback procedure is executing.
-
- TC_Check (Container.TC);
-
-- An internal array has already been allocated, so we must determine
-- whether there is enough unused storage for the new items.
@@ -2297,6 +2300,31 @@ package body Ada.Containers.Vectors is
end return;
end Pseudo_Reference;
+ ---------------
+ -- Put_Image --
+ ---------------
+
+ procedure Put_Image
+ (S : in out Ada.Strings.Text_Output.Sink'Class; V : Vector)
+ is
+ First_Time : Boolean := True;
+ use System.Put_Images;
+ begin
+ Array_Before (S);
+
+ for X of V loop
+ if First_Time then
+ First_Time := False;
+ else
+ Simple_Array_Between (S);
+ end if;
+
+ Element_Type'Put_Image (S, X);
+ end loop;
+
+ Array_After (S);
+ end Put_Image;
+
-------------------
-- Query_Element --
-------------------
@@ -2446,11 +2474,12 @@ package body Ada.Containers.Vectors is
New_Item : Element_Type)
is
begin
+ TE_Check (Container.TC);
+
if Checks and then Index > Container.Last then
raise Constraint_Error with "Index is out of range";
end if;
- TE_Check (Container.TC);
Container.Elements.EA (Index) := New_Item;
end Replace_Element;
@@ -2460,6 +2489,8 @@ package body Ada.Containers.Vectors is
New_Item : Element_Type)
is
begin
+ TE_Check (Container.TC);
+
if Checks then
if Position.Container = null then
raise Constraint_Error with "Position cursor has no element";
@@ -2472,7 +2503,6 @@ package body Ada.Containers.Vectors is
end if;
end if;
- TE_Check (Container.TC);
Container.Elements.EA (Position.Index) := New_Item;
end Replace_Element;
@@ -2940,6 +2970,8 @@ package body Ada.Containers.Vectors is
procedure Swap (Container : in out Vector; I, J : Index_Type) is
begin
+ TE_Check (Container.TC);
+
if Checks then
if I > Container.Last then
raise Constraint_Error with "I index is out of range";
@@ -2954,8 +2986,6 @@ package body Ada.Containers.Vectors is
return;
end if;
- TE_Check (Container.TC);
-
declare
EI_Copy : constant Element_Type := Container.Elements.EA (I);
begin
diff --git a/gcc/ada/libgnat/a-convec.ads b/gcc/ada/libgnat/a-convec.ads
index 8109f8a..a12e456 100644
--- a/gcc/ada/libgnat/a-convec.ads
+++ b/gcc/ada/libgnat/a-convec.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -36,6 +36,7 @@ with Ada.Iterator_Interfaces;
with Ada.Containers.Helpers;
private with Ada.Finalization;
private with Ada.Streams;
+private with Ada.Strings.Text_Output;
-- The language-defined generic package Containers.Vectors provides private
-- types Vector and Cursor, and a set of operations for each type. A vector
@@ -70,7 +71,9 @@ generic
-- number of calls of this generic formal function by the functions defined
-- to use it are unspecified.
-package Ada.Containers.Vectors is
+package Ada.Containers.Vectors with
+ SPARK_Mode => Off
+is
pragma Annotate (CodePeer, Skip_Analysis);
pragma Preelaborate;
pragma Remote_Types;
@@ -694,7 +697,10 @@ private
Elements : Elements_Access := null;
Last : Extended_Index := No_Index;
TC : aliased Tamper_Counts;
- end record;
+ end record with Put_Image => Put_Image;
+
+ procedure Put_Image
+ (S : in out Ada.Strings.Text_Output.Sink'Class; V : Vector);
overriding procedure Adjust (Container : in out Vector);
overriding procedure Finalize (Container : in out Vector);
diff --git a/gcc/ada/libgnat/a-coorma.adb b/gcc/ada/libgnat/a-coorma.adb
index e49ae90..4106d58 100644
--- a/gcc/ada/libgnat/a-coorma.adb
+++ b/gcc/ada/libgnat/a-coorma.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -39,7 +39,9 @@ pragma Elaborate_All (Ada.Containers.Red_Black_Trees.Generic_Keys);
with System; use type System.Address;
-package body Ada.Containers.Ordered_Maps is
+package body Ada.Containers.Ordered_Maps with
+ SPARK_Mode => Off
+is
pragma Warnings (Off, "variable ""Busy*"" is not referenced");
pragma Warnings (Off, "variable ""Lock*"" is not referenced");
@@ -1349,12 +1351,12 @@ package body Ada.Containers.Ordered_Maps is
Node : constant Node_Access := Key_Ops.Find (Container.Tree, Key);
begin
+ TE_Check (Container.Tree.TC);
+
if Checks and then Node = null then
raise Constraint_Error with "key not in map";
end if;
- TE_Check (Container.Tree.TC);
-
Node.Key := Key;
Node.Element := New_Item;
end Replace;
@@ -1369,6 +1371,8 @@ package body Ada.Containers.Ordered_Maps is
New_Item : Element_Type)
is
begin
+ TE_Check (Container.Tree.TC);
+
if Checks and then Position.Node = null then
raise Constraint_Error with
"Position cursor of Replace_Element equals No_Element";
@@ -1380,8 +1384,6 @@ package body Ada.Containers.Ordered_Maps is
"Position cursor of Replace_Element designates wrong map";
end if;
- TE_Check (Container.Tree.TC);
-
pragma Assert (Vet (Container.Tree, Position.Node),
"Position cursor of Replace_Element is bad");
diff --git a/gcc/ada/libgnat/a-coorma.ads b/gcc/ada/libgnat/a-coorma.ads
index 7599750..e2d5e1e 100644
--- a/gcc/ada/libgnat/a-coorma.ads
+++ b/gcc/ada/libgnat/a-coorma.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -44,7 +44,9 @@ generic
with function "<" (Left, Right : Key_Type) return Boolean is <>;
with function "=" (Left, Right : Element_Type) return Boolean is <>;
-package Ada.Containers.Ordered_Maps is
+package Ada.Containers.Ordered_Maps with
+ SPARK_Mode => Off
+is
pragma Annotate (CodePeer, Skip_Analysis);
pragma Preelaborate;
pragma Remote_Types;
diff --git a/gcc/ada/libgnat/a-coormu.adb b/gcc/ada/libgnat/a-coormu.adb
index 52db05d..c02a9f1 100644
--- a/gcc/ada/libgnat/a-coormu.adb
+++ b/gcc/ada/libgnat/a-coormu.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -40,7 +40,9 @@ pragma Elaborate_All (Ada.Containers.Red_Black_Trees.Generic_Set_Operations);
with System; use type System.Address;
-package body Ada.Containers.Ordered_Multisets is
+package body Ada.Containers.Ordered_Multisets with
+ SPARK_Mode => Off
+is
pragma Warnings (Off, "variable ""Busy*"" is not referenced");
pragma Warnings (Off, "variable ""Lock*"" is not referenced");
diff --git a/gcc/ada/libgnat/a-coormu.ads b/gcc/ada/libgnat/a-coormu.ads
index a3d7631..9c6c3ae 100644
--- a/gcc/ada/libgnat/a-coormu.ads
+++ b/gcc/ada/libgnat/a-coormu.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -42,7 +42,9 @@ generic
with function "<" (Left, Right : Element_Type) return Boolean is <>;
with function "=" (Left, Right : Element_Type) return Boolean is <>;
-package Ada.Containers.Ordered_Multisets is
+package Ada.Containers.Ordered_Multisets with
+ SPARK_Mode => Off
+is
pragma Annotate (CodePeer, Skip_Analysis);
pragma Preelaborate;
pragma Remote_Types;
diff --git a/gcc/ada/libgnat/a-coorse.adb b/gcc/ada/libgnat/a-coorse.adb
index d2f8a58..15b59dd 100644
--- a/gcc/ada/libgnat/a-coorse.adb
+++ b/gcc/ada/libgnat/a-coorse.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -42,7 +42,9 @@ pragma Elaborate_All (Ada.Containers.Red_Black_Trees.Generic_Set_Operations);
with System; use type System.Address;
-package body Ada.Containers.Ordered_Sets is
+package body Ada.Containers.Ordered_Sets with
+ SPARK_Mode => Off
+is
pragma Warnings (Off, "variable ""Busy*"" is not referenced");
pragma Warnings (Off, "variable ""Lock*"" is not referenced");
@@ -899,7 +901,7 @@ package body Ada.Containers.Ordered_Sets is
Control =>
(Controlled with
Tree.TC'Unrestricted_Access,
- Container => Container'Access,
+ Container => Container'Unchecked_Access,
Pos => Position,
Old_Key => new Key_Type'(Key (Position))))
do
@@ -927,7 +929,7 @@ package body Ada.Containers.Ordered_Sets is
Control =>
(Controlled with
Tree.TC'Unrestricted_Access,
- Container => Container'Access,
+ Container => Container'Unchecked_Access,
Pos => Find (Container, Key),
Old_Key => new Key_Type'(Key)))
do
@@ -1641,13 +1643,13 @@ package body Ada.Containers.Ordered_Sets is
Element_Keys.Find (Container.Tree, New_Item);
begin
+ TE_Check (Container.Tree.TC);
+
if Checks and then Node = null then
raise Constraint_Error with
"attempt to replace element not in set";
end if;
- TE_Check (Container.Tree.TC);
-
Node.Element := New_Item;
end Replace;
diff --git a/gcc/ada/libgnat/a-coorse.ads b/gcc/ada/libgnat/a-coorse.ads
index 5586e4c..42e5b49 100644
--- a/gcc/ada/libgnat/a-coorse.ads
+++ b/gcc/ada/libgnat/a-coorse.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -44,7 +44,9 @@ generic
with function "<" (Left, Right : Element_Type) return Boolean is <>;
with function "=" (Left, Right : Element_Type) return Boolean is <>;
-package Ada.Containers.Ordered_Sets is
+package Ada.Containers.Ordered_Sets with
+ SPARK_Mode => Off
+is
pragma Annotate (CodePeer, Skip_Analysis);
pragma Preelaborate;
pragma Remote_Types;
diff --git a/gcc/ada/libgnat/a-coprnu.adb b/gcc/ada/libgnat/a-coprnu.adb
index 891cd59..25f04e6 100644
--- a/gcc/ada/libgnat/a-coprnu.adb
+++ b/gcc/ada/libgnat/a-coprnu.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-coprnu.ads b/gcc/ada/libgnat/a-coprnu.ads
index c944f8c..5afb474 100644
--- a/gcc/ada/libgnat/a-coprnu.ads
+++ b/gcc/ada/libgnat/a-coprnu.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-crbltr.ads b/gcc/ada/libgnat/a-crbltr.ads
index ecc1dca..0ae2abd 100644
--- a/gcc/ada/libgnat/a-crbltr.ads
+++ b/gcc/ada/libgnat/a-crbltr.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-crbtgk.adb b/gcc/ada/libgnat/a-crbtgk.adb
index be78f03..a41fcbb 100644
--- a/gcc/ada/libgnat/a-crbtgk.adb
+++ b/gcc/ada/libgnat/a-crbtgk.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -422,12 +422,12 @@ package body Ada.Containers.Red_Black_Trees.Generic_Keys is
Z : out Node_Access)
is
begin
+ TC_Check (Tree.TC);
+
if Checks and then Tree.Length = Count_Type'Last then
raise Constraint_Error with "too many elements";
end if;
- TC_Check (Tree.TC);
-
Z := New_Node;
pragma Assert (Z /= null);
pragma Assert (Ops.Color (Z) = Red);
diff --git a/gcc/ada/libgnat/a-crbtgk.ads b/gcc/ada/libgnat/a-crbtgk.ads
index 0077758..4bdcf5c 100644
--- a/gcc/ada/libgnat/a-crbtgk.ads
+++ b/gcc/ada/libgnat/a-crbtgk.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-crbtgo.adb b/gcc/ada/libgnat/a-crbtgo.adb
index cf125f1..35727b0 100644
--- a/gcc/ada/libgnat/a-crbtgo.adb
+++ b/gcc/ada/libgnat/a-crbtgo.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -693,12 +693,12 @@ package body Ada.Containers.Red_Black_Trees.Generic_Operations is
procedure Generic_Move (Target, Source : in out Tree_Type) is
begin
+ TC_Check (Source.TC);
+
if Target'Address = Source'Address then
return;
end if;
- TC_Check (Source.TC);
-
Clear (Target);
Target := Source;
diff --git a/gcc/ada/libgnat/a-crbtgo.ads b/gcc/ada/libgnat/a-crbtgo.ads
index a46f787..5f37221 100644
--- a/gcc/ada/libgnat/a-crbtgo.ads
+++ b/gcc/ada/libgnat/a-crbtgo.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-crdlli.adb b/gcc/ada/libgnat/a-crdlli.adb
index f69c5d8..fb92fd4 100644
--- a/gcc/ada/libgnat/a-crdlli.adb
+++ b/gcc/ada/libgnat/a-crdlli.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-crdlli.ads b/gcc/ada/libgnat/a-crdlli.ads
index d4ad46e..7f27497 100644
--- a/gcc/ada/libgnat/a-crdlli.ads
+++ b/gcc/ada/libgnat/a-crdlli.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-csquin.ads b/gcc/ada/libgnat/a-csquin.ads
index 68d20c8..df65ba4 100644
--- a/gcc/ada/libgnat/a-csquin.ads
+++ b/gcc/ada/libgnat/a-csquin.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2011-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2011-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-cuprqu.adb b/gcc/ada/libgnat/a-cuprqu.adb
index 843c9a9..deae9a7 100644
--- a/gcc/ada/libgnat/a-cuprqu.adb
+++ b/gcc/ada/libgnat/a-cuprqu.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2011-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2011-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-cuprqu.ads b/gcc/ada/libgnat/a-cuprqu.ads
index 81ae16b..a70e5e0 100644
--- a/gcc/ada/libgnat/a-cuprqu.ads
+++ b/gcc/ada/libgnat/a-cuprqu.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2011-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2011-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-cusyqu.adb b/gcc/ada/libgnat/a-cusyqu.adb
index c92ca5e..295711c 100644
--- a/gcc/ada/libgnat/a-cusyqu.adb
+++ b/gcc/ada/libgnat/a-cusyqu.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2011-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2011-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-cusyqu.ads b/gcc/ada/libgnat/a-cusyqu.ads
index 28995c2..cd2af82 100644
--- a/gcc/ada/libgnat/a-cusyqu.ads
+++ b/gcc/ada/libgnat/a-cusyqu.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2011-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2011-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-cwila1.ads b/gcc/ada/libgnat/a-cwila1.ads
index fdf9188..fc28f17 100644
--- a/gcc/ada/libgnat/a-cwila1.ads
+++ b/gcc/ada/libgnat/a-cwila1.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-cwila9.ads b/gcc/ada/libgnat/a-cwila9.ads
index 2016590a..8f44c5b 100644
--- a/gcc/ada/libgnat/a-cwila9.ads
+++ b/gcc/ada/libgnat/a-cwila9.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-decima.adb b/gcc/ada/libgnat/a-decima.adb
index afa9a0d..bf05516 100644
--- a/gcc/ada/libgnat/a-decima.adb
+++ b/gcc/ada/libgnat/a-decima.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-decima.ads b/gcc/ada/libgnat/a-decima.ads
index 07986ce..9b56cc6 100644
--- a/gcc/ada/libgnat/a-decima.ads
+++ b/gcc/ada/libgnat/a-decima.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-dhfina.adb b/gcc/ada/libgnat/a-dhfina.adb
index df7c345..e0ae41fe 100644
--- a/gcc/ada/libgnat/a-dhfina.adb
+++ b/gcc/ada/libgnat/a-dhfina.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-dhfina.ads b/gcc/ada/libgnat/a-dhfina.ads
index fe32d01..cf8697e 100644
--- a/gcc/ada/libgnat/a-dhfina.ads
+++ b/gcc/ada/libgnat/a-dhfina.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-diocst.adb b/gcc/ada/libgnat/a-diocst.adb
index 5f4bf9f..83dc30a 100644
--- a/gcc/ada/libgnat/a-diocst.adb
+++ b/gcc/ada/libgnat/a-diocst.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-diocst.ads b/gcc/ada/libgnat/a-diocst.ads
index eabade9..a6507c1 100644
--- a/gcc/ada/libgnat/a-diocst.ads
+++ b/gcc/ada/libgnat/a-diocst.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-direct.adb b/gcc/ada/libgnat/a-direct.adb
index 1a1b708..b70bf0e 100644
--- a/gcc/ada/libgnat/a-direct.adb
+++ b/gcc/ada/libgnat/a-direct.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-direct.ads b/gcc/ada/libgnat/a-direct.ads
index d36a024..05cb2b6 100644
--- a/gcc/ada/libgnat/a-direct.ads
+++ b/gcc/ada/libgnat/a-direct.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived for use with GNAT from AI-00248, which is --
-- expected to be a part of a future expected revised Ada Reference Manual. --
diff --git a/gcc/ada/libgnat/a-direio.adb b/gcc/ada/libgnat/a-direio.adb
index a144841..48e4f74 100644
--- a/gcc/ada/libgnat/a-direio.adb
+++ b/gcc/ada/libgnat/a-direio.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-direio.ads b/gcc/ada/libgnat/a-direio.ads
index 5cf8bff..a293156 100644
--- a/gcc/ada/libgnat/a-direio.ads
+++ b/gcc/ada/libgnat/a-direio.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-dirval.adb b/gcc/ada/libgnat/a-dirval.adb
index cd7e96e..38e56c9 100644
--- a/gcc/ada/libgnat/a-dirval.adb
+++ b/gcc/ada/libgnat/a-dirval.adb
@@ -7,7 +7,7 @@
-- B o d y --
-- (POSIX Version) --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-dirval.ads b/gcc/ada/libgnat/a-dirval.ads
index bf67640..0485802 100644
--- a/gcc/ada/libgnat/a-dirval.ads
+++ b/gcc/ada/libgnat/a-dirval.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-dirval__mingw.adb b/gcc/ada/libgnat/a-dirval__mingw.adb
index 4ab9908..27d09ef 100644
--- a/gcc/ada/libgnat/a-dirval__mingw.adb
+++ b/gcc/ada/libgnat/a-dirval__mingw.adb
@@ -7,7 +7,7 @@
-- B o d y --
-- (Windows Version) --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-einuoc.adb b/gcc/ada/libgnat/a-einuoc.adb
index 77d6b8d..bc9211a 100644
--- a/gcc/ada/libgnat/a-einuoc.adb
+++ b/gcc/ada/libgnat/a-einuoc.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2000-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2000-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-einuoc.ads b/gcc/ada/libgnat/a-einuoc.ads
index c78d511..5d1e264 100644
--- a/gcc/ada/libgnat/a-einuoc.ads
+++ b/gcc/ada/libgnat/a-einuoc.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2000-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2000-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-elchha.adb b/gcc/ada/libgnat/a-elchha.adb
index 96f4112..244352d 100644
--- a/gcc/ada/libgnat/a-elchha.adb
+++ b/gcc/ada/libgnat/a-elchha.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2003-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2003-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-elchha.ads b/gcc/ada/libgnat/a-elchha.ads
index d4352be..5aa7fe2 100644
--- a/gcc/ada/libgnat/a-elchha.ads
+++ b/gcc/ada/libgnat/a-elchha.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2003-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2003-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-elchha__vxworks-ppc-full.adb b/gcc/ada/libgnat/a-elchha__vxworks-ppc-full.adb
index d184743..25097d6 100644
--- a/gcc/ada/libgnat/a-elchha__vxworks-ppc-full.adb
+++ b/gcc/ada/libgnat/a-elchha__vxworks-ppc-full.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2003-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2003-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-envvar.adb b/gcc/ada/libgnat/a-envvar.adb
index 09b1af5..0d6e2ed 100644
--- a/gcc/ada/libgnat/a-envvar.adb
+++ b/gcc/ada/libgnat/a-envvar.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2009-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2009-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-excach.adb b/gcc/ada/libgnat/a-excach.adb
index 84ee98d..f9d6ee0 100644
--- a/gcc/ada/libgnat/a-excach.adb
+++ b/gcc/ada/libgnat/a-excach.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-except.adb b/gcc/ada/libgnat/a-except.adb
index 8b0a31c..17f3db6 100644
--- a/gcc/ada/libgnat/a-except.adb
+++ b/gcc/ada/libgnat/a-except.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -1660,10 +1660,10 @@ package body Ada.Exceptions is
---------------
procedure To_Stderr (C : Character) is
- procedure Put_Char_Stderr (C : Character);
+ procedure Put_Char_Stderr (C : Integer);
pragma Import (C, Put_Char_Stderr, "put_char_stderr");
begin
- Put_Char_Stderr (C);
+ Put_Char_Stderr (Character'Pos (C));
end To_Stderr;
procedure To_Stderr (S : String) is
diff --git a/gcc/ada/libgnat/a-except.ads b/gcc/ada/libgnat/a-except.ads
index 4f70769..85bb5bd 100644
--- a/gcc/ada/libgnat/a-except.ads
+++ b/gcc/ada/libgnat/a-except.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-excpol.adb b/gcc/ada/libgnat/a-excpol.adb
index 058dbad..27893c3 100644
--- a/gcc/ada/libgnat/a-excpol.adb
+++ b/gcc/ada/libgnat/a-excpol.adb
@@ -7,7 +7,7 @@
-- B o d y --
-- (dummy version where polling is not used) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNARL is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-excpol__abort.adb b/gcc/ada/libgnat/a-excpol__abort.adb
index 733abcc..511f58c 100644
--- a/gcc/ada/libgnat/a-excpol__abort.adb
+++ b/gcc/ada/libgnat/a-excpol__abort.adb
@@ -7,7 +7,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNARL is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-exctra.adb b/gcc/ada/libgnat/a-exctra.adb
index 164e6fd..450af8b 100644
--- a/gcc/ada/libgnat/a-exctra.adb
+++ b/gcc/ada/libgnat/a-exctra.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1999-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1999-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-exctra.ads b/gcc/ada/libgnat/a-exctra.ads
index 6033a2d..ba90f52 100644
--- a/gcc/ada/libgnat/a-exctra.ads
+++ b/gcc/ada/libgnat/a-exctra.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1999-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1999-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-exexda.adb b/gcc/ada/libgnat/a-exexda.adb
index 1f0fb11..31831b6 100644
--- a/gcc/ada/libgnat/a-exexda.adb
+++ b/gcc/ada/libgnat/a-exexda.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-exexpr.adb b/gcc/ada/libgnat/a-exexpr.adb
index 5e72fd6..fb4b545 100644
--- a/gcc/ada/libgnat/a-exexpr.adb
+++ b/gcc/ada/libgnat/a-exexpr.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-exextr.adb b/gcc/ada/libgnat/a-exextr.adb
index 6a32b51..da66873 100644
--- a/gcc/ada/libgnat/a-exextr.adb
+++ b/gcc/ada/libgnat/a-exextr.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -43,12 +43,23 @@ package body Exception_Traces is
-- Convenient shortcut
type Exception_Action is access procedure (E : Exception_Occurrence);
+ pragma Favor_Top_Level (Exception_Action);
+
Global_Action : Exception_Action := null;
+ pragma Atomic (Global_Action);
pragma Export
(Ada, Global_Action, "__gnat_exception_actions_global_action");
-- Global action, executed whenever an exception is raised. Changing the
-- export name must be coordinated with code in g-excact.adb.
+ Global_Unhandled_Action : Exception_Action := null;
+ pragma Atomic (Global_Unhandled_Action);
+ pragma Export
+ (Ada, Global_Unhandled_Action,
+ "__gnat_exception_actions_global_unhandled_action");
+ -- Global action, executed whenever an unhandled exception is raised.
+ -- Changing the export name must be coordinated with code in g-excact.adb.
+
Raise_Hook_Initialized : Boolean := False;
pragma Export
(Ada, Raise_Hook_Initialized, "__gnat_exception_actions_initialized");
@@ -77,6 +88,11 @@ package body Exception_Traces is
----------------------
procedure Notify_Exception (Excep : EOA; Is_Unhandled : Boolean) is
+ -- Save actions locally to avoid any race condition that would
+ -- reset them to null.
+ Action : constant Exception_Action := Global_Action;
+ Unhandled_Action : constant Exception_Action := Global_Unhandled_Action;
+
begin
-- Output the exception information required by the Exception_Trace
-- configuration. Take care not to output information about internal
@@ -119,8 +135,12 @@ package body Exception_Traces is
To_Action (Exception_Data_Ptr (Excep.Id).Raise_Hook) (Excep.all);
end if;
- if Global_Action /= null then
- Global_Action (Excep.all);
+ if Is_Unhandled and Unhandled_Action /= null then
+ Unhandled_Action (Excep.all);
+ end if;
+
+ if Action /= null then
+ Action (Excep.all);
end if;
end Notify_Exception;
diff --git a/gcc/ada/libgnat/a-exstat.adb b/gcc/ada/libgnat/a-exstat.adb
index e15ff51..028be1f 100644
--- a/gcc/ada/libgnat/a-exstat.adb
+++ b/gcc/ada/libgnat/a-exstat.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-finali.adb b/gcc/ada/libgnat/a-finali.adb
index b742b27..ba8b7b3 100644
--- a/gcc/ada/libgnat/a-finali.adb
+++ b/gcc/ada/libgnat/a-finali.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-finali.ads b/gcc/ada/libgnat/a-finali.ads
index 4ff5281..2ee4cf8 100644
--- a/gcc/ada/libgnat/a-finali.ads
+++ b/gcc/ada/libgnat/a-finali.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-locale.adb b/gcc/ada/libgnat/a-locale.adb
index aa700dc..ec65938 100644
--- a/gcc/ada/libgnat/a-locale.adb
+++ b/gcc/ada/libgnat/a-locale.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2010-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2010-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-locale.ads b/gcc/ada/libgnat/a-locale.ads
index 418c41e..be6b0c2 100644
--- a/gcc/ada/libgnat/a-locale.ads
+++ b/gcc/ada/libgnat/a-locale.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2010-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2010-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. In accordance with the copyright of that document, you can freely --
diff --git a/gcc/ada/libgnat/a-nbnbin.adb b/gcc/ada/libgnat/a-nbnbin.adb
index 7d8311d..b919d86 100644
--- a/gcc/ada/libgnat/a-nbnbin.adb
+++ b/gcc/ada/libgnat/a-nbnbin.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2019-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -30,20 +30,48 @@
------------------------------------------------------------------------------
with Ada.Unchecked_Deallocation;
-with Ada.Characters.Conversions; use Ada.Characters.Conversions;
+with Ada.Strings.Text_Output.Utils;
with Interfaces; use Interfaces;
with System.Generic_Bignums;
+with System.Shared_Bignums; use System.Shared_Bignums;
package body Ada.Numerics.Big_Numbers.Big_Integers is
- package Bignums is new
- System.Generic_Bignums (Use_Secondary_Stack => False);
- use Bignums, System;
+ function Allocate_Bignum (D : Digit_Vector; Neg : Boolean) return Bignum;
+ -- Allocate Bignum value with the given contents
+
+ procedure Free_Bignum (X : in out Bignum);
+ -- Free memory associated with X
+
+ function To_Bignum (X : aliased in out Bignum) return Bignum is (X);
procedure Free is new Ada.Unchecked_Deallocation (Bignum_Data, Bignum);
+ ---------------------
+ -- Allocate_Bignum --
+ ---------------------
+
+ function Allocate_Bignum (D : Digit_Vector; Neg : Boolean) return Bignum is
+ begin
+ return new Bignum_Data'(D'Length, Neg, D);
+ end Allocate_Bignum;
+
+ -----------------
+ -- Free_Bignum --
+ -----------------
+
+ procedure Free_Bignum (X : in out Bignum) is
+ begin
+ Free (X);
+ end Free_Bignum;
+
+ package Bignums is new System.Generic_Bignums
+ (Bignum, Allocate_Bignum, Free_Bignum, To_Bignum);
+
+ use Bignums, System;
+
function Get_Bignum (Arg : Big_Integer) return Bignum is
(if Arg.Value.C = System.Null_Address
then raise Constraint_Error with "invalid big integer"
@@ -75,7 +103,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
-- "=" --
---------
- function "=" (L, R : Big_Integer) return Boolean is
+ function "=" (L, R : Valid_Big_Integer) return Boolean is
begin
return Big_EQ (Get_Bignum (L), Get_Bignum (R));
end "=";
@@ -84,7 +112,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
-- "<" --
---------
- function "<" (L, R : Big_Integer) return Boolean is
+ function "<" (L, R : Valid_Big_Integer) return Boolean is
begin
return Big_LT (Get_Bignum (L), Get_Bignum (R));
end "<";
@@ -93,7 +121,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
-- "<=" --
----------
- function "<=" (L, R : Big_Integer) return Boolean is
+ function "<=" (L, R : Valid_Big_Integer) return Boolean is
begin
return Big_LE (Get_Bignum (L), Get_Bignum (R));
end "<=";
@@ -102,7 +130,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
-- ">" --
---------
- function ">" (L, R : Big_Integer) return Boolean is
+ function ">" (L, R : Valid_Big_Integer) return Boolean is
begin
return Big_GT (Get_Bignum (L), Get_Bignum (R));
end ">";
@@ -111,7 +139,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
-- ">=" --
----------
- function ">=" (L, R : Big_Integer) return Boolean is
+ function ">=" (L, R : Valid_Big_Integer) return Boolean is
begin
return Big_GE (Get_Bignum (L), Get_Bignum (R));
end ">=";
@@ -120,7 +148,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
-- To_Big_Integer --
--------------------
- function To_Big_Integer (Arg : Integer) return Big_Integer is
+ function To_Big_Integer (Arg : Integer) return Valid_Big_Integer is
Result : Big_Integer;
begin
Set_Bignum (Result, To_Bignum (Long_Long_Integer (Arg)));
@@ -131,7 +159,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
-- To_Integer --
----------------
- function To_Integer (Arg : Big_Integer) return Integer is
+ function To_Integer (Arg : Valid_Big_Integer) return Integer is
begin
return Integer (From_Bignum (Get_Bignum (Arg)));
end To_Integer;
@@ -146,7 +174,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
-- To_Big_Integer --
--------------------
- function To_Big_Integer (Arg : Int) return Big_Integer is
+ function To_Big_Integer (Arg : Int) return Valid_Big_Integer is
Result : Big_Integer;
begin
Set_Bignum (Result, To_Bignum (Long_Long_Integer (Arg)));
@@ -157,7 +185,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
-- From_Big_Integer --
----------------------
- function From_Big_Integer (Arg : Big_Integer) return Int is
+ function From_Big_Integer (Arg : Valid_Big_Integer) return Int is
begin
return Int (From_Bignum (Get_Bignum (Arg)));
end From_Big_Integer;
@@ -174,7 +202,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
-- To_Big_Integer --
--------------------
- function To_Big_Integer (Arg : Int) return Big_Integer is
+ function To_Big_Integer (Arg : Int) return Valid_Big_Integer is
Result : Big_Integer;
begin
Set_Bignum (Result, To_Bignum (Unsigned_64 (Arg)));
@@ -185,7 +213,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
-- From_Big_Integer --
----------------------
- function From_Big_Integer (Arg : Big_Integer) return Int is
+ function From_Big_Integer (Arg : Valid_Big_Integer) return Int is
begin
return Int (From_Bignum (Get_Bignum (Arg)));
end From_Big_Integer;
@@ -196,82 +224,11 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
-- To_String --
---------------
- Hex_Chars : constant array (0 .. 15) of Character := "0123456789ABCDEF";
-
function To_String
- (Arg : Big_Integer; Width : Field := 0; Base : Number_Base := 10)
- return String
- is
- Big_Base : constant Big_Integer := To_Big_Integer (Integer (Base));
-
- function Add_Base (S : String) return String;
- -- Add base information if Base /= 10
-
- function Leading_Padding
- (Str : String;
- Min_Length : Field;
- Char : Character := ' ') return String;
- -- Return padding of Char concatenated with Str so that the resulting
- -- string is at least Min_Length long.
-
- function Image (Arg : Big_Integer) return String;
- -- Return image of Arg, assuming Arg is positive.
-
- function Image (N : Natural) return String;
- -- Return image of N, with no leading space.
-
- --------------
- -- Add_Base --
- --------------
-
- function Add_Base (S : String) return String is
- begin
- if Base = 10 then
- return S;
- else
- return Image (Base) & "#" & S & "#";
- end if;
- end Add_Base;
-
- -----------
- -- Image --
- -----------
-
- function Image (N : Natural) return String is
- S : constant String := Natural'Image (N);
- begin
- return S (2 .. S'Last);
- end Image;
-
- function Image (Arg : Big_Integer) return String is
- begin
- if Arg < Big_Base then
- return (1 => Hex_Chars (To_Integer (Arg)));
- else
- return Image (Arg / Big_Base)
- & Hex_Chars (To_Integer (Arg rem Big_Base));
- end if;
- end Image;
-
- ---------------------
- -- Leading_Padding --
- ---------------------
-
- function Leading_Padding
- (Str : String;
- Min_Length : Field;
- Char : Character := ' ') return String is
- begin
- return (1 .. Integer'Max (Integer (Min_Length) - Str'Length, 0)
- => Char) & Str;
- end Leading_Padding;
-
+ (Arg : Valid_Big_Integer; Width : Field := 0; Base : Number_Base := 10)
+ return String is
begin
- if Arg < To_Big_Integer (0) then
- return Leading_Padding ("-" & Add_Base (Image (-Arg)), Width);
- else
- return Leading_Padding (" " & Add_Base (Image (Arg)), Width);
- end if;
+ return To_String (Get_Bignum (Arg), Natural (Width), Positive (Base));
end To_String;
-----------------
@@ -290,18 +247,19 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
-- Put_Image --
---------------
- procedure Put_Image
- (Stream : not null access Ada.Streams.Root_Stream_Type'Class;
- Arg : Big_Integer) is
+ procedure Put_Image (S : in out Sink'Class; V : Big_Integer) is
+ -- This is implemented in terms of To_String. It might be more elegant
+ -- and more efficient to do it the other way around, but this is the
+ -- most expedient implementation for now.
begin
- Wide_Wide_String'Write (Stream, To_Wide_Wide_String (To_String (Arg)));
+ Strings.Text_Output.Utils.Put_UTF_8 (S, To_String (V));
end Put_Image;
---------
-- "+" --
---------
- function "+" (L : Big_Integer) return Big_Integer is
+ function "+" (L : Valid_Big_Integer) return Valid_Big_Integer is
Result : Big_Integer;
begin
Set_Bignum (Result, new Bignum_Data'(Get_Bignum (L).all));
@@ -312,7 +270,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
-- "-" --
---------
- function "-" (L : Big_Integer) return Big_Integer is
+ function "-" (L : Valid_Big_Integer) return Valid_Big_Integer is
Result : Big_Integer;
begin
Set_Bignum (Result, Big_Neg (Get_Bignum (L)));
@@ -323,7 +281,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
-- "abs" --
-----------
- function "abs" (L : Big_Integer) return Big_Integer is
+ function "abs" (L : Valid_Big_Integer) return Valid_Big_Integer is
Result : Big_Integer;
begin
Set_Bignum (Result, Big_Abs (Get_Bignum (L)));
@@ -334,7 +292,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
-- "+" --
---------
- function "+" (L, R : Big_Integer) return Big_Integer is
+ function "+" (L, R : Valid_Big_Integer) return Valid_Big_Integer is
Result : Big_Integer;
begin
Set_Bignum (Result, Big_Add (Get_Bignum (L), Get_Bignum (R)));
@@ -345,7 +303,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
-- "-" --
---------
- function "-" (L, R : Big_Integer) return Big_Integer is
+ function "-" (L, R : Valid_Big_Integer) return Valid_Big_Integer is
Result : Big_Integer;
begin
Set_Bignum (Result, Big_Sub (Get_Bignum (L), Get_Bignum (R)));
@@ -356,7 +314,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
-- "*" --
---------
- function "*" (L, R : Big_Integer) return Big_Integer is
+ function "*" (L, R : Valid_Big_Integer) return Valid_Big_Integer is
Result : Big_Integer;
begin
Set_Bignum (Result, Big_Mul (Get_Bignum (L), Get_Bignum (R)));
@@ -367,7 +325,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
-- "/" --
---------
- function "/" (L, R : Big_Integer) return Big_Integer is
+ function "/" (L, R : Valid_Big_Integer) return Valid_Big_Integer is
Result : Big_Integer;
begin
Set_Bignum (Result, Big_Div (Get_Bignum (L), Get_Bignum (R)));
@@ -378,7 +336,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
-- "mod" --
-----------
- function "mod" (L, R : Big_Integer) return Big_Integer is
+ function "mod" (L, R : Valid_Big_Integer) return Valid_Big_Integer is
Result : Big_Integer;
begin
Set_Bignum (Result, Big_Mod (Get_Bignum (L), Get_Bignum (R)));
@@ -389,7 +347,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
-- "rem" --
-----------
- function "rem" (L, R : Big_Integer) return Big_Integer is
+ function "rem" (L, R : Valid_Big_Integer) return Valid_Big_Integer is
Result : Big_Integer;
begin
Set_Bignum (Result, Big_Rem (Get_Bignum (L), Get_Bignum (R)));
@@ -400,16 +358,9 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
-- "**" --
----------
- function "**" (L : Big_Integer; R : Natural) return Big_Integer is
+ function "**"
+ (L : Valid_Big_Integer; R : Natural) return Valid_Big_Integer is
begin
- -- Explicitly check for validity before allocating Exp so that
- -- the call to Get_Bignum below cannot raise an exception before
- -- we get a chance to free Exp.
-
- if not Is_Valid (L) then
- raise Constraint_Error with "invalid big integer";
- end if;
-
declare
Exp : Bignum := To_Bignum (Long_Long_Integer (R));
Result : Big_Integer;
@@ -424,21 +375,23 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
-- Min --
---------
- function Min (L, R : Big_Integer) return Big_Integer is
+ function Min (L, R : Valid_Big_Integer) return Valid_Big_Integer is
(if L < R then L else R);
---------
-- Max --
---------
- function Max (L, R : Big_Integer) return Big_Integer is
+ function Max (L, R : Valid_Big_Integer) return Valid_Big_Integer is
(if L > R then L else R);
-----------------------------
-- Greatest_Common_Divisor --
-----------------------------
- function Greatest_Common_Divisor (L, R : Big_Integer) return Big_Positive is
+ function Greatest_Common_Divisor
+ (L, R : Valid_Big_Integer) return Big_Positive
+ is
function GCD (A, B : Big_Integer) return Big_Integer;
-- Recursive internal version
diff --git a/gcc/ada/libgnat/a-nbnbin.ads b/gcc/ada/libgnat/a-nbnbin.ads
index a54b09f..7b4974a 100644
--- a/gcc/ada/libgnat/a-nbnbin.ads
+++ b/gcc/ada/libgnat/a-nbnbin.ads
@@ -13,121 +13,153 @@
-- --
------------------------------------------------------------------------------
-with Ada.Finalization;
-with Ada.Streams;
+with Ada.Strings.Text_Output; use Ada.Strings.Text_Output;
+private with Ada.Finalization;
private with System;
--- Note that some Ada 2020 aspects are commented out since they are not
--- supported yet.
-
package Ada.Numerics.Big_Numbers.Big_Integers
with Preelaborate
--- Nonblocking
is
- type Big_Integer is private;
- -- with Integer_Literal => From_String,
- -- Put_Image => Put_Image;
+ type Big_Integer is private
+ with Integer_Literal => From_String,
+ Put_Image => Put_Image;
function Is_Valid (Arg : Big_Integer) return Boolean
- with Convention => Intrinsic;
+ with
+ Convention => Intrinsic,
+ Global => null;
+
+ subtype Valid_Big_Integer is Big_Integer
+ with Dynamic_Predicate => Is_Valid (Valid_Big_Integer),
+ Predicate_Failure => raise Program_Error;
- function "=" (L, R : Big_Integer) return Boolean;
+ function "=" (L, R : Valid_Big_Integer) return Boolean with Global => null;
- function "<" (L, R : Big_Integer) return Boolean;
+ function "<" (L, R : Valid_Big_Integer) return Boolean with Global => null;
- function "<=" (L, R : Big_Integer) return Boolean;
+ function "<=" (L, R : Valid_Big_Integer) return Boolean with Global => null;
- function ">" (L, R : Big_Integer) return Boolean;
+ function ">" (L, R : Valid_Big_Integer) return Boolean with Global => null;
- function ">=" (L, R : Big_Integer) return Boolean;
+ function ">=" (L, R : Valid_Big_Integer) return Boolean with Global => null;
- function To_Big_Integer (Arg : Integer) return Big_Integer;
+ function To_Big_Integer (Arg : Integer) return Valid_Big_Integer
+ with Global => null;
subtype Big_Positive is Big_Integer
- with Dynamic_Predicate => Big_Positive > To_Big_Integer (0),
+ with Dynamic_Predicate =>
+ (if Is_Valid (Big_Positive)
+ then Big_Positive > To_Big_Integer (0)),
Predicate_Failure => (raise Constraint_Error);
subtype Big_Natural is Big_Integer
- with Dynamic_Predicate => Big_Natural >= To_Big_Integer (0),
+ with Dynamic_Predicate =>
+ (if Is_Valid (Big_Natural)
+ then Big_Natural >= To_Big_Integer (0)),
Predicate_Failure => (raise Constraint_Error);
- function In_Range (Arg, Low, High : Big_Integer) return Boolean is
- ((Low <= Arg) and (Arg <= High));
+ function In_Range
+ (Arg : Valid_Big_Integer; Low, High : Big_Integer) return Boolean
+ is (Low <= Arg and Arg <= High)
+ with
+ Global => null;
- function To_Integer (Arg : Big_Integer) return Integer
- with Pre => In_Range (Arg,
- Low => To_Big_Integer (Integer'First),
- High => To_Big_Integer (Integer'Last))
- or else (raise Constraint_Error);
+ function To_Integer (Arg : Valid_Big_Integer) return Integer
+ with
+ Pre => In_Range (Arg,
+ Low => To_Big_Integer (Integer'First),
+ High => To_Big_Integer (Integer'Last))
+ or else (raise Constraint_Error),
+ Global => null;
generic
type Int is range <>;
package Signed_Conversions is
- function To_Big_Integer (Arg : Int) return Big_Integer;
-
- function From_Big_Integer (Arg : Big_Integer) return Int
- with Pre => In_Range (Arg,
- Low => To_Big_Integer (Int'First),
- High => To_Big_Integer (Int'Last))
- or else (raise Constraint_Error);
+ function To_Big_Integer (Arg : Int) return Valid_Big_Integer
+ with Global => null;
+ function From_Big_Integer (Arg : Valid_Big_Integer) return Int
+ with
+ Pre => In_Range (Arg,
+ Low => To_Big_Integer (Int'First),
+ High => To_Big_Integer (Int'Last))
+ or else (raise Constraint_Error),
+ Global => null;
end Signed_Conversions;
generic
type Int is mod <>;
package Unsigned_Conversions is
- function To_Big_Integer (Arg : Int) return Big_Integer;
+ function To_Big_Integer (Arg : Int) return Valid_Big_Integer
+ with Global => null;
- function From_Big_Integer (Arg : Big_Integer) return Int
- with Pre => In_Range (Arg,
- Low => To_Big_Integer (Int'First),
- High => To_Big_Integer (Int'Last))
- or else (raise Constraint_Error);
+ function From_Big_Integer (Arg : Valid_Big_Integer) return Int
+ with
+ Pre => In_Range (Arg,
+ Low => To_Big_Integer (Int'First),
+ High => To_Big_Integer (Int'Last))
+ or else (raise Constraint_Error),
+ Global => null;
end Unsigned_Conversions;
- function To_String (Arg : Big_Integer;
+ function To_String (Arg : Valid_Big_Integer;
Width : Field := 0;
Base : Number_Base := 10) return String
- with Post => To_String'Result'First = 1;
+ with
+ Post => To_String'Result'First = 1,
+ Global => null;
- function From_String (Arg : String) return Big_Integer;
+ function From_String (Arg : String) return Big_Integer
+ with Global => null;
- procedure Put_Image
- (Stream : not null access Ada.Streams.Root_Stream_Type'Class;
- Arg : Big_Integer);
+ procedure Put_Image (S : in out Sink'Class; V : Big_Integer);
- function "+" (L : Big_Integer) return Big_Integer;
+ function "+" (L : Valid_Big_Integer) return Valid_Big_Integer
+ with Global => null;
- function "-" (L : Big_Integer) return Big_Integer;
+ function "-" (L : Valid_Big_Integer) return Valid_Big_Integer
+ with Global => null;
- function "abs" (L : Big_Integer) return Big_Integer;
+ function "abs" (L : Valid_Big_Integer) return Valid_Big_Integer
+ with Global => null;
- function "+" (L, R : Big_Integer) return Big_Integer;
+ function "+" (L, R : Valid_Big_Integer) return Valid_Big_Integer
+ with Global => null;
- function "-" (L, R : Big_Integer) return Big_Integer;
+ function "-" (L, R : Valid_Big_Integer) return Valid_Big_Integer
+ with Global => null;
- function "*" (L, R : Big_Integer) return Big_Integer;
+ function "*" (L, R : Valid_Big_Integer) return Valid_Big_Integer
+ with Global => null;
- function "/" (L, R : Big_Integer) return Big_Integer;
+ function "/" (L, R : Valid_Big_Integer) return Valid_Big_Integer
+ with Global => null;
- function "mod" (L, R : Big_Integer) return Big_Integer;
+ function "mod" (L, R : Valid_Big_Integer) return Valid_Big_Integer
+ with Global => null;
- function "rem" (L, R : Big_Integer) return Big_Integer;
+ function "rem" (L, R : Valid_Big_Integer) return Valid_Big_Integer
+ with Global => null;
- function "**" (L : Big_Integer; R : Natural) return Big_Integer;
+ function "**" (L : Valid_Big_Integer; R : Natural) return Valid_Big_Integer
+ with Global => null;
- function Min (L, R : Big_Integer) return Big_Integer;
+ function Min (L, R : Valid_Big_Integer) return Valid_Big_Integer
+ with Global => null;
- function Max (L, R : Big_Integer) return Big_Integer;
+ function Max (L, R : Valid_Big_Integer) return Valid_Big_Integer
+ with Global => null;
function Greatest_Common_Divisor
- (L, R : Big_Integer) return Big_Positive
- with Pre => (L /= To_Big_Integer (0) and R /= To_Big_Integer (0))
- or else (raise Constraint_Error);
+ (L, R : Valid_Big_Integer) return Big_Positive
+ with
+ Pre => (L /= To_Big_Integer (0) and R /= To_Big_Integer (0))
+ or else (raise Constraint_Error),
+ Global => null;
private
diff --git a/gcc/ada/libgnat/a-nbnbin__gmp.adb b/gcc/ada/libgnat/a-nbnbin__gmp.adb
index 041dfe2..2e8a260 100644
--- a/gcc/ada/libgnat/a-nbnbin__gmp.adb
+++ b/gcc/ada/libgnat/a-nbnbin__gmp.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2019-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -35,7 +35,7 @@ with Ada.Unchecked_Conversion;
with Ada.Unchecked_Deallocation;
with Interfaces.C; use Interfaces.C;
with Interfaces.C.Strings; use Interfaces.C.Strings;
-with Ada.Characters.Conversions; use Ada.Characters.Conversions;
+with Ada.Strings.Text_Output.Utils;
with Ada.Characters.Handling; use Ada.Characters.Handling;
package body Ada.Numerics.Big_Numbers.Big_Integers is
@@ -56,16 +56,16 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
function To_Address is new
Ada.Unchecked_Conversion (mpz_t_ptr, System.Address);
- function Get_Mpz (Arg : Optional_Big_Integer) return mpz_t_ptr is
+ function Get_Mpz (Arg : Big_Integer) return mpz_t_ptr is
(To_Mpz (Arg.Value.C));
-- Return the mpz_t value stored in Arg
- procedure Set_Mpz (Arg : in out Optional_Big_Integer; Value : mpz_t_ptr)
+ procedure Set_Mpz (Arg : in out Big_Integer; Value : mpz_t_ptr)
with Inline;
-- Set the mpz_t value stored in Arg to Value
- procedure Allocate (This : in out Optional_Big_Integer) with Inline;
- -- Allocate an Optional_Big_Integer, including the underlying mpz
+ procedure Allocate (This : in out Big_Integer) with Inline;
+ -- Allocate a Big_Integer, including the underlying mpz
procedure mpz_init_set (ROP : access mpz_t; OP : access constant mpz_t);
pragma Import (C, mpz_init_set, "__gmpz_init_set");
@@ -102,7 +102,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
-- Set_Mpz --
-------------
- procedure Set_Mpz (Arg : in out Optional_Big_Integer; Value : mpz_t_ptr) is
+ procedure Set_Mpz (Arg : in out Big_Integer; Value : mpz_t_ptr) is
begin
Arg.Value.C := To_Address (Value);
end Set_Mpz;
@@ -111,21 +111,14 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
-- Is_Valid --
--------------
- function Is_Valid (Arg : Optional_Big_Integer) return Boolean is
+ function Is_Valid (Arg : Big_Integer) return Boolean is
(Arg.Value.C /= System.Null_Address);
- --------------------------
- -- Invalid_Big_Integer --
- --------------------------
-
- function Invalid_Big_Integer return Optional_Big_Integer is
- (Value => (Ada.Finalization.Controlled with C => System.Null_Address));
-
---------
-- "=" --
---------
- function "=" (L, R : Big_Integer) return Boolean is
+ function "=" (L, R : Valid_Big_Integer) return Boolean is
begin
return mpz_cmp (Get_Mpz (L), Get_Mpz (R)) = 0;
end "=";
@@ -134,7 +127,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
-- "<" --
---------
- function "<" (L, R : Big_Integer) return Boolean is
+ function "<" (L, R : Valid_Big_Integer) return Boolean is
begin
return mpz_cmp (Get_Mpz (L), Get_Mpz (R)) < 0;
end "<";
@@ -143,7 +136,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
-- "<=" --
----------
- function "<=" (L, R : Big_Integer) return Boolean is
+ function "<=" (L, R : Valid_Big_Integer) return Boolean is
begin
return mpz_cmp (Get_Mpz (L), Get_Mpz (R)) <= 0;
end "<=";
@@ -152,7 +145,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
-- ">" --
---------
- function ">" (L, R : Big_Integer) return Boolean is
+ function ">" (L, R : Valid_Big_Integer) return Boolean is
begin
return mpz_cmp (Get_Mpz (L), Get_Mpz (R)) > 0;
end ">";
@@ -161,7 +154,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
-- ">=" --
----------
- function ">=" (L, R : Big_Integer) return Boolean is
+ function ">=" (L, R : Valid_Big_Integer) return Boolean is
begin
return mpz_cmp (Get_Mpz (L), Get_Mpz (R)) >= 0;
end ">=";
@@ -170,8 +163,8 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
-- To_Big_Integer --
--------------------
- function To_Big_Integer (Arg : Integer) return Big_Integer is
- Result : Optional_Big_Integer;
+ function To_Big_Integer (Arg : Integer) return Valid_Big_Integer is
+ Result : Big_Integer;
begin
Allocate (Result);
mpz_set_si (Get_Mpz (Result), long (Arg));
@@ -182,7 +175,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
-- To_Integer --
----------------
- function To_Integer (Arg : Big_Integer) return Integer is
+ function To_Integer (Arg : Valid_Big_Integer) return Integer is
begin
return Integer (mpz_get_si (Get_Mpz (Arg)));
end To_Integer;
@@ -197,8 +190,8 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
-- To_Big_Integer --
--------------------
- function To_Big_Integer (Arg : Int) return Big_Integer is
- Result : Optional_Big_Integer;
+ function To_Big_Integer (Arg : Int) return Valid_Big_Integer is
+ Result : Big_Integer;
begin
Allocate (Result);
mpz_set_si (Get_Mpz (Result), long (Arg));
@@ -209,7 +202,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
-- From_Big_Integer --
----------------------
- function From_Big_Integer (Arg : Big_Integer) return Int is
+ function From_Big_Integer (Arg : Valid_Big_Integer) return Int is
begin
return Int (mpz_get_si (Get_Mpz (Arg)));
end From_Big_Integer;
@@ -226,8 +219,8 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
-- To_Big_Integer --
--------------------
- function To_Big_Integer (Arg : Int) return Big_Integer is
- Result : Optional_Big_Integer;
+ function To_Big_Integer (Arg : Int) return Valid_Big_Integer is
+ Result : Big_Integer;
begin
Allocate (Result);
mpz_set_ui (Get_Mpz (Result), unsigned_long (Arg));
@@ -238,7 +231,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
-- From_Big_Integer --
----------------------
- function From_Big_Integer (Arg : Big_Integer) return Int is
+ function From_Big_Integer (Arg : Valid_Big_Integer) return Int is
begin
return Int (mpz_get_ui (Get_Mpz (Arg)));
end From_Big_Integer;
@@ -250,7 +243,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
---------------
function To_String
- (Arg : Big_Integer; Width : Field := 0; Base : Number_Base := 10)
+ (Arg : Valid_Big_Integer; Width : Field := 0; Base : Number_Base := 10)
return String
is
function mpz_get_str
@@ -342,7 +335,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
base : Integer := 10) return Integer;
pragma Import (C, mpz_set_str, "__gmpz_set_str");
- Result : Optional_Big_Integer;
+ Result : Big_Integer;
First : Natural;
Last : Natural;
Base : Natural;
@@ -410,19 +403,20 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
-- Put_Image --
---------------
- procedure Put_Image
- (Stream : not null access Ada.Streams.Root_Stream_Type'Class;
- Arg : Big_Integer) is
+ procedure Put_Image (S : in out Sink'Class; V : Big_Integer) is
+ -- This is implemented in terms of To_String. It might be more elegant
+ -- and more efficient to do it the other way around, but this is the
+ -- most expedient implementation for now.
begin
- Wide_Wide_String'Write (Stream, To_Wide_Wide_String (To_String (Arg)));
+ Strings.Text_Output.Utils.Put_UTF_8 (S, To_String (V));
end Put_Image;
---------
-- "+" --
---------
- function "+" (L : Big_Integer) return Big_Integer is
- Result : Optional_Big_Integer;
+ function "+" (L : Valid_Big_Integer) return Valid_Big_Integer is
+ Result : Big_Integer;
begin
Set_Mpz (Result, new mpz_t);
mpz_init_set (Get_Mpz (Result), Get_Mpz (L));
@@ -433,8 +427,8 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
-- "-" --
---------
- function "-" (L : Big_Integer) return Big_Integer is
- Result : Optional_Big_Integer;
+ function "-" (L : Valid_Big_Integer) return Valid_Big_Integer is
+ Result : Big_Integer;
begin
Allocate (Result);
mpz_neg (Get_Mpz (Result), Get_Mpz (L));
@@ -445,11 +439,11 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
-- "abs" --
-----------
- function "abs" (L : Big_Integer) return Big_Integer is
+ function "abs" (L : Valid_Big_Integer) return Valid_Big_Integer is
procedure mpz_abs (ROP : access mpz_t; OP : access constant mpz_t);
pragma Import (C, mpz_abs, "__gmpz_abs");
- Result : Optional_Big_Integer;
+ Result : Big_Integer;
begin
Allocate (Result);
mpz_abs (Get_Mpz (Result), Get_Mpz (L));
@@ -460,12 +454,12 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
-- "+" --
---------
- function "+" (L, R : Big_Integer) return Big_Integer is
+ function "+" (L, R : Valid_Big_Integer) return Valid_Big_Integer is
procedure mpz_add
(ROP : access mpz_t; OP1, OP2 : access constant mpz_t);
pragma Import (C, mpz_add, "__gmpz_add");
- Result : Optional_Big_Integer;
+ Result : Big_Integer;
begin
Allocate (Result);
@@ -477,8 +471,8 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
-- "-" --
---------
- function "-" (L, R : Big_Integer) return Big_Integer is
- Result : Optional_Big_Integer;
+ function "-" (L, R : Valid_Big_Integer) return Valid_Big_Integer is
+ Result : Big_Integer;
begin
Allocate (Result);
mpz_sub (Get_Mpz (Result), Get_Mpz (L), Get_Mpz (R));
@@ -489,12 +483,12 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
-- "*" --
---------
- function "*" (L, R : Big_Integer) return Big_Integer is
+ function "*" (L, R : Valid_Big_Integer) return Valid_Big_Integer is
procedure mpz_mul
(ROP : access mpz_t; OP1, OP2 : access constant mpz_t);
pragma Import (C, mpz_mul, "__gmpz_mul");
- Result : Optional_Big_Integer;
+ Result : Big_Integer;
begin
Allocate (Result);
@@ -506,7 +500,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
-- "/" --
---------
- function "/" (L, R : Big_Integer) return Big_Integer is
+ function "/" (L, R : Valid_Big_Integer) return Valid_Big_Integer is
procedure mpz_tdiv_q (Q : access mpz_t; N, D : access constant mpz_t);
pragma Import (C, mpz_tdiv_q, "__gmpz_tdiv_q");
begin
@@ -515,7 +509,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
end if;
declare
- Result : Optional_Big_Integer;
+ Result : Big_Integer;
begin
Allocate (Result);
mpz_tdiv_q (Get_Mpz (Result), Get_Mpz (L), Get_Mpz (R));
@@ -527,7 +521,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
-- "mod" --
-----------
- function "mod" (L, R : Big_Integer) return Big_Integer is
+ function "mod" (L, R : Valid_Big_Integer) return Valid_Big_Integer is
procedure mpz_mod (R : access mpz_t; N, D : access constant mpz_t);
pragma Import (C, mpz_mod, "__gmpz_mod");
-- result is always non-negative
@@ -540,7 +534,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
end if;
declare
- Result : Optional_Big_Integer;
+ Result : Big_Integer;
begin
Allocate (Result);
L_Negative := mpz_cmp_ui (Get_Mpz (L), 0) < 0;
@@ -609,7 +603,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
-- "rem" --
-----------
- function "rem" (L, R : Big_Integer) return Big_Integer is
+ function "rem" (L, R : Valid_Big_Integer) return Valid_Big_Integer is
procedure mpz_tdiv_r (R : access mpz_t; N, D : access constant mpz_t);
pragma Import (C, mpz_tdiv_r, "__gmpz_tdiv_r");
-- R will have the same sign as N.
@@ -620,7 +614,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
end if;
declare
- Result : Optional_Big_Integer;
+ Result : Big_Integer;
begin
Allocate (Result);
mpz_tdiv_r (R => Get_Mpz (Result),
@@ -636,13 +630,15 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
-- "**" --
----------
- function "**" (L : Big_Integer; R : Natural) return Big_Integer is
+ function "**"
+ (L : Valid_Big_Integer; R : Natural) return Valid_Big_Integer
+ is
procedure mpz_pow_ui (ROP : access mpz_t;
BASE : access constant mpz_t;
EXP : unsigned_long);
pragma Import (C, mpz_pow_ui, "__gmpz_pow_ui");
- Result : Optional_Big_Integer;
+ Result : Big_Integer;
begin
Allocate (Result);
@@ -654,26 +650,28 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
-- Min --
---------
- function Min (L, R : Big_Integer) return Big_Integer is
+ function Min (L, R : Valid_Big_Integer) return Valid_Big_Integer is
(if L < R then L else R);
---------
-- Max --
---------
- function Max (L, R : Big_Integer) return Big_Integer is
+ function Max (L, R : Valid_Big_Integer) return Valid_Big_Integer is
(if L > R then L else R);
-----------------------------
-- Greatest_Common_Divisor --
-----------------------------
- function Greatest_Common_Divisor (L, R : Big_Integer) return Big_Integer is
+ function Greatest_Common_Divisor
+ (L, R : Valid_Big_Integer) return Big_Positive
+ is
procedure mpz_gcd
(ROP : access mpz_t; Op1, Op2 : access constant mpz_t);
pragma Import (C, mpz_gcd, "__gmpz_gcd");
- Result : Optional_Big_Integer;
+ Result : Big_Integer;
begin
Allocate (Result);
@@ -685,7 +683,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
-- Allocate --
--------------
- procedure Allocate (This : in out Optional_Big_Integer) is
+ procedure Allocate (This : in out Big_Integer) is
procedure mpz_init (this : access mpz_t);
pragma Import (C, mpz_init, "__gmpz_init");
begin
diff --git a/gcc/ada/libgnat/a-nbnbre.adb b/gcc/ada/libgnat/a-nbnbre.adb
index c087f49..d61668d 100644
--- a/gcc/ada/libgnat/a-nbnbre.adb
+++ b/gcc/ada/libgnat/a-nbnbre.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2019-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -31,7 +31,7 @@
-- This is the default version of this package, based on Big_Integers only.
-with Ada.Characters.Conversions; use Ada.Characters.Conversions;
+with Ada.Strings.Text_Output.Utils;
package body Ada.Numerics.Big_Numbers.Big_Reals is
@@ -46,13 +46,13 @@ package body Ada.Numerics.Big_Numbers.Big_Reals is
--------------
function Is_Valid (Arg : Big_Real) return Boolean is
- (Is_Valid (Arg.Num) and then Is_Valid (Arg.Den));
+ (Is_Valid (Arg.Num) and Is_Valid (Arg.Den));
---------
-- "/" --
---------
- function "/" (Num, Den : Big_Integer) return Big_Real is
+ function "/" (Num, Den : Valid_Big_Integer) return Valid_Big_Real is
Result : Big_Real;
begin
if Den = To_Big_Integer (0) then
@@ -69,45 +69,47 @@ package body Ada.Numerics.Big_Numbers.Big_Reals is
-- Numerator --
---------------
- function Numerator (Arg : Big_Real) return Big_Integer is (Arg.Num);
+ function Numerator (Arg : Valid_Big_Real) return Valid_Big_Integer is
+ (Arg.Num);
-----------------
-- Denominator --
-----------------
- function Denominator (Arg : Big_Real) return Big_Positive is (Arg.Den);
+ function Denominator (Arg : Valid_Big_Real) return Big_Positive is
+ (Arg.Den);
---------
-- "=" --
---------
- function "=" (L, R : Big_Real) return Boolean is
+ function "=" (L, R : Valid_Big_Real) return Boolean is
(abs L.Num = abs R.Num and then L.Den = R.Den);
---------
-- "<" --
---------
- function "<" (L, R : Big_Real) return Boolean is
+ function "<" (L, R : Valid_Big_Real) return Boolean is
(abs L.Num * R.Den < abs R.Num * L.Den);
----------
-- "<=" --
----------
- function "<=" (L, R : Big_Real) return Boolean is (not (R < L));
+ function "<=" (L, R : Valid_Big_Real) return Boolean is (not (R < L));
---------
-- ">" --
---------
- function ">" (L, R : Big_Real) return Boolean is (R < L);
+ function ">" (L, R : Valid_Big_Real) return Boolean is (R < L);
----------
-- ">=" --
----------
- function ">=" (L, R : Big_Real) return Boolean is (not (L < R));
+ function ">=" (L, R : Valid_Big_Real) return Boolean is (not (L < R));
-----------------------
-- Float_Conversions --
@@ -119,7 +121,7 @@ package body Ada.Numerics.Big_Numbers.Big_Reals is
-- To_Big_Real --
-----------------
- function To_Big_Real (Arg : Num) return Big_Real is
+ function To_Big_Real (Arg : Num) return Valid_Big_Real is
begin
return From_String (Arg'Image);
end To_Big_Real;
@@ -145,7 +147,7 @@ package body Ada.Numerics.Big_Numbers.Big_Reals is
-- To_Big_Real --
-----------------
- function To_Big_Real (Arg : Num) return Big_Real is
+ function To_Big_Real (Arg : Num) return Valid_Big_Real is
begin
return From_String (Arg'Image);
end To_Big_Real;
@@ -166,8 +168,10 @@ package body Ada.Numerics.Big_Numbers.Big_Reals is
---------------
function To_String
- (Arg : Big_Real; Fore : Field := 2; Aft : Field := 3; Exp : Field := 0)
- return String
+ (Arg : Valid_Big_Real;
+ Fore : Field := 2;
+ Aft : Field := 3;
+ Exp : Field := 0) return String
is
Zero : constant Big_Integer := To_Big_Integer (0);
Ten : constant Big_Integer := To_Big_Integer (10);
@@ -373,7 +377,7 @@ package body Ada.Numerics.Big_Numbers.Big_Reals is
-- From_Quotient_String --
--------------------------
- function From_Quotient_String (Arg : String) return Big_Real is
+ function From_Quotient_String (Arg : String) return Valid_Big_Real is
Index : Natural := 0;
begin
for J in Arg'First + 1 .. Arg'Last - 1 loop
@@ -395,18 +399,19 @@ package body Ada.Numerics.Big_Numbers.Big_Reals is
-- Put_Image --
---------------
- procedure Put_Image
- (Stream : not null access Ada.Streams.Root_Stream_Type'Class;
- Arg : Big_Real) is
+ procedure Put_Image (S : in out Sink'Class; V : Big_Real) is
+ -- This is implemented in terms of To_String. It might be more elegant
+ -- and more efficient to do it the other way around, but this is the
+ -- most expedient implementation for now.
begin
- Wide_Wide_String'Write (Stream, To_Wide_Wide_String (To_String (Arg)));
+ Strings.Text_Output.Utils.Put_UTF_8 (S, To_String (V));
end Put_Image;
---------
-- "+" --
---------
- function "+" (L : Big_Real) return Big_Real is
+ function "+" (L : Valid_Big_Real) return Valid_Big_Real is
Result : Big_Real;
begin
Result.Num := L.Num;
@@ -418,21 +423,21 @@ package body Ada.Numerics.Big_Numbers.Big_Reals is
-- "-" --
---------
- function "-" (L : Big_Real) return Big_Real is
+ function "-" (L : Valid_Big_Real) return Valid_Big_Real is
(Num => -L.Num, Den => L.Den);
-----------
-- "abs" --
-----------
- function "abs" (L : Big_Real) return Big_Real is
+ function "abs" (L : Valid_Big_Real) return Valid_Big_Real is
(Num => abs L.Num, Den => L.Den);
---------
-- "+" --
---------
- function "+" (L, R : Big_Real) return Big_Real is
+ function "+" (L, R : Valid_Big_Real) return Valid_Big_Real is
Result : Big_Real;
begin
Result.Num := L.Num * R.Den + R.Num * L.Den;
@@ -445,7 +450,7 @@ package body Ada.Numerics.Big_Numbers.Big_Reals is
-- "-" --
---------
- function "-" (L, R : Big_Real) return Big_Real is
+ function "-" (L, R : Valid_Big_Real) return Valid_Big_Real is
Result : Big_Real;
begin
Result.Num := L.Num * R.Den - R.Num * L.Den;
@@ -458,7 +463,7 @@ package body Ada.Numerics.Big_Numbers.Big_Reals is
-- "*" --
---------
- function "*" (L, R : Big_Real) return Big_Real is
+ function "*" (L, R : Valid_Big_Real) return Valid_Big_Real is
Result : Big_Real;
begin
Result.Num := L.Num * R.Num;
@@ -471,7 +476,7 @@ package body Ada.Numerics.Big_Numbers.Big_Reals is
-- "/" --
---------
- function "/" (L, R : Big_Real) return Big_Real is
+ function "/" (L, R : Valid_Big_Real) return Valid_Big_Real is
Result : Big_Real;
begin
Result.Num := L.Num * R.Den;
@@ -484,7 +489,7 @@ package body Ada.Numerics.Big_Numbers.Big_Reals is
-- "**" --
----------
- function "**" (L : Big_Real; R : Integer) return Big_Real is
+ function "**" (L : Valid_Big_Real; R : Integer) return Valid_Big_Real is
Result : Big_Real;
begin
if R = 0 then
@@ -509,32 +514,39 @@ package body Ada.Numerics.Big_Numbers.Big_Reals is
-- Min --
---------
- function Min (L, R : Big_Real) return Big_Real is (if L < R then L else R);
+ function Min (L, R : Valid_Big_Real) return Valid_Big_Real is
+ (if L < R then L else R);
---------
-- Max --
---------
- function Max (L, R : Big_Real) return Big_Real is (if L > R then L else R);
+ function Max (L, R : Valid_Big_Real) return Valid_Big_Real is
+ (if L > R then L else R);
---------------
-- Normalize --
---------------
procedure Normalize (Arg : in out Big_Real) is
+ Zero : constant Big_Integer := To_Big_Integer (0);
begin
- if Arg.Den < To_Big_Integer (0) then
+ if Arg.Den < Zero then
Arg.Num := -Arg.Num;
Arg.Den := -Arg.Den;
end if;
- declare
- GCD : constant Big_Integer :=
- Greatest_Common_Divisor (Arg.Num, Arg.Den);
- begin
- Arg.Num := Arg.Num / GCD;
- Arg.Den := Arg.Den / GCD;
- end;
+ if Arg.Num = Zero then
+ Arg.Den := To_Big_Integer (1);
+ else
+ declare
+ GCD : constant Big_Integer :=
+ Greatest_Common_Divisor (Arg.Num, Arg.Den);
+ begin
+ Arg.Num := Arg.Num / GCD;
+ Arg.Den := Arg.Den / GCD;
+ end;
+ end if;
end Normalize;
end Ada.Numerics.Big_Numbers.Big_Reals;
diff --git a/gcc/ada/libgnat/a-nbnbre.ads b/gcc/ada/libgnat/a-nbnbre.ads
index 4827caa..5a8ebb9 100644
--- a/gcc/ada/libgnat/a-nbnbre.ads
+++ b/gcc/ada/libgnat/a-nbnbre.ads
@@ -14,66 +14,84 @@
------------------------------------------------------------------------------
with Ada.Numerics.Big_Numbers.Big_Integers;
-with Ada.Streams;
--- Note that some Ada 2020 aspects are commented out since they are not
--- supported yet.
+with Ada.Strings.Text_Output; use Ada.Strings.Text_Output;
package Ada.Numerics.Big_Numbers.Big_Reals
with Preelaborate
--- Nonblocking, Global => in out synchronized Big_Reals
is
- type Big_Real is private;
--- with Real_Literal => From_String,
--- Put_Image => Put_Image;
-
- function Is_Valid (Arg : Big_Real) return Boolean;
-
- function "/" (Num, Den : Big_Integers.Big_Integer) return Big_Real;
--- with Pre => (if Big_Integers."=" (Den, Big_Integers.To_Big_Integer (0))
--- then raise Constraint_Error);
-
- function Numerator (Arg : Big_Real) return Big_Integers.Big_Integer;
-
- function Denominator (Arg : Big_Real) return Big_Integers.Big_Positive
- with Post =>
- (Arg = To_Real (0)) or else
- (Big_Integers."="
- (Big_Integers.Greatest_Common_Divisor
- (Numerator (Arg), Denominator'Result),
- Big_Integers.To_Big_Integer (1)));
+ type Big_Real is private with
+ Real_Literal => From_String,
+ Put_Image => Put_Image;
+
+ function Is_Valid (Arg : Big_Real) return Boolean
+ with
+ Convention => Intrinsic,
+ Global => null;
+
+ subtype Valid_Big_Real is Big_Real
+ with Dynamic_Predicate => Is_Valid (Valid_Big_Real),
+ Predicate_Failure => raise Program_Error;
+
+ function "/"
+ (Num, Den : Big_Integers.Valid_Big_Integer) return Valid_Big_Real
+ with Global => null;
+-- with Pre => (Big_Integers."/=" (Den, Big_Integers.To_Big_Integer (0))
+-- or else Constraint_Error);
+
+ function Numerator
+ (Arg : Valid_Big_Real) return Big_Integers.Valid_Big_Integer
+ with Global => null;
+
+ function Denominator (Arg : Valid_Big_Real) return Big_Integers.Big_Positive
+ with
+ Post =>
+ (if Arg = To_Real (0)
+ then Big_Integers."=" (Denominator'Result,
+ Big_Integers.To_Big_Integer (1))
+ else Big_Integers."="
+ (Big_Integers.Greatest_Common_Divisor
+ (Numerator (Arg), Denominator'Result),
+ Big_Integers.To_Big_Integer (1))),
+ Global => null;
function To_Big_Real
(Arg : Big_Integers.Big_Integer)
- return Big_Real is (Arg / Big_Integers.To_Big_Integer (1));
+ return Valid_Big_Real is (Arg / Big_Integers.To_Big_Integer (1))
+ with Global => null;
- function To_Real (Arg : Integer) return Big_Real is
- (Big_Integers.To_Big_Integer (Arg) / Big_Integers.To_Big_Integer (1));
+ function To_Real (Arg : Integer) return Valid_Big_Real is
+ (Big_Integers.To_Big_Integer (Arg) / Big_Integers.To_Big_Integer (1))
+ with Global => null;
- function "=" (L, R : Big_Real) return Boolean;
+ function "=" (L, R : Valid_Big_Real) return Boolean with Global => null;
- function "<" (L, R : Big_Real) return Boolean;
+ function "<" (L, R : Valid_Big_Real) return Boolean with Global => null;
- function "<=" (L, R : Big_Real) return Boolean;
+ function "<=" (L, R : Valid_Big_Real) return Boolean with Global => null;
- function ">" (L, R : Big_Real) return Boolean;
+ function ">" (L, R : Valid_Big_Real) return Boolean with Global => null;
- function ">=" (L, R : Big_Real) return Boolean;
+ function ">=" (L, R : Valid_Big_Real) return Boolean with Global => null;
function In_Range (Arg, Low, High : Big_Real) return Boolean is
- (Low <= Arg and then Arg <= High);
+ (Low <= Arg and then Arg <= High)
+ with Global => null;
generic
type Num is digits <>;
package Float_Conversions is
- function To_Big_Real (Arg : Num) return Big_Real;
+ function To_Big_Real (Arg : Num) return Valid_Big_Real
+ with Global => null;
function From_Big_Real (Arg : Big_Real) return Num
- with Pre => In_Range (Arg,
- Low => To_Big_Real (Num'First),
- High => To_Big_Real (Num'Last))
- or else (raise Constraint_Error);
+ with
+ Pre => In_Range (Arg,
+ Low => To_Big_Real (Num'First),
+ High => To_Big_Real (Num'Last))
+ or else (raise Constraint_Error),
+ Global => null;
end Float_Conversions;
@@ -81,53 +99,69 @@ is
type Num is delta <>;
package Fixed_Conversions is
- function To_Big_Real (Arg : Num) return Big_Real;
+ function To_Big_Real (Arg : Num) return Valid_Big_Real
+ with Global => null;
function From_Big_Real (Arg : Big_Real) return Num
- with Pre => In_Range (Arg,
- Low => To_Big_Real (Num'First),
- High => To_Big_Real (Num'Last))
- or else (raise Constraint_Error);
+ with
+ Pre => In_Range (Arg,
+ Low => To_Big_Real (Num'First),
+ High => To_Big_Real (Num'Last))
+ or else (raise Constraint_Error),
+ Global => null;
end Fixed_Conversions;
- function To_String (Arg : Big_Real;
+ function To_String (Arg : Valid_Big_Real;
Fore : Field := 2;
Aft : Field := 3;
Exp : Field := 0) return String
- with Post => To_String'Result'First = 1;
+ with
+ Post => To_String'Result'First = 1,
+ Global => null;
- function From_String (Arg : String) return Big_Real;
+ function From_String (Arg : String) return Big_Real
+ with Global => null;
function To_Quotient_String (Arg : Big_Real) return String is
(Big_Integers.To_String (Numerator (Arg)) & " / "
- & Big_Integers.To_String (Denominator (Arg)));
+ & Big_Integers.To_String (Denominator (Arg)))
+ with Global => null;
- function From_Quotient_String (Arg : String) return Big_Real;
+ function From_Quotient_String (Arg : String) return Valid_Big_Real
+ with Global => null;
- procedure Put_Image
- (Stream : not null access Ada.Streams.Root_Stream_Type'Class;
- Arg : Big_Real);
+ procedure Put_Image (S : in out Sink'Class; V : Big_Real);
- function "+" (L : Big_Real) return Big_Real;
+ function "+" (L : Valid_Big_Real) return Valid_Big_Real
+ with Global => null;
- function "-" (L : Big_Real) return Big_Real;
+ function "-" (L : Valid_Big_Real) return Valid_Big_Real
+ with Global => null;
- function "abs" (L : Big_Real) return Big_Real;
+ function "abs" (L : Valid_Big_Real) return Valid_Big_Real
+ with Global => null;
- function "+" (L, R : Big_Real) return Big_Real;
+ function "+" (L, R : Valid_Big_Real) return Valid_Big_Real
+ with Global => null;
- function "-" (L, R : Big_Real) return Big_Real;
+ function "-" (L, R : Valid_Big_Real) return Valid_Big_Real
+ with Global => null;
- function "*" (L, R : Big_Real) return Big_Real;
+ function "*" (L, R : Valid_Big_Real) return Valid_Big_Real
+ with Global => null;
- function "/" (L, R : Big_Real) return Big_Real;
+ function "/" (L, R : Valid_Big_Real) return Valid_Big_Real
+ with Global => null;
- function "**" (L : Big_Real; R : Integer) return Big_Real;
+ function "**" (L : Valid_Big_Real; R : Integer) return Valid_Big_Real
+ with Global => null;
- function Min (L, R : Big_Real) return Big_Real;
+ function Min (L, R : Valid_Big_Real) return Valid_Big_Real
+ with Global => null;
- function Max (L, R : Big_Real) return Big_Real;
+ function Max (L, R : Valid_Big_Real) return Valid_Big_Real
+ with Global => null;
private
diff --git a/gcc/ada/libgnat/a-ngcefu.adb b/gcc/ada/libgnat/a-ngcefu.adb
index 390f42b..46af6f8 100644
--- a/gcc/ada/libgnat/a-ngcefu.adb
+++ b/gcc/ada/libgnat/a-ngcefu.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-ngcoar.adb b/gcc/ada/libgnat/a-ngcoar.adb
index a464a32..3a7cede 100644
--- a/gcc/ada/libgnat/a-ngcoar.adb
+++ b/gcc/ada/libgnat/a-ngcoar.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2006-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2006-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-ngcoty.adb b/gcc/ada/libgnat/a-ngcoty.adb
index bece703..6785ccf 100644
--- a/gcc/ada/libgnat/a-ngcoty.adb
+++ b/gcc/ada/libgnat/a-ngcoty.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -66,11 +66,19 @@ package body Ada.Numerics.Generic_Complex_Types is
-- return false, the test can only be written thus.
if not (abs (X) <= R'Last) then
+ pragma Annotate
+ (CodePeer, Intentional,
+ "test always false", "test for infinity");
+
X := Scale**2 * ((Left.Re / Scale) * (Right.Re / Scale) -
(Left.Im / Scale) * (Right.Im / Scale));
end if;
if not (abs (Y) <= R'Last) then
+ pragma Annotate
+ (CodePeer, Intentional,
+ "test always false", "test for infinity");
+
Y := Scale**2 * ((Left.Re / Scale) * (Right.Im / Scale)
+ (Left.Im / Scale) * (Right.Re / Scale));
end if;
@@ -588,6 +596,7 @@ package body Ada.Numerics.Generic_Complex_Types is
exception
when Constraint_Error =>
+ pragma Assert (X.Re /= 0.0);
return R (Double (abs (X.Re))
* Sqrt (1.0 + (Double (X.Im) / Double (X.Re)) ** 2));
end;
@@ -602,6 +611,7 @@ package body Ada.Numerics.Generic_Complex_Types is
exception
when Constraint_Error =>
+ pragma Assert (X.Im /= 0.0);
return R (Double (abs (X.Im))
* Sqrt (1.0 + (Double (X.Re) / Double (X.Im)) ** 2));
end;
diff --git a/gcc/ada/libgnat/a-ngcoty.ads b/gcc/ada/libgnat/a-ngcoty.ads
index f775120..a5534cd 100644
--- a/gcc/ada/libgnat/a-ngcoty.ads
+++ b/gcc/ada/libgnat/a-ngcoty.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-ngelfu.adb b/gcc/ada/libgnat/a-ngelfu.adb
index 71cd47b..7e7c662 100644
--- a/gcc/ada/libgnat/a-ngelfu.adb
+++ b/gcc/ada/libgnat/a-ngelfu.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -680,6 +680,8 @@ is
Z := G * G;
P := G * ((P2 * Z + P1) * Z + P0);
Q := ((Q3 * Z + Q2) * Z + Q1) * Z + Q0;
+
+ pragma Assert (Q /= P);
R := 0.5 + P / (Q - P);
R := Float_Type'Base'Scaling (R, Integer (XN) + 1);
diff --git a/gcc/ada/libgnat/a-ngelfu.ads b/gcc/ada/libgnat/a-ngelfu.ads
index cb6137c..1a8e176 100644
--- a/gcc/ada/libgnat/a-ngelfu.ads
+++ b/gcc/ada/libgnat/a-ngelfu.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2012-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2012-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-ngrear.adb b/gcc/ada/libgnat/a-ngrear.adb
index 8418ec1..1115cd3 100644
--- a/gcc/ada/libgnat/a-ngrear.adb
+++ b/gcc/ada/libgnat/a-ngrear.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2006-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2006-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -560,6 +560,8 @@ package body Ada.Numerics.Generic_Real_Arrays is
function Compute_Tan (P, H : Real) return Real is
(if Is_Tiny (P, Compared_To => H) then P / H
else Compute_Tan (Theta => H / (2.0 * P)));
+ pragma Annotate
+ (CodePeer, False_Positive, "divide by zero", "H, P /= 0");
function Sum_Strict_Upper (M : Square_Matrix) return Real;
-- Return the sum of all elements in the strict upper triangle of M
diff --git a/gcc/ada/libgnat/a-ngrear.ads b/gcc/ada/libgnat/a-ngrear.ads
index aa97af5..748d6b7 100644
--- a/gcc/ada/libgnat/a-ngrear.ads
+++ b/gcc/ada/libgnat/a-ngrear.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2009-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2009-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-nubinu.ads b/gcc/ada/libgnat/a-nubinu.ads
index a25e39c..c2b95d8 100644
--- a/gcc/ada/libgnat/a-nubinu.ads
+++ b/gcc/ada/libgnat/a-nubinu.ads
@@ -13,11 +13,7 @@
-- --
------------------------------------------------------------------------------
--- Note that some Ada 2020 aspects are commented out since they are not
--- supported yet.
-
package Ada.Numerics.Big_Numbers
- -- with Pure, Nonblocking, Global => null
with Pure
is
subtype Field is Integer range 0 .. 255;
diff --git a/gcc/ada/libgnat/a-nudira.adb b/gcc/ada/libgnat/a-nudira.adb
index 23c8e72..e18403c 100644
--- a/gcc/ada/libgnat/a-nudira.adb
+++ b/gcc/ada/libgnat/a-nudira.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -56,6 +56,17 @@ is
return Random (SRN.Generator (Gen));
end Random;
+ function Random
+ (Gen : Generator;
+ First : Result_Subtype;
+ Last : Result_Subtype) return Result_Subtype
+ is
+ subtype Local_Subtype is Result_Subtype range First .. Last;
+ function Random is new SRN.Random_Discrete (Local_Subtype, First);
+ begin
+ return Random (SRN.Generator (Gen));
+ end Random;
+
-----------
-- Reset --
-----------
diff --git a/gcc/ada/libgnat/a-nudira.ads b/gcc/ada/libgnat/a-nudira.ads
index 8a6b6c2..35b7dc6 100644
--- a/gcc/ada/libgnat/a-nudira.ads
+++ b/gcc/ada/libgnat/a-nudira.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -51,6 +51,12 @@ is
function Random (Gen : Generator) return Result_Subtype;
+ function Random
+ (Gen : Generator;
+ First : Result_Subtype;
+ Last : Result_Subtype) return Result_Subtype
+ with Post => Random'Result in First .. Last;
+
procedure Reset (Gen : Generator; Initiator : Integer);
procedure Reset (Gen : Generator);
diff --git a/gcc/ada/libgnat/a-nuflra.adb b/gcc/ada/libgnat/a-nuflra.adb
index 19d202b..8621006 100644
--- a/gcc/ada/libgnat/a-nuflra.adb
+++ b/gcc/ada/libgnat/a-nuflra.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-nuflra.ads b/gcc/ada/libgnat/a-nuflra.ads
index e1f8704..ff7ab88 100644
--- a/gcc/ada/libgnat/a-nuflra.ads
+++ b/gcc/ada/libgnat/a-nuflra.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-numaux.ads b/gcc/ada/libgnat/a-numaux.ads
index 01c5224..3ad7067 100644
--- a/gcc/ada/libgnat/a-numaux.ads
+++ b/gcc/ada/libgnat/a-numaux.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (C Library Version, non-x86) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-numaux__darwin.adb b/gcc/ada/libgnat/a-numaux__darwin.adb
index 0e57128..85fdd24 100644
--- a/gcc/ada/libgnat/a-numaux__darwin.adb
+++ b/gcc/ada/libgnat/a-numaux__darwin.adb
@@ -7,7 +7,7 @@
-- B o d y --
-- (Apple OS X Version) --
-- --
--- Copyright (C) 1998-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1998-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-numaux__darwin.ads b/gcc/ada/libgnat/a-numaux__darwin.ads
index a699e85..f2a4428 100644
--- a/gcc/ada/libgnat/a-numaux__darwin.ads
+++ b/gcc/ada/libgnat/a-numaux__darwin.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (Apple OS X Version) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-numaux__dummy.adb b/gcc/ada/libgnat/a-numaux__dummy.adb
new file mode 100644
index 0000000..f5d72ec
--- /dev/null
+++ b/gcc/ada/libgnat/a-numaux__dummy.adb
@@ -0,0 +1,32 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT RUN-TIME COMPONENTS --
+-- --
+-- A D A . N U M E R I C S . A U X --
+-- --
+-- B o d y --
+-- --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
+-- --
+-- GNAT is free software; you can redistribute it and/or modify it under --
+-- terms of the GNU General Public License as published by the Free Soft- --
+-- ware Foundation; either version 3, or (at your option) any later ver- --
+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
+-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
+-- or FITNESS FOR A PARTICULAR PURPOSE. --
+-- --
+-- As a special exception under Section 7 of GPL version 3, you are granted --
+-- additional permissions described in the GCC Runtime Library Exception, --
+-- version 3.1, as published by the Free Software Foundation. --
+-- --
+-- You should have received a copy of the GNU General Public License and --
+-- a copy of the GCC Runtime Library Exception along with this program; --
+-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
+-- <http://www.gnu.org/licenses/>. --
+-- --
+-- GNAT was originally developed by the GNAT team at New York University. --
+-- Extensive contributions were provided by Ada Core Technologies Inc. --
+-- --
+------------------------------------------------------------------------------
+
+pragma No_Body;
diff --git a/gcc/ada/libgnat/a-numaux__libc-x86.ads b/gcc/ada/libgnat/a-numaux__libc-x86.ads
index db71671..c4647fd 100644
--- a/gcc/ada/libgnat/a-numaux__libc-x86.ads
+++ b/gcc/ada/libgnat/a-numaux__libc-x86.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (C Library Version for x86) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-numaux__vxworks.ads b/gcc/ada/libgnat/a-numaux__vxworks.ads
index ace578c..c291334 100644
--- a/gcc/ada/libgnat/a-numaux__vxworks.ads
+++ b/gcc/ada/libgnat/a-numaux__vxworks.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (C Library Version, VxWorks) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-numaux__x86.adb b/gcc/ada/libgnat/a-numaux__x86.adb
deleted file mode 100644
index 2a849a6..0000000
--- a/gcc/ada/libgnat/a-numaux__x86.adb
+++ /dev/null
@@ -1,577 +0,0 @@
-------------------------------------------------------------------------------
--- --
--- GNAT RUN-TIME COMPONENTS --
--- --
--- A D A . N U M E R I C S . A U X --
--- --
--- B o d y --
--- (Machine Version for x86) --
--- --
--- Copyright (C) 1998-2019, Free Software Foundation, Inc. --
--- --
--- GNAT is free software; you can redistribute it and/or modify it under --
--- terms of the GNU General Public License as published by the Free Soft- --
--- ware Foundation; either version 3, or (at your option) any later ver- --
--- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
--- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
--- or FITNESS FOR A PARTICULAR PURPOSE. --
--- --
--- As a special exception under Section 7 of GPL version 3, you are granted --
--- additional permissions described in the GCC Runtime Library Exception, --
--- version 3.1, as published by the Free Software Foundation. --
--- --
--- You should have received a copy of the GNU General Public License and --
--- a copy of the GCC Runtime Library Exception along with this program; --
--- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
--- <http://www.gnu.org/licenses/>. --
--- --
--- GNAT was originally developed by the GNAT team at New York University. --
--- Extensive contributions were provided by Ada Core Technologies Inc. --
--- --
-------------------------------------------------------------------------------
-
-with System.Machine_Code; use System.Machine_Code;
-
-package body Ada.Numerics.Aux is
-
- NL : constant String := ASCII.LF & ASCII.HT;
-
- -----------------------
- -- Local subprograms --
- -----------------------
-
- function Is_Nan (X : Double) return Boolean;
- -- Return True iff X is a IEEE NaN value
-
- function Logarithmic_Pow (X, Y : Double) return Double;
- -- Implementation of X**Y using Exp and Log functions (binary base)
- -- to calculate the exponentiation. This is used by Pow for values
- -- for values of Y in the open interval (-0.25, 0.25)
-
- procedure Reduce (X : in out Double; Q : out Natural);
- -- Implement reduction of X by Pi/2. Q is the quadrant of the final
- -- result in the range 0..3. The absolute value of X is at most Pi/4.
- -- It is needed to avoid a loss of accuracy for sin near Pi and cos
- -- near Pi/2 due to the use of an insufficiently precise value of Pi
- -- in the range reduction.
-
- pragma Inline (Is_Nan);
- pragma Inline (Reduce);
-
- --------------------------------
- -- Basic Elementary Functions --
- --------------------------------
-
- -- This section implements a few elementary functions that are used to
- -- build the more complex ones. This ordering enables better inlining.
-
- ----------
- -- Atan --
- ----------
-
- function Atan (X : Double) return Double is
- Result : Double;
-
- begin
- Asm (Template =>
- "fld1" & NL
- & "fpatan",
- Outputs => Double'Asm_Output ("=t", Result),
- Inputs => Double'Asm_Input ("0", X));
-
- -- The result value is NaN iff input was invalid
-
- if not (Result = Result) then
- raise Argument_Error;
- end if;
-
- return Result;
- end Atan;
-
- ---------
- -- Exp --
- ---------
-
- function Exp (X : Double) return Double is
- Result : Double;
- begin
- Asm (Template =>
- "fldl2e " & NL
- & "fmulp %%st, %%st(1)" & NL -- X * log2 (E)
- & "fld %%st(0) " & NL
- & "frndint " & NL -- Integer (X * Log2 (E))
- & "fsubr %%st, %%st(1)" & NL -- Fraction (X * Log2 (E))
- & "fxch " & NL
- & "f2xm1 " & NL -- 2**(...) - 1
- & "fld1 " & NL
- & "faddp %%st, %%st(1)" & NL -- 2**(Fraction (X * Log2 (E)))
- & "fscale " & NL -- E ** X
- & "fstp %%st(1) ",
- Outputs => Double'Asm_Output ("=t", Result),
- Inputs => Double'Asm_Input ("0", X));
- return Result;
- end Exp;
-
- ------------
- -- Is_Nan --
- ------------
-
- function Is_Nan (X : Double) return Boolean is
- begin
- -- The IEEE NaN values are the only ones that do not equal themselves
-
- return X /= X;
- end Is_Nan;
-
- ---------
- -- Log --
- ---------
-
- function Log (X : Double) return Double is
- Result : Double;
-
- begin
- Asm (Template =>
- "fldln2 " & NL
- & "fxch " & NL
- & "fyl2x " & NL,
- Outputs => Double'Asm_Output ("=t", Result),
- Inputs => Double'Asm_Input ("0", X));
- return Result;
- end Log;
-
- ------------
- -- Reduce --
- ------------
-
- procedure Reduce (X : in out Double; Q : out Natural) is
- Half_Pi : constant := Pi / 2.0;
- Two_Over_Pi : constant := 2.0 / Pi;
-
- HM : constant := Integer'Min (Double'Machine_Mantissa / 2, Natural'Size);
- M : constant Double := 0.5 + 2.0**(1 - HM); -- Splitting constant
- P1 : constant Double := Double'Leading_Part (Half_Pi, HM);
- P2 : constant Double := Double'Leading_Part (Half_Pi - P1, HM);
- P3 : constant Double := Double'Leading_Part (Half_Pi - P1 - P2, HM);
- P4 : constant Double := Double'Leading_Part (Half_Pi - P1 - P2 - P3, HM);
- P5 : constant Double := Double'Leading_Part (Half_Pi - P1 - P2 - P3
- - P4, HM);
- P6 : constant Double := Double'Model (Half_Pi - P1 - P2 - P3 - P4 - P5);
- K : Double;
- R : Integer;
-
- begin
- -- For X < 2.0**HM, all products below are computed exactly.
- -- Due to cancellation effects all subtractions are exact as well.
- -- As no double extended floating-point number has more than 75
- -- zeros after the binary point, the result will be the correctly
- -- rounded result of X - K * (Pi / 2.0).
-
- K := X * Two_Over_Pi;
- while abs K >= 2.0**HM loop
- K := K * M - (K * M - K);
- X :=
- (((((X - K * P1) - K * P2) - K * P3) - K * P4) - K * P5) - K * P6;
- K := X * Two_Over_Pi;
- end loop;
-
- -- If K is not a number (because X was not finite) raise exception
-
- if Is_Nan (K) then
- raise Constraint_Error;
- end if;
-
- -- Go through an integer temporary so as to use machine instructions
-
- R := Integer (Double'Rounding (K));
- Q := R mod 4;
- K := Double (R);
- X := (((((X - K * P1) - K * P2) - K * P3) - K * P4) - K * P5) - K * P6;
- end Reduce;
-
- ----------
- -- Sqrt --
- ----------
-
- function Sqrt (X : Double) return Double is
- Result : Double;
-
- begin
- if X < 0.0 then
- raise Argument_Error;
- end if;
-
- Asm (Template => "fsqrt",
- Outputs => Double'Asm_Output ("=t", Result),
- Inputs => Double'Asm_Input ("0", X));
-
- return Result;
- end Sqrt;
-
- --------------------------------
- -- Other Elementary Functions --
- --------------------------------
-
- -- These are built using the previously implemented basic functions
-
- ----------
- -- Acos --
- ----------
-
- function Acos (X : Double) return Double is
- Result : Double;
-
- begin
- Result := 2.0 * Atan (Sqrt ((1.0 - X) / (1.0 + X)));
-
- -- The result value is NaN iff input was invalid
-
- if Is_Nan (Result) then
- raise Argument_Error;
- end if;
-
- return Result;
- end Acos;
-
- ----------
- -- Asin --
- ----------
-
- function Asin (X : Double) return Double is
- Result : Double;
-
- begin
- Result := Atan (X / Sqrt ((1.0 - X) * (1.0 + X)));
-
- -- The result value is NaN iff input was invalid
-
- if Is_Nan (Result) then
- raise Argument_Error;
- end if;
-
- return Result;
- end Asin;
-
- ---------
- -- Cos --
- ---------
-
- function Cos (X : Double) return Double is
- Reduced_X : Double := abs X;
- Result : Double;
- Quadrant : Natural range 0 .. 3;
-
- begin
- if Reduced_X > Pi / 4.0 then
- Reduce (Reduced_X, Quadrant);
-
- case Quadrant is
- when 0 =>
- Asm (Template => "fcos",
- Outputs => Double'Asm_Output ("=t", Result),
- Inputs => Double'Asm_Input ("0", Reduced_X));
-
- when 1 =>
- Asm (Template => "fsin",
- Outputs => Double'Asm_Output ("=t", Result),
- Inputs => Double'Asm_Input ("0", -Reduced_X));
-
- when 2 =>
- Asm (Template => "fcos ; fchs",
- Outputs => Double'Asm_Output ("=t", Result),
- Inputs => Double'Asm_Input ("0", Reduced_X));
-
- when 3 =>
- Asm (Template => "fsin",
- Outputs => Double'Asm_Output ("=t", Result),
- Inputs => Double'Asm_Input ("0", Reduced_X));
- end case;
-
- else
- Asm (Template => "fcos",
- Outputs => Double'Asm_Output ("=t", Result),
- Inputs => Double'Asm_Input ("0", Reduced_X));
- end if;
-
- return Result;
- end Cos;
-
- ---------------------
- -- Logarithmic_Pow --
- ---------------------
-
- function Logarithmic_Pow (X, Y : Double) return Double is
- Result : Double;
- begin
- Asm (Template => "" -- X : Y
- & "fyl2x " & NL -- Y * Log2 (X)
- & "fld %%st(0) " & NL -- Y * Log2 (X) : Y * Log2 (X)
- & "frndint " & NL -- Int (...) : Y * Log2 (X)
- & "fsubr %%st, %%st(1)" & NL -- Int (...) : Fract (...)
- & "fxch " & NL -- Fract (...) : Int (...)
- & "f2xm1 " & NL -- 2**Fract (...) - 1 : Int (...)
- & "fld1 " & NL -- 1 : 2**Fract (...) - 1 : Int (...)
- & "faddp %%st, %%st(1)" & NL -- 2**Fract (...) : Int (...)
- & "fscale ", -- 2**(Fract (...) + Int (...))
- Outputs => Double'Asm_Output ("=t", Result),
- Inputs =>
- (Double'Asm_Input ("0", X),
- Double'Asm_Input ("u", Y)));
- return Result;
- end Logarithmic_Pow;
-
- ---------
- -- Pow --
- ---------
-
- function Pow (X, Y : Double) return Double is
- type Mantissa_Type is mod 2**Double'Machine_Mantissa;
- -- Modular type that can hold all bits of the mantissa of Double
-
- -- For negative exponents, do divide at the end of the processing
-
- Negative_Y : constant Boolean := Y < 0.0;
- Abs_Y : constant Double := abs Y;
-
- -- During this function the following invariant is kept:
- -- X ** (abs Y) = Base**(Exp_High + Exp_Mid + Exp_Low) * Factor
-
- Base : Double := X;
-
- Exp_High : Double := Double'Floor (Abs_Y);
- Exp_Mid : Double;
- Exp_Low : Double;
- Exp_Int : Mantissa_Type;
-
- Factor : Double := 1.0;
-
- begin
- -- Select algorithm for calculating Pow (integer cases fall through)
-
- if Exp_High >= 2.0**Double'Machine_Mantissa then
-
- -- In case of Y that is IEEE infinity, just raise constraint error
-
- if Exp_High > Double'Safe_Last then
- raise Constraint_Error;
- end if;
-
- -- Large values of Y are even integers and will stay integer
- -- after division by two.
-
- loop
- -- Exp_Mid and Exp_Low are zero, so
- -- X**(abs Y) = Base ** Exp_High = (Base**2) ** (Exp_High / 2)
-
- Exp_High := Exp_High / 2.0;
- Base := Base * Base;
- exit when Exp_High < 2.0**Double'Machine_Mantissa;
- end loop;
-
- elsif Exp_High /= Abs_Y then
- Exp_Low := Abs_Y - Exp_High;
- Factor := 1.0;
-
- if Exp_Low /= 0.0 then
-
- -- Exp_Low now is in interval (0.0, 1.0)
- -- Exp_Mid := Double'Floor (Exp_Low * 4.0) / 4.0;
-
- Exp_Mid := 0.0;
- Exp_Low := Exp_Low - Exp_Mid;
-
- if Exp_Low >= 0.5 then
- Factor := Sqrt (X);
- Exp_Low := Exp_Low - 0.5; -- exact
-
- if Exp_Low >= 0.25 then
- Factor := Factor * Sqrt (Factor);
- Exp_Low := Exp_Low - 0.25; -- exact
- end if;
-
- elsif Exp_Low >= 0.25 then
- Factor := Sqrt (Sqrt (X));
- Exp_Low := Exp_Low - 0.25; -- exact
- end if;
-
- -- Exp_Low now is in interval (0.0, 0.25)
-
- -- This means it is safe to call Logarithmic_Pow
- -- for the remaining part.
-
- Factor := Factor * Logarithmic_Pow (X, Exp_Low);
- end if;
-
- elsif X = 0.0 then
- return 0.0;
- end if;
-
- -- Exp_High is non-zero integer smaller than 2**Double'Machine_Mantissa
-
- Exp_Int := Mantissa_Type (Exp_High);
-
- -- Standard way for processing integer powers > 0
-
- while Exp_Int > 1 loop
- if (Exp_Int and 1) = 1 then
-
- -- Base**Y = Base**(Exp_Int - 1) * Exp_Int for Exp_Int > 0
-
- Factor := Factor * Base;
- end if;
-
- -- Exp_Int is even and Exp_Int > 0, so
- -- Base**Y = (Base**2)**(Exp_Int / 2)
-
- Base := Base * Base;
- Exp_Int := Exp_Int / 2;
- end loop;
-
- -- Exp_Int = 1 or Exp_Int = 0
-
- if Exp_Int = 1 then
- Factor := Base * Factor;
- end if;
-
- if Negative_Y then
- Factor := 1.0 / Factor;
- end if;
-
- return Factor;
- end Pow;
-
- ---------
- -- Sin --
- ---------
-
- function Sin (X : Double) return Double is
- Reduced_X : Double := X;
- Result : Double;
- Quadrant : Natural range 0 .. 3;
-
- begin
- if abs X > Pi / 4.0 then
- Reduce (Reduced_X, Quadrant);
-
- case Quadrant is
- when 0 =>
- Asm (Template => "fsin",
- Outputs => Double'Asm_Output ("=t", Result),
- Inputs => Double'Asm_Input ("0", Reduced_X));
-
- when 1 =>
- Asm (Template => "fcos",
- Outputs => Double'Asm_Output ("=t", Result),
- Inputs => Double'Asm_Input ("0", Reduced_X));
-
- when 2 =>
- Asm (Template => "fsin",
- Outputs => Double'Asm_Output ("=t", Result),
- Inputs => Double'Asm_Input ("0", -Reduced_X));
-
- when 3 =>
- Asm (Template => "fcos ; fchs",
- Outputs => Double'Asm_Output ("=t", Result),
- Inputs => Double'Asm_Input ("0", Reduced_X));
- end case;
-
- else
- Asm (Template => "fsin",
- Outputs => Double'Asm_Output ("=t", Result),
- Inputs => Double'Asm_Input ("0", Reduced_X));
- end if;
-
- return Result;
- end Sin;
-
- ---------
- -- Tan --
- ---------
-
- function Tan (X : Double) return Double is
- Reduced_X : Double := X;
- Result : Double;
- Quadrant : Natural range 0 .. 3;
-
- begin
- if abs X > Pi / 4.0 then
- Reduce (Reduced_X, Quadrant);
-
- if Quadrant mod 2 = 0 then
- Asm (Template => "fptan" & NL
- & "ffree %%st(0)" & NL
- & "fincstp",
- Outputs => Double'Asm_Output ("=t", Result),
- Inputs => Double'Asm_Input ("0", Reduced_X));
- else
- Asm (Template => "fsincos" & NL
- & "fdivp %%st, %%st(1)" & NL
- & "fchs",
- Outputs => Double'Asm_Output ("=t", Result),
- Inputs => Double'Asm_Input ("0", Reduced_X));
- end if;
-
- else
- Asm (Template =>
- "fptan " & NL
- & "ffree %%st(0) " & NL
- & "fincstp ",
- Outputs => Double'Asm_Output ("=t", Result),
- Inputs => Double'Asm_Input ("0", Reduced_X));
- end if;
-
- return Result;
- end Tan;
-
- ----------
- -- Sinh --
- ----------
-
- function Sinh (X : Double) return Double is
- begin
- -- Mathematically Sinh (x) is defined to be (Exp (X) - Exp (-X)) / 2.0
-
- if abs X < 25.0 then
- return (Exp (X) - Exp (-X)) / 2.0;
- else
- return Exp (X) / 2.0;
- end if;
- end Sinh;
-
- ----------
- -- Cosh --
- ----------
-
- function Cosh (X : Double) return Double is
- begin
- -- Mathematically Cosh (X) is defined to be (Exp (X) + Exp (-X)) / 2.0
-
- if abs X < 22.0 then
- return (Exp (X) + Exp (-X)) / 2.0;
- else
- return Exp (X) / 2.0;
- end if;
- end Cosh;
-
- ----------
- -- Tanh --
- ----------
-
- function Tanh (X : Double) return Double is
- begin
- -- Return the Hyperbolic Tangent of x
-
- -- x -x
- -- e - e Sinh (X)
- -- Tanh (X) is defined to be ----------- = --------
- -- x -x Cosh (X)
- -- e + e
-
- if abs X > 23.0 then
- return Double'Copy_Sign (1.0, X);
- end if;
-
- return 1.0 / (1.0 + Exp (-(2.0 * X))) - 1.0 / (1.0 + Exp (2.0 * X));
- end Tanh;
-
-end Ada.Numerics.Aux;
diff --git a/gcc/ada/libgnat/a-rbtgbk.adb b/gcc/ada/libgnat/a-rbtgbk.adb
index d959de5..40a792f 100644
--- a/gcc/ada/libgnat/a-rbtgbk.adb
+++ b/gcc/ada/libgnat/a-rbtgbk.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-rbtgbk.ads b/gcc/ada/libgnat/a-rbtgbk.ads
index 36c4783..22f6c22 100644
--- a/gcc/ada/libgnat/a-rbtgbk.ads
+++ b/gcc/ada/libgnat/a-rbtgbk.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-rbtgbo.adb b/gcc/ada/libgnat/a-rbtgbo.adb
index 679030d..a2775ea 100644
--- a/gcc/ada/libgnat/a-rbtgbo.adb
+++ b/gcc/ada/libgnat/a-rbtgbo.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-rbtgbo.ads b/gcc/ada/libgnat/a-rbtgbo.ads
index 73ee0de..968c2f2 100644
--- a/gcc/ada/libgnat/a-rbtgbo.ads
+++ b/gcc/ada/libgnat/a-rbtgbo.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-rbtgso.adb b/gcc/ada/libgnat/a-rbtgso.adb
index 5dbee70..fcb254d 100644
--- a/gcc/ada/libgnat/a-rbtgso.adb
+++ b/gcc/ada/libgnat/a-rbtgso.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -94,9 +94,9 @@ package body Ada.Containers.Red_Black_Trees.Generic_Set_Operations is
Compare : Integer;
begin
- if Target'Address = Source'Address then
- TC_Check (Target.TC);
+ TC_Check (Target.TC);
+ if Target'Address = Source'Address then
Clear (Target);
return;
end if;
@@ -105,8 +105,6 @@ package body Ada.Containers.Red_Black_Trees.Generic_Set_Operations is
return;
end if;
- TC_Check (Target.TC);
-
Tgt := Target.First;
Src := Source.First;
loop
diff --git a/gcc/ada/libgnat/a-rbtgso.ads b/gcc/ada/libgnat/a-rbtgso.ads
index 5970f45..e6eeb33 100644
--- a/gcc/ada/libgnat/a-rbtgso.ads
+++ b/gcc/ada/libgnat/a-rbtgso.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-sbecin.adb b/gcc/ada/libgnat/a-sbecin.adb
index 4673236..d9bef56 100644
--- a/gcc/ada/libgnat/a-sbecin.adb
+++ b/gcc/ada/libgnat/a-sbecin.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2011-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2011-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-sbecin.ads b/gcc/ada/libgnat/a-sbecin.ads
index 66e682b..9144e9e 100644
--- a/gcc/ada/libgnat/a-sbecin.ads
+++ b/gcc/ada/libgnat/a-sbecin.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2011-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2011-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-sbhcin.adb b/gcc/ada/libgnat/a-sbhcin.adb
index 2efd5d8..5062756 100644
--- a/gcc/ada/libgnat/a-sbhcin.adb
+++ b/gcc/ada/libgnat/a-sbhcin.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2011-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2011-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-sbhcin.ads b/gcc/ada/libgnat/a-sbhcin.ads
index 64de2ca..ec1d97c 100644
--- a/gcc/ada/libgnat/a-sbhcin.ads
+++ b/gcc/ada/libgnat/a-sbhcin.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2011-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2011-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-sblcin.adb b/gcc/ada/libgnat/a-sblcin.adb
index 386a1a0..c21050d 100644
--- a/gcc/ada/libgnat/a-sblcin.adb
+++ b/gcc/ada/libgnat/a-sblcin.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2011-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2011-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-sblcin.ads b/gcc/ada/libgnat/a-sblcin.ads
index f50c6df..8915631 100644
--- a/gcc/ada/libgnat/a-sblcin.ads
+++ b/gcc/ada/libgnat/a-sblcin.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2011-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2011-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-secain.adb b/gcc/ada/libgnat/a-secain.adb
index b06387f..6c042f1 100644
--- a/gcc/ada/libgnat/a-secain.adb
+++ b/gcc/ada/libgnat/a-secain.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-secain.ads b/gcc/ada/libgnat/a-secain.ads
index 4d985e1..3e77231 100644
--- a/gcc/ada/libgnat/a-secain.ads
+++ b/gcc/ada/libgnat/a-secain.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-sequio.adb b/gcc/ada/libgnat/a-sequio.adb
index 9519a87..0b5aa61 100644
--- a/gcc/ada/libgnat/a-sequio.adb
+++ b/gcc/ada/libgnat/a-sequio.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -73,7 +73,7 @@ package body Ada.Sequential_IO is
procedure Byte_Swap (Siz : in out size_t) is
use System.Byte_Swapping;
begin
- case Siz'Size is
+ case size_t'Size is
when 32 => Siz := size_t (Bswap_32 (U32 (Siz)));
when 64 => Siz := size_t (Bswap_64 (U64 (Siz)));
when others => raise Program_Error;
diff --git a/gcc/ada/libgnat/a-sequio.ads b/gcc/ada/libgnat/a-sequio.ads
index 4a2e803..dcaa3f0 100644
--- a/gcc/ada/libgnat/a-sequio.ads
+++ b/gcc/ada/libgnat/a-sequio.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-sfecin.ads b/gcc/ada/libgnat/a-sfecin.ads
index 0aaf97b..0c1b0a7 100644
--- a/gcc/ada/libgnat/a-sfecin.ads
+++ b/gcc/ada/libgnat/a-sfecin.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2011-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2011-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-sfhcin.ads b/gcc/ada/libgnat/a-sfhcin.ads
index be7e5c2..8da6f43 100644
--- a/gcc/ada/libgnat/a-sfhcin.ads
+++ b/gcc/ada/libgnat/a-sfhcin.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2011-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2011-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-sflcin.ads b/gcc/ada/libgnat/a-sflcin.ads
index a40c3aa..8fb7ac1 100644
--- a/gcc/ada/libgnat/a-sflcin.ads
+++ b/gcc/ada/libgnat/a-sflcin.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2011-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2011-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-shcain.adb b/gcc/ada/libgnat/a-shcain.adb
index 5908614..35a346e 100644
--- a/gcc/ada/libgnat/a-shcain.adb
+++ b/gcc/ada/libgnat/a-shcain.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-shcain.ads b/gcc/ada/libgnat/a-shcain.ads
index efe0e2c..4d2975c 100644
--- a/gcc/ada/libgnat/a-shcain.ads
+++ b/gcc/ada/libgnat/a-shcain.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-siocst.adb b/gcc/ada/libgnat/a-siocst.adb
index a912eee..5501486 100644
--- a/gcc/ada/libgnat/a-siocst.adb
+++ b/gcc/ada/libgnat/a-siocst.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-siocst.ads b/gcc/ada/libgnat/a-siocst.ads
index a4dcfba..3a37f7bb 100644
--- a/gcc/ada/libgnat/a-siocst.ads
+++ b/gcc/ada/libgnat/a-siocst.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-slcain.adb b/gcc/ada/libgnat/a-slcain.adb
index 72c9192..732e103 100644
--- a/gcc/ada/libgnat/a-slcain.adb
+++ b/gcc/ada/libgnat/a-slcain.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-slcain.ads b/gcc/ada/libgnat/a-slcain.ads
index 84ca194..8efa651 100644
--- a/gcc/ada/libgnat/a-slcain.ads
+++ b/gcc/ada/libgnat/a-slcain.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-ssicst.adb b/gcc/ada/libgnat/a-ssicst.adb
index 90b48bd..2293136 100644
--- a/gcc/ada/libgnat/a-ssicst.adb
+++ b/gcc/ada/libgnat/a-ssicst.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-ssicst.ads b/gcc/ada/libgnat/a-ssicst.ads
index c488536..7cf18cb 100644
--- a/gcc/ada/libgnat/a-ssicst.ads
+++ b/gcc/ada/libgnat/a-ssicst.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-stboha.adb b/gcc/ada/libgnat/a-stboha.adb
index adf0330..a960dc3 100644
--- a/gcc/ada/libgnat/a-stboha.adb
+++ b/gcc/ada/libgnat/a-stboha.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-stmaco.ads b/gcc/ada/libgnat/a-stmaco.ads
index 3bd60f6..8493bb3 100644
--- a/gcc/ada/libgnat/a-stmaco.ads
+++ b/gcc/ada/libgnat/a-stmaco.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-stobbu.adb b/gcc/ada/libgnat/a-stobbu.adb
new file mode 100644
index 0000000..fba591d
--- /dev/null
+++ b/gcc/ada/libgnat/a-stobbu.adb
@@ -0,0 +1,53 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT RUN-TIME COMPONENTS --
+-- --
+-- ADA.STRINGS.TEXT_OUTPUT.BIT_BUCKETS --
+-- --
+-- B o d y --
+-- --
+-- Copyright (C) 2020, Free Software Foundation, Inc. --
+-- --
+-- GNAT is free software; you can redistribute it and/or modify it under --
+-- terms of the GNU General Public License as published by the Free Soft- --
+-- ware Foundation; either version 3, or (at your option) any later ver- --
+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
+-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
+-- or FITNESS FOR A PARTICULAR PURPOSE. --
+-- --
+-- As a special exception under Section 7 of GPL version 3, you are granted --
+-- additional permissions described in the GCC Runtime Library Exception, --
+-- version 3.1, as published by the Free Software Foundation. --
+-- --
+-- You should have received a copy of the GNU General Public License and --
+-- a copy of the GCC Runtime Library Exception along with this program; --
+-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
+-- <http://www.gnu.org/licenses/>. --
+-- --
+-- GNAT was originally developed by the GNAT team at New York University. --
+-- Extensive contributions were provided by Ada Core Technologies Inc. --
+-- --
+------------------------------------------------------------------------------
+
+package body Ada.Strings.Text_Output.Bit_Buckets is
+
+ type Bit_Bucket_Type is new Sink with null record;
+ overriding procedure Full_Method (S : in out Bit_Bucket_Type);
+ overriding procedure Flush_Method (S : in out Bit_Bucket_Type);
+
+ The_Bit_Bucket : aliased Bit_Bucket_Type
+ (Chunk_Length => Default_Chunk_Length);
+ function Bit_Bucket return Sink_Access is (The_Bit_Bucket'Access);
+
+ overriding procedure Full_Method (S : in out Bit_Bucket_Type)
+ renames Flush_Method;
+
+ overriding procedure Flush_Method (S : in out Bit_Bucket_Type) is
+ begin
+ S.Last := 0;
+ end Flush_Method;
+
+begin
+ The_Bit_Bucket.Indent_Amount := 0;
+ The_Bit_Bucket.Cur_Chunk := The_Bit_Bucket.Initial_Chunk'Access;
+end Ada.Strings.Text_Output.Bit_Buckets;
diff --git a/gcc/ada/libgnat/a-stobbu.ads b/gcc/ada/libgnat/a-stobbu.ads
new file mode 100644
index 0000000..027e711
--- /dev/null
+++ b/gcc/ada/libgnat/a-stobbu.ads
@@ -0,0 +1,34 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT RUN-TIME COMPONENTS --
+-- --
+-- ADA.STRINGS.TEXT_OUTPUT.BIT_BUCKETS --
+-- --
+-- S p e c --
+-- --
+-- Copyright (C) 2020, Free Software Foundation, Inc. --
+-- --
+-- GNAT is free software; you can redistribute it and/or modify it under --
+-- terms of the GNU General Public License as published by the Free Soft- --
+-- ware Foundation; either version 3, or (at your option) any later ver- --
+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
+-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
+-- or FITNESS FOR A PARTICULAR PURPOSE. --
+-- --
+-- As a special exception under Section 7 of GPL version 3, you are granted --
+-- additional permissions described in the GCC Runtime Library Exception, --
+-- version 3.1, as published by the Free Software Foundation. --
+-- --
+-- You should have received a copy of the GNU General Public License and --
+-- a copy of the GCC Runtime Library Exception along with this program; --
+-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
+-- <http://www.gnu.org/licenses/>. --
+-- --
+-- GNAT was originally developed by the GNAT team at New York University. --
+-- Extensive contributions were provided by Ada Core Technologies Inc. --
+-- --
+------------------------------------------------------------------------------
+
+package Ada.Strings.Text_Output.Bit_Buckets is
+ function Bit_Bucket return Sink_Access;
+end Ada.Strings.Text_Output.Bit_Buckets;
diff --git a/gcc/ada/libgnat/a-stobfi.adb b/gcc/ada/libgnat/a-stobfi.adb
new file mode 100644
index 0000000..dd485ba
--- /dev/null
+++ b/gcc/ada/libgnat/a-stobfi.adb
@@ -0,0 +1,118 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT RUN-TIME COMPONENTS --
+-- --
+-- ADA.STRINGS.TEXT_OUTPUT.BASIC_FILES --
+-- --
+-- B o d y --
+-- --
+-- Copyright (C) 2020, Free Software Foundation, Inc. --
+-- --
+-- GNAT is free software; you can redistribute it and/or modify it under --
+-- terms of the GNU General Public License as published by the Free Soft- --
+-- ware Foundation; either version 3, or (at your option) any later ver- --
+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
+-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
+-- or FITNESS FOR A PARTICULAR PURPOSE. --
+-- --
+-- As a special exception under Section 7 of GPL version 3, you are granted --
+-- additional permissions described in the GCC Runtime Library Exception, --
+-- version 3.1, as published by the Free Software Foundation. --
+-- --
+-- You should have received a copy of the GNU General Public License and --
+-- a copy of the GCC Runtime Library Exception along with this program; --
+-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
+-- <http://www.gnu.org/licenses/>. --
+-- --
+-- GNAT was originally developed by the GNAT team at New York University. --
+-- Extensive contributions were provided by Ada Core Technologies Inc. --
+-- --
+------------------------------------------------------------------------------
+
+with Ada.Strings.Text_Output.Utils; use Ada.Strings.Text_Output.Utils;
+package body Ada.Strings.Text_Output.Basic_Files is
+ use type OS.File_Descriptor;
+
+ function Create_From_FD
+ (FD : OS.File_Descriptor;
+ Indent_Amount : Natural;
+ Chunk_Length : Positive) return File;
+ -- Create a file from an OS file descriptor
+
+ function Create_From_FD
+ (FD : OS.File_Descriptor;
+ Indent_Amount : Natural;
+ Chunk_Length : Positive) return File
+ is
+ begin
+ if FD = OS.Invalid_FD then
+ raise Program_Error with OS.Errno_Message;
+ end if;
+ return Result : File (Chunk_Length) do
+ Result.Indent_Amount := Indent_Amount;
+ Result.Cur_Chunk := Result.Initial_Chunk'Unchecked_Access;
+ Result.FD := FD;
+ end return;
+ end Create_From_FD;
+
+ function Create_File
+ (Name : String;
+ Indent_Amount : Natural := Default_Indent_Amount;
+ Chunk_Length : Positive := Default_Chunk_Length) return File
+ is
+ begin
+ return Create_From_FD
+ (OS.Create_File (Name, Fmode => OS.Text),
+ Indent_Amount, Chunk_Length);
+ end Create_File;
+
+ function Create_New_File
+ (Name : String;
+ Indent_Amount : Natural := Default_Indent_Amount;
+ Chunk_Length : Positive := Default_Chunk_Length) return File
+ is
+ begin
+ return Create_From_FD
+ (OS.Create_New_File (Name, Fmode => OS.Text),
+ Indent_Amount, Chunk_Length);
+ end Create_New_File;
+
+ procedure Close (S : in out File'Class) is
+ Status : Boolean;
+ begin
+ Flush (S);
+
+ if S.FD not in OS.Standout | OS.Standerr then -- Don't close these
+ OS.Close (S.FD, Status);
+ if not Status then
+ raise Program_Error with OS.Errno_Message;
+ end if;
+ end if;
+ end Close;
+
+ overriding procedure Full_Method (S : in out File) renames Flush_Method;
+
+ overriding procedure Flush_Method (S : in out File) is
+ pragma Assert (S.Cur_Chunk = S.Initial_Chunk'Unchecked_Access);
+ Res : constant Integer :=
+ OS.Write (S.FD, S.Cur_Chunk.Chars'Address, S.Last);
+ begin
+ if Res /= S.Last then
+ raise Program_Error with OS.Errno_Message;
+ end if;
+ S.Last := 0;
+ end Flush_Method;
+
+ The_Stdout : aliased File :=
+ Create_From_FD (OS.Standout,
+ Indent_Amount => Default_Indent_Amount,
+ Chunk_Length => Default_Chunk_Length);
+ The_Stderr : aliased File :=
+ Create_From_FD (OS.Standerr,
+ Indent_Amount => Default_Indent_Amount,
+ Chunk_Length => Default_Chunk_Length);
+
+ function Standard_Output return Sink_Access is (The_Stdout'Access);
+ function Standard_Error return Sink_Access is (The_Stderr'Access);
+
+end Ada.Strings.Text_Output.Basic_Files;
diff --git a/gcc/ada/libgnat/a-stobfi.ads b/gcc/ada/libgnat/a-stobfi.ads
new file mode 100644
index 0000000..65e8e24
--- /dev/null
+++ b/gcc/ada/libgnat/a-stobfi.ads
@@ -0,0 +1,66 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT RUN-TIME COMPONENTS --
+-- --
+-- ADA.STRINGS.TEXT_OUTPUT.BASIC_FILES --
+-- --
+-- S p e c --
+-- --
+-- Copyright (C) 2020, Free Software Foundation, Inc. --
+-- --
+-- GNAT is free software; you can redistribute it and/or modify it under --
+-- terms of the GNU General Public License as published by the Free Soft- --
+-- ware Foundation; either version 3, or (at your option) any later ver- --
+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
+-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
+-- or FITNESS FOR A PARTICULAR PURPOSE. --
+-- --
+-- As a special exception under Section 7 of GPL version 3, you are granted --
+-- additional permissions described in the GCC Runtime Library Exception, --
+-- version 3.1, as published by the Free Software Foundation. --
+-- --
+-- You should have received a copy of the GNU General Public License and --
+-- a copy of the GCC Runtime Library Exception along with this program; --
+-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
+-- <http://www.gnu.org/licenses/>. --
+-- --
+-- GNAT was originally developed by the GNAT team at New York University. --
+-- Extensive contributions were provided by Ada Core Technologies Inc. --
+-- --
+------------------------------------------------------------------------------
+
+private with GNAT.OS_Lib;
+package Ada.Strings.Text_Output.Basic_Files is
+ -- Normally, you should use Ada.Strings.Text_Output.Files, which
+ -- automatically Closes files via finalization. If you don't want to use
+ -- finalization, use this package instead. You must then Close the file by
+ -- hand. The semantics is otherwise the same as Files.
+
+ function Standard_Output return Sink_Access;
+ function Standard_Error return Sink_Access;
+
+ type File (<>) is new Sink with private;
+
+ function Create_File
+ (Name : String;
+ Indent_Amount : Natural := Default_Indent_Amount;
+ Chunk_Length : Positive := Default_Chunk_Length) return File;
+ function Create_New_File
+ (Name : String;
+ Indent_Amount : Natural := Default_Indent_Amount;
+ Chunk_Length : Positive := Default_Chunk_Length) return File;
+
+ procedure Close (S : in out File'Class);
+
+private
+
+ package OS renames GNAT.OS_Lib;
+
+ type File is new Sink with record
+ FD : OS.File_Descriptor := OS.Invalid_FD;
+ end record;
+
+ overriding procedure Full_Method (S : in out File);
+ overriding procedure Flush_Method (S : in out File);
+
+end Ada.Strings.Text_Output.Basic_Files;
diff --git a/gcc/ada/libgnat/a-storio.adb b/gcc/ada/libgnat/a-storio.adb
index 441b6ec..5c68082 100644
--- a/gcc/ada/libgnat/a-storio.adb
+++ b/gcc/ada/libgnat/a-storio.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-stoubu.adb b/gcc/ada/libgnat/a-stoubu.adb
new file mode 100644
index 0000000..9fb6c5a
--- /dev/null
+++ b/gcc/ada/libgnat/a-stoubu.adb
@@ -0,0 +1,138 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT RUN-TIME COMPONENTS --
+-- --
+-- ADA.STRINGS.TEXT_OUTPUT.BUFFERS --
+-- --
+-- B o d y --
+-- --
+-- Copyright (C) 2020, Free Software Foundation, Inc. --
+-- --
+-- GNAT is free software; you can redistribute it and/or modify it under --
+-- terms of the GNU General Public License as published by the Free Soft- --
+-- ware Foundation; either version 3, or (at your option) any later ver- --
+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
+-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
+-- or FITNESS FOR A PARTICULAR PURPOSE. --
+-- --
+-- As a special exception under Section 7 of GPL version 3, you are granted --
+-- additional permissions described in the GCC Runtime Library Exception, --
+-- version 3.1, as published by the Free Software Foundation. --
+-- --
+-- You should have received a copy of the GNU General Public License and --
+-- a copy of the GCC Runtime Library Exception along with this program; --
+-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
+-- <http://www.gnu.org/licenses/>. --
+-- --
+-- GNAT was originally developed by the GNAT team at New York University. --
+-- Extensive contributions were provided by Ada Core Technologies Inc. --
+-- --
+------------------------------------------------------------------------------
+
+with Unchecked_Deallocation;
+with Ada.Strings.UTF_Encoding.Strings;
+with Ada.Strings.UTF_Encoding.Wide_Strings;
+with Ada.Strings.UTF_Encoding.Wide_Wide_Strings;
+package body Ada.Strings.Text_Output.Buffers is
+
+ function New_Buffer
+ (Indent_Amount : Natural := Default_Indent_Amount;
+ Chunk_Length : Positive := Default_Chunk_Length) return Buffer
+ is
+ begin
+ return Result : Buffer (Chunk_Length) do
+ Result.Indent_Amount := Indent_Amount;
+ Result.Cur_Chunk := Result.Initial_Chunk'Unchecked_Access;
+ end return;
+ end New_Buffer;
+
+ procedure Destroy (S : in out Buffer) is
+ procedure Free is new Unchecked_Deallocation (Chunk, Chunk_Access);
+ Cur : Chunk_Access := S.Initial_Chunk.Next;
+ begin
+ while Cur /= null loop
+ declare
+ Temp : constant Chunk_Access := Cur.Next;
+ begin
+ Free (Cur);
+ Cur := Temp;
+ end;
+ end loop;
+
+ S.Cur_Chunk := null;
+ end Destroy;
+
+ overriding procedure Full_Method (S : in out Buffer) is
+ begin
+ pragma Assert (S.Cur_Chunk.Next = null);
+ pragma Assert (S.Last = S.Cur_Chunk.Chars'Length);
+ S.Cur_Chunk.Next := new Chunk (S.Chunk_Length);
+ S.Cur_Chunk := S.Cur_Chunk.Next;
+ S.Num_Extra_Chunks := @ + 1;
+ S.Last := 0;
+ end Full_Method;
+
+ function UTF_8_Length (S : Buffer'Class) return Natural is
+ begin
+ return S.Num_Extra_Chunks * S.Chunk_Length + S.Last;
+ end UTF_8_Length;
+
+ procedure Get_UTF_8
+ (S : Buffer'Class; Result : out UTF_8_Lines)
+ is
+ Cur : access constant Chunk := S.Initial_Chunk'Access;
+ First : Positive := 1;
+ begin
+ loop
+ if Cur.Next = null then
+ pragma Assert (Result'Last = First + S.Last - 1);
+ Result (First .. Result'Last) := Cur.Chars (1 .. S.Last);
+ exit;
+ end if;
+
+ pragma Assert (S.Chunk_Length = Cur.Chars'Length);
+ Result (First .. First + S.Chunk_Length - 1) := Cur.Chars;
+ First := First + S.Chunk_Length;
+ Cur := Cur.Next;
+ end loop;
+ end Get_UTF_8;
+
+ function Get_UTF_8 (S : Buffer'Class) return UTF_8_Lines is
+ begin
+ return Result : String (1 .. UTF_8_Length (S)) do
+ Get_UTF_8 (S, Result);
+ end return;
+ end Get_UTF_8;
+
+ function Get (S : Buffer'Class) return String is
+ begin
+ -- If all characters are 7 bits, we don't need to decode;
+ -- this is an optimization.
+
+ -- Otherwise, if all are 8 bits, we need to decode to get Latin-1.
+ -- Otherwise, the result is implementation defined, so we return a
+ -- String encoded as UTF-8. (Note that the AI says "if any character
+ -- in the sequence is not defined in Character, the result is
+ -- implementation-defined", so we are not obliged to decode ANY
+ -- Latin-1 characters if ANY character is bigger than 8 bits.
+
+ if S.All_7_Bits then
+ return Get_UTF_8 (S);
+ elsif S.All_8_Bits then
+ return UTF_Encoding.Strings.Decode (Get_UTF_8 (S));
+ else
+ return Get_UTF_8 (S);
+ end if;
+ end Get;
+
+ function Wide_Get (S : Buffer'Class) return Wide_String is
+ begin
+ return UTF_Encoding.Wide_Strings.Decode (Get_UTF_8 (S));
+ end Wide_Get;
+
+ function Wide_Wide_Get (S : Buffer'Class) return Wide_Wide_String is
+ begin
+ return UTF_Encoding.Wide_Wide_Strings.Decode (Get_UTF_8 (S));
+ end Wide_Wide_Get;
+
+end Ada.Strings.Text_Output.Buffers;
diff --git a/gcc/ada/libgnat/a-stoubu.ads b/gcc/ada/libgnat/a-stoubu.ads
new file mode 100644
index 0000000..faec897
--- /dev/null
+++ b/gcc/ada/libgnat/a-stoubu.ads
@@ -0,0 +1,73 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT RUN-TIME COMPONENTS --
+-- --
+-- ADA.STRINGS.TEXT_OUTPUT.BUFFERS --
+-- --
+-- S p e c --
+-- --
+-- Copyright (C) 2020, Free Software Foundation, Inc. --
+-- --
+-- GNAT is free software; you can redistribute it and/or modify it under --
+-- terms of the GNU General Public License as published by the Free Soft- --
+-- ware Foundation; either version 3, or (at your option) any later ver- --
+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
+-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
+-- or FITNESS FOR A PARTICULAR PURPOSE. --
+-- --
+-- As a special exception under Section 7 of GPL version 3, you are granted --
+-- additional permissions described in the GCC Runtime Library Exception, --
+-- version 3.1, as published by the Free Software Foundation. --
+-- --
+-- You should have received a copy of the GNU General Public License and --
+-- a copy of the GCC Runtime Library Exception along with this program; --
+-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
+-- <http://www.gnu.org/licenses/>. --
+-- --
+-- GNAT was originally developed by the GNAT team at New York University. --
+-- Extensive contributions were provided by Ada Core Technologies Inc. --
+-- --
+------------------------------------------------------------------------------
+
+package Ada.Strings.Text_Output.Buffers is
+
+ type Buffer (<>) is new Sink with private;
+
+ function New_Buffer
+ (Indent_Amount : Natural := Default_Indent_Amount;
+ Chunk_Length : Positive := Default_Chunk_Length) return Buffer;
+
+ procedure Destroy (S : in out Buffer);
+ -- Reclaim any heap-allocated data, and render the Buffer unusable.
+ -- It would make sense to do this via finalization, but we wish to
+ -- avoid controlled types in the generated code for 'Image.
+
+ function Get_UTF_8 (S : Buffer'Class) return UTF_8_Lines;
+ -- Get the characters in S, encoded as UTF-8.
+
+ function UTF_8_Length (S : Buffer'Class) return Natural;
+ procedure Get_UTF_8
+ (S : Buffer'Class; Result : out UTF_8_Lines) with
+ Pre => Result'First = 1 and Result'Last = UTF_8_Length (S);
+ -- This is a procedure version of the Get_UTF_8 function, for
+ -- efficiency. The Result String must be the exact right length.
+
+ function Get (S : Buffer'Class) return String;
+ function Wide_Get (S : Buffer'Class) return Wide_String;
+ function Wide_Wide_Get (S : Buffer'Class) return Wide_Wide_String;
+ -- Get the characters in S, decoded as [[Wide_]Wide_]String.
+ -- There is no need for procedure versions of these, because
+ -- they are intended primarily to implement the [[Wide_]Wide_]Image
+ -- attribute, which is already a function.
+
+private
+ type Chunk_Count is new Natural;
+ type Buffer is new Sink with record
+ Num_Extra_Chunks : Natural := 0;
+ -- Number of chunks in the linked list, not including Initial_Chunk.
+ end record;
+
+ overriding procedure Full_Method (S : in out Buffer);
+ overriding procedure Flush_Method (S : in out Buffer) is null;
+
+end Ada.Strings.Text_Output.Buffers;
diff --git a/gcc/ada/libgnat/a-stoufi.adb b/gcc/ada/libgnat/a-stoufi.adb
new file mode 100644
index 0000000..34086bb
--- /dev/null
+++ b/gcc/ada/libgnat/a-stoufi.adb
@@ -0,0 +1,123 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT RUN-TIME COMPONENTS --
+-- --
+-- ADA.STRINGS.TEXT_OUTPUT.FILES --
+-- --
+-- B o d y --
+-- --
+-- Copyright (C) 2020, Free Software Foundation, Inc. --
+-- --
+-- GNAT is free software; you can redistribute it and/or modify it under --
+-- terms of the GNU General Public License as published by the Free Soft- --
+-- ware Foundation; either version 3, or (at your option) any later ver- --
+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
+-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
+-- or FITNESS FOR A PARTICULAR PURPOSE. --
+-- --
+-- As a special exception under Section 7 of GPL version 3, you are granted --
+-- additional permissions described in the GCC Runtime Library Exception, --
+-- version 3.1, as published by the Free Software Foundation. --
+-- --
+-- You should have received a copy of the GNU General Public License and --
+-- a copy of the GCC Runtime Library Exception along with this program; --
+-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
+-- <http://www.gnu.org/licenses/>. --
+-- --
+-- GNAT was originally developed by the GNAT team at New York University. --
+-- Extensive contributions were provided by Ada Core Technologies Inc. --
+-- --
+------------------------------------------------------------------------------
+
+with Ada.Strings.Text_Output.Utils; use Ada.Strings.Text_Output.Utils;
+package body Ada.Strings.Text_Output.Files is
+ use type OS.File_Descriptor;
+
+ function Create_From_FD
+ (FD : OS.File_Descriptor;
+ Indent_Amount : Natural;
+ Chunk_Length : Positive) return File;
+ -- Create a file from an OS file descriptor
+
+ function Create_From_FD
+ (FD : OS.File_Descriptor;
+ Indent_Amount : Natural;
+ Chunk_Length : Positive) return File
+ is
+ begin
+ if FD = OS.Invalid_FD then
+ raise Program_Error with OS.Errno_Message;
+ end if;
+ return Result : File (Chunk_Length) do
+ Result.Indent_Amount := Indent_Amount;
+ Result.Cur_Chunk := Result.Initial_Chunk'Unchecked_Access;
+ Result.FD := FD;
+ end return;
+ end Create_From_FD;
+
+ function Create_File
+ (Name : String;
+ Indent_Amount : Natural := Default_Indent_Amount;
+ Chunk_Length : Positive := Default_Chunk_Length) return File
+ is
+ begin
+ return Create_From_FD
+ (OS.Create_File (Name, Fmode => OS.Text),
+ Indent_Amount, Chunk_Length);
+ end Create_File;
+
+ function Create_New_File
+ (Name : String;
+ Indent_Amount : Natural := Default_Indent_Amount;
+ Chunk_Length : Positive := Default_Chunk_Length) return File
+ is
+ begin
+ return Create_From_FD
+ (OS.Create_New_File (Name, Fmode => OS.Text),
+ Indent_Amount, Chunk_Length);
+ end Create_New_File;
+
+ overriding procedure Finalize (Ref : in out Self_Ref) is
+ begin
+ Close (Ref.Self.all);
+ end Finalize;
+
+ procedure Close (S : in out File'Class) is
+ Status : Boolean;
+ begin
+ Flush (S);
+
+ if S.FD not in OS.Standout | OS.Standerr then -- Don't close these
+ OS.Close (S.FD, Status);
+ if not Status then
+ raise Program_Error with OS.Errno_Message;
+ end if;
+ end if;
+ end Close;
+
+ overriding procedure Full_Method (S : in out File) renames Flush_Method;
+
+ overriding procedure Flush_Method (S : in out File) is
+ pragma Assert (S.Cur_Chunk = S.Initial_Chunk'Unchecked_Access);
+ Res : constant Integer :=
+ OS.Write (S.FD, S.Cur_Chunk.Chars'Address, S.Last);
+ begin
+ if Res /= S.Last then
+ raise Program_Error with OS.Errno_Message;
+ end if;
+ S.Last := 0;
+ end Flush_Method;
+
+ The_Stdout : aliased File :=
+ Create_From_FD (OS.Standout,
+ Indent_Amount => Default_Indent_Amount,
+ Chunk_Length => Default_Chunk_Length);
+ The_Stderr : aliased File :=
+ Create_From_FD (OS.Standerr,
+ Indent_Amount => Default_Indent_Amount,
+ Chunk_Length => Default_Chunk_Length);
+
+ function Standard_Output return Sink_Access is (The_Stdout'Access);
+ function Standard_Error return Sink_Access is (The_Stderr'Access);
+
+end Ada.Strings.Text_Output.Files;
diff --git a/gcc/ada/libgnat/a-stoufi.ads b/gcc/ada/libgnat/a-stoufi.ads
new file mode 100644
index 0000000..0bff45a
--- /dev/null
+++ b/gcc/ada/libgnat/a-stoufi.ads
@@ -0,0 +1,72 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT RUN-TIME COMPONENTS --
+-- --
+-- ADA.STRINGS.TEXT_OUTPUT.FILES --
+-- --
+-- S p e c --
+-- --
+-- Copyright (C) 2020, Free Software Foundation, Inc. --
+-- --
+-- GNAT is free software; you can redistribute it and/or modify it under --
+-- terms of the GNU General Public License as published by the Free Soft- --
+-- ware Foundation; either version 3, or (at your option) any later ver- --
+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
+-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
+-- or FITNESS FOR A PARTICULAR PURPOSE. --
+-- --
+-- As a special exception under Section 7 of GPL version 3, you are granted --
+-- additional permissions described in the GCC Runtime Library Exception, --
+-- version 3.1, as published by the Free Software Foundation. --
+-- --
+-- You should have received a copy of the GNU General Public License and --
+-- a copy of the GCC Runtime Library Exception along with this program; --
+-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
+-- <http://www.gnu.org/licenses/>. --
+-- --
+-- GNAT was originally developed by the GNAT team at New York University. --
+-- Extensive contributions were provided by Ada Core Technologies Inc. --
+-- --
+------------------------------------------------------------------------------
+
+private with GNAT.OS_Lib;
+private with Ada.Finalization;
+package Ada.Strings.Text_Output.Files is
+ -- This package supports a Sink type that sends output to a file. The file
+ -- is automatically closed when finalized.
+
+ function Standard_Output return Sink_Access;
+ function Standard_Error return Sink_Access;
+
+ type File (<>) is new Sink with private;
+
+ function Create_File
+ (Name : String;
+ Indent_Amount : Natural := Default_Indent_Amount;
+ Chunk_Length : Positive := Default_Chunk_Length) return File;
+ function Create_New_File
+ (Name : String;
+ Indent_Amount : Natural := Default_Indent_Amount;
+ Chunk_Length : Positive := Default_Chunk_Length) return File;
+ -- Create a file. Create_New_File raises an exception if the file already
+ -- exists; Create_File overwrites.
+
+ procedure Close (S : in out File'Class);
+
+private
+
+ package OS renames GNAT.OS_Lib;
+
+ type Self_Ref (Self : access File) is new Finalization.Limited_Controlled
+ with null record;
+ overriding procedure Finalize (Ref : in out Self_Ref);
+
+ type File is new Sink with record
+ FD : OS.File_Descriptor := OS.Invalid_FD;
+ Ref : Self_Ref (File'Access);
+ end record;
+
+ overriding procedure Full_Method (S : in out File);
+ overriding procedure Flush_Method (S : in out File);
+
+end Ada.Strings.Text_Output.Files;
diff --git a/gcc/ada/libgnat/a-stoufo.adb b/gcc/ada/libgnat/a-stoufo.adb
new file mode 100644
index 0000000..f80b30a
--- /dev/null
+++ b/gcc/ada/libgnat/a-stoufo.adb
@@ -0,0 +1,155 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT RUN-TIME COMPONENTS --
+-- --
+-- ADA.STRINGS.TEXT_OUTPUT.FORMATTING --
+-- --
+-- B o d y --
+-- --
+-- Copyright (C) 2020, Free Software Foundation, Inc. --
+-- --
+-- GNAT is free software; you can redistribute it and/or modify it under --
+-- terms of the GNU General Public License as published by the Free Soft- --
+-- ware Foundation; either version 3, or (at your option) any later ver- --
+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
+-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
+-- or FITNESS FOR A PARTICULAR PURPOSE. --
+-- --
+-- As a special exception under Section 7 of GPL version 3, you are granted --
+-- additional permissions described in the GCC Runtime Library Exception, --
+-- version 3.1, as published by the Free Software Foundation. --
+-- --
+-- You should have received a copy of the GNU General Public License and --
+-- a copy of the GCC Runtime Library Exception along with this program; --
+-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
+-- <http://www.gnu.org/licenses/>. --
+-- --
+-- GNAT was originally developed by the GNAT team at New York University. --
+-- Extensive contributions were provided by Ada Core Technologies Inc. --
+-- --
+------------------------------------------------------------------------------
+
+with Ada.Strings.Text_Output.Files;
+with Ada.Strings.Text_Output.Buffers; use Ada.Strings.Text_Output.Buffers;
+with Ada.Strings.Text_Output.Utils; use Ada.Strings.Text_Output.Utils;
+package body Ada.Strings.Text_Output.Formatting is
+
+ procedure Put
+ (S : in out Sink'Class; T : Template;
+ X1, X2, X3, X4, X5, X6, X7, X8, X9 : UTF_8_Lines := "")
+ is
+ J : Positive := T'First;
+ Used : array (1 .. 9) of Boolean := (others => False);
+ begin
+ while J <= T'Last loop
+ if T (J) = '\' then
+ J := J + 1;
+ case T (J) is
+ when 'n' =>
+ New_Line (S);
+ when '\' =>
+ Put_7bit (S, '\');
+ when 'i' =>
+ Indent (S);
+ when 'o' =>
+ Outdent (S);
+ when 'I' =>
+ Indent (S, 1);
+ when 'O' =>
+ Outdent (S, 1);
+
+ when '1' =>
+ Used (1) := True;
+ Put_UTF_8_Lines (S, X1);
+ when '2' =>
+ Used (2) := True;
+ Put_UTF_8_Lines (S, X2);
+ when '3' =>
+ Used (3) := True;
+ Put_UTF_8_Lines (S, X3);
+ when '4' =>
+ Used (4) := True;
+ Put_UTF_8_Lines (S, X4);
+ when '5' =>
+ Used (5) := True;
+ Put_UTF_8_Lines (S, X5);
+ when '6' =>
+ Used (6) := True;
+ Put_UTF_8_Lines (S, X6);
+ when '7' =>
+ Used (7) := True;
+ Put_UTF_8_Lines (S, X7);
+ when '8' =>
+ Used (8) := True;
+ Put_UTF_8_Lines (S, X8);
+ when '9' =>
+ Used (9) := True;
+ Put_UTF_8_Lines (S, X9);
+
+ when others =>
+ raise Program_Error;
+ end case;
+ else
+ Put_7bit (S, T (J));
+ end if;
+
+ J := J + 1;
+ end loop;
+
+ if not Used (1) then
+ pragma Assert (X1 = "");
+ end if;
+ if not Used (2) then
+ pragma Assert (X2 = "");
+ end if;
+ if not Used (3) then
+ pragma Assert (X3 = "");
+ end if;
+ if not Used (4) then
+ pragma Assert (X4 = "");
+ end if;
+ if not Used (5) then
+ pragma Assert (X5 = "");
+ end if;
+ if not Used (6) then
+ pragma Assert (X6 = "");
+ end if;
+ if not Used (7) then
+ pragma Assert (X7 = "");
+ end if;
+ if not Used (8) then
+ pragma Assert (X8 = "");
+ end if;
+ if not Used (9) then
+ pragma Assert (X9 = "");
+ end if;
+
+ Flush (S);
+ end Put;
+
+ procedure Put
+ (T : Template;
+ X1, X2, X3, X4, X5, X6, X7, X8, X9 : UTF_8_Lines := "") is
+ begin
+ Put (Files.Standard_Output.all, T, X1, X2, X3, X4, X5, X6, X7, X8, X9);
+ end Put;
+
+ procedure Err
+ (T : Template;
+ X1, X2, X3, X4, X5, X6, X7, X8, X9 : UTF_8_Lines := "") is
+ begin
+ Put (Files.Standard_Error.all, T, X1, X2, X3, X4, X5, X6, X7, X8, X9);
+ end Err;
+
+ function Format
+ (T : Template;
+ X1, X2, X3, X4, X5, X6, X7, X8, X9 : UTF_8_Lines := "")
+ return UTF_8_Lines
+ is
+ Buf : Buffer := New_Buffer;
+ begin
+ Put (Buf, T, X1, X2, X3, X4, X5, X6, X7, X8, X9);
+ return Get_UTF_8 (Buf);
+ end Format;
+
+end Ada.Strings.Text_Output.Formatting;
diff --git a/gcc/ada/libgnat/a-stoufo.ads b/gcc/ada/libgnat/a-stoufo.ads
new file mode 100644
index 0000000..3b44bd8
--- /dev/null
+++ b/gcc/ada/libgnat/a-stoufo.ads
@@ -0,0 +1,72 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT RUN-TIME COMPONENTS --
+-- --
+-- ADA.STRINGS.TEXT_OUTPUT.FORMATTING --
+-- --
+-- S p e c --
+-- --
+-- Copyright (C) 2020, Free Software Foundation, Inc. --
+-- --
+-- GNAT is free software; you can redistribute it and/or modify it under --
+-- terms of the GNU General Public License as published by the Free Soft- --
+-- ware Foundation; either version 3, or (at your option) any later ver- --
+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
+-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
+-- or FITNESS FOR A PARTICULAR PURPOSE. --
+-- --
+-- As a special exception under Section 7 of GPL version 3, you are granted --
+-- additional permissions described in the GCC Runtime Library Exception, --
+-- version 3.1, as published by the Free Software Foundation. --
+-- --
+-- You should have received a copy of the GNU General Public License and --
+-- a copy of the GCC Runtime Library Exception along with this program; --
+-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
+-- <http://www.gnu.org/licenses/>. --
+-- --
+-- GNAT was originally developed by the GNAT team at New York University. --
+-- Extensive contributions were provided by Ada Core Technologies Inc. --
+-- --
+------------------------------------------------------------------------------
+
+package Ada.Strings.Text_Output.Formatting is
+
+ -- Template-based output, based loosely on C's printf family. Unlike
+ -- printf, it is type safe. We don't support myriad formatting options; the
+ -- caller is expected to call 'Image, or other functions that might have
+ -- various formatting capabilities.
+ --
+ -- Each of the following calls Flush
+
+ type Template is new UTF_8;
+ procedure Put
+ (S : in out Sink'Class; T : Template;
+ X1, X2, X3, X4, X5, X6, X7, X8, X9 : UTF_8_Lines := "");
+ -- Prints the template as is, except for the following escape sequences:
+ -- "\n" is end of line.
+ -- "\i" indents by the default amount, and "\o" outdents.
+ -- "\I" indents by one space, and "\O" outdents.
+ -- "\1" is replaced with X1, and similarly for 2, 3, ....
+ -- "\\" is "\".
+
+ -- Note that the template is not type String, to avoid this sort of thing:
+ --
+ -- https://xkcd.com/327/
+
+ procedure Put
+ (T : Template;
+ X1, X2, X3, X4, X5, X6, X7, X8, X9 : UTF_8_Lines := "");
+ -- Sends to standard output
+
+ procedure Err
+ (T : Template;
+ X1, X2, X3, X4, X5, X6, X7, X8, X9 : UTF_8_Lines := "");
+ -- Sends to standard error
+
+ function Format
+ (T : Template;
+ X1, X2, X3, X4, X5, X6, X7, X8, X9 : UTF_8_Lines := "")
+ return UTF_8_Lines;
+ -- Returns a UTF-8-encoded String
+
+end Ada.Strings.Text_Output.Formatting;
diff --git a/gcc/ada/libgnat/a-stouut.adb b/gcc/ada/libgnat/a-stouut.adb
new file mode 100644
index 0000000..b5a8f97
--- /dev/null
+++ b/gcc/ada/libgnat/a-stouut.adb
@@ -0,0 +1,271 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT RUN-TIME COMPONENTS --
+-- --
+-- ADA.STRINGS.TEXT_OUTPUT.UTILS --
+-- --
+-- B o d y --
+-- --
+-- Copyright (C) 2020, Free Software Foundation, Inc. --
+-- --
+-- GNAT is free software; you can redistribute it and/or modify it under --
+-- terms of the GNU General Public License as published by the Free Soft- --
+-- ware Foundation; either version 3, or (at your option) any later ver- --
+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
+-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
+-- or FITNESS FOR A PARTICULAR PURPOSE. --
+-- --
+-- As a special exception under Section 7 of GPL version 3, you are granted --
+-- additional permissions described in the GCC Runtime Library Exception, --
+-- version 3.1, as published by the Free Software Foundation. --
+-- --
+-- You should have received a copy of the GNU General Public License and --
+-- a copy of the GCC Runtime Library Exception along with this program; --
+-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
+-- <http://www.gnu.org/licenses/>. --
+-- --
+-- GNAT was originally developed by the GNAT team at New York University. --
+-- Extensive contributions were provided by Ada Core Technologies Inc. --
+-- --
+------------------------------------------------------------------------------
+
+with Ada.Strings.UTF_Encoding.Wide_Wide_Strings;
+
+package body Ada.Strings.Text_Output.Utils is
+
+ procedure Put_Octet (S : in out Sink'Class; Item : Character) with Inline;
+ -- Send a single octet to the current Chunk
+
+ procedure Adjust_Column (S : in out Sink'Class) with Inline;
+ -- Adjust the column for a non-NL character.
+
+ procedure Put_UTF_8_Outline (S : in out Sink'Class; Item : UTF_8);
+ -- Out-of-line portion of Put_UTF_8. This exists solely to make Put_UTF_8
+ -- small enough to reasonably inline it.
+
+ procedure Full (S : in out Sink'Class) is
+ begin
+ pragma Assert (S.Last = S.Chunk_Length);
+ Full_Method (S);
+ pragma Assert (S.Last = 0);
+ end Full;
+
+ procedure Flush (S : in out Sink'Class) is
+ begin
+ Flush_Method (S);
+ end Flush;
+
+ procedure Put_Octet (S : in out Sink'Class; Item : Character) is
+ begin
+ S.Last := @ + 1;
+ S.Cur_Chunk.Chars (S.Last) := Item;
+ pragma Assert (S.Chunk_Length = S.Cur_Chunk.Chars'Length);
+ if S.Last = S.Chunk_Length then
+ Full (S);
+ end if;
+ end Put_Octet;
+
+ procedure Adjust_Column (S : in out Sink'Class) is
+ begin
+ -- If we're in the first column, indent. This is handled here, rather
+ -- than when we see NL, because we don't want spaces in a blank line.
+ -- The character we're about to put is not NL; NL is handled in
+ -- New_Line. So after indenting, we simply increment the Column.
+
+ if S.Column = 1 then
+ Tab_To_Column (S, S.Indentation + 1);
+ end if;
+ S.Column := @ + 1;
+ end Adjust_Column;
+
+ procedure Put_7bit (S : in out Sink'Class; Item : Character_7) is
+ begin
+ Adjust_Column (S);
+ Put_Octet (S, Item);
+ end Put_7bit;
+
+ procedure Put_7bit_NL (S : in out Sink'Class; Item : Character_7) is
+ begin
+ if Item = NL then
+ New_Line (S);
+ else
+ Put_7bit (S, Item);
+ end if;
+ end Put_7bit_NL;
+
+ procedure Put_Character (S : in out Sink'Class; Item : Character) is
+ begin
+ if Character'Pos (Item) < 2**7 then
+ Put_7bit_NL (S, Item);
+ else
+ Put_Wide_Wide_Character (S, To_Wide_Wide (Item));
+ end if;
+ end Put_Character;
+
+ procedure Put_Wide_Character
+ (S : in out Sink'Class; Item : Wide_Character) is
+ begin
+ if Wide_Character'Pos (Item) < 2**7 then
+ Put_7bit_NL (S, From_Wide (Item));
+ else
+ Put_Wide_Wide_Character (S, To_Wide_Wide (Item));
+ end if;
+ end Put_Wide_Character;
+
+ procedure Put_Wide_Wide_Character
+ (S : in out Sink'Class; Item : Wide_Wide_Character) is
+ begin
+ if Wide_Wide_Character'Pos (Item) < 2**7 then
+ Put_7bit_NL (S, From_Wide_Wide (Item));
+ else
+ S.All_7_Bits := False;
+ if Wide_Wide_Character'Pos (Item) >= 2**8 then
+ S.All_8_Bits := False;
+ end if;
+ declare
+ Temp : constant UTF_8_Lines :=
+ UTF_Encoding.Wide_Wide_Strings.Encode ((1 => Item));
+ begin
+ for X of Temp loop
+ pragma Assert (X /= NL);
+ Adjust_Column (S);
+ Put_Octet (S, X);
+ end loop;
+ end;
+ end if;
+ end Put_Wide_Wide_Character;
+
+ procedure Put_UTF_8_Outline (S : in out Sink'Class; Item : UTF_8) is
+ begin
+ if S.Last + Item'Length = S.Chunk_Length then
+ -- Item fits exactly in current chunk
+
+ S.Cur_Chunk.Chars (S.Last + 1 .. S.Last + Item'Length) := Item;
+ S.Last := S.Last + Item'Length;
+ Full (S);
+ -- ???Seems like maybe we shouldn't call Full until we have MORE
+ -- characters. But then we can't pass Chunk_Length => 1 to
+ -- Create_File to get unbuffered output.
+ else
+ -- We get here only if Item doesn't fit in the current chunk, which
+ -- should be fairly rare. We split Item into Left and Right, where
+ -- Left exactly fills the current chunk, and recurse on Left and
+ -- Right. Right will fit into the next chunk unless it's very long,
+ -- so another level of recursion will be extremely rare.
+
+ declare
+ Left_Length : constant Natural := S.Chunk_Length - S.Last;
+ Right_First : constant Natural := Item'First + Left_Length;
+ Left : UTF_8 renames Item (Item'First .. Right_First - 1);
+ Right : UTF_8 renames Item (Right_First .. Item'Last);
+ pragma Assert (Left & Right = Item);
+ begin
+ Put_UTF_8 (S, Left); -- This will call Full.
+ Put_UTF_8 (S, Right); -- This might call Full, but probably not.
+ end;
+ end if;
+ end Put_UTF_8_Outline;
+
+ procedure Put_UTF_8 (S : in out Sink'Class; Item : UTF_8) is
+ begin
+ Adjust_Column (S);
+
+ if S.Last + Item'Length < S.Chunk_Length then
+ -- Item fits in current chunk
+
+ S.Cur_Chunk.Chars (S.Last + 1 .. S.Last + Item'Length) := Item;
+ S.Last := S.Last + Item'Length;
+ else
+ Put_UTF_8_Outline (S, Item);
+ end if;
+ end Put_UTF_8;
+
+ procedure Put_UTF_8_Lines (S : in out Sink'Class; Item : UTF_8_Lines) is
+ Line_Start, Index : Integer := Item'First;
+ -- Needs to be Integer, because Item'First might be negative for empty
+ -- Items.
+ begin
+ while Index <= Item'Last loop
+ if Item (Index) = NL then
+ if Index > Line_Start then
+ Put_UTF_8 (S, Item (Line_Start .. Index - 1));
+ end if;
+ New_Line (S);
+ S.Column := 1;
+ Line_Start := Index + 1;
+ end if;
+
+ Index := @ + 1;
+ end loop;
+
+ if Index > Line_Start then
+ Put_UTF_8 (S, Item (Line_Start .. Index - 1));
+ end if;
+ end Put_UTF_8_Lines;
+
+ procedure Put_String (S : in out Sink'Class; Item : String) is
+ begin
+ for X of Item loop
+ Put_Character (S, X);
+ end loop;
+ end Put_String;
+
+ procedure Put_Wide_String (S : in out Sink'Class; Item : Wide_String) is
+ begin
+ for X of Item loop
+ Put_Wide_Character (S, X);
+ end loop;
+ end Put_Wide_String;
+
+ procedure Put_Wide_Wide_String
+ (S : in out Sink'Class; Item : Wide_Wide_String) is
+ begin
+ for X of Item loop
+ Put_Wide_Wide_Character (S, X);
+ end loop;
+ end Put_Wide_Wide_String;
+
+ procedure New_Line (S : in out Sink'Class) is
+ begin
+ S.Column := 1;
+ Put_Octet (S, NL);
+ end New_Line;
+
+ function Column (S : Sink'Class) return Positive is (S.Column);
+
+ procedure Tab_To_Column (S : in out Sink'Class; Column : Positive) is
+ begin
+ if S.Column < Column then
+ for X in 1 .. Column - S.Column loop
+ Put_Octet (S, ' ');
+ end loop;
+ S.Column := Column;
+ end if;
+ end Tab_To_Column;
+
+ procedure Set_Indentation (S : in out Sink'Class; Amount : Natural) is
+ begin
+ S.Indentation := Amount;
+ end Set_Indentation;
+
+ function Indentation (S : Sink'Class) return Natural is (S.Indentation);
+
+ procedure Indent
+ (S : in out Sink'Class; Amount : Optional_Indentation := Default)
+ is
+ By : constant Natural :=
+ (if Amount = Default then S.Indent_Amount else Amount);
+ begin
+ Set_Indentation (S, Indentation (S) + By);
+ end Indent;
+
+ procedure Outdent
+ (S : in out Sink'Class; Amount : Optional_Indentation := Default)
+ is
+ By : constant Natural :=
+ (if Amount = Default then S.Indent_Amount else Amount);
+ begin
+ Set_Indentation (S, Indentation (S) - By);
+ end Outdent;
+
+end Ada.Strings.Text_Output.Utils;
diff --git a/gcc/ada/libgnat/a-stouut.ads b/gcc/ada/libgnat/a-stouut.ads
new file mode 100644
index 0000000..28d7eca
--- /dev/null
+++ b/gcc/ada/libgnat/a-stouut.ads
@@ -0,0 +1,106 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT RUN-TIME COMPONENTS --
+-- --
+-- ADA.STRINGS.TEXT_OUTPUT.UTILS --
+-- --
+-- S p e c --
+-- --
+-- Copyright (C) 2020, Free Software Foundation, Inc. --
+-- --
+-- GNAT is free software; you can redistribute it and/or modify it under --
+-- terms of the GNU General Public License as published by the Free Soft- --
+-- ware Foundation; either version 3, or (at your option) any later ver- --
+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
+-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
+-- or FITNESS FOR A PARTICULAR PURPOSE. --
+-- --
+-- As a special exception under Section 7 of GPL version 3, you are granted --
+-- additional permissions described in the GCC Runtime Library Exception, --
+-- version 3.1, as published by the Free Software Foundation. --
+-- --
+-- You should have received a copy of the GNU General Public License and --
+-- a copy of the GCC Runtime Library Exception along with this program; --
+-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
+-- <http://www.gnu.org/licenses/>. --
+-- --
+-- GNAT was originally developed by the GNAT team at New York University. --
+-- Extensive contributions were provided by Ada Core Technologies Inc. --
+-- --
+------------------------------------------------------------------------------
+
+package Ada.Strings.Text_Output.Utils with Preelaborate is
+
+ -- This package provides utility functions on Sink'Class. These are
+ -- intended for use by Put_Image attributes, both the default versions
+ -- generated by the compiler, and user-defined ones.
+
+ procedure Full (S : in out Sink'Class) with Inline;
+ -- Must be called when the current chunk is full. Dispatches to
+ -- Full_Method.
+
+ procedure Flush (S : in out Sink'Class) with Inline;
+ -- Dispatches to Flush_Method
+
+ -- Full_Method and Flush_Method should be called only via Full and Flush
+
+ procedure Put_Character (S : in out Sink'Class; Item : Character);
+ procedure Put_Wide_Character (S : in out Sink'Class; Item : Wide_Character);
+ procedure Put_Wide_Wide_Character
+ (S : in out Sink'Class; Item : Wide_Wide_Character);
+ procedure Put_String (S : in out Sink'Class; Item : String);
+ procedure Put_Wide_String (S : in out Sink'Class; Item : Wide_String);
+ procedure Put_Wide_Wide_String
+ (S : in out Sink'Class; Item : Wide_Wide_String);
+ -- Encode characters or strings as UTF-8, and send them to S.
+
+ subtype Character_7 is
+ Character range Character'Val (0) .. Character'Val (2**7 - 1);
+ -- 7-bit character. These are the same in both Latin-1 and UTF-8.
+
+ procedure Put_7bit (S : in out Sink'Class; Item : Character_7)
+ with Inline, Pre => Item /= NL;
+ procedure Put_7bit_NL (S : in out Sink'Class; Item : Character_7)
+ with Inline;
+ -- Put a 7-bit character, and adjust the Column. For Put_7bit_NL, Item can
+ -- be NL.
+
+ procedure Put_UTF_8 (S : in out Sink'Class; Item : UTF_8) with Inline;
+ procedure Put_UTF_8_Lines (S : in out Sink'Class; Item : UTF_8_Lines);
+ -- Send data that is already UTF-8 encoded (including 7-bit ASCII) to
+ -- S. These are more efficient than Put_String.
+
+ procedure New_Line (S : in out Sink'Class) with Inline;
+ -- Puts the new-line character.
+
+ function Column (S : Sink'Class) return Positive with Inline;
+ -- Current output column. The Column is initially 1, and is incremented for
+ -- each 7-bit character output, except for the new-line character, which
+ -- sets Column back to 1. The next character to be output will go in this
+ -- column.
+
+ procedure Tab_To_Column (S : in out Sink'Class; Column : Positive);
+ -- Put spaces until we're at or past Column.
+
+ procedure Set_Indentation (S : in out Sink'Class; Amount : Natural)
+ with Inline;
+ function Indentation (S : Sink'Class) return Natural with Inline;
+ -- Indentation is initially 0. Set_Indentation sets it, and Indentation
+ -- returns it. This number of space characters are put at the start of
+ -- each nonempty line.
+
+ subtype Optional_Indentation is Integer range -1 .. Natural'Last;
+ Default : constant Optional_Indentation := -1;
+
+ procedure Indent
+ (S : in out Sink'Class; Amount : Optional_Indentation := Default)
+ with Inline;
+ procedure Outdent
+ (S : in out Sink'Class; Amount : Optional_Indentation := Default)
+ with Inline;
+ -- Increase/decrease Indentation by Amount. If Amount = Default, the amount
+ -- specified by the Indent_Amount parameter of the sink creation function
+ -- is used. The sink creation functions are New_Buffer, Create_File, and
+ -- Create_New_File.
+
+end Ada.Strings.Text_Output.Utils;
diff --git a/gcc/ada/libgnat/a-strbou.adb b/gcc/ada/libgnat/a-strbou.adb
index 50da492..d48798b 100644
--- a/gcc/ada/libgnat/a-strbou.adb
+++ b/gcc/ada/libgnat/a-strbou.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-strbou.ads b/gcc/ada/libgnat/a-strbou.ads
index ae61b86..ebde112 100644
--- a/gcc/ada/libgnat/a-strbou.ads
+++ b/gcc/ada/libgnat/a-strbou.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-stream.adb b/gcc/ada/libgnat/a-stream.adb
index d4a3f13..67d70c5 100644
--- a/gcc/ada/libgnat/a-stream.adb
+++ b/gcc/ada/libgnat/a-stream.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2013-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2013-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-stream.ads b/gcc/ada/libgnat/a-stream.ads
index 8886c94..9a76ee3 100644
--- a/gcc/ada/libgnat/a-stream.ads
+++ b/gcc/ada/libgnat/a-stream.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-strfix.adb b/gcc/ada/libgnat/a-strfix.adb
index b8b5f42..8105f30 100644
--- a/gcc/ada/libgnat/a-strfix.adb
+++ b/gcc/ada/libgnat/a-strfix.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -192,6 +192,10 @@ package body Ada.Strings.Fixed is
elsif From not in Source'Range
or else Through > Source'Last
then
+ pragma Annotate
+ (CodePeer, False_Positive,
+ "test always false", "self fullfilling prophecy");
+
-- In most cases this raises an exception, but the case of deleting
-- a null string at the end of the current one is a special-case, and
-- reflects the equivalence with Replace_String (RM A.4.3 (86/3)).
diff --git a/gcc/ada/libgnat/a-strhas.adb b/gcc/ada/libgnat/a-strhas.adb
index 258ee92..572b766 100644
--- a/gcc/ada/libgnat/a-strhas.adb
+++ b/gcc/ada/libgnat/a-strhas.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-strmap.adb b/gcc/ada/libgnat/a-strmap.adb
index c8917d9..9f6e857 100644
--- a/gcc/ada/libgnat/a-strmap.adb
+++ b/gcc/ada/libgnat/a-strmap.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-strmap.ads b/gcc/ada/libgnat/a-strmap.ads
index 3782189..ab59402 100644
--- a/gcc/ada/libgnat/a-strmap.ads
+++ b/gcc/ada/libgnat/a-strmap.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-strsea.adb b/gcc/ada/libgnat/a-strsea.adb
index c835f3a..b779090 100644
--- a/gcc/ada/libgnat/a-strsea.adb
+++ b/gcc/ada/libgnat/a-strsea.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-strsea.ads b/gcc/ada/libgnat/a-strsea.ads
index 1e1bc59..668b2e1 100644
--- a/gcc/ada/libgnat/a-strsea.ads
+++ b/gcc/ada/libgnat/a-strsea.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-strsto.ads b/gcc/ada/libgnat/a-strsto.ads
new file mode 100644
index 0000000..ae38b2d
--- /dev/null
+++ b/gcc/ada/libgnat/a-strsto.ads
@@ -0,0 +1,44 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT LIBRARY COMPONENTS --
+-- --
+-- A D A . S T R E A M S . S T O R A G E --
+-- --
+-- S p e c --
+-- --
+-- Copyright (C) 2020, Free Software Foundation, Inc. --
+-- --
+-- This specification is derived from the Ada Reference Manual for use with --
+-- GNAT. The copyright notice above, and the license provisions that follow --
+-- apply solely to the contents of the part following the private keyword. --
+-- --
+-- GNAT is free software; you can redistribute it and/or modify it under --
+-- terms of the GNU General Public License as published by the Free Soft- --
+-- ware Foundation; either version 3, or (at your option) any later ver- --
+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
+-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
+-- or FITNESS FOR A PARTICULAR PURPOSE. --
+-- --
+-- As a special exception under Section 7 of GPL version 3, you are granted --
+-- additional permissions described in the GCC Runtime Library Exception, --
+-- version 3.1, as published by the Free Software Foundation. --
+-- --
+-- You should have received a copy of the GNU General Public License and --
+-- a copy of the GCC Runtime Library Exception along with this program; --
+-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
+-- <http://www.gnu.org/licenses/>. --
+-- --
+------------------------------------------------------------------------------
+
+package Ada.Streams.Storage with Pure is
+
+ type Storage_Stream_Type is abstract new Root_Stream_Type with private;
+
+ function Element_Count
+ (Stream : Storage_Stream_Type) return Stream_Element_Count is abstract;
+
+ procedure Clear (Stream : in out Storage_Stream_Type) is abstract;
+
+private
+ type Storage_Stream_Type is abstract new Root_Stream_Type with null record;
+end Ada.Streams.Storage;
diff --git a/gcc/ada/libgnat/a-strsup.adb b/gcc/ada/libgnat/a-strsup.adb
index fa2ba88..e11df76 100644
--- a/gcc/ada/libgnat/a-strsup.adb
+++ b/gcc/ada/libgnat/a-strsup.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2003-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2003-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-strsup.ads b/gcc/ada/libgnat/a-strsup.ads
index f68db86..50607ae 100644
--- a/gcc/ada/libgnat/a-strsup.ads
+++ b/gcc/ada/libgnat/a-strsup.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2003-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2003-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-strunb.adb b/gcc/ada/libgnat/a-strunb.adb
index 347d85a..988de42 100644
--- a/gcc/ada/libgnat/a-strunb.adb
+++ b/gcc/ada/libgnat/a-strunb.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -35,6 +35,19 @@ with Ada.Unchecked_Deallocation;
package body Ada.Strings.Unbounded is
+ function Sum (Left : Natural; Right : Integer) return Natural with Inline;
+ -- Returns summary of Left and Right, raise Constraint_Error on overflow
+
+ function Mul (Left, Right : Natural) return Natural with Inline;
+ -- Returns multiplication of Left and Right, raise Constraint_Error on
+ -- overflow.
+
+ function Saturated_Sum (Left : Natural; Right : Integer) return Natural;
+ -- Returns summary of Left and Right or Natural'Last on overflow
+
+ function Saturated_Mul (Left, Right : Natural) return Natural;
+ -- Returns multiplication of Left and Right or Natural'Last on overflow
+
---------
-- "&" --
---------
@@ -48,7 +61,7 @@ package body Ada.Strings.Unbounded is
Result : Unbounded_String;
begin
- Result.Last := L_Length + R_Length;
+ Result.Last := Sum (L_Length, R_Length);
Result.Reference := new String (1 .. Result.Last);
@@ -68,7 +81,7 @@ package body Ada.Strings.Unbounded is
Result : Unbounded_String;
begin
- Result.Last := L_Length + Right'Length;
+ Result.Last := Sum (L_Length, Right'Length);
Result.Reference := new String (1 .. Result.Last);
@@ -86,7 +99,7 @@ package body Ada.Strings.Unbounded is
Result : Unbounded_String;
begin
- Result.Last := Left'Length + R_Length;
+ Result.Last := Sum (Left'Length, R_Length);
Result.Reference := new String (1 .. Result.Last);
@@ -104,7 +117,7 @@ package body Ada.Strings.Unbounded is
Result : Unbounded_String;
begin
- Result.Last := Left.Last + 1;
+ Result.Last := Sum (Left.Last, 1);
Result.Reference := new String (1 .. Result.Last);
@@ -122,7 +135,7 @@ package body Ada.Strings.Unbounded is
Result : Unbounded_String;
begin
- Result.Last := Right.Last + 1;
+ Result.Last := Sum (Right.Last, 1);
Result.Reference := new String (1 .. Result.Last);
Result.Reference (1) := Left;
@@ -142,7 +155,7 @@ package body Ada.Strings.Unbounded is
Result : Unbounded_String;
begin
- Result.Last := Left;
+ Result.Last := Left;
Result.Reference := new String (1 .. Left);
for J in Result.Reference'Range loop
@@ -161,7 +174,7 @@ package body Ada.Strings.Unbounded is
Result : Unbounded_String;
begin
- Result.Last := Left * Len;
+ Result.Last := Mul (Left, Len);
Result.Reference := new String (1 .. Result.Last);
@@ -183,7 +196,7 @@ package body Ada.Strings.Unbounded is
Result : Unbounded_String;
begin
- Result.Last := Left * Len;
+ Result.Last := Mul (Left, Len);
Result.Reference := new String (1 .. Result.Last);
@@ -718,6 +731,16 @@ package body Ada.Strings.Unbounded is
return Source.Last;
end Length;
+ ---------
+ -- Mul --
+ ---------
+
+ function Mul (Left, Right : Natural) return Natural is
+ pragma Unsuppress (Overflow_Check);
+ begin
+ return Left * Right;
+ end Mul;
+
---------------
-- Overwrite --
---------------
@@ -783,10 +806,12 @@ package body Ada.Strings.Unbounded is
if Chunk_Size > S_Length - Source.Last then
declare
New_Size : constant Positive :=
- S_Length + Chunk_Size + (S_Length / Growth_Factor);
+ Saturated_Sum
+ (Sum (S_Length, Chunk_Size), S_Length / Growth_Factor);
New_Rounded_Up_Size : constant Positive :=
- ((New_Size - 1) / Min_Mul_Alloc + 1) * Min_Mul_Alloc;
+ Saturated_Mul
+ ((New_Size - 1) / Min_Mul_Alloc + 1, Min_Mul_Alloc);
Tmp : constant String_Access :=
new String (1 .. New_Rounded_Up_Size);
@@ -847,6 +872,30 @@ package body Ada.Strings.Unbounded is
Free (Old);
end Replace_Slice;
+ -------------------
+ -- Saturated_Mul --
+ -------------------
+
+ function Saturated_Mul (Left, Right : Natural) return Natural is
+ begin
+ return Mul (Left, Right);
+ exception
+ when Constraint_Error =>
+ return Natural'Last;
+ end Saturated_Mul;
+
+ -----------------
+ -- Saturated_Sum --
+ -----------------
+
+ function Saturated_Sum (Left : Natural; Right : Integer) return Natural is
+ begin
+ return Sum (Left, Right);
+ exception
+ when Constraint_Error =>
+ return Natural'Last;
+ end Saturated_Sum;
+
--------------------------
-- Set_Unbounded_String --
--------------------------
@@ -882,6 +931,16 @@ package body Ada.Strings.Unbounded is
end if;
end Slice;
+ ---------
+ -- Sum --
+ ---------
+
+ function Sum (Left : Natural; Right : Integer) return Natural is
+ pragma Unsuppress (Overflow_Check);
+ begin
+ return Left + Right;
+ end Sum;
+
----------
-- Tail --
----------
@@ -1047,7 +1106,7 @@ package body Ada.Strings.Unbounded is
High : Natural) return Unbounded_String
is
begin
- if Low > Source.Last + 1 or else High > Source.Last then
+ if Low - 1 > Source.Last or else High > Source.Last then
raise Index_Error;
else
return To_Unbounded_String (Source.Reference.all (Low .. High));
@@ -1061,7 +1120,7 @@ package body Ada.Strings.Unbounded is
High : Natural)
is
begin
- if Low > Source.Last + 1 or else High > Source.Last then
+ if Low - 1 > Source.Last or else High > Source.Last then
raise Index_Error;
else
Target := To_Unbounded_String (Source.Reference.all (Low .. High));
diff --git a/gcc/ada/libgnat/a-strunb.ads b/gcc/ada/libgnat/a-strunb.ads
index e875b5b..3471dbb 100644
--- a/gcc/ada/libgnat/a-strunb.ads
+++ b/gcc/ada/libgnat/a-strunb.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-strunb__shared.adb b/gcc/ada/libgnat/a-strunb__shared.adb
index 90a6c40..0ff34d8 100644
--- a/gcc/ada/libgnat/a-strunb__shared.adb
+++ b/gcc/ada/libgnat/a-strunb__shared.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -56,6 +56,18 @@ package body Ada.Strings.Unbounded is
-- allocated memory segments to use memory effectively by Append/Insert/etc
-- operations.
+ function Sum (Left : Natural; Right : Integer) return Natural with Inline;
+ -- Returns summary of Left and Right, raise Constraint_Error on overflow
+
+ function Mul (Left, Right : Natural) return Natural with Inline;
+ -- Returns multiplication of Left and Right, raise Constraint_Error on
+ -- overflow
+
+ function Allocate
+ (Length, Growth : Natural) return not null Shared_String_Access;
+ -- Allocates new Shared_String with at least specified Length plus optional
+ -- Growth.
+
---------
-- "&" --
---------
@@ -66,14 +78,13 @@ package body Ada.Strings.Unbounded is
is
LR : constant Shared_String_Access := Left.Reference;
RR : constant Shared_String_Access := Right.Reference;
- DL : constant Natural := LR.Last + RR.Last;
+ DL : constant Natural := Sum (LR.Last, RR.Last);
DR : Shared_String_Access;
begin
-- Result is an empty string, reuse shared empty string
if DL = 0 then
- Reference (Empty_Shared_String'Access);
DR := Empty_Shared_String'Access;
-- Left string is empty, return Right string
@@ -105,14 +116,13 @@ package body Ada.Strings.Unbounded is
Right : String) return Unbounded_String
is
LR : constant Shared_String_Access := Left.Reference;
- DL : constant Natural := LR.Last + Right'Length;
+ DL : constant Natural := Sum (LR.Last, Right'Length);
DR : Shared_String_Access;
begin
-- Result is an empty string, reuse shared empty string
if DL = 0 then
- Reference (Empty_Shared_String'Access);
DR := Empty_Shared_String'Access;
-- Right is an empty string, return Left string
@@ -138,14 +148,13 @@ package body Ada.Strings.Unbounded is
Right : Unbounded_String) return Unbounded_String
is
RR : constant Shared_String_Access := Right.Reference;
- DL : constant Natural := Left'Length + RR.Last;
+ DL : constant Natural := Sum (Left'Length, RR.Last);
DR : Shared_String_Access;
begin
-- Result is an empty string, reuse shared one
if DL = 0 then
- Reference (Empty_Shared_String'Access);
DR := Empty_Shared_String'Access;
-- Left is empty string, return Right string
@@ -171,7 +180,7 @@ package body Ada.Strings.Unbounded is
Right : Character) return Unbounded_String
is
LR : constant Shared_String_Access := Left.Reference;
- DL : constant Natural := LR.Last + 1;
+ DL : constant Natural := Sum (LR.Last, 1);
DR : Shared_String_Access;
begin
@@ -188,7 +197,7 @@ package body Ada.Strings.Unbounded is
Right : Unbounded_String) return Unbounded_String
is
RR : constant Shared_String_Access := Right.Reference;
- DL : constant Natural := 1 + RR.Last;
+ DL : constant Natural := Sum (1, RR.Last);
DR : Shared_String_Access;
begin
@@ -214,7 +223,6 @@ package body Ada.Strings.Unbounded is
-- Result is an empty string, reuse shared empty string
if Left = 0 then
- Reference (Empty_Shared_String'Access);
DR := Empty_Shared_String'Access;
-- Otherwise, allocate new shared string and fill it
@@ -236,7 +244,7 @@ package body Ada.Strings.Unbounded is
(Left : Natural;
Right : String) return Unbounded_String
is
- DL : constant Natural := Left * Right'Length;
+ DL : constant Natural := Mul (Left, Right'Length);
DR : Shared_String_Access;
K : Positive;
@@ -244,7 +252,6 @@ package body Ada.Strings.Unbounded is
-- Result is an empty string, reuse shared empty string
if DL = 0 then
- Reference (Empty_Shared_String'Access);
DR := Empty_Shared_String'Access;
-- Otherwise, allocate new shared string and fill it
@@ -269,7 +276,7 @@ package body Ada.Strings.Unbounded is
Right : Unbounded_String) return Unbounded_String
is
RR : constant Shared_String_Access := Right.Reference;
- DL : constant Natural := Left * RR.Last;
+ DL : constant Natural := Mul (Left, RR.Last);
DR : Shared_String_Access;
K : Positive;
@@ -277,7 +284,6 @@ package body Ada.Strings.Unbounded is
-- Result is an empty string, reuse shared empty string
if DL = 0 then
- Reference (Empty_Shared_String'Access);
DR := Empty_Shared_String'Access;
-- Coefficient is one, just return string itself
@@ -486,13 +492,16 @@ package body Ada.Strings.Unbounded is
function Aligned_Max_Length (Max_Length : Natural) return Natural is
Static_Size : constant Natural :=
- Empty_Shared_String'Size / Standard'Storage_Unit;
- -- Total size of all static components
-
+ Empty_Shared_String'Size / Standard'Storage_Unit;
+ -- Total size of all Shared_String static components
begin
- return
- ((Static_Size + Max_Length - 1) / Min_Mul_Alloc + 2) * Min_Mul_Alloc
- - Static_Size;
+ if Max_Length > Natural'Last - Static_Size then
+ return Natural'Last;
+ else
+ return
+ ((Static_Size + Max_Length - 1) / Min_Mul_Alloc + 2) * Min_Mul_Alloc
+ - Static_Size;
+ end if;
end Aligned_Max_Length;
--------------
@@ -506,7 +515,6 @@ package body Ada.Strings.Unbounded is
-- Empty string requested, return shared empty string
if Max_Length = 0 then
- Reference (Empty_Shared_String'Access);
return Empty_Shared_String'Access;
-- Otherwise, allocate requested space (and probably some more room)
@@ -516,6 +524,23 @@ package body Ada.Strings.Unbounded is
end if;
end Allocate;
+ --------------
+ -- Allocate --
+ --------------
+
+ function Allocate
+ (Length, Growth : Natural) return not null Shared_String_Access is
+ begin
+ if Natural'Last - Growth < Length then
+ -- Then Length + Growth would be more than Natural'Last
+
+ return new Shared_String (Integer'Last);
+
+ else
+ return Allocate (Length + Growth);
+ end if;
+ end Allocate;
+
------------
-- Append --
------------
@@ -526,7 +551,7 @@ package body Ada.Strings.Unbounded is
is
SR : constant Shared_String_Access := Source.Reference;
NR : constant Shared_String_Access := New_Item.Reference;
- DL : constant Natural := SR.Last + NR.Last;
+ DL : constant Natural := Sum (SR.Last, NR.Last);
DR : Shared_String_Access;
begin
@@ -551,7 +576,7 @@ package body Ada.Strings.Unbounded is
-- Otherwise, allocate new one and fill it
else
- DR := Allocate (DL + DL / Growth_Factor);
+ DR := Allocate (DL, DL / Growth_Factor);
DR.Data (1 .. SR.Last) := SR.Data (1 .. SR.Last);
DR.Data (SR.Last + 1 .. DL) := NR.Data (1 .. NR.Last);
DR.Last := DL;
@@ -565,7 +590,7 @@ package body Ada.Strings.Unbounded is
New_Item : String)
is
SR : constant Shared_String_Access := Source.Reference;
- DL : constant Natural := SR.Last + New_Item'Length;
+ DL : constant Natural := Sum (SR.Last, New_Item'Length);
DR : Shared_String_Access;
begin
@@ -583,7 +608,7 @@ package body Ada.Strings.Unbounded is
-- Otherwise, allocate new one and fill it
else
- DR := Allocate (DL + DL / Growth_Factor);
+ DR := Allocate (DL, DL / Growth_Factor);
DR.Data (1 .. SR.Last) := SR.Data (1 .. SR.Last);
DR.Data (SR.Last + 1 .. DL) := New_Item;
DR.Last := DL;
@@ -597,20 +622,20 @@ package body Ada.Strings.Unbounded is
New_Item : Character)
is
SR : constant Shared_String_Access := Source.Reference;
- DL : constant Natural := SR.Last + 1;
+ DL : constant Natural := Sum (SR.Last, 1);
DR : Shared_String_Access;
begin
-- Try to reuse existing shared string
- if Can_Be_Reused (SR, SR.Last + 1) then
+ if Can_Be_Reused (SR, DL) then
SR.Data (SR.Last + 1) := New_Item;
SR.Last := SR.Last + 1;
-- Otherwise, allocate new one and fill it
else
- DR := Allocate (DL + DL / Growth_Factor);
+ DR := Allocate (DL, DL / Growth_Factor);
DR.Data (1 .. SR.Last) := SR.Data (1 .. SR.Last);
DR.Data (DL) := New_Item;
DR.Last := DL;
@@ -701,7 +726,6 @@ package body Ada.Strings.Unbounded is
-- Result is an empty string, reuse shared empty string
if DL = 0 then
- Reference (Empty_Shared_String'Access);
DR := Empty_Shared_String'Access;
-- Otherwise, allocate new shared string and fill it
@@ -743,7 +767,6 @@ package body Ada.Strings.Unbounded is
-- Result is empty, reuse shared empty string
if DL = 0 then
- Reference (Empty_Shared_String'Access);
Source.Reference := Empty_Shared_String'Access;
Unreference (SR);
@@ -801,7 +824,6 @@ package body Ada.Strings.Unbounded is
-- effects if a program references an already-finalized object.
Object.Reference := Null_Unbounded_String.Reference;
- Reference (Object.Reference);
Unreference (SR);
end if;
end Finalize;
@@ -862,7 +884,6 @@ package body Ada.Strings.Unbounded is
-- Result is empty, reuse shared empty string
if Count = 0 then
- Reference (Empty_Shared_String'Access);
DR := Empty_Shared_String'Access;
-- Length of the string is the same as requested, reuse source shared
@@ -912,7 +933,6 @@ package body Ada.Strings.Unbounded is
-- Result is empty, reuse empty shared string
if Count = 0 then
- Reference (Empty_Shared_String'Access);
Source.Reference := Empty_Shared_String'Access;
Unreference (SR);
@@ -1090,7 +1110,6 @@ package body Ada.Strings.Unbounded is
-- Result is empty, reuse empty shared string
if DL = 0 then
- Reference (Empty_Shared_String'Access);
DR := Empty_Shared_String'Access;
-- Inserted string is empty, reuse source shared string
@@ -1102,7 +1121,7 @@ package body Ada.Strings.Unbounded is
-- Otherwise, allocate new shared string and fill it
else
- DR := Allocate (DL + DL / Growth_Factor);
+ DR := Allocate (DL, DL / Growth_Factor);
DR.Data (1 .. Before - 1) := SR.Data (1 .. Before - 1);
DR.Data (Before .. Before + New_Item'Length - 1) := New_Item;
DR.Data (Before + New_Item'Length .. DL) :=
@@ -1132,7 +1151,6 @@ package body Ada.Strings.Unbounded is
-- Result is empty string, reuse empty shared string
if DL = 0 then
- Reference (Empty_Shared_String'Access);
Source.Reference := Empty_Shared_String'Access;
Unreference (SR);
@@ -1152,7 +1170,7 @@ package body Ada.Strings.Unbounded is
-- Otherwise, allocate new shared string and fill it
else
- DR := Allocate (DL + DL / Growth_Factor);
+ DR := Allocate (DL, DL / Growth_Factor);
DR.Data (1 .. Before - 1) := SR.Data (1 .. Before - 1);
DR.Data (Before .. Before + New_Item'Length - 1) := New_Item;
DR.Data (Before + New_Item'Length .. DL) :=
@@ -1172,6 +1190,16 @@ package body Ada.Strings.Unbounded is
return Source.Reference.Last;
end Length;
+ ---------
+ -- Mul --
+ ---------
+
+ function Mul (Left, Right : Natural) return Natural is
+ pragma Unsuppress (Overflow_Check);
+ begin
+ return Left * Right;
+ end Mul;
+
---------------
-- Overwrite --
---------------
@@ -1192,12 +1220,11 @@ package body Ada.Strings.Unbounded is
raise Index_Error;
end if;
- DL := Integer'Max (SR.Last, Position + New_Item'Length - 1);
+ DL := Integer'Max (SR.Last, Sum (Position - 1, New_Item'Length));
-- Result is empty string, reuse empty shared string
if DL = 0 then
- Reference (Empty_Shared_String'Access);
DR := Empty_Shared_String'Access;
-- Result is same as source string, reuse source shared string
@@ -1241,7 +1268,6 @@ package body Ada.Strings.Unbounded is
-- Result is empty string, reuse empty shared string
if DL = 0 then
- Reference (Empty_Shared_String'Access);
Source.Reference := Empty_Shared_String'Access;
Unreference (SR);
@@ -1276,6 +1302,10 @@ package body Ada.Strings.Unbounded is
procedure Reference (Item : not null Shared_String_Access) is
begin
+ if Item = Empty_Shared_String'Access then
+ return;
+ end if;
+
System.Atomic_Counters.Increment (Item.Counter);
end Reference;
@@ -1341,14 +1371,14 @@ package body Ada.Strings.Unbounded is
-- Do replace operation when removed slice is not empty
if High >= Low then
- DL := By'Length + SR.Last + Low - Integer'Min (High, SR.Last) - 1;
+ DL := Sum (SR.Last,
+ By'Length + Low - Integer'Min (High, SR.Last) - 1);
-- This is the number of characters remaining in the string after
-- replacing the slice.
-- Result is empty string, reuse empty shared string
if DL = 0 then
- Reference (Empty_Shared_String'Access);
DR := Empty_Shared_String'Access;
-- Otherwise allocate new shared string and fill it
@@ -1397,7 +1427,6 @@ package body Ada.Strings.Unbounded is
-- Result is empty string, reuse empty shared string
if DL = 0 then
- Reference (Empty_Shared_String'Access);
Source.Reference := Empty_Shared_String'Access;
Unreference (SR);
@@ -1442,7 +1471,6 @@ package body Ada.Strings.Unbounded is
-- In case of empty string, reuse empty shared string
if Source'Length = 0 then
- Reference (Empty_Shared_String'Access);
Target.Reference := Empty_Shared_String'Access;
else
@@ -1488,6 +1516,16 @@ package body Ada.Strings.Unbounded is
end if;
end Slice;
+ ---------
+ -- Sum --
+ ---------
+
+ function Sum (Left : Natural; Right : Integer) return Natural is
+ pragma Unsuppress (Overflow_Check);
+ begin
+ return Left + Right;
+ end Sum;
+
----------
-- Tail --
----------
@@ -1504,7 +1542,6 @@ package body Ada.Strings.Unbounded is
-- For empty result reuse empty shared string
if Count = 0 then
- Reference (Empty_Shared_String'Access);
DR := Empty_Shared_String'Access;
-- Result is whole source string, reuse source shared string
@@ -1576,7 +1613,6 @@ package body Ada.Strings.Unbounded is
-- Result is empty string, reuse empty shared string
if Count = 0 then
- Reference (Empty_Shared_String'Access);
Source.Reference := Empty_Shared_String'Access;
Unreference (SR);
@@ -1619,7 +1655,6 @@ package body Ada.Strings.Unbounded is
begin
if Source'Length = 0 then
- Reference (Empty_Shared_String'Access);
DR := Empty_Shared_String'Access;
else
@@ -1636,7 +1671,6 @@ package body Ada.Strings.Unbounded is
begin
if Length = 0 then
- Reference (Empty_Shared_String'Access);
DR := Empty_Shared_String'Access;
else
@@ -1662,7 +1696,6 @@ package body Ada.Strings.Unbounded is
-- Nothing to translate, reuse empty shared string
if SR.Last = 0 then
- Reference (Empty_Shared_String'Access);
DR := Empty_Shared_String'Access;
-- Otherwise, allocate new shared string and fill it
@@ -1726,7 +1759,6 @@ package body Ada.Strings.Unbounded is
-- Nothing to translate, reuse empty shared string
if SR.Last = 0 then
- Reference (Empty_Shared_String'Access);
DR := Empty_Shared_String'Access;
-- Otherwise, allocate new shared string and fill it
@@ -1813,7 +1845,6 @@ package body Ada.Strings.Unbounded is
-- All blanks, reuse empty shared string
if Low = 0 then
- Reference (Empty_Shared_String'Access);
DR := Empty_Shared_String'Access;
else
@@ -1867,7 +1898,6 @@ package body Ada.Strings.Unbounded is
-- All blanks, reuse empty shared string
if Low = 0 then
- Reference (Empty_Shared_String'Access);
Source.Reference := Empty_Shared_String'Access;
Unreference (SR);
@@ -1929,7 +1959,6 @@ package body Ada.Strings.Unbounded is
-- string.
if Low = 0 then
- Reference (Empty_Shared_String'Access);
DR := Empty_Shared_String'Access;
else
@@ -1940,7 +1969,6 @@ package body Ada.Strings.Unbounded is
-- is empty, reuse empty shared string.
if High = 0 or else DL = 0 then
- Reference (Empty_Shared_String'Access);
DR := Empty_Shared_String'Access;
-- Otherwise, allocate new shared string and fill it
@@ -1973,7 +2001,6 @@ package body Ada.Strings.Unbounded is
-- string.
if Low = 0 then
- Reference (Empty_Shared_String'Access);
Source.Reference := Empty_Shared_String'Access;
Unreference (SR);
@@ -1985,7 +2012,6 @@ package body Ada.Strings.Unbounded is
-- is empty, reuse empty shared string.
if High = 0 or else DL = 0 then
- Reference (Empty_Shared_String'Access);
Source.Reference := Empty_Shared_String'Access;
Unreference (SR);
@@ -2023,13 +2049,12 @@ package body Ada.Strings.Unbounded is
begin
-- Check bounds
- if Low > SR.Last + 1 or else High > SR.Last then
+ if Low - 1 > SR.Last or else High > SR.Last then
raise Index_Error;
-- Result is empty slice, reuse empty shared string
elsif Low > High then
- Reference (Empty_Shared_String'Access);
DR := Empty_Shared_String'Access;
-- Otherwise, allocate new shared string and fill it
@@ -2058,13 +2083,12 @@ package body Ada.Strings.Unbounded is
begin
-- Check bounds
- if Low > SR.Last + 1 or else High > SR.Last then
+ if Low - 1 > SR.Last or else High > SR.Last then
raise Index_Error;
-- Result is empty slice, reuse empty shared string
elsif Low > High then
- Reference (Empty_Shared_String'Access);
Target.Reference := Empty_Shared_String'Access;
Unreference (TR);
@@ -2101,14 +2125,12 @@ package body Ada.Strings.Unbounded is
Aux : Shared_String_Access := Item;
begin
- if System.Atomic_Counters.Decrement (Aux.Counter) then
-
- -- Reference counter of Empty_Shared_String should never reach
- -- zero. We check here in case it wraps around.
+ if Aux = Empty_Shared_String'Access then
+ return;
+ end if;
- if Aux /= Empty_Shared_String'Access then
- Free (Aux);
- end if;
+ if System.Atomic_Counters.Decrement (Aux.Counter) then
+ Free (Aux);
end if;
end Unreference;
diff --git a/gcc/ada/libgnat/a-strunb__shared.ads b/gcc/ada/libgnat/a-strunb__shared.ads
index 17acd56..5a5ad93 100644
--- a/gcc/ada/libgnat/a-strunb__shared.ads
+++ b/gcc/ada/libgnat/a-strunb__shared.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -708,10 +708,12 @@ private
type Shared_String_Access is access all Shared_String;
procedure Reference (Item : not null Shared_String_Access);
- -- Increment reference counter
+ -- Increment reference counter.
+ -- Do nothing if Item points to Empty_Shared_String.
procedure Unreference (Item : not null Shared_String_Access);
- -- Decrement reference counter, deallocate Item when counter goes to zero
+ -- Decrement reference counter, deallocate Item when counter goes to zero.
+ -- Do nothing if Item points to Empty_Shared_String.
function Can_Be_Reused
(Item : not null Shared_String_Access;
diff --git a/gcc/ada/libgnat/a-ststbo.adb b/gcc/ada/libgnat/a-ststbo.adb
new file mode 100644
index 0000000..16c6d00
--- /dev/null
+++ b/gcc/ada/libgnat/a-ststbo.adb
@@ -0,0 +1,117 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT LIBRARY COMPONENTS --
+-- --
+-- A D A . S T R E A M S . S T O R A G E . B O U N D E D --
+-- --
+-- B o d y --
+-- --
+-- Copyright (C) 2020, Free Software Foundation, Inc. --
+-- --
+-- GNAT is free software; you can redistribute it and/or modify it under --
+-- terms of the GNU General Public License as published by the Free Soft- --
+-- ware Foundation; either version 3, or (at your option) any later ver- --
+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
+-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
+-- or FITNESS FOR A PARTICULAR PURPOSE. --
+-- --
+-- As a special exception under Section 7 of GPL version 3, you are granted --
+-- additional permissions described in the GCC Runtime Library Exception, --
+-- version 3.1, as published by the Free Software Foundation. --
+-- --
+-- You should have received a copy of the GNU General Public License and --
+-- a copy of the GCC Runtime Library Exception along with this program; --
+-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
+-- <http://www.gnu.org/licenses/>. --
+-- --
+------------------------------------------------------------------------------
+
+package body Ada.Streams.Storage.Bounded is
+
+ ----------
+ -- Read --
+ ----------
+
+ overriding procedure Read
+ (Stream : in out Stream_Type; Item : out Stream_Element_Array;
+ Last : out Stream_Element_Offset)
+ is
+ EA : Stream_Element_Array renames
+ Stream.Elements (1 .. Element_Count (Stream));
+ begin
+ if Item'Length = 0 then
+ Last := Item'First - 1;
+
+ -- If the entire content of the stream fits in Item, then copy it and
+ -- clear the stream. This is likely the usual case.
+
+ elsif Element_Count (Stream) <= Item'Length then
+ Last := Item'First + Element_Count (Stream) - 1;
+ Item (Item'First .. Last) := EA;
+ Clear (Stream);
+
+ -- Otherwise, copy as much into Item as will fit. Then slide the
+ -- remaining part of the stream down, and compute the new Count.
+ -- We expect this to be the unusual case, so the cost of copying
+ -- the remaining part probably doesn't matter.
+
+ else
+ Last := Item'Last;
+
+ declare
+ New_Count : constant Stream_Element_Count :=
+ Element_Count (Stream) - Item'Length;
+ begin
+ Item := EA (1 .. Item'Length);
+ EA (1 .. New_Count) :=
+ EA (Element_Count (Stream) - New_Count + 1 ..
+ Element_Count (Stream));
+ Stream.Count := New_Count;
+ end;
+ end if;
+ end Read;
+
+ -----------
+ -- Write --
+ -----------
+
+ overriding procedure Write
+ (Stream : in out Stream_Type; Item : Stream_Element_Array)
+ is
+ begin
+ if Element_Count (Stream) + Item'Length > Stream.Max_Elements then
+ -- That is a precondition in the RM
+ raise Constraint_Error;
+ end if;
+
+ declare
+ New_Count : constant Stream_Element_Count :=
+ Element_Count (Stream) + Item'Length;
+ begin
+ Stream.Elements (Element_Count (Stream) + 1 .. New_Count) := Item;
+ Stream.Count := New_Count;
+ end;
+ end Write;
+
+ -------------------
+ -- Element_Count --
+ -------------------
+
+ overriding function Element_Count
+ (Stream : Stream_Type) return Stream_Element_Count
+ is
+ begin
+ return Stream.Count;
+ end Element_Count;
+
+ -----------
+ -- Clear --
+ -----------
+
+ overriding procedure Clear (Stream : in out Stream_Type)
+ is
+ begin
+ Stream.Count := 0;
+ end Clear;
+
+end Ada.Streams.Storage.Bounded;
diff --git a/gcc/ada/libgnat/a-ststbo.ads b/gcc/ada/libgnat/a-ststbo.ads
new file mode 100644
index 0000000..fe41c2c
--- /dev/null
+++ b/gcc/ada/libgnat/a-ststbo.ads
@@ -0,0 +1,73 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT LIBRARY COMPONENTS --
+-- --
+-- A D A . S T R E A M S . S T O R A G E . B O U N D E D --
+-- --
+-- S p e c --
+-- --
+-- Copyright (C) 2020, Free Software Foundation, Inc. --
+-- --
+-- This specification is derived from the Ada Reference Manual for use with --
+-- GNAT. The copyright notice above, and the license provisions that follow --
+-- apply solely to the contents of the part following the private keyword. --
+-- --
+-- GNAT is free software; you can redistribute it and/or modify it under --
+-- terms of the GNU General Public License as published by the Free Soft- --
+-- ware Foundation; either version 3, or (at your option) any later ver- --
+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
+-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
+-- or FITNESS FOR A PARTICULAR PURPOSE. --
+-- --
+-- As a special exception under Section 7 of GPL version 3, you are granted --
+-- additional permissions described in the GCC Runtime Library Exception, --
+-- version 3.1, as published by the Free Software Foundation. --
+-- --
+-- You should have received a copy of the GNU General Public License and --
+-- a copy of the GCC Runtime Library Exception along with this program; --
+-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
+-- <http://www.gnu.org/licenses/>. --
+-- --
+------------------------------------------------------------------------------
+
+package Ada.Streams.Storage.Bounded with Pure is
+
+ type Stream_Type (Max_Elements : Stream_Element_Count) is
+ new Storage_Stream_Type with private with
+ Default_Initial_Condition => Element_Count (Stream_Type) = 0;
+
+ overriding procedure Read
+ (Stream : in out Stream_Type; Item : out Stream_Element_Array;
+ Last : out Stream_Element_Offset)
+ with Post =>
+ (declare
+ Num_Read : constant Stream_Element_Count :=
+ Stream_Element_Count'Min
+ (Element_Count (Stream)'Old, Item'Length);
+ begin
+ Last = Num_Read + Item'First - 1
+ and
+ Element_Count (Stream) =
+ Element_Count (Stream)'Old - Num_Read);
+
+ overriding procedure Write
+ (Stream : in out Stream_Type; Item : Stream_Element_Array) with
+ Post => Element_Count (Stream) =
+ Element_Count (Stream)'Old + Item'Length;
+
+ overriding function Element_Count
+ (Stream : Stream_Type) return Stream_Element_Count with
+ Post => Element_Count'Result <= Stream.Max_Elements;
+
+ overriding procedure Clear (Stream : in out Stream_Type) with
+ Post => Element_Count (Stream) = 0;
+
+private
+
+ type Stream_Type (Max_Elements : Stream_Element_Count) is
+ new Storage_Stream_Type with record
+ Count : Stream_Element_Count := 0;
+ Elements : Stream_Element_Array (1 .. Max_Elements);
+ end record;
+
+end Ada.Streams.Storage.Bounded;
diff --git a/gcc/ada/libgnat/a-ststio.adb b/gcc/ada/libgnat/a-ststio.adb
index 119ac5f..5ed5e00 100644
--- a/gcc/ada/libgnat/a-ststio.adb
+++ b/gcc/ada/libgnat/a-ststio.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-ststio.ads b/gcc/ada/libgnat/a-ststio.ads
index 30be158..71482a4 100644
--- a/gcc/ada/libgnat/a-ststio.ads
+++ b/gcc/ada/libgnat/a-ststio.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-ststun.adb b/gcc/ada/libgnat/a-ststun.adb
new file mode 100644
index 0000000..cf3a250
--- /dev/null
+++ b/gcc/ada/libgnat/a-ststun.adb
@@ -0,0 +1,151 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT LIBRARY COMPONENTS --
+-- --
+-- A D A . S T R E A M S . S T O R A G E . U N B O U N D E D --
+-- --
+-- B o d y --
+-- --
+-- Copyright (C) 2020, Free Software Foundation, Inc. --
+-- --
+-- GNAT is free software; you can redistribute it and/or modify it under --
+-- terms of the GNU General Public License as published by the Free Soft- --
+-- ware Foundation; either version 3, or (at your option) any later ver- --
+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
+-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
+-- or FITNESS FOR A PARTICULAR PURPOSE. --
+-- --
+-- As a special exception under Section 7 of GPL version 3, you are granted --
+-- additional permissions described in the GCC Runtime Library Exception, --
+-- version 3.1, as published by the Free Software Foundation. --
+-- --
+-- You should have received a copy of the GNU General Public License and --
+-- a copy of the GCC Runtime Library Exception along with this program; --
+-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
+-- <http://www.gnu.org/licenses/>. --
+-- --
+------------------------------------------------------------------------------
+
+with Ada.Unchecked_Deallocation;
+
+package body Ada.Streams.Storage.Unbounded is
+
+ procedure Free is new Ada.Unchecked_Deallocation
+ (Elements_Type, Elements_Access);
+
+ --------------
+ -- Finalize --
+ --------------
+
+ overriding procedure Finalize (X : in out Controlled_Elements_Access) is
+ begin
+ if X.A /= Empty_Elements'Access then
+ Free (X.A);
+ end if;
+ end Finalize;
+
+ ----------
+ -- Read --
+ ----------
+
+ overriding procedure Read
+ (Stream : in out Stream_Type; Item : out Stream_Element_Array;
+ Last : out Stream_Element_Offset)
+ is
+ EA : Stream_Element_Array renames
+ Stream.Elements.A.EA (1 .. Element_Count (Stream));
+ begin
+ if Item'Length = 0 then
+ Last := Item'First - 1;
+
+ -- If the entire content of the stream fits in Item, then copy it and
+ -- clear the stream. This is likely the usual case.
+
+ elsif Element_Count (Stream) <= Item'Length then
+ Last := Item'First + Element_Count (Stream) - 1;
+ Item (Item'First .. Last) := EA;
+ Clear (Stream);
+
+ -- Otherwise, copy as much into Item as will fit. Then slide the
+ -- remaining part of the stream down, and compute the new Count.
+ -- We expect this to be the unusual case, so the cost of copying
+ -- the remaining part probably doesn't matter.
+
+ else
+ Last := Item'Last;
+
+ declare
+ New_Count : constant Stream_Element_Count :=
+ Element_Count (Stream) - Item'Length;
+ begin
+ Item := EA (1 .. Item'Length);
+ EA (1 .. New_Count) :=
+ EA (Element_Count (Stream) - New_Count + 1 ..
+ Element_Count (Stream));
+ Stream.Count := New_Count;
+ end;
+ end if;
+ end Read;
+
+ -----------
+ -- Write --
+ -----------
+
+ overriding procedure Write
+ (Stream : in out Stream_Type; Item : Stream_Element_Array)
+ is
+ New_Count : constant Stream_Element_Count :=
+ Element_Count (Stream) + Item'Length;
+ begin
+ -- Check whether we need to grow the array. If so, then if the Stream is
+ -- empty, allocate a goodly amount. Otherwise double the length, for
+ -- amortized efficiency. In any case, we need to make sure it's at least
+ -- big enough for New_Count.
+
+ if New_Count > Stream.Elements.A.Last then
+ declare
+ New_Last : Stream_Element_Index :=
+ (if Stream.Elements.A.Last = 0 then 2**10 -- goodly amount
+ else Stream.Elements.A.Last * 2);
+ Old_Elements : Elements_Access := Stream.Elements.A;
+ begin
+ if New_Last < New_Count then
+ New_Last := New_Count;
+ end if;
+
+ Stream.Elements.A := new Elements_Type (Last => New_Last);
+
+ if Old_Elements /= Empty_Elements'Access then
+ Stream.Elements.A.EA (Old_Elements.EA'Range) := Old_Elements.EA;
+ Free (Old_Elements);
+ end if;
+ end;
+ end if;
+
+ Stream.Elements.A.EA (Element_Count (Stream) + 1 .. New_Count) := Item;
+ Stream.Count := New_Count;
+ end Write;
+
+ -------------------
+ -- Element_Count --
+ -------------------
+
+ overriding function Element_Count
+ (Stream : Stream_Type) return Stream_Element_Count
+ is
+ begin
+ return Stream.Count;
+ end Element_Count;
+
+ -----------
+ -- Clear --
+ -----------
+
+ overriding procedure Clear (Stream : in out Stream_Type) is
+ begin
+ Stream.Count := 0;
+ -- We don't free Stream.Elements here, because we want to reuse it if
+ -- there are more Write calls.
+ end Clear;
+
+end Ada.Streams.Storage.Unbounded;
diff --git a/gcc/ada/libgnat/a-ststun.ads b/gcc/ada/libgnat/a-ststun.ads
new file mode 100644
index 0000000..95aca9b
--- /dev/null
+++ b/gcc/ada/libgnat/a-ststun.ads
@@ -0,0 +1,91 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT LIBRARY COMPONENTS --
+-- --
+-- A D A . S T R E A M S . S T O R A G E . U N B O U N D E D --
+-- --
+-- S p e c --
+-- --
+-- Copyright (C) 2020, Free Software Foundation, Inc. --
+-- --
+-- This specification is derived from the Ada Reference Manual for use with --
+-- GNAT. The copyright notice above, and the license provisions that follow --
+-- apply solely to the contents of the part following the private keyword. --
+-- --
+-- GNAT is free software; you can redistribute it and/or modify it under --
+-- terms of the GNU General Public License as published by the Free Soft- --
+-- ware Foundation; either version 3, or (at your option) any later ver- --
+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
+-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
+-- or FITNESS FOR A PARTICULAR PURPOSE. --
+-- --
+-- As a special exception under Section 7 of GPL version 3, you are granted --
+-- additional permissions described in the GCC Runtime Library Exception, --
+-- version 3.1, as published by the Free Software Foundation. --
+-- --
+-- You should have received a copy of the GNU General Public License and --
+-- a copy of the GCC Runtime Library Exception along with this program; --
+-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
+-- <http://www.gnu.org/licenses/>. --
+-- --
+------------------------------------------------------------------------------
+
+private with Ada.Finalization;
+
+package Ada.Streams.Storage.Unbounded with Preelaborate is
+
+ type Stream_Type is new Storage_Stream_Type with private with
+ Default_Initial_Condition => Element_Count (Stream_Type) = 0;
+
+ overriding procedure Read
+ (Stream : in out Stream_Type; Item : out Stream_Element_Array;
+ Last : out Stream_Element_Offset)
+ with Post =>
+ (declare
+ Num_Read : constant Stream_Element_Count :=
+ Stream_Element_Count'Min
+ (Element_Count (Stream)'Old, Item'Length);
+ begin
+ Last = Num_Read + Item'First - 1
+ and
+ Element_Count (Stream) =
+ Element_Count (Stream)'Old - Num_Read);
+
+ overriding procedure Write
+ (Stream : in out Stream_Type; Item : Stream_Element_Array) with
+ Post => Element_Count (Stream) =
+ Element_Count (Stream)'Old + Item'Length;
+
+ overriding function Element_Count
+ (Stream : Stream_Type) return Stream_Element_Count;
+
+ overriding procedure Clear (Stream : in out Stream_Type) with
+ Post => Element_Count (Stream) = 0;
+
+private
+
+ subtype Stream_Element_Index is Stream_Element_Count
+ range 1 .. Stream_Element_Count'Last;
+
+ type Elements_Type (Last : Stream_Element_Count) is limited record
+ EA : Stream_Element_Array (1 .. Last);
+ end record;
+
+ Empty_Elements : aliased Elements_Type := (Last => 0, EA => (others => <>));
+
+ type Elements_Access is access all Elements_Type;
+
+ type Controlled_Elements_Access is
+ new Finalization.Limited_Controlled with record
+ A : Elements_Access;
+ end record;
+
+ overriding procedure Finalize (X : in out Controlled_Elements_Access);
+
+ type Stream_Type is new Storage_Stream_Type with record
+ Elements : Controlled_Elements_Access :=
+ (Finalization.Limited_Controlled with A => Empty_Elements'Access);
+ Count : Stream_Element_Count := 0;
+ end record;
+
+end Ada.Streams.Storage.Unbounded;
diff --git a/gcc/ada/libgnat/a-stteou.ads b/gcc/ada/libgnat/a-stteou.ads
new file mode 100644
index 0000000..924b550
--- /dev/null
+++ b/gcc/ada/libgnat/a-stteou.ads
@@ -0,0 +1,191 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT RUN-TIME COMPONENTS --
+-- --
+-- ADA.STRINGS.TEXT_OUTPUT --
+-- --
+-- S p e c --
+-- --
+-- Copyright (C) 2020, Free Software Foundation, Inc. --
+-- --
+-- GNAT is free software; you can redistribute it and/or modify it under --
+-- terms of the GNU General Public License as published by the Free Soft- --
+-- ware Foundation; either version 3, or (at your option) any later ver- --
+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
+-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
+-- or FITNESS FOR A PARTICULAR PURPOSE. --
+-- --
+-- As a special exception under Section 7 of GPL version 3, you are granted --
+-- additional permissions described in the GCC Runtime Library Exception, --
+-- version 3.1, as published by the Free Software Foundation. --
+-- --
+-- You should have received a copy of the GNU General Public License and --
+-- a copy of the GCC Runtime Library Exception along with this program; --
+-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
+-- <http://www.gnu.org/licenses/>. --
+-- --
+-- GNAT was originally developed by the GNAT team at New York University. --
+-- Extensive contributions were provided by Ada Core Technologies Inc. --
+-- --
+------------------------------------------------------------------------------
+
+with Ada.Strings.UTF_Encoding;
+with Ada.Strings.UTF_Encoding.Wide_Wide_Strings;
+
+package Ada.Strings.Text_Output with Preelaborate is
+
+ -- This package provides a "Sink" abstraction, to which characters of type
+ -- Character, Wide_Character, and Wide_Wide_Character can be sent. This
+ -- type is used by the Put_Image attribute. In particular, T'Put_Image has
+ -- the following parameter types:
+ --
+ -- procedure T'Put_Image (S : in out Sink'Class; V : T);
+ --
+ -- The default generated code for Put_Image of a composite type will
+ -- typically call Put_Image on the components.
+ --
+ -- This is not a fully general abstraction that can be arbitrarily
+ -- extended. It is designed with particular extensions in mind, and these
+ -- extensions are declared in child packages of this package, because they
+ -- depend on implementation details in the private part of this
+ -- package. The primary extensions of Sink are:
+ --
+ -- Buffer. The characters sent to a Buffer are stored in memory, and can
+ -- be retrieved via Get functions. This is intended for the
+ -- implementation of the 'Image attribute. The compiler will generate a
+ -- T'Image function that declares a local Buffer, sends characters to
+ -- it, and then returns a call to Get, Destroying the Buffer on return.
+ --
+ -- function T'Image (V : T) return String is
+ -- Buf : Buffer := New_Buffer (...);
+ -- begin
+ -- T'Put_Image (Buf, V);
+ -- return Result : constant String := Get (Buf) do
+ -- Destroy (Buf);
+ -- end return;
+ -- end T'Image;
+ -- ????Perhaps Buffer should be controlled; if you don't like
+ -- controlled types, call Put_Image directly.
+ --
+ -- File. The characters are sent to a file, possibly opened by file
+ -- name, or possibly standard output or standard error. 'Put_Image
+ -- can be called directly on a File, thus avoiding any heap allocation.
+
+ type Sink (<>) is abstract tagged limited private;
+ type Sink_Access is access all Sink'Class with Storage_Size => 0;
+ -- Sink is a character sink; you can send characters to a Sink.
+ -- UTF-8 encoding is used.
+
+ procedure Full_Method (S : in out Sink) is abstract;
+ procedure Flush_Method (S : in out Sink) is abstract;
+ -- There is an internal buffer to store the characters. Full_Method is
+ -- called when the buffer is full, and Flush_Method may be called to flush
+ -- the buffer. For Buffer, Full_Method allocates more space for more
+ -- characters, and Flush_Method does nothing. For File, Full_Method and
+ -- Flush_Method do the same thing: write the characters to the file, and
+ -- empty the internal buffer.
+ --
+ -- These are the only dispatching subprograms on Sink. This is for
+ -- efficiency; we don't dispatch on every write to the Sink, but only when
+ -- the internal buffer is full (or upon client request).
+ --
+ -- Full_Method and Flush_Method must make the current chunk empty.
+ --
+ -- Additional operations operating on Sink'Class are declared in the Utils
+ -- child, including Full and Flush, which call the above.
+
+ function To_Wide (C : Character) return Wide_Character is
+ (Wide_Character'Val (Character'Pos (C)));
+ function To_Wide_Wide (C : Character) return Wide_Wide_Character is
+ (Wide_Wide_Character'Val (Character'Pos (C)));
+ function To_Wide_Wide (C : Wide_Character) return Wide_Wide_Character is
+ (Wide_Wide_Character'Val (Wide_Character'Pos (C)));
+ -- Conversions [Wide_]Character --> [Wide_]Wide_Character.
+ -- These cannot fail.
+
+ function From_Wide (C : Wide_Character) return Character is
+ (Character'Val (Wide_Character'Pos (C)));
+ function From_Wide_Wide (C : Wide_Wide_Character) return Character is
+ (Character'Val (Wide_Wide_Character'Pos (C)));
+ function From_Wide_Wide (C : Wide_Wide_Character) return Wide_Character is
+ (Wide_Character'Val (Wide_Wide_Character'Pos (C)));
+ -- Conversions [Wide_]Wide_Character --> [Wide_]Character.
+ -- These fail if the character is out of range.
+
+ function NL return Character is (ASCII.LF) with Inline;
+ function Wide_NL return Wide_Character is (To_Wide (Character'(NL)))
+ with Inline;
+ function Wide_Wide_NL return Wide_Wide_Character is
+ (To_Wide_Wide (Character'(NL))) with Inline;
+ -- Character representing new line. There is no support for CR/LF line
+ -- endings.
+
+ -- We have two subtypes of String that are encoded in UTF-8. UTF_8 cannot
+ -- contain newline characters; UTF_8_Lines can. Sending UTF_8 data to a
+ -- Sink is more efficient, because end-of-line processing is not needed.
+ -- Both of these are more efficient than [[Wide_]Wide_]String, because no
+ -- encoding is needed.
+
+ subtype UTF_8_Lines is UTF_Encoding.UTF_8_String with
+ Predicate =>
+ UTF_Encoding.Wide_Wide_Strings.Encode
+ (UTF_Encoding.Wide_Wide_Strings.Decode (UTF_8_Lines)) = UTF_8_Lines;
+
+ subtype UTF_8 is UTF_8_Lines with
+ Predicate => (for all UTF_8_Char of UTF_8 => UTF_8_Char /= NL);
+
+ Default_Indent_Amount : constant Natural := 4;
+
+ Default_Chunk_Length : constant Positive := 500;
+ -- Experiment shows this value to be reasonably efficient; decreasing it
+ -- slows things down, but increasing it doesn't gain much.
+
+private
+ type String_Access is access all String;
+
+ -- For Buffer, the "internal buffer" mentioned above is implemented as a
+ -- linked list of chunks. When the current chunk is full, we allocate a new
+ -- one. For File, there is only one chunk. When it is full, we send the
+ -- data to the file, and empty it.
+
+ type Chunk;
+ type Chunk_Access is access all Chunk;
+ type Chunk (Length : Positive) is limited record
+ Next : Chunk_Access := null;
+ Chars : UTF_8_Lines (1 .. Length);
+ end record;
+
+ type Sink (Chunk_Length : Positive) is abstract tagged limited record
+ Indent_Amount : Natural;
+ Column : Positive := 1;
+ Indentation : Natural := 0;
+
+ All_7_Bits : Boolean := True;
+ -- For optimization of Text_Output.Buffers.Get (cf).
+ -- True if all characters seen so far fit in 7 bits.
+ -- 7-bit characters are represented the same in Character
+ -- and in UTF-8, so they don't need translation.
+
+ All_8_Bits : Boolean := True;
+ -- True if all characters seen so far fit in 8 bits.
+ -- This is needed in Text_Output.Buffers.Get to distinguish
+ -- the case where all characters are Latin-1 (so it should
+ -- decode) from the case where some characters are bigger than
+ -- 8 bits (so the result is implementation defined).
+
+ Cur_Chunk : Chunk_Access;
+ -- Points to the chunk we are currently sending characters to.
+ -- We want to say:
+ -- Cur_Chunk : Chunk_Access := Initial_Chunk'Access;
+ -- but that's illegal, so we have some horsing around to do.
+
+ Last : Natural := 0;
+ -- Last-used character in Cur_Chunk.all.
+
+ Initial_Chunk : aliased Chunk (Length => Chunk_Length);
+ -- For Buffer, this is the first chunk. Subsequent chunks are allocated
+ -- on the heap. For File, this is the only chunk, and there is no heap
+ -- allocation.
+ end record;
+
+end Ada.Strings.Text_Output;
diff --git a/gcc/ada/libgnat/a-stunau.adb b/gcc/ada/libgnat/a-stunau.adb
index 761afe9..a0e2eda 100644
--- a/gcc/ada/libgnat/a-stunau.adb
+++ b/gcc/ada/libgnat/a-stunau.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-stunau.ads b/gcc/ada/libgnat/a-stunau.ads
index d3cf29f..bac37ef 100644
--- a/gcc/ada/libgnat/a-stunau.ads
+++ b/gcc/ada/libgnat/a-stunau.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-stunau__shared.adb b/gcc/ada/libgnat/a-stunau__shared.adb
index 2f3efb7..5f903f1 100644
--- a/gcc/ada/libgnat/a-stunau__shared.adb
+++ b/gcc/ada/libgnat/a-stunau__shared.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-stunha.adb b/gcc/ada/libgnat/a-stunha.adb
index 59c76ab..e92ad27 100644
--- a/gcc/ada/libgnat/a-stunha.adb
+++ b/gcc/ada/libgnat/a-stunha.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-stuten.adb b/gcc/ada/libgnat/a-stuten.adb
index 178827c..d6654b2 100644
--- a/gcc/ada/libgnat/a-stuten.adb
+++ b/gcc/ada/libgnat/a-stuten.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2010-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2010-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-stwibo.adb b/gcc/ada/libgnat/a-stwibo.adb
index 30a6555..46e1b41 100644
--- a/gcc/ada/libgnat/a-stwibo.adb
+++ b/gcc/ada/libgnat/a-stwibo.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-stwibo.ads b/gcc/ada/libgnat/a-stwibo.ads
index e6c4e65..ba35134 100644
--- a/gcc/ada/libgnat/a-stwibo.ads
+++ b/gcc/ada/libgnat/a-stwibo.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-stwifi.adb b/gcc/ada/libgnat/a-stwifi.adb
index ed81482..05e58e9 100644
--- a/gcc/ada/libgnat/a-stwifi.adb
+++ b/gcc/ada/libgnat/a-stwifi.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-stwiha.adb b/gcc/ada/libgnat/a-stwiha.adb
index 47a9fab..b25614a 100644
--- a/gcc/ada/libgnat/a-stwiha.adb
+++ b/gcc/ada/libgnat/a-stwiha.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-stwima.adb b/gcc/ada/libgnat/a-stwima.adb
index 514b6e5..1cc7d67 100644
--- a/gcc/ada/libgnat/a-stwima.adb
+++ b/gcc/ada/libgnat/a-stwima.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-stwima.ads b/gcc/ada/libgnat/a-stwima.ads
index a37e578..24c6bb84 100644
--- a/gcc/ada/libgnat/a-stwima.ads
+++ b/gcc/ada/libgnat/a-stwima.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-stwise.adb b/gcc/ada/libgnat/a-stwise.adb
index 897591c..f93c5cb 100644
--- a/gcc/ada/libgnat/a-stwise.adb
+++ b/gcc/ada/libgnat/a-stwise.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-stwise.ads b/gcc/ada/libgnat/a-stwise.ads
index 3491eff..0573157 100644
--- a/gcc/ada/libgnat/a-stwise.ads
+++ b/gcc/ada/libgnat/a-stwise.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-stwisu.adb b/gcc/ada/libgnat/a-stwisu.adb
index a192005..8c343fe 100644
--- a/gcc/ada/libgnat/a-stwisu.adb
+++ b/gcc/ada/libgnat/a-stwisu.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2003-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2003-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-stwisu.ads b/gcc/ada/libgnat/a-stwisu.ads
index ee52f0d..387e012 100644
--- a/gcc/ada/libgnat/a-stwisu.ads
+++ b/gcc/ada/libgnat/a-stwisu.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2003-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2003-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-stwiun.adb b/gcc/ada/libgnat/a-stwiun.adb
index ded9d10..912af42 100644
--- a/gcc/ada/libgnat/a-stwiun.adb
+++ b/gcc/ada/libgnat/a-stwiun.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-stwiun.ads b/gcc/ada/libgnat/a-stwiun.ads
index 9f2a273..00d5c3d 100644
--- a/gcc/ada/libgnat/a-stwiun.ads
+++ b/gcc/ada/libgnat/a-stwiun.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-stwiun__shared.adb b/gcc/ada/libgnat/a-stwiun__shared.adb
index 7fab387..b61139b1 100644
--- a/gcc/ada/libgnat/a-stwiun__shared.adb
+++ b/gcc/ada/libgnat/a-stwiun__shared.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-stwiun__shared.ads b/gcc/ada/libgnat/a-stwiun__shared.ads
index ba01ffd..3d29939 100644
--- a/gcc/ada/libgnat/a-stwiun__shared.ads
+++ b/gcc/ada/libgnat/a-stwiun__shared.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-stzbou.adb b/gcc/ada/libgnat/a-stzbou.adb
index 403cc8b..60afeec 100644
--- a/gcc/ada/libgnat/a-stzbou.adb
+++ b/gcc/ada/libgnat/a-stzbou.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-stzbou.ads b/gcc/ada/libgnat/a-stzbou.ads
index ffa0e48..f5bbcf3 100644
--- a/gcc/ada/libgnat/a-stzbou.ads
+++ b/gcc/ada/libgnat/a-stzbou.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-stzfix.adb b/gcc/ada/libgnat/a-stzfix.adb
index 0367994..ea97b13 100644
--- a/gcc/ada/libgnat/a-stzfix.adb
+++ b/gcc/ada/libgnat/a-stzfix.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-stzhas.adb b/gcc/ada/libgnat/a-stzhas.adb
index 77d838b..43abb80 100644
--- a/gcc/ada/libgnat/a-stzhas.adb
+++ b/gcc/ada/libgnat/a-stzhas.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2009-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2009-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-stzmap.adb b/gcc/ada/libgnat/a-stzmap.adb
index 76c4110..2e1cd5d 100644
--- a/gcc/ada/libgnat/a-stzmap.adb
+++ b/gcc/ada/libgnat/a-stzmap.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-stzmap.ads b/gcc/ada/libgnat/a-stzmap.ads
index d0d2a1f..9cfa5ed 100644
--- a/gcc/ada/libgnat/a-stzmap.ads
+++ b/gcc/ada/libgnat/a-stzmap.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-stzsea.adb b/gcc/ada/libgnat/a-stzsea.adb
index 3c800c0..9982b75 100644
--- a/gcc/ada/libgnat/a-stzsea.adb
+++ b/gcc/ada/libgnat/a-stzsea.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-stzsea.ads b/gcc/ada/libgnat/a-stzsea.ads
index 244cfb6..bdd27d5 100644
--- a/gcc/ada/libgnat/a-stzsea.ads
+++ b/gcc/ada/libgnat/a-stzsea.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-stzsup.adb b/gcc/ada/libgnat/a-stzsup.adb
index ad2160a..e4558e5 100644
--- a/gcc/ada/libgnat/a-stzsup.adb
+++ b/gcc/ada/libgnat/a-stzsup.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2003-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2003-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-stzsup.ads b/gcc/ada/libgnat/a-stzsup.ads
index a60ef64..b128010 100644
--- a/gcc/ada/libgnat/a-stzsup.ads
+++ b/gcc/ada/libgnat/a-stzsup.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2003-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2003-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-stzunb.adb b/gcc/ada/libgnat/a-stzunb.adb
index e795826..f32b3ed 100644
--- a/gcc/ada/libgnat/a-stzunb.adb
+++ b/gcc/ada/libgnat/a-stzunb.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-stzunb.ads b/gcc/ada/libgnat/a-stzunb.ads
index 3dc490c9..7ee8a56 100644
--- a/gcc/ada/libgnat/a-stzunb.ads
+++ b/gcc/ada/libgnat/a-stzunb.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-stzunb__shared.adb b/gcc/ada/libgnat/a-stzunb__shared.adb
index f88a4c5..86bed5c 100644
--- a/gcc/ada/libgnat/a-stzunb__shared.adb
+++ b/gcc/ada/libgnat/a-stzunb__shared.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-stzunb__shared.ads b/gcc/ada/libgnat/a-stzunb__shared.ads
index d062d46..5079d63 100644
--- a/gcc/ada/libgnat/a-stzunb__shared.ads
+++ b/gcc/ada/libgnat/a-stzunb__shared.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-suecin.adb b/gcc/ada/libgnat/a-suecin.adb
index 4ea16c2..4336538 100644
--- a/gcc/ada/libgnat/a-suecin.adb
+++ b/gcc/ada/libgnat/a-suecin.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2011-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2011-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-suecin.ads b/gcc/ada/libgnat/a-suecin.ads
index b4085b8..6578191 100644
--- a/gcc/ada/libgnat/a-suecin.ads
+++ b/gcc/ada/libgnat/a-suecin.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2011-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2011-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-suenco.adb b/gcc/ada/libgnat/a-suenco.adb
index 47dee2e..6d30f84 100644
--- a/gcc/ada/libgnat/a-suenco.adb
+++ b/gcc/ada/libgnat/a-suenco.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2010-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2010-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-suenst.adb b/gcc/ada/libgnat/a-suenst.adb
index 12793c4..ff730e8 100644
--- a/gcc/ada/libgnat/a-suenst.adb
+++ b/gcc/ada/libgnat/a-suenst.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2010-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2010-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-suewst.adb b/gcc/ada/libgnat/a-suewst.adb
index ed9817f..25a671a 100644
--- a/gcc/ada/libgnat/a-suewst.adb
+++ b/gcc/ada/libgnat/a-suewst.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2010-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2010-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-suezst.adb b/gcc/ada/libgnat/a-suezst.adb
index bba805f..951a171 100644
--- a/gcc/ada/libgnat/a-suezst.adb
+++ b/gcc/ada/libgnat/a-suezst.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2010-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2010-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-suhcin.adb b/gcc/ada/libgnat/a-suhcin.adb
index f1dc0f7..98de7a1 100644
--- a/gcc/ada/libgnat/a-suhcin.adb
+++ b/gcc/ada/libgnat/a-suhcin.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2011-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2011-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-suhcin.ads b/gcc/ada/libgnat/a-suhcin.ads
index b06655c..20aa236 100644
--- a/gcc/ada/libgnat/a-suhcin.ads
+++ b/gcc/ada/libgnat/a-suhcin.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2011-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2011-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-sulcin.adb b/gcc/ada/libgnat/a-sulcin.adb
index 096b759..10df730 100644
--- a/gcc/ada/libgnat/a-sulcin.adb
+++ b/gcc/ada/libgnat/a-sulcin.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2011-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2011-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-sulcin.ads b/gcc/ada/libgnat/a-sulcin.ads
index 220ffdc9..174ec4b 100644
--- a/gcc/ada/libgnat/a-sulcin.ads
+++ b/gcc/ada/libgnat/a-sulcin.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2011-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2011-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-suteio.adb b/gcc/ada/libgnat/a-suteio.adb
index 4571692..28d8435 100644
--- a/gcc/ada/libgnat/a-suteio.adb
+++ b/gcc/ada/libgnat/a-suteio.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1997-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1997-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-suteio.ads b/gcc/ada/libgnat/a-suteio.ads
index 64d43de..fda5b3c 100644
--- a/gcc/ada/libgnat/a-suteio.ads
+++ b/gcc/ada/libgnat/a-suteio.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1997-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1997-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-suteio__shared.adb b/gcc/ada/libgnat/a-suteio__shared.adb
index 9847757..fc28aaa 100644
--- a/gcc/ada/libgnat/a-suteio__shared.adb
+++ b/gcc/ada/libgnat/a-suteio__shared.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1997-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1997-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-swbwha.adb b/gcc/ada/libgnat/a-swbwha.adb
index 2c1574c..7ad420c 100644
--- a/gcc/ada/libgnat/a-swbwha.adb
+++ b/gcc/ada/libgnat/a-swbwha.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-swmwco.ads b/gcc/ada/libgnat/a-swmwco.ads
index 08eda0d..9e71851 100644
--- a/gcc/ada/libgnat/a-swmwco.ads
+++ b/gcc/ada/libgnat/a-swmwco.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-swunau.adb b/gcc/ada/libgnat/a-swunau.adb
index 59520d8..e77a34c 100644
--- a/gcc/ada/libgnat/a-swunau.adb
+++ b/gcc/ada/libgnat/a-swunau.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-swunau.ads b/gcc/ada/libgnat/a-swunau.ads
index 8160a8f..a2bf6d1 100644
--- a/gcc/ada/libgnat/a-swunau.ads
+++ b/gcc/ada/libgnat/a-swunau.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-swunau__shared.adb b/gcc/ada/libgnat/a-swunau__shared.adb
index 2cd6395..16ffd82 100644
--- a/gcc/ada/libgnat/a-swunau__shared.adb
+++ b/gcc/ada/libgnat/a-swunau__shared.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-swuwha.adb b/gcc/ada/libgnat/a-swuwha.adb
index 935eb47..2ff28b0 100644
--- a/gcc/ada/libgnat/a-swuwha.adb
+++ b/gcc/ada/libgnat/a-swuwha.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-swuwti.adb b/gcc/ada/libgnat/a-swuwti.adb
index df238e5..e664d3d 100644
--- a/gcc/ada/libgnat/a-swuwti.adb
+++ b/gcc/ada/libgnat/a-swuwti.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1997-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1997-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-swuwti.ads b/gcc/ada/libgnat/a-swuwti.ads
index bcf3b20..6eb9e58 100644
--- a/gcc/ada/libgnat/a-swuwti.ads
+++ b/gcc/ada/libgnat/a-swuwti.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1997-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1997-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-swuwti__shared.adb b/gcc/ada/libgnat/a-swuwti__shared.adb
index 4b606b2..96680e2 100644
--- a/gcc/ada/libgnat/a-swuwti__shared.adb
+++ b/gcc/ada/libgnat/a-swuwti__shared.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1997-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1997-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-szbzha.adb b/gcc/ada/libgnat/a-szbzha.adb
index b28689f..e6f6936 100644
--- a/gcc/ada/libgnat/a-szbzha.adb
+++ b/gcc/ada/libgnat/a-szbzha.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-szmzco.ads b/gcc/ada/libgnat/a-szmzco.ads
index ae560cf..eaaf116 100644
--- a/gcc/ada/libgnat/a-szmzco.ads
+++ b/gcc/ada/libgnat/a-szmzco.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-szunau.adb b/gcc/ada/libgnat/a-szunau.adb
index e9b7864..f9c263e 100644
--- a/gcc/ada/libgnat/a-szunau.adb
+++ b/gcc/ada/libgnat/a-szunau.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-szunau.ads b/gcc/ada/libgnat/a-szunau.ads
index d791b8e..2795dbe 100644
--- a/gcc/ada/libgnat/a-szunau.ads
+++ b/gcc/ada/libgnat/a-szunau.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-szunau__shared.adb b/gcc/ada/libgnat/a-szunau__shared.adb
index a46d632..fcd14eb 100644
--- a/gcc/ada/libgnat/a-szunau__shared.adb
+++ b/gcc/ada/libgnat/a-szunau__shared.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-szuzha.adb b/gcc/ada/libgnat/a-szuzha.adb
index 4666bcc..00cad7c 100644
--- a/gcc/ada/libgnat/a-szuzha.adb
+++ b/gcc/ada/libgnat/a-szuzha.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-szuzti.adb b/gcc/ada/libgnat/a-szuzti.adb
index bd42c76..239d319 100644
--- a/gcc/ada/libgnat/a-szuzti.adb
+++ b/gcc/ada/libgnat/a-szuzti.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1997-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1997-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-szuzti.ads b/gcc/ada/libgnat/a-szuzti.ads
index 69d63b4..0e7f1f5 100644
--- a/gcc/ada/libgnat/a-szuzti.ads
+++ b/gcc/ada/libgnat/a-szuzti.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1997-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1997-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-szuzti__shared.adb b/gcc/ada/libgnat/a-szuzti__shared.adb
index 5690294..9f486e2 100644
--- a/gcc/ada/libgnat/a-szuzti__shared.adb
+++ b/gcc/ada/libgnat/a-szuzti__shared.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1997-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1997-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-tags.adb b/gcc/ada/libgnat/a-tags.adb
index 4c99523..798780a 100644
--- a/gcc/ada/libgnat/a-tags.adb
+++ b/gcc/ada/libgnat/a-tags.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -49,10 +49,6 @@ package body Ada.Tags is
-- Local Subprograms --
-----------------------
- function CW_Membership (Obj_Tag : Tag; Typ_Tag : Tag) return Boolean;
- -- Given the tag of an object and the tag associated to a type, return
- -- true if Obj is in Typ'Class.
-
function Get_External_Tag (T : Tag) return System.Address;
-- Returns address of a null terminated string containing the external name
@@ -82,7 +78,6 @@ package body Ada.Tags is
-- Ada 2005 (AI-251): Given a pointer T to a dispatch Table, retrieves the
-- address of the record containing the Select Specific Data in T's TSD.
- pragma Inline_Always (CW_Membership);
pragma Inline_Always (Get_External_Tag);
pragma Inline_Always (Is_Primary_DT);
pragma Inline_Always (OSD);
diff --git a/gcc/ada/libgnat/a-tags.ads b/gcc/ada/libgnat/a-tags.ads
index 8799a31..fb386c3 100644
--- a/gcc/ada/libgnat/a-tags.ads
+++ b/gcc/ada/libgnat/a-tags.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -501,6 +501,10 @@ private
-- dispatch table, return the tagged kind of a type in the context of
-- concurrency and limitedness.
+ function CW_Membership (Obj_Tag : Tag; Typ_Tag : Tag) return Boolean;
+ -- Given the tag of an object and the tag associated to a type, return
+ -- true if Obj is in Typ'Class.
+
function IW_Membership (This : System.Address; T : Tag) return Boolean;
-- Ada 2005 (AI-251): General routine that checks if a given object
-- implements a tagged type. Its common usage is to check if Obj is in
@@ -588,7 +592,7 @@ private
procedure Unregister_Tag (T : Tag);
-- Remove a particular tag from the external tag hash table
- Max_Predef_Prims : constant Positive := 15;
+ Max_Predef_Prims : constant Positive := 16;
-- Number of reserved slots for the following predefined ada primitives:
--
-- 1. Size
@@ -600,12 +604,13 @@ private
-- 7. assignment
-- 8. deep adjust
-- 9. deep finalize
- -- 10. async select
- -- 11. conditional select
- -- 12. prim_op kind
- -- 13. task_id
- -- 14. dispatching requeue
- -- 15. timed select
+ -- 10. Put_Image
+ -- 11. async select
+ -- 12. conditional select
+ -- 13. prim_op kind
+ -- 14. task_id
+ -- 15. dispatching requeue
+ -- 16. timed select
--
-- The compiler checks that the value here is correct
diff --git a/gcc/ada/libgnat/a-teioed.adb b/gcc/ada/libgnat/a-teioed.adb
index ca70075..f3b0928 100644
--- a/gcc/ada/libgnat/a-teioed.adb
+++ b/gcc/ada/libgnat/a-teioed.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-teioed.ads b/gcc/ada/libgnat/a-teioed.ads
index 6f1652f..273291e 100644
--- a/gcc/ada/libgnat/a-teioed.ads
+++ b/gcc/ada/libgnat/a-teioed.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-textio.adb b/gcc/ada/libgnat/a-textio.adb
index 276be12..b36d28b 100644
--- a/gcc/ada/libgnat/a-textio.adb
+++ b/gcc/ada/libgnat/a-textio.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-textio.ads b/gcc/ada/libgnat/a-textio.ads
index a2e1daf..6e5e392 100644
--- a/gcc/ada/libgnat/a-textio.ads
+++ b/gcc/ada/libgnat/a-textio.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -70,7 +70,7 @@ is
-- used in this package and System.File_IO.
for File_Mode use
- (In_File => 0, -- System.FIle_IO.File_Mode'Pos (In_File)
+ (In_File => 0, -- System.File_IO.File_Mode'Pos (In_File)
Out_File => 2, -- System.File_IO.File_Mode'Pos (Out_File)
Append_File => 3); -- System.File_IO.File_Mode'Pos (Append_File)
diff --git a/gcc/ada/libgnat/a-tiboio.adb b/gcc/ada/libgnat/a-tiboio.adb
index bee738e..e212356 100644
--- a/gcc/ada/libgnat/a-tiboio.adb
+++ b/gcc/ada/libgnat/a-tiboio.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1997-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1997-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-ticoau.adb b/gcc/ada/libgnat/a-ticoau.adb
index ad3b4d3..e4f56dd 100644
--- a/gcc/ada/libgnat/a-ticoau.adb
+++ b/gcc/ada/libgnat/a-ticoau.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-ticoau.ads b/gcc/ada/libgnat/a-ticoau.ads
index 01d387c..739dce8 100644
--- a/gcc/ada/libgnat/a-ticoau.ads
+++ b/gcc/ada/libgnat/a-ticoau.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-ticoio.adb b/gcc/ada/libgnat/a-ticoio.adb
index 0758479..fa52b60 100644
--- a/gcc/ada/libgnat/a-ticoio.adb
+++ b/gcc/ada/libgnat/a-ticoio.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-ticoio.ads b/gcc/ada/libgnat/a-ticoio.ads
index 5c37f8f..b0e3d8c 100644
--- a/gcc/ada/libgnat/a-ticoio.ads
+++ b/gcc/ada/libgnat/a-ticoio.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-tideau.adb b/gcc/ada/libgnat/a-tideau.adb
index debaeda..caf77e3 100644
--- a/gcc/ada/libgnat/a-tideau.adb
+++ b/gcc/ada/libgnat/a-tideau.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-tideau.ads b/gcc/ada/libgnat/a-tideau.ads
index 2205ffc..e7d7f44 100644
--- a/gcc/ada/libgnat/a-tideau.ads
+++ b/gcc/ada/libgnat/a-tideau.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-tideio.adb b/gcc/ada/libgnat/a-tideio.adb
index 3497080..0624c2c 100644
--- a/gcc/ada/libgnat/a-tideio.adb
+++ b/gcc/ada/libgnat/a-tideio.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-tideio.ads b/gcc/ada/libgnat/a-tideio.ads
index efe52c5..83e72aa 100644
--- a/gcc/ada/libgnat/a-tideio.ads
+++ b/gcc/ada/libgnat/a-tideio.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-tienau.adb b/gcc/ada/libgnat/a-tienau.adb
index d9cf888..87dce4b 100644
--- a/gcc/ada/libgnat/a-tienau.adb
+++ b/gcc/ada/libgnat/a-tienau.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-tienau.ads b/gcc/ada/libgnat/a-tienau.ads
index 236d05f..27b15c1 100644
--- a/gcc/ada/libgnat/a-tienau.ads
+++ b/gcc/ada/libgnat/a-tienau.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-tienio.adb b/gcc/ada/libgnat/a-tienio.adb
index 55c87f3..adc93db 100644
--- a/gcc/ada/libgnat/a-tienio.adb
+++ b/gcc/ada/libgnat/a-tienio.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-tifiio.adb b/gcc/ada/libgnat/a-tifiio.adb
index d048646..4098f0e 100644
--- a/gcc/ada/libgnat/a-tifiio.adb
+++ b/gcc/ada/libgnat/a-tifiio.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-tiflau.adb b/gcc/ada/libgnat/a-tiflau.adb
index d3ef65c..214b5c8 100644
--- a/gcc/ada/libgnat/a-tiflau.adb
+++ b/gcc/ada/libgnat/a-tiflau.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -194,7 +194,7 @@ package body Ada.Text_IO.Float_Aux is
Aft : Field;
Exp : Field)
is
- Buf : String (1 .. 3 * Field'Last + 2);
+ Buf : String (1 .. Max_Real_Image_Length);
Ptr : Natural := 0;
begin
@@ -212,7 +212,7 @@ package body Ada.Text_IO.Float_Aux is
Aft : Field;
Exp : Field)
is
- Buf : String (1 .. 3 * Field'Last + 2);
+ Buf : String (1 .. Max_Real_Image_Length);
Ptr : Natural := 0;
begin
diff --git a/gcc/ada/libgnat/a-tiflau.ads b/gcc/ada/libgnat/a-tiflau.ads
index 558df2e..68ac9eb 100644
--- a/gcc/ada/libgnat/a-tiflau.ads
+++ b/gcc/ada/libgnat/a-tiflau.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-tiflio.adb b/gcc/ada/libgnat/a-tiflio.adb
index 23d31f7..0daa044 100644
--- a/gcc/ada/libgnat/a-tiflio.adb
+++ b/gcc/ada/libgnat/a-tiflio.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-tiflio.ads b/gcc/ada/libgnat/a-tiflio.ads
index 16e65a5..bd4c64f64 100644
--- a/gcc/ada/libgnat/a-tiflio.ads
+++ b/gcc/ada/libgnat/a-tiflio.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-tigeau.adb b/gcc/ada/libgnat/a-tigeau.adb
index 462058c9..c7f719a 100644
--- a/gcc/ada/libgnat/a-tigeau.adb
+++ b/gcc/ada/libgnat/a-tigeau.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-tigeau.ads b/gcc/ada/libgnat/a-tigeau.ads
index 90ccb72..32b5fe3 100644
--- a/gcc/ada/libgnat/a-tigeau.ads
+++ b/gcc/ada/libgnat/a-tigeau.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-tigeli.adb b/gcc/ada/libgnat/a-tigeli.adb
index 4562ca9..3dad18b 100644
--- a/gcc/ada/libgnat/a-tigeli.adb
+++ b/gcc/ada/libgnat/a-tigeli.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-tiinau.adb b/gcc/ada/libgnat/a-tiinau.adb
index 8fe2f75..d09b456 100644
--- a/gcc/ada/libgnat/a-tiinau.adb
+++ b/gcc/ada/libgnat/a-tiinau.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-tiinau.ads b/gcc/ada/libgnat/a-tiinau.ads
index fd5ffb4..fda5b68 100644
--- a/gcc/ada/libgnat/a-tiinau.ads
+++ b/gcc/ada/libgnat/a-tiinau.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-tiinio.adb b/gcc/ada/libgnat/a-tiinio.adb
index a62f925..c71b4bf 100644
--- a/gcc/ada/libgnat/a-tiinio.adb
+++ b/gcc/ada/libgnat/a-tiinio.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-tiinio.ads b/gcc/ada/libgnat/a-tiinio.ads
index 28f8d54..2998764 100644
--- a/gcc/ada/libgnat/a-tiinio.ads
+++ b/gcc/ada/libgnat/a-tiinio.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-timoau.adb b/gcc/ada/libgnat/a-timoau.adb
index d42a18c..050b9c8 100644
--- a/gcc/ada/libgnat/a-timoau.adb
+++ b/gcc/ada/libgnat/a-timoau.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-timoau.ads b/gcc/ada/libgnat/a-timoau.ads
index 973fb75..247eb14 100644
--- a/gcc/ada/libgnat/a-timoau.ads
+++ b/gcc/ada/libgnat/a-timoau.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-timoio.adb b/gcc/ada/libgnat/a-timoio.adb
index d6e9c95..0cdeef1 100644
--- a/gcc/ada/libgnat/a-timoio.adb
+++ b/gcc/ada/libgnat/a-timoio.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-timoio.ads b/gcc/ada/libgnat/a-timoio.ads
index 2d1ab91..aa1de6b 100644
--- a/gcc/ada/libgnat/a-timoio.ads
+++ b/gcc/ada/libgnat/a-timoio.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1993-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1993-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-tiocst.adb b/gcc/ada/libgnat/a-tiocst.adb
index 0051235..aea0995 100644
--- a/gcc/ada/libgnat/a-tiocst.adb
+++ b/gcc/ada/libgnat/a-tiocst.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-tiocst.ads b/gcc/ada/libgnat/a-tiocst.ads
index 0f678dd..0f4f8a5 100644
--- a/gcc/ada/libgnat/a-tiocst.ads
+++ b/gcc/ada/libgnat/a-tiocst.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-tirsfi.adb b/gcc/ada/libgnat/a-tirsfi.adb
index 4fe3bc7..a5d217c 100644
--- a/gcc/ada/libgnat/a-tirsfi.adb
+++ b/gcc/ada/libgnat/a-tirsfi.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2009-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2009-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-tirsfi.ads b/gcc/ada/libgnat/a-tirsfi.ads
index 2ce7e59..e3f8caa 100644
--- a/gcc/ada/libgnat/a-tirsfi.ads
+++ b/gcc/ada/libgnat/a-tirsfi.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2009-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2009-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-titest.adb b/gcc/ada/libgnat/a-titest.adb
index 3d03981..e0d13dc 100644
--- a/gcc/ada/libgnat/a-titest.adb
+++ b/gcc/ada/libgnat/a-titest.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-undesu.adb b/gcc/ada/libgnat/a-undesu.adb
index 5bcbd00..8fd8a77 100644
--- a/gcc/ada/libgnat/a-undesu.adb
+++ b/gcc/ada/libgnat/a-undesu.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2011-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2011-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-wichha.adb b/gcc/ada/libgnat/a-wichha.adb
index 3c01a2d..feccc23 100644
--- a/gcc/ada/libgnat/a-wichha.adb
+++ b/gcc/ada/libgnat/a-wichha.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2010-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2010-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -51,6 +51,13 @@ package body Ada.Wide_Characters.Handling is
return Is_Letter (Item) or else Is_Digit (Item);
end Is_Alphanumeric;
+ --------------
+ -- Is_Basic --
+ --------------
+
+ function Is_Basic (Item : Wide_Character) return Boolean
+ renames Ada.Wide_Characters.Unicode.Is_Basic;
+
----------------
-- Is_Control --
----------------
@@ -117,6 +124,13 @@ package body Ada.Wide_Characters.Handling is
function Is_Mark (Item : Wide_Character) return Boolean
renames Ada.Wide_Characters.Unicode.Is_Mark;
+ -------------
+ -- Is_NFKC --
+ -------------
+
+ function Is_NFKC (Item : Wide_Character) return Boolean
+ renames Ada.Wide_Characters.Unicode.Is_NFKC;
+
---------------------
-- Is_Other_Format --
---------------------
@@ -192,4 +206,22 @@ package body Ada.Wide_Characters.Handling is
return Result;
end To_Upper;
+ --------------
+ -- To_Basic --
+ --------------
+
+ function To_Basic (Item : Wide_Character) return Wide_Character
+ renames Ada.Wide_Characters.Unicode.To_Basic;
+
+ function To_Basic (Item : Wide_String) return Wide_String is
+ Result : Wide_String (Item'Range);
+
+ begin
+ for J in Result'Range loop
+ Result (J) := To_Basic (Item (J));
+ end loop;
+
+ return Result;
+ end To_Basic;
+
end Ada.Wide_Characters.Handling;
diff --git a/gcc/ada/libgnat/a-wichha.ads b/gcc/ada/libgnat/a-wichha.ads
index a906e02..23eb468 100644
--- a/gcc/ada/libgnat/a-wichha.ads
+++ b/gcc/ada/libgnat/a-wichha.ads
@@ -43,6 +43,12 @@ package Ada.Wide_Characters.Handling is
-- Returns True if the Wide_Character designated by Item is categorized as
-- letter_uppercase, otherwise returns False.
+ function Is_Basic (Item : Wide_Character) return Boolean;
+ pragma Inline (Is_Basic);
+ -- Returns True if the Wide_Character designated by Item has no
+ -- Decomposition Mapping in the code charts of ISO/IEC 10646:2017,
+ -- otherwise returns False.
+
function Is_Digit (Item : Wide_Character) return Boolean;
pragma Inline (Is_Digit);
-- Returns True if the Wide_Character designated by Item is categorized as
@@ -95,6 +101,12 @@ package Ada.Wide_Characters.Handling is
-- Returns True if the Wide_Character designated by Item is categorized as
-- separator_space, otherwise returns False.
+ function Is_NFKC (Item : Wide_Character) return Boolean;
+ pragma Inline (Is_NFKC);
+ -- Returns True if the Wide_Character designated by Item could be present
+ -- in a string normalized to Normalization Form KC (as defined by Clause
+ -- 21 of ISO/IEC 10646:2017), otherwise returns False.
+
function Is_Graphic (Item : Wide_Character) return Boolean;
pragma Inline (Is_Graphic);
-- Returns True if the Wide_Character designated by Item is categorized as
@@ -124,4 +136,16 @@ package Ada.Wide_Characters.Handling is
-- by Item. The result is the null Wide_String if the value of the formal
-- parameter is the null Wide_String.
+ function To_Basic (Item : Wide_Character) return Wide_Character;
+ pragma Inline (To_Basic);
+ -- Returns the Wide_Character whose code point is given by the first value
+ -- of its Decomposition Mapping in the code charts of ISO/IEC 10646:2017 if
+ -- any, returns Item otherwise.
+
+ function To_Basic (Item : Wide_String) return Wide_String;
+ -- Returns the result of applying the To_Basic conversion to each
+ -- Wide_Character element of the Wide_String designated by Item. The result
+ -- is the null Wide_String if the value of the formal parameter is the null
+ -- Wide_String. The lower bound of the result Wide_String is 1.
+
end Ada.Wide_Characters.Handling;
diff --git a/gcc/ada/libgnat/a-wichun.adb b/gcc/ada/libgnat/a-wichun.adb
index 75880ab..09cbad2 100644
--- a/gcc/ada/libgnat/a-wichun.adb
+++ b/gcc/ada/libgnat/a-wichun.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2005-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2005-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -43,6 +43,15 @@ package body Ada.Wide_Characters.Unicode is
end Get_Category;
--------------
+ -- Is_Basic --
+ --------------
+
+ function Is_Basic (U : Wide_Character) return Boolean is
+ begin
+ return G.Is_UTF_32_Basic (Wide_Character'Pos (U));
+ end Is_Basic;
+
+ --------------
-- Is_Digit --
--------------
@@ -107,6 +116,15 @@ package body Ada.Wide_Characters.Unicode is
return G.Is_UTF_32_Non_Graphic (G.Category (C));
end Is_Non_Graphic;
+ -------------
+ -- Is_NFKC --
+ -------------
+
+ function Is_NFKC (U : Wide_Character) return Boolean is
+ begin
+ return G.Is_UTF_32_NFKC (Wide_Character'Pos (U));
+ end Is_NFKC;
+
--------------
-- Is_Other --
--------------
@@ -149,26 +167,30 @@ package body Ada.Wide_Characters.Unicode is
return G.Is_UTF_32_Space (G.Category (C));
end Is_Space;
+ --------------
+ -- To_Basic --
+ --------------
+
+ function To_Basic (U : Wide_Character) return Wide_Character is
+ begin
+ return Wide_Character'Val (G.UTF_32_To_Basic (Wide_Character'Pos (U)));
+ end To_Basic;
+
-------------------
-- To_Lower_Case --
-------------------
- function To_Lower_Case
- (U : Wide_Character) return Wide_Character
- is
+ function To_Lower_Case (U : Wide_Character) return Wide_Character is
begin
return
- Wide_Character'Val
- (G.UTF_32_To_Lower_Case (Wide_Character'Pos (U)));
+ Wide_Character'Val (G.UTF_32_To_Lower_Case (Wide_Character'Pos (U)));
end To_Lower_Case;
-------------------
-- To_Upper_Case --
-------------------
- function To_Upper_Case
- (U : Wide_Character) return Wide_Character
- is
+ function To_Upper_Case (U : Wide_Character) return Wide_Character is
begin
return
Wide_Character'Val
diff --git a/gcc/ada/libgnat/a-wichun.ads b/gcc/ada/libgnat/a-wichun.ads
index 7a9f597..9e42749 100644
--- a/gcc/ada/libgnat/a-wichun.ads
+++ b/gcc/ada/libgnat/a-wichun.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2005-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2005-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -131,7 +131,7 @@ package Ada.Wide_Characters.Unicode is
pragma Inline (Is_Other);
-- Returns true iff U is an other format character, which means that it
-- can be used to extend an identifier, but is ignored for the purposes of
- -- matching of identiers, or if C is one of the corresponding categories,
+ -- matching of identifiers, or if C is one of the corresponding categories,
-- which are the following:
-- Other, Format (Cf)
@@ -150,6 +150,12 @@ package Ada.Wide_Characters.Unicode is
-- of the corresponding categories, which are the following:
-- Separator, Space (Zs)
+ function Is_NFKC (U : Wide_Character) return Boolean;
+ pragma Inline (Is_NFKC);
+ -- Returns True if the Wide_Character designated by U could be present
+ -- in a string normalized to Normalization Form KC (as defined by Clause
+ -- 21 of ISO/IEC 10646:2017), otherwise returns False.
+
function Is_Non_Graphic (U : Wide_Character) return Boolean;
function Is_Non_Graphic (C : Category) return Boolean;
pragma Inline (Is_Non_Graphic);
@@ -174,6 +180,18 @@ package Ada.Wide_Characters.Unicode is
-- in the list of categories above. This means that these characters can
-- be included in character and string literals.
+ function Is_Basic (U : Wide_Character) return Boolean;
+ pragma Inline (Is_Basic);
+ -- Returns True if the Wide_Character designated by Item has no
+ -- Decomposition Mapping in the code charts of ISO/IEC 10646:2017,
+ -- otherwise returns False.
+
+ function To_Basic (U : Wide_Character) return Wide_Character;
+ pragma Inline (To_Basic);
+ -- Returns the Wide_Character whose code point is given by the first value
+ -- of its Decomposition Mapping in the code charts of ISO/IEC 10646:2017 if
+ -- any, returns Item otherwise.
+
-- The following function is used to fold to upper case, as required by
-- the Ada 2005 standard rules for identifier case folding. Two
-- identifiers are equivalent if they are identical after folding all
diff --git a/gcc/ada/libgnat/a-witeio.adb b/gcc/ada/libgnat/a-witeio.adb
index ef97f3d..6bc3f48 100644
--- a/gcc/ada/libgnat/a-witeio.adb
+++ b/gcc/ada/libgnat/a-witeio.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-witeio.ads b/gcc/ada/libgnat/a-witeio.ads
index c34f290..9dcfda0 100644
--- a/gcc/ada/libgnat/a-witeio.ads
+++ b/gcc/ada/libgnat/a-witeio.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-wrstfi.adb b/gcc/ada/libgnat/a-wrstfi.adb
index 7c5f460..95e66ba 100644
--- a/gcc/ada/libgnat/a-wrstfi.adb
+++ b/gcc/ada/libgnat/a-wrstfi.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2009-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2009-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-wrstfi.ads b/gcc/ada/libgnat/a-wrstfi.ads
index fdd40c6..e8bf4d1 100644
--- a/gcc/ada/libgnat/a-wrstfi.ads
+++ b/gcc/ada/libgnat/a-wrstfi.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2009-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2009-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-wtcoau.adb b/gcc/ada/libgnat/a-wtcoau.adb
index cf5946f..a60336b 100644
--- a/gcc/ada/libgnat/a-wtcoau.adb
+++ b/gcc/ada/libgnat/a-wtcoau.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-wtcoau.ads b/gcc/ada/libgnat/a-wtcoau.ads
index af75a99..781dd8d 100644
--- a/gcc/ada/libgnat/a-wtcoau.ads
+++ b/gcc/ada/libgnat/a-wtcoau.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-wtcoio.adb b/gcc/ada/libgnat/a-wtcoio.adb
index 228d66a..c1c3b94 100644
--- a/gcc/ada/libgnat/a-wtcoio.adb
+++ b/gcc/ada/libgnat/a-wtcoio.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-wtcstr.adb b/gcc/ada/libgnat/a-wtcstr.adb
index ddcc8f3..c039677 100644
--- a/gcc/ada/libgnat/a-wtcstr.adb
+++ b/gcc/ada/libgnat/a-wtcstr.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-wtcstr.ads b/gcc/ada/libgnat/a-wtcstr.ads
index 73b5ecc..414a5e9 100644
--- a/gcc/ada/libgnat/a-wtcstr.ads
+++ b/gcc/ada/libgnat/a-wtcstr.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-wtdeau.adb b/gcc/ada/libgnat/a-wtdeau.adb
index 36b9a71..7bfc613 100644
--- a/gcc/ada/libgnat/a-wtdeau.adb
+++ b/gcc/ada/libgnat/a-wtdeau.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-wtdeau.ads b/gcc/ada/libgnat/a-wtdeau.ads
index a3dcaa9..0465455 100644
--- a/gcc/ada/libgnat/a-wtdeau.ads
+++ b/gcc/ada/libgnat/a-wtdeau.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-wtdeio.adb b/gcc/ada/libgnat/a-wtdeio.adb
index 5d2f91d..845a217 100644
--- a/gcc/ada/libgnat/a-wtdeio.adb
+++ b/gcc/ada/libgnat/a-wtdeio.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-wtedit.adb b/gcc/ada/libgnat/a-wtedit.adb
index 42cecb7..e8a4b57 100644
--- a/gcc/ada/libgnat/a-wtedit.adb
+++ b/gcc/ada/libgnat/a-wtedit.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-wtedit.ads b/gcc/ada/libgnat/a-wtedit.ads
index b0e1c7e..4d74578 100644
--- a/gcc/ada/libgnat/a-wtedit.ads
+++ b/gcc/ada/libgnat/a-wtedit.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-wtenau.adb b/gcc/ada/libgnat/a-wtenau.adb
index 939d5a4..3fb6f76 100644
--- a/gcc/ada/libgnat/a-wtenau.adb
+++ b/gcc/ada/libgnat/a-wtenau.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-wtenau.ads b/gcc/ada/libgnat/a-wtenau.ads
index efa09a2..b9b7566 100644
--- a/gcc/ada/libgnat/a-wtenau.ads
+++ b/gcc/ada/libgnat/a-wtenau.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-wtenio.adb b/gcc/ada/libgnat/a-wtenio.adb
index e9ec829..ee500f9 100644
--- a/gcc/ada/libgnat/a-wtenio.adb
+++ b/gcc/ada/libgnat/a-wtenio.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-wtfiio.adb b/gcc/ada/libgnat/a-wtfiio.adb
index c9e7a38..f70c8e4 100644
--- a/gcc/ada/libgnat/a-wtfiio.adb
+++ b/gcc/ada/libgnat/a-wtfiio.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-wtflau.adb b/gcc/ada/libgnat/a-wtflau.adb
index 0011e52..fd9ff1a 100644
--- a/gcc/ada/libgnat/a-wtflau.adb
+++ b/gcc/ada/libgnat/a-wtflau.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-wtflau.ads b/gcc/ada/libgnat/a-wtflau.ads
index db1032c..3598f77 100644
--- a/gcc/ada/libgnat/a-wtflau.ads
+++ b/gcc/ada/libgnat/a-wtflau.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-wtflio.adb b/gcc/ada/libgnat/a-wtflio.adb
index 98542e3..5a36d88 100644
--- a/gcc/ada/libgnat/a-wtflio.adb
+++ b/gcc/ada/libgnat/a-wtflio.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-wtgeau.adb b/gcc/ada/libgnat/a-wtgeau.adb
index f271daf..45eef92 100644
--- a/gcc/ada/libgnat/a-wtgeau.adb
+++ b/gcc/ada/libgnat/a-wtgeau.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-wtgeau.ads b/gcc/ada/libgnat/a-wtgeau.ads
index fa9b2e2..ba8509b 100644
--- a/gcc/ada/libgnat/a-wtgeau.ads
+++ b/gcc/ada/libgnat/a-wtgeau.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-wtinau.adb b/gcc/ada/libgnat/a-wtinau.adb
index 1fe968e..53e8163 100644
--- a/gcc/ada/libgnat/a-wtinau.adb
+++ b/gcc/ada/libgnat/a-wtinau.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-wtinau.ads b/gcc/ada/libgnat/a-wtinau.ads
index bec6e03..691a877 100644
--- a/gcc/ada/libgnat/a-wtinau.ads
+++ b/gcc/ada/libgnat/a-wtinau.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-wtinio.adb b/gcc/ada/libgnat/a-wtinio.adb
index cb0dde0..bc03227 100644
--- a/gcc/ada/libgnat/a-wtinio.adb
+++ b/gcc/ada/libgnat/a-wtinio.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-wtmoau.adb b/gcc/ada/libgnat/a-wtmoau.adb
index 12dd532..9039798 100644
--- a/gcc/ada/libgnat/a-wtmoau.adb
+++ b/gcc/ada/libgnat/a-wtmoau.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-wtmoau.ads b/gcc/ada/libgnat/a-wtmoau.ads
index e89bb5b..9fe444e 100644
--- a/gcc/ada/libgnat/a-wtmoau.ads
+++ b/gcc/ada/libgnat/a-wtmoau.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-wtmoio.adb b/gcc/ada/libgnat/a-wtmoio.adb
index ec82562..629f95d 100644
--- a/gcc/ada/libgnat/a-wtmoio.adb
+++ b/gcc/ada/libgnat/a-wtmoio.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-wtmoio.ads b/gcc/ada/libgnat/a-wtmoio.ads
index 68f7ff7..b28aacd 100644
--- a/gcc/ada/libgnat/a-wtmoio.ads
+++ b/gcc/ada/libgnat/a-wtmoio.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. In accordance with the copyright of that document, you can freely --
diff --git a/gcc/ada/libgnat/a-wttest.adb b/gcc/ada/libgnat/a-wttest.adb
index cf5f0d9..01b6688 100644
--- a/gcc/ada/libgnat/a-wttest.adb
+++ b/gcc/ada/libgnat/a-wttest.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-wwboio.adb b/gcc/ada/libgnat/a-wwboio.adb
index 7b73357..4602596 100644
--- a/gcc/ada/libgnat/a-wwboio.adb
+++ b/gcc/ada/libgnat/a-wwboio.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1997-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1997-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-zchhan.adb b/gcc/ada/libgnat/a-zchhan.adb
index 7acd07d..6930121 100644
--- a/gcc/ada/libgnat/a-zchhan.adb
+++ b/gcc/ada/libgnat/a-zchhan.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2010-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2010-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -108,6 +108,13 @@ package body Ada.Wide_Wide_Characters.Handling is
function Is_Mark (Item : Wide_Wide_Character) return Boolean
renames Ada.Wide_Wide_Characters.Unicode.Is_Mark;
+ -------------
+ -- Is_NFKC --
+ -------------
+
+ function Is_NFKC (Item : Wide_Wide_Character) return Boolean
+ renames Ada.Wide_Wide_Characters.Unicode.Is_NFKC;
+
---------------------
-- Is_Other_Format --
---------------------
diff --git a/gcc/ada/libgnat/a-zchhan.ads b/gcc/ada/libgnat/a-zchhan.ads
index 354452b..74fab2a 100644
--- a/gcc/ada/libgnat/a-zchhan.ads
+++ b/gcc/ada/libgnat/a-zchhan.ads
@@ -98,6 +98,12 @@ package Ada.Wide_Wide_Characters.Handling is
-- Returns True if the Wide_Wide_Character designated by Item is
-- categorized as separator_space, otherwise returns false.
+ function Is_NFKC (Item : Wide_Wide_Character) return Boolean;
+ pragma Inline (Is_NFKC);
+ -- Returns True if the Wide_Wide_Character designated by Item could be
+ -- present in a string normalized to Normalization Form KC (as defined by
+ -- Clause 21 of ISO/IEC 10646:2017), otherwise returns False.
+
function Is_Graphic (Item : Wide_Wide_Character) return Boolean;
pragma Inline (Is_Graphic);
-- Returns True if the Wide_Wide_Character designated by Item is
diff --git a/gcc/ada/libgnat/a-zchuni.adb b/gcc/ada/libgnat/a-zchuni.adb
index e938156..203c3aa 100644
--- a/gcc/ada/libgnat/a-zchuni.adb
+++ b/gcc/ada/libgnat/a-zchuni.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2005-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2005-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -107,6 +107,15 @@ package body Ada.Wide_Wide_Characters.Unicode is
return G.Is_UTF_32_Non_Graphic (G.Category (C));
end Is_Non_Graphic;
+ -------------
+ -- Is_NFKC --
+ -------------
+
+ function Is_NFKC (U : Wide_Wide_Character) return Boolean is
+ begin
+ return G.Is_UTF_32_NFKC (Wide_Wide_Character'Pos (U));
+ end Is_NFKC;
+
--------------
-- Is_Other --
--------------
diff --git a/gcc/ada/libgnat/a-zchuni.ads b/gcc/ada/libgnat/a-zchuni.ads
index 9b18702..7f4a30b 100644
--- a/gcc/ada/libgnat/a-zchuni.ads
+++ b/gcc/ada/libgnat/a-zchuni.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2005-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2005-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -147,6 +147,12 @@ package Ada.Wide_Wide_Characters.Unicode is
-- of the corresponding categories, which are the following:
-- Separator, Space (Zs)
+ function Is_NFKC (U : Wide_Wide_Character) return Boolean;
+ pragma Inline (Is_NFKC);
+ -- Returns True if the Wide_Wide_Character designated by U could be present
+ -- in a string normalized to Normalization Form KC (as defined by Clause
+ -- 21 of ISO/IEC 10646:2017), otherwise returns False.
+
function Is_Non_Graphic (U : Wide_Wide_Character) return Boolean;
function Is_Non_Graphic (C : Category) return Boolean;
pragma Inline (Is_Non_Graphic);
diff --git a/gcc/ada/libgnat/a-zrstfi.adb b/gcc/ada/libgnat/a-zrstfi.adb
index e38be0a..aa73032 100644
--- a/gcc/ada/libgnat/a-zrstfi.adb
+++ b/gcc/ada/libgnat/a-zrstfi.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2009-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2009-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-zrstfi.ads b/gcc/ada/libgnat/a-zrstfi.ads
index 6b6b4f8..86a6fc5 100644
--- a/gcc/ada/libgnat/a-zrstfi.ads
+++ b/gcc/ada/libgnat/a-zrstfi.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2009-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2009-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-ztcoau.adb b/gcc/ada/libgnat/a-ztcoau.adb
index d160957..ffe0a90 100644
--- a/gcc/ada/libgnat/a-ztcoau.adb
+++ b/gcc/ada/libgnat/a-ztcoau.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-ztcoio.adb b/gcc/ada/libgnat/a-ztcoio.adb
index 7d1f103..ead1234 100644
--- a/gcc/ada/libgnat/a-ztcoio.adb
+++ b/gcc/ada/libgnat/a-ztcoio.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-ztcstr.adb b/gcc/ada/libgnat/a-ztcstr.adb
index 114a2f4..8ce9d66 100644
--- a/gcc/ada/libgnat/a-ztcstr.adb
+++ b/gcc/ada/libgnat/a-ztcstr.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-ztcstr.ads b/gcc/ada/libgnat/a-ztcstr.ads
index 2405a8e..80c30fc 100644
--- a/gcc/ada/libgnat/a-ztcstr.ads
+++ b/gcc/ada/libgnat/a-ztcstr.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-ztdeau.adb b/gcc/ada/libgnat/a-ztdeau.adb
index 684fdd3..3daff0f 100644
--- a/gcc/ada/libgnat/a-ztdeau.adb
+++ b/gcc/ada/libgnat/a-ztdeau.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-ztdeau.ads b/gcc/ada/libgnat/a-ztdeau.ads
index 412e1a0..b493b80 100644
--- a/gcc/ada/libgnat/a-ztdeau.ads
+++ b/gcc/ada/libgnat/a-ztdeau.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-ztdeio.adb b/gcc/ada/libgnat/a-ztdeio.adb
index 8e0dce2..3655386 100644
--- a/gcc/ada/libgnat/a-ztdeio.adb
+++ b/gcc/ada/libgnat/a-ztdeio.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-ztedit.adb b/gcc/ada/libgnat/a-ztedit.adb
index 328dc74..a23074d 100644
--- a/gcc/ada/libgnat/a-ztedit.adb
+++ b/gcc/ada/libgnat/a-ztedit.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-ztedit.ads b/gcc/ada/libgnat/a-ztedit.ads
index 4d18e86..54cd24a 100644
--- a/gcc/ada/libgnat/a-ztedit.ads
+++ b/gcc/ada/libgnat/a-ztedit.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-ztenau.adb b/gcc/ada/libgnat/a-ztenau.adb
index e9f8461..f985d52d 100644
--- a/gcc/ada/libgnat/a-ztenau.adb
+++ b/gcc/ada/libgnat/a-ztenau.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-ztenau.ads b/gcc/ada/libgnat/a-ztenau.ads
index 9148029..dd31182 100644
--- a/gcc/ada/libgnat/a-ztenau.ads
+++ b/gcc/ada/libgnat/a-ztenau.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-ztenio.adb b/gcc/ada/libgnat/a-ztenio.adb
index 202e198..5a61874 100644
--- a/gcc/ada/libgnat/a-ztenio.adb
+++ b/gcc/ada/libgnat/a-ztenio.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-ztexio.adb b/gcc/ada/libgnat/a-ztexio.adb
index 0a4c7a8..dcd6f9e 100644
--- a/gcc/ada/libgnat/a-ztexio.adb
+++ b/gcc/ada/libgnat/a-ztexio.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-ztexio.ads b/gcc/ada/libgnat/a-ztexio.ads
index e16a175..85ea6b5 100644
--- a/gcc/ada/libgnat/a-ztexio.ads
+++ b/gcc/ada/libgnat/a-ztexio.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/a-ztfiio.adb b/gcc/ada/libgnat/a-ztfiio.adb
index 3451197..7c0c95d 100644
--- a/gcc/ada/libgnat/a-ztfiio.adb
+++ b/gcc/ada/libgnat/a-ztfiio.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-ztflau.adb b/gcc/ada/libgnat/a-ztflau.adb
index c71bcaf..c0c55ba 100644
--- a/gcc/ada/libgnat/a-ztflau.adb
+++ b/gcc/ada/libgnat/a-ztflau.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-ztflau.ads b/gcc/ada/libgnat/a-ztflau.ads
index 825cb95..dc24682 100644
--- a/gcc/ada/libgnat/a-ztflau.ads
+++ b/gcc/ada/libgnat/a-ztflau.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-ztflio.adb b/gcc/ada/libgnat/a-ztflio.adb
index 8d16ffc..fd6bf52 100644
--- a/gcc/ada/libgnat/a-ztflio.adb
+++ b/gcc/ada/libgnat/a-ztflio.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-ztgeau.adb b/gcc/ada/libgnat/a-ztgeau.adb
index 02ee1bf..dbd8926 100644
--- a/gcc/ada/libgnat/a-ztgeau.adb
+++ b/gcc/ada/libgnat/a-ztgeau.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-ztgeau.ads b/gcc/ada/libgnat/a-ztgeau.ads
index 2b3ee11..2c5c306 100644
--- a/gcc/ada/libgnat/a-ztgeau.ads
+++ b/gcc/ada/libgnat/a-ztgeau.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-ztinau.adb b/gcc/ada/libgnat/a-ztinau.adb
index a39056b..e7e290e 100644
--- a/gcc/ada/libgnat/a-ztinau.adb
+++ b/gcc/ada/libgnat/a-ztinau.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-ztinau.ads b/gcc/ada/libgnat/a-ztinau.ads
index ea01d11..49eb3c5 100644
--- a/gcc/ada/libgnat/a-ztinau.ads
+++ b/gcc/ada/libgnat/a-ztinau.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-ztinio.adb b/gcc/ada/libgnat/a-ztinio.adb
index 9607cb1..c0726ce 100644
--- a/gcc/ada/libgnat/a-ztinio.adb
+++ b/gcc/ada/libgnat/a-ztinio.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-ztmoau.adb b/gcc/ada/libgnat/a-ztmoau.adb
index 1cc2a24..2f179e2 100644
--- a/gcc/ada/libgnat/a-ztmoau.adb
+++ b/gcc/ada/libgnat/a-ztmoau.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-ztmoau.ads b/gcc/ada/libgnat/a-ztmoau.ads
index 46454ff..9d53154 100644
--- a/gcc/ada/libgnat/a-ztmoau.ads
+++ b/gcc/ada/libgnat/a-ztmoau.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-ztmoio.adb b/gcc/ada/libgnat/a-ztmoio.adb
index 1675c4f..bf9d42b 100644
--- a/gcc/ada/libgnat/a-ztmoio.adb
+++ b/gcc/ada/libgnat/a-ztmoio.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-zttest.adb b/gcc/ada/libgnat/a-zttest.adb
index fee4974..71004bb 100644
--- a/gcc/ada/libgnat/a-zttest.adb
+++ b/gcc/ada/libgnat/a-zttest.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/a-zzboio.adb b/gcc/ada/libgnat/a-zzboio.adb
index 5b22b72..a41aadc 100644
--- a/gcc/ada/libgnat/a-zzboio.adb
+++ b/gcc/ada/libgnat/a-zzboio.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1997-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1997-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-allein.ads b/gcc/ada/libgnat/g-allein.ads
index a29fc67..ab23380 100644
--- a/gcc/ada/libgnat/g-allein.ads
+++ b/gcc/ada/libgnat/g-allein.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-alleve.adb b/gcc/ada/libgnat/g-alleve.adb
index 7bd9194..a3aa5b6 100644
--- a/gcc/ada/libgnat/g-alleve.adb
+++ b/gcc/ada/libgnat/g-alleve.adb
@@ -7,7 +7,7 @@
-- B o d y --
-- (Soft Binding Version) --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-alleve.ads b/gcc/ada/libgnat/g-alleve.ads
index 73100f4..3c39b11 100644
--- a/gcc/ada/libgnat/g-alleve.ads
+++ b/gcc/ada/libgnat/g-alleve.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (Soft Binding Version) --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-alleve__hard.adb b/gcc/ada/libgnat/g-alleve__hard.adb
index caf4366..7934091 100644
--- a/gcc/ada/libgnat/g-alleve__hard.adb
+++ b/gcc/ada/libgnat/g-alleve__hard.adb
@@ -7,7 +7,7 @@
-- B o d y --
-- (Hard Binding Version) --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-alleve__hard.ads b/gcc/ada/libgnat/g-alleve__hard.ads
index d4306ee..318f72d 100644
--- a/gcc/ada/libgnat/g-alleve__hard.ads
+++ b/gcc/ada/libgnat/g-alleve__hard.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (Hard Binding Version) --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-altcon.adb b/gcc/ada/libgnat/g-altcon.adb
index 9fe4dcc..589ba6c 100644
--- a/gcc/ada/libgnat/g-altcon.adb
+++ b/gcc/ada/libgnat/g-altcon.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2005-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2005-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-altcon.ads b/gcc/ada/libgnat/g-altcon.ads
index 5a6faed..173d0d0 100644
--- a/gcc/ada/libgnat/g-altcon.ads
+++ b/gcc/ada/libgnat/g-altcon.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2009-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2009-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-altive.ads b/gcc/ada/libgnat/g-altive.ads
index a77a60d..455ebe7 100644
--- a/gcc/ada/libgnat/g-altive.ads
+++ b/gcc/ada/libgnat/g-altive.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-alveop.adb b/gcc/ada/libgnat/g-alveop.adb
index cb36031..b889778 100644
--- a/gcc/ada/libgnat/g-alveop.adb
+++ b/gcc/ada/libgnat/g-alveop.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-alveop.ads b/gcc/ada/libgnat/g-alveop.ads
index a7e0f26..644b3c4 100644
--- a/gcc/ada/libgnat/g-alveop.ads
+++ b/gcc/ada/libgnat/g-alveop.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-alvety.ads b/gcc/ada/libgnat/g-alvety.ads
index 0d742fe..66cac0c 100644
--- a/gcc/ada/libgnat/g-alvety.ads
+++ b/gcc/ada/libgnat/g-alvety.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-alvevi.ads b/gcc/ada/libgnat/g-alvevi.ads
index a23c491..adf463c 100644
--- a/gcc/ada/libgnat/g-alvevi.ads
+++ b/gcc/ada/libgnat/g-alvevi.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2005-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2005-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-arrspl.adb b/gcc/ada/libgnat/g-arrspl.adb
index 119e7c9..e6f0d99 100644
--- a/gcc/ada/libgnat/g-arrspl.adb
+++ b/gcc/ada/libgnat/g-arrspl.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2002-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2002-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-arrspl.ads b/gcc/ada/libgnat/g-arrspl.ads
index f06a0e2..3383f40 100644
--- a/gcc/ada/libgnat/g-arrspl.ads
+++ b/gcc/ada/libgnat/g-arrspl.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2002-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2002-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-awk.adb b/gcc/ada/libgnat/g-awk.adb
index 45305e6..cd2031f 100644
--- a/gcc/ada/libgnat/g-awk.adb
+++ b/gcc/ada/libgnat/g-awk.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2000-2019, AdaCore --
+-- Copyright (C) 2000-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-awk.ads b/gcc/ada/libgnat/g-awk.ads
index fc7b3ae..21b008b 100644
--- a/gcc/ada/libgnat/g-awk.ads
+++ b/gcc/ada/libgnat/g-awk.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2000-2019, AdaCore --
+-- Copyright (C) 2000-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-binenv.adb b/gcc/ada/libgnat/g-binenv.adb
index c7dece4..95ef997 100644
--- a/gcc/ada/libgnat/g-binenv.adb
+++ b/gcc/ada/libgnat/g-binenv.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2015-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2015-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-binenv.ads b/gcc/ada/libgnat/g-binenv.ads
index e702ce4..dab454a 100644
--- a/gcc/ada/libgnat/g-binenv.ads
+++ b/gcc/ada/libgnat/g-binenv.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2015-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2015-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-brapre.ads b/gcc/ada/libgnat/g-brapre.ads
index 9b88e35..3559b0a 100644
--- a/gcc/ada/libgnat/g-brapre.ads
+++ b/gcc/ada/libgnat/g-brapre.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2019, AdaCore --
+-- Copyright (C) 2019-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-bubsor.adb b/gcc/ada/libgnat/g-bubsor.adb
index b59707c..f36c5a9c 100644
--- a/gcc/ada/libgnat/g-bubsor.adb
+++ b/gcc/ada/libgnat/g-bubsor.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1995-2019, AdaCore --
+-- Copyright (C) 1995-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-bubsor.ads b/gcc/ada/libgnat/g-bubsor.ads
index cae1fff..5eeb5dd 100644
--- a/gcc/ada/libgnat/g-bubsor.ads
+++ b/gcc/ada/libgnat/g-bubsor.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1995-2019, AdaCore --
+-- Copyright (C) 1995-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-busora.adb b/gcc/ada/libgnat/g-busora.adb
index e91d4e3..125afee 100644
--- a/gcc/ada/libgnat/g-busora.adb
+++ b/gcc/ada/libgnat/g-busora.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1995-2019, AdaCore --
+-- Copyright (C) 1995-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-busora.ads b/gcc/ada/libgnat/g-busora.ads
index bd87cf5..11a3d75 100644
--- a/gcc/ada/libgnat/g-busora.ads
+++ b/gcc/ada/libgnat/g-busora.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1995-2019, AdaCore --
+-- Copyright (C) 1995-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-busorg.adb b/gcc/ada/libgnat/g-busorg.adb
index 4efe587..543a197 100644
--- a/gcc/ada/libgnat/g-busorg.adb
+++ b/gcc/ada/libgnat/g-busorg.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1995-2019, AdaCore --
+-- Copyright (C) 1995-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-busorg.ads b/gcc/ada/libgnat/g-busorg.ads
index fa13aea..fc6546a 100644
--- a/gcc/ada/libgnat/g-busorg.ads
+++ b/gcc/ada/libgnat/g-busorg.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1995-2019, AdaCore --
+-- Copyright (C) 1995-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-byorma.adb b/gcc/ada/libgnat/g-byorma.adb
index b067240..635f4b4 100644
--- a/gcc/ada/libgnat/g-byorma.adb
+++ b/gcc/ada/libgnat/g-byorma.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2006-2019, AdaCore --
+-- Copyright (C) 2006-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-byorma.ads b/gcc/ada/libgnat/g-byorma.ads
index e0cc749..ac0d812 100644
--- a/gcc/ada/libgnat/g-byorma.ads
+++ b/gcc/ada/libgnat/g-byorma.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2006-2019, AdaCore --
+-- Copyright (C) 2006-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-bytswa.adb b/gcc/ada/libgnat/g-bytswa.adb
index e915e58..f34730f 100644
--- a/gcc/ada/libgnat/g-bytswa.adb
+++ b/gcc/ada/libgnat/g-bytswa.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2006-2019, AdaCore --
+-- Copyright (C) 2006-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -45,7 +45,7 @@ package body GNAT.Byte_Swapping is
function Swapped2 (Input : Item) return Item is
function As_U16 is new Unchecked_Conversion (Item, U16);
function As_Item is new Unchecked_Conversion (U16, Item);
- pragma Compile_Time_Error (Item'Max_Size_In_Storage_Elements /= 2,
+ pragma Compile_Time_Warning (Item'Max_Size_In_Storage_Elements /= 2,
"storage size must be 2 bytes");
begin
return As_Item (Bswap_16 (As_U16 (Input)));
@@ -58,7 +58,7 @@ package body GNAT.Byte_Swapping is
function Swapped4 (Input : Item) return Item is
function As_U32 is new Unchecked_Conversion (Item, U32);
function As_Item is new Unchecked_Conversion (U32, Item);
- pragma Compile_Time_Error (Item'Max_Size_In_Storage_Elements /= 4,
+ pragma Compile_Time_Warning (Item'Max_Size_In_Storage_Elements /= 4,
"storage size must be 4 bytes");
begin
return As_Item (Bswap_32 (As_U32 (Input)));
@@ -71,7 +71,7 @@ package body GNAT.Byte_Swapping is
function Swapped8 (Input : Item) return Item is
function As_U64 is new Unchecked_Conversion (Item, U64);
function As_Item is new Unchecked_Conversion (U64, Item);
- pragma Compile_Time_Error (Item'Max_Size_In_Storage_Elements /= 8,
+ pragma Compile_Time_Warning (Item'Max_Size_In_Storage_Elements /= 8,
"storage size must be 8 bytes");
begin
return As_Item (Bswap_64 (As_U64 (Input)));
diff --git a/gcc/ada/libgnat/g-bytswa.ads b/gcc/ada/libgnat/g-bytswa.ads
index a552db7..01d4501 100644
--- a/gcc/ada/libgnat/g-bytswa.ads
+++ b/gcc/ada/libgnat/g-bytswa.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2006-2019, AdaCore --
+-- Copyright (C) 2006-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-calend.adb b/gcc/ada/libgnat/g-calend.adb
index d1d4b55..55fb181 100644
--- a/gcc/ada/libgnat/g-calend.adb
+++ b/gcc/ada/libgnat/g-calend.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1999-2019, AdaCore --
+-- Copyright (C) 1999-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -226,7 +226,8 @@ package body GNAT.Calendar is
begin
-- Even though the input time zone is UTC (0), the flag Use_TZ will
- -- ensure that Split picks up the local time zone.
+ -- ensure that Split picks up the local time zone. ???But Use_TZ is
+ -- False below, and anyway, Use_TZ has no effect if Time_Zone is 0.
Ada_Calendar_Split
(Date => Date,
@@ -315,7 +316,8 @@ package body GNAT.Calendar is
begin
-- Even though the input time zone is UTC (0), the flag Use_TZ will
- -- ensure that Split picks up the local time zone.
+ -- ensure that Split picks up the local time zone. ???But there is no
+ -- call to Split here.
return
Ada_Calendar_Time_Of
@@ -352,6 +354,9 @@ package body GNAT.Calendar is
begin
timeval_to_duration (T, sec'Access, usec'Access);
+ pragma Annotate (CodePeer, Modified, sec);
+ pragma Annotate (CodePeer, Modified, usec);
+
return Duration (sec) + Duration (usec) / Micro;
end To_Duration;
diff --git a/gcc/ada/libgnat/g-calend.ads b/gcc/ada/libgnat/g-calend.ads
index 19999af..e153e08 100644
--- a/gcc/ada/libgnat/g-calend.ads
+++ b/gcc/ada/libgnat/g-calend.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1999-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1999-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-casuti.adb b/gcc/ada/libgnat/g-casuti.adb
index 621147f..7baa43a 100644
--- a/gcc/ada/libgnat/g-casuti.adb
+++ b/gcc/ada/libgnat/g-casuti.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1995-2019, AdaCore --
+-- Copyright (C) 1995-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-casuti.ads b/gcc/ada/libgnat/g-casuti.ads
index 9607c35..5468e25 100644
--- a/gcc/ada/libgnat/g-casuti.ads
+++ b/gcc/ada/libgnat/g-casuti.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1995-2019, AdaCore --
+-- Copyright (C) 1995-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-catiio.adb b/gcc/ada/libgnat/g-catiio.adb
index dc2fa40..cd2df6a 100644
--- a/gcc/ada/libgnat/g-catiio.adb
+++ b/gcc/ada/libgnat/g-catiio.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1999-2019, AdaCore --
+-- Copyright (C) 1999-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -29,7 +29,6 @@
-- --
------------------------------------------------------------------------------
-with Ada.Calendar; use Ada.Calendar;
with Ada.Characters.Handling;
with Ada.Strings.Unbounded; use Ada.Strings.Unbounded;
with Ada.Text_IO;
@@ -70,6 +69,14 @@ package body GNAT.Calendar.Time_IO is
-- Local Subprograms --
-----------------------
+ function Image_Helper
+ (Date : Ada.Calendar.Time;
+ Picture : Picture_String;
+ Time_Zone : Time_Zones.Time_Offset) return String;
+ -- This is called by the two exported Image functions. It uses the local
+ -- time zone for its computations, but uses Time_Zone when interpreting the
+ -- "%:::z" tag.
+
function Am_Pm (H : Natural) return String;
-- Return AM or PM depending on the hour H
@@ -93,19 +100,14 @@ package body GNAT.Calendar.Time_IO is
Length : Natural := 0) return String;
-- As above with N provided in Integer format
- procedure Parse_ISO_8861_UTC
+ procedure Parse_ISO_8601
(Date : String;
Time : out Ada.Calendar.Time;
Success : out Boolean);
-- Subsidiary of function Value. It parses the string Date, interpreted as
- -- an ISO 8861 time representation, and returns corresponding Time value.
- -- Success is set to False when the string is not a supported ISO 8861
- -- date. The following regular expression defines the supported format:
- --
- -- (yyyymmdd | yyyy'-'mm'-'dd)'T'(hhmmss | hh':'mm':'ss)
- -- [ ('Z' | ('.' | ',') s{s} | ('+'|'-')hh':'mm) ]
- --
- -- Trailing characters (in particular spaces) are not allowed.
+ -- an ISO 8601 time representation, and returns corresponding Time value.
+ -- Success is set to False when the string is not a supported ISO 8601
+ -- date.
--
-- Examples:
--
@@ -174,6 +176,10 @@ package body GNAT.Calendar.Time_IO is
return Image (Sec_Number (N), Padding, Length);
end Image;
+ -----------
+ -- Image --
+ -----------
+
function Image
(N : Sec_Number;
Padding : Padding_Mode := Zero;
@@ -214,9 +220,46 @@ package body GNAT.Calendar.Time_IO is
-----------
function Image
+ (Date : Ada.Calendar.Time;
+ Picture : Picture_String;
+ Time_Zone : Time_Zones.Time_Offset) return String
+ is
+ -- We subtract off the local time zone, and add in the requested
+ -- Time_Zone, and then pass it on to Image_Helper, which uses the
+ -- local time zone.
+
+ use Time_Zones;
+ Local_TZ : constant Time_Offset := Local_Time_Offset (Date);
+ Minute_Offset : constant Integer := Integer (Time_Zone - Local_TZ);
+ Second_Offset : constant Integer := Minute_Offset * 60;
+ begin
+ return Image_Helper
+ (Date + Duration (Second_Offset), Picture, Time_Zone);
+ end Image;
+
+ -----------
+ -- Image --
+ -----------
+
+ function Image
(Date : Ada.Calendar.Time;
Picture : Picture_String) return String
is
+ use Time_Zones;
+ Local_TZ : constant Time_Offset := Local_Time_Offset (Date);
+ begin
+ return Image_Helper (Date, Picture, Local_TZ);
+ end Image;
+
+ ------------------
+ -- Image_Helper --
+ ------------------
+
+ function Image_Helper
+ (Date : Ada.Calendar.Time;
+ Picture : Picture_String;
+ Time_Zone : Time_Zones.Time_Offset) return String
+ is
Padding : Padding_Mode := Zero;
-- Padding is set for one directive
@@ -409,6 +452,43 @@ package body GNAT.Calendar.Time_IO is
Image (Minute, Padding, Length => 2) & ':' &
Image (Second, Padding, Length => 2);
+ -- Time zone. Append "+hh", "-hh", "+hh:mm", or "-hh:mm", as
+ -- appropriate.
+
+ when ':' =>
+ declare
+ use type Time_Zones.Time_Offset;
+ TZ_Form : constant Picture_String := "%:::z";
+ TZ : constant Natural := Natural (abs Time_Zone);
+ begin
+ if P + TZ_Form'Length - 1 <= Picture'Last
+ and then Picture (P .. P + TZ_Form'Length - 1) = "%:::z"
+ then
+ if Time_Zone >= 0 then
+ Result := Result & "+";
+ else
+ Result := Result & "-";
+ end if;
+
+ Result := Result &
+ Image (Integer (TZ / 60), Padding, Length => 2);
+
+ if TZ mod 60 /= 0 then
+ Result := Result & ":";
+ Result := Result &
+ Image (TZ mod 60, Padding, Length => 2);
+ end if;
+
+ P := P + TZ_Form'Length - 2; -- will add 2 below
+
+ -- We do not support any of the other standard GNU
+ -- time-zone formats (%z, %:z, %::z, %Z).
+
+ else
+ raise Picture_Error with "unsupported picture format";
+ end if;
+ end;
+
-- Locale's abbreviated weekday name (Sun..Sat)
when 'a' =>
@@ -535,7 +615,7 @@ package body GNAT.Calendar.Time_IO is
end loop;
return To_String (Result);
- end Image;
+ end Image_Helper;
--------------------------
-- Month_Name_To_Number --
@@ -565,26 +645,29 @@ package body GNAT.Calendar.Time_IO is
return Abbrev_Upper_Month_Names'First;
end Month_Name_To_Number;
- ------------------------
- -- Parse_ISO_8861_UTC --
- ------------------------
+ --------------------
+ -- Parse_ISO_8601 --
+ --------------------
- procedure Parse_ISO_8861_UTC
+ procedure Parse_ISO_8601
(Date : String;
Time : out Ada.Calendar.Time;
Success : out Boolean)
is
+ pragma Unsuppress (All_Checks);
+ -- This is necessary because the run-time library is usually compiled
+ -- with checks suppressed, and we are relying on constraint checks in
+ -- this code to catch syntax errors in the Date string (e.g. out of
+ -- bounds slices).
+
Index : Positive := Date'First;
-- The current character scan index. After a call to Advance, Index
-- points to the next character.
- End_Of_Source_Reached : exception;
- -- An exception used to signal that the scan pointer has reached the
- -- end of the source string.
-
Wrong_Syntax : exception;
-- An exception used to signal that the scan pointer has reached an
- -- unexpected character in the source string.
+ -- unexpected character in the source string, or if premature
+ -- end-of-source was reached.
procedure Advance;
pragma Inline (Advance);
@@ -642,13 +725,12 @@ package body GNAT.Calendar.Time_IO is
procedure Advance is
begin
- -- Signal the end of the source string. This stops a complex scan by
- -- bottoming up any recursive calls till control reaches routine Scan
- -- which handles the exception. Certain scanning scenarios may handle
- -- this exception on their own.
+ -- Signal the end of the source string. This stops a complex scan
+ -- by bottoming up any recursive calls till control reaches routine
+ -- Scan, which handles the exception.
if Index > Date'Last then
- raise End_Of_Source_Reached;
+ raise Wrong_Syntax;
-- Advance the scan pointer as long as there are characters to scan,
-- in other words, the scan pointer has not passed the end of the
@@ -767,17 +849,10 @@ package body GNAT.Calendar.Time_IO is
begin
Advance_Digits (Num_Digits => 1);
- while Symbol in '0' .. '9'
- and then Index < Date'Length
- loop
+ while Index <= Date'Length and then Symbol in '0' .. '9' loop
Advance;
end loop;
- if Symbol not in '0' .. '9' then
- raise Wrong_Syntax;
- end if;
-
- Advance;
return Second_Duration'Value ("0." & Date (From .. Index - 1));
end Scan_Subsecond;
@@ -804,7 +879,7 @@ package body GNAT.Calendar.Time_IO is
-- this exception on their own.
if Index > Date'Last then
- raise End_Of_Source_Reached;
+ raise Wrong_Syntax;
else
return Date (Index);
@@ -813,25 +888,29 @@ package body GNAT.Calendar.Time_IO is
-- Local variables
+ use Time_Zones;
+
Date_Separator : constant Character := '-';
Hour_Separator : constant Character := ':';
- Day : Day_Number;
- Month : Month_Number;
- Year : Year_Number;
- Hour : Hour_Number := 0;
- Minute : Minute_Number := 0;
- Second : Second_Number := 0;
- Subsec : Second_Duration := 0.0;
+ Day : Day_Number;
+ Month : Month_Number;
+ Year : Year_Number;
+ Hour : Hour_Number := 0;
+ Minute : Minute_Number := 0;
+ Second : Second_Number := 0;
+ Subsec : Second_Duration := 0.0;
- Local_Hour : Hour_Number := 0;
- Local_Minute : Minute_Number := 0;
- Local_Sign : Character := ' ';
- Local_Disp : Duration;
+ Time_Zone_Seen : Boolean := False;
+ Time_Zone_Offset : Time_Offset; -- Valid only if Time_Zone_Seen
Sep_Required : Boolean := False;
-- True if a separator is seen (and therefore required after it!)
+ subtype Sign_Type is Character with Predicate => Sign_Type in '+' | '-';
+
+ -- Start of processing for Parse_ISO_8601
+
begin
-- Parse date
@@ -856,25 +935,31 @@ package body GNAT.Calendar.Time_IO is
Second := Scan_Second;
- -- [('Z' | ('.' | ',') s{s} | ('+'|'-')hh:mm)]
+ -- [ ('.' | ',') s{s} ]
if Index <= Date'Last then
-
- -- Suffix 'Z' just confirms that this is an UTC time. No further
- -- action needed.
-
- if Symbol = 'Z' then
- Advance;
-
-- A decimal fraction shall have at least one digit, and has as
-- many digits as supported by the underlying implementation.
-- The valid decimal separators are those specified in ISO 31-0,
-- i.e. the comma [,] or full stop [.]. Of these, the comma is
- -- the preferred separator of ISO-8861.
+ -- the preferred separator of ISO-8601.
- elsif Symbol = ',' or else Symbol = '.' then
+ if Symbol = ',' or else Symbol = '.' then
Advance; -- past decimal separator
Subsec := Scan_Subsecond;
+ end if;
+ end if;
+
+ -- [ ('Z' | ('+'|'-')hh':'mm) ]
+
+ if Index <= Date'Last then
+ Time_Zone_Seen := Symbol in 'Z' | Sign_Type;
+
+ -- Suffix 'Z' signifies that this is UTC time (time zone 0)
+
+ if Symbol = 'Z' then
+ Time_Zone_Offset := 0;
+ Advance;
-- Difference between local time and UTC: It shall be expressed
-- as positive (i.e. with the leading plus sign [+]) if the local
@@ -884,62 +969,57 @@ package body GNAT.Calendar.Time_IO is
-- if the difference between the time scales is exactly an
-- integral number of hours.
- elsif Symbol = '+' or else Symbol = '-' then
- Local_Sign := Symbol;
- Advance;
- Local_Hour := Scan_Hour;
+ elsif Symbol in Sign_Type then
+ declare
+ Time_Zone_Sign : constant Sign_Type := Symbol;
+ Time_Zone_Hour : Hour_Number;
+ Time_Zone_Minute : Minute_Number;
+ begin
+ Advance;
+ Time_Zone_Hour := Scan_Hour;
- -- Past ':'
+ -- Past ':'
- if Index < Date'Last and then Symbol = Hour_Separator then
- Advance;
- Local_Minute := Scan_Minute;
- end if;
+ if Index < Date'Last and then Symbol = Hour_Separator then
+ Advance;
+ Time_Zone_Minute := Scan_Minute;
+ else
+ Time_Zone_Minute := 0;
+ end if;
+
+ -- Compute Time_Zone_Offset
- -- Compute local displacement
+ Time_Zone_Offset :=
+ Time_Offset (Time_Zone_Hour * 60 + Time_Zone_Minute);
- Local_Disp := Local_Hour * 3600.0 + Local_Minute * 60.0;
+ case Time_Zone_Sign is
+ when '+' => null;
+ when '-' => Time_Zone_Offset := -Time_Zone_Offset;
+ end case;
+ end;
else
raise Wrong_Syntax;
end if;
end if;
end if;
- -- Sanity checks. The check on Index ensures that there are no trailing
- -- characters.
-
- if Index /= Date'Length + 1
- or else not Year'Valid
- or else not Month'Valid
- or else not Day'Valid
- or else not Hour'Valid
- or else not Minute'Valid
- or else not Second'Valid
- or else not Subsec'Valid
- or else not Local_Hour'Valid
- or else not Local_Minute'Valid
- then
+ -- Check for trailing characters
+
+ if Index /= Date'Length + 1 then
raise Wrong_Syntax;
end if;
- -- Compute time without local displacement
-
- if Local_Sign = ' ' then
- Time := Time_Of (Year, Month, Day, Hour, Minute, Second, Subsec);
+ -- If a time zone was specified, use Ada.Calendar.Formatting.Time_Of,
+ -- and specify the time zone. Otherwise, call GNAT.Calendar.Time_Of,
+ -- which uses local time.
- -- Compute time with positive local displacement
-
- elsif Local_Sign = '+' then
- Time :=
- Time_Of (Year, Month, Day, Hour, Minute, Second, Subsec) -
- Local_Disp;
-
- -- Compute time with negative local displacement
-
- elsif Local_Sign = '-' then
- Time :=
- Time_Of (Year, Month, Day, Hour, Minute, Second, Subsec) +
- Local_Disp;
+ if Time_Zone_Seen then
+ Time := Ada.Calendar.Formatting.Time_Of
+ (Year, Month, Day, Hour, Minute, Second, Subsec,
+ Time_Zone => Time_Zone_Offset);
+ else
+ Time := GNAT.Calendar.Time_Of
+ (Year, Month, Day, Hour, Minute, Second, Subsec);
end if;
-- Notify that the input string was successfully parsed
@@ -947,17 +1027,22 @@ package body GNAT.Calendar.Time_IO is
Success := True;
exception
- when End_Of_Source_Reached
- | Wrong_Syntax
- =>
+ when Wrong_Syntax | Constraint_Error =>
+ -- If constraint check fails, we want to behave the same as
+ -- Wrong_Syntax; we want the caller (Value) to try other
+ -- allowed syntaxes.
+ Time :=
+ Time_Of (Year_Number'First, Month_Number'First, Day_Number'First);
Success := False;
- end Parse_ISO_8861_UTC;
+ end Parse_ISO_8601;
-----------
-- Value --
-----------
function Value (Date : String) return Ada.Calendar.Time is
+ pragma Unsuppress (All_Checks); -- see comment in Parse_ISO_8601
+
D : String (1 .. 21);
D_Length : constant Natural := Date'Length;
@@ -1172,10 +1257,10 @@ package body GNAT.Calendar.Time_IO is
-- Start of processing for Value
begin
- -- Let's try parsing Date as a supported ISO-8861 format. If we do not
+ -- Let's try parsing Date as a supported ISO-8601 format. If we do not
-- succeed, then retry using all the other GNAT supported formats.
- Parse_ISO_8861_UTC (Date, Time, Success);
+ Parse_ISO_8601 (Date, Time, Success);
if Success then
return Time;
@@ -1183,15 +1268,7 @@ package body GNAT.Calendar.Time_IO is
-- Length checks
- if D_Length /= 8
- and then D_Length /= 10
- and then D_Length /= 11
- and then D_Length /= 12
- and then D_Length /= 17
- and then D_Length /= 19
- and then D_Length /= 20
- and then D_Length /= 21
- then
+ if D_Length not in 8 | 10 | 11 | 12 | 17 | 19 | 20 | 21 then
raise Constraint_Error;
end if;
@@ -1215,18 +1292,6 @@ package body GNAT.Calendar.Time_IO is
Extract_Time (1, Hour, Minute, Second, Check_Space => False);
end if;
- -- Sanity checks
-
- if not Year'Valid
- or else not Month'Valid
- or else not Day'Valid
- or else not Hour'Valid
- or else not Minute'Valid
- or else not Second'Valid
- then
- raise Constraint_Error;
- end if;
-
return Time_Of (Year, Month, Day, Hour, Minute, Second);
end Value;
diff --git a/gcc/ada/libgnat/g-catiio.ads b/gcc/ada/libgnat/g-catiio.ads
index 272f1ee..6bb9847 100644
--- a/gcc/ada/libgnat/g-catiio.ads
+++ b/gcc/ada/libgnat/g-catiio.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1999-2019, AdaCore --
+-- Copyright (C) 1999-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -32,6 +32,8 @@
-- This package augments standard Ada.Text_IO with facilities for input
-- and output of time values in standardized format.
+with Ada.Calendar.Time_Zones; use Ada.Calendar;
+
package GNAT.Calendar.Time_IO is
Picture_Error : exception;
@@ -41,7 +43,7 @@ package GNAT.Calendar.Time_IO is
-- This is a string to describe date and time output format. The string is
-- a set of standard character and special tag that are replaced by the
-- corresponding values. It follows the GNU Date specification. Here are
- -- the recognized directives :
+ -- the recognized directives:
--
-- % a literal %
-- n a newline
@@ -60,6 +62,8 @@ package GNAT.Calendar.Time_IO is
-- (a nonstandard extension)
-- %S second (00..59)
-- %T time, 24-hour (hh:mm:ss)
+ -- %:::z numeric time zone with : to necessary precision
+ -- (e.g., -04, +05:30)
--
-- Date fields:
--
@@ -96,8 +100,11 @@ package GNAT.Calendar.Time_IO is
-- %e microseconds (6 digits)
-- %o nanoseconds (9 digits)
+ ISO_Time : constant Picture_String;
+ -- ISO 8601 standard date and time, with time zone.
+
ISO_Date : constant Picture_String;
- -- This format follow the ISO 8601 standard. The format is "YYYY-MM-DD",
+ -- This format follows the ISO 8601 standard. The format is "YYYY-MM-DD",
-- four digits year, month and day number separated by minus.
US_Date : constant Picture_String;
@@ -115,6 +122,13 @@ package GNAT.Calendar.Time_IO is
-- with format Picture. Raise Picture_Error if picture string is null or
-- has an incorrect format.
+ function Image
+ (Date : Ada.Calendar.Time;
+ Picture : Picture_String;
+ Time_Zone : Time_Zones.Time_Offset) return String;
+ -- Same as previous Image, except it uses the specified time zone instead
+ -- of the local time zone.
+
function Value (Date : String) return Ada.Calendar.Time;
-- Parse the string Date, interpreted as a time representation in the
-- current local time zone, and return the corresponding Time value. The
@@ -141,11 +155,15 @@ package GNAT.Calendar.Time_IO is
-- mmm dd, yyyy - month spelled out
-- dd mmm yyyy - month spelled out
--
- -- The following ISO-8861 format expressed as a regular expression is also
+ -- The following ISO-8601 format expressed as a regular expression is also
-- supported:
--
-- (yyyymmdd | yyyy'-'mm'-'dd)'T'(hhmmss | hh':'mm':'ss)
- -- [ ('Z' | ('.' | ',') s{s} | ('+'|'-')hh':'mm) ]
+ -- [ ('.' | ',') s{s} ]
+ -- [ ('Z' | ('+'|'-')hh':'mm) ]
+ -- Trailing characters (including spaces) are not allowed.
+ -- In the ISO case, the current time zone is not used; the time zone
+ -- is as specified in the string, defaulting to UTC.
--
-- Examples:
--
@@ -161,6 +179,7 @@ package GNAT.Calendar.Time_IO is
-- Put Date with format Picture. Raise Picture_Error if bad picture string
private
+ ISO_Time : constant Picture_String := "%Y-%m-%dT%H:%M:%S%:::z";
ISO_Date : constant Picture_String := "%Y-%m-%d";
US_Date : constant Picture_String := "%m/%d/%y";
European_Date : constant Picture_String := "%d/%m/%y";
diff --git a/gcc/ada/libgnat/g-cgi.adb b/gcc/ada/libgnat/g-cgi.adb
index 7ac74dcd..495b6dd 100644
--- a/gcc/ada/libgnat/g-cgi.adb
+++ b/gcc/ada/libgnat/g-cgi.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2001-2019, AdaCore --
+-- Copyright (C) 2001-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-cgi.ads b/gcc/ada/libgnat/g-cgi.ads
index 879cf62..4b2b9dc 100644
--- a/gcc/ada/libgnat/g-cgi.ads
+++ b/gcc/ada/libgnat/g-cgi.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2000-2019, AdaCore --
+-- Copyright (C) 2000-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-cgicoo.adb b/gcc/ada/libgnat/g-cgicoo.adb
index a1fca87..0f4444a 100644
--- a/gcc/ada/libgnat/g-cgicoo.adb
+++ b/gcc/ada/libgnat/g-cgicoo.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2000-2019, AdaCore --
+-- Copyright (C) 2000-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-cgicoo.ads b/gcc/ada/libgnat/g-cgicoo.ads
index 0d57f46..42b79db 100644
--- a/gcc/ada/libgnat/g-cgicoo.ads
+++ b/gcc/ada/libgnat/g-cgicoo.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2000-2019, AdaCore --
+-- Copyright (C) 2000-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-cgideb.adb b/gcc/ada/libgnat/g-cgideb.adb
index c52ccbc4..7ce04a1 100644
--- a/gcc/ada/libgnat/g-cgideb.adb
+++ b/gcc/ada/libgnat/g-cgideb.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2000-2019, AdaCore --
+-- Copyright (C) 2000-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-cgideb.ads b/gcc/ada/libgnat/g-cgideb.ads
index 51f0f71..5ae3bdd 100644
--- a/gcc/ada/libgnat/g-cgideb.ads
+++ b/gcc/ada/libgnat/g-cgideb.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2000-2019, AdaCore --
+-- Copyright (C) 2000-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-comlin.adb b/gcc/ada/libgnat/g-comlin.adb
index ec057a9..0ca82f8 100644
--- a/gcc/ada/libgnat/g-comlin.adb
+++ b/gcc/ada/libgnat/g-comlin.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1999-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1999-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -537,6 +537,7 @@ package body GNAT.Command_Line is
P : Switch_Parameter_Type;
begin
+ Param := Parameter_None;
Index_In_Switches := 0;
Switch_Length := 0;
diff --git a/gcc/ada/libgnat/g-comlin.ads b/gcc/ada/libgnat/g-comlin.ads
index 34feee7..aa25118 100644
--- a/gcc/ada/libgnat/g-comlin.ads
+++ b/gcc/ada/libgnat/g-comlin.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1999-2019, AdaCore --
+-- Copyright (C) 1999-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-comver.adb b/gcc/ada/libgnat/g-comver.adb
index d337c24..fbc1469 100644
--- a/gcc/ada/libgnat/g-comver.adb
+++ b/gcc/ada/libgnat/g-comver.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2002-2019, AdaCore --
+-- Copyright (C) 2002-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-comver.ads b/gcc/ada/libgnat/g-comver.ads
index c8a9c9c..0b56b78 100644
--- a/gcc/ada/libgnat/g-comver.ads
+++ b/gcc/ada/libgnat/g-comver.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2002-2019, AdaCore --
+-- Copyright (C) 2002-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-cppexc.adb b/gcc/ada/libgnat/g-cppexc.adb
index bb8f2b6..691780f 100644
--- a/gcc/ada/libgnat/g-cppexc.adb
+++ b/gcc/ada/libgnat/g-cppexc.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2013-2019, AdaCore --
+-- Copyright (C) 2013-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-cppexc.ads b/gcc/ada/libgnat/g-cppexc.ads
index 04ee87a..3781c13 100644
--- a/gcc/ada/libgnat/g-cppexc.ads
+++ b/gcc/ada/libgnat/g-cppexc.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2013-2019, AdaCore --
+-- Copyright (C) 2013-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-crc32.adb b/gcc/ada/libgnat/g-crc32.adb
index 85be42f..3adcf60 100644
--- a/gcc/ada/libgnat/g-crc32.adb
+++ b/gcc/ada/libgnat/g-crc32.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2001-2019, AdaCore --
+-- Copyright (C) 2001-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-crc32.ads b/gcc/ada/libgnat/g-crc32.ads
index e56330e..b3d6005 100644
--- a/gcc/ada/libgnat/g-crc32.ads
+++ b/gcc/ada/libgnat/g-crc32.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, AdaCore --
+-- Copyright (C) 2004-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-ctrl_c.adb b/gcc/ada/libgnat/g-ctrl_c.adb
index ad14abe..82d66b9 100644
--- a/gcc/ada/libgnat/g-ctrl_c.adb
+++ b/gcc/ada/libgnat/g-ctrl_c.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2002-2019, AdaCore --
+-- Copyright (C) 2002-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-ctrl_c.ads b/gcc/ada/libgnat/g-ctrl_c.ads
index ad1a9cf..c3f2cc8 100644
--- a/gcc/ada/libgnat/g-ctrl_c.ads
+++ b/gcc/ada/libgnat/g-ctrl_c.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2002-2019, AdaCore --
+-- Copyright (C) 2002-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-curexc.ads b/gcc/ada/libgnat/g-curexc.ads
index 56d89e0..2af5cd8 100644
--- a/gcc/ada/libgnat/g-curexc.ads
+++ b/gcc/ada/libgnat/g-curexc.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1996-2019, AdaCore --
+-- Copyright (C) 1996-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-debpoo.adb b/gcc/ada/libgnat/g-debpoo.adb
index 52c0c50..b6523ca 100644
--- a/gcc/ada/libgnat/g-debpoo.adb
+++ b/gcc/ada/libgnat/g-debpoo.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -1420,6 +1420,7 @@ package body GNAT.Debug_Pools is
begin
Valid := Is_Valid (Storage_Address);
+ Size_In_Storage_Elements := Storage_Count'First;
if Is_Valid (Storage_Address) then
declare
diff --git a/gcc/ada/libgnat/g-debpoo.ads b/gcc/ada/libgnat/g-debpoo.ads
index 6b2f0ab..ed000fa 100644
--- a/gcc/ada/libgnat/g-debpoo.ads
+++ b/gcc/ada/libgnat/g-debpoo.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-debuti.adb b/gcc/ada/libgnat/g-debuti.adb
index 07f826a..5b1277d 100644
--- a/gcc/ada/libgnat/g-debuti.adb
+++ b/gcc/ada/libgnat/g-debuti.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1997-2019, AdaCore --
+-- Copyright (C) 1997-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-debuti.ads b/gcc/ada/libgnat/g-debuti.ads
index 04be683..dab5131 100644
--- a/gcc/ada/libgnat/g-debuti.ads
+++ b/gcc/ada/libgnat/g-debuti.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1995-2019, AdaCore --
+-- Copyright (C) 1995-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-decstr.adb b/gcc/ada/libgnat/g-decstr.adb
index 68755a0..64ae297 100644
--- a/gcc/ada/libgnat/g-decstr.adb
+++ b/gcc/ada/libgnat/g-decstr.adb
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2007-2019, AdaCore --
+-- Copyright (C) 2007-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-decstr.ads b/gcc/ada/libgnat/g-decstr.ads
index 0f3b1f1..9e82b75 100644
--- a/gcc/ada/libgnat/g-decstr.ads
+++ b/gcc/ada/libgnat/g-decstr.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2007-2019, AdaCore --
+-- Copyright (C) 2007-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-deutst.ads b/gcc/ada/libgnat/g-deutst.ads
index 5e1009c..e4ae4e19 100644
--- a/gcc/ada/libgnat/g-deutst.ads
+++ b/gcc/ada/libgnat/g-deutst.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2007-2019, AdaCore --
+-- Copyright (C) 2007-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-diopit.adb b/gcc/ada/libgnat/g-diopit.adb
index fb62d4f..50bbf9b 100644
--- a/gcc/ada/libgnat/g-diopit.adb
+++ b/gcc/ada/libgnat/g-diopit.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2001-2019, AdaCore --
+-- Copyright (C) 2001-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-diopit.ads b/gcc/ada/libgnat/g-diopit.ads
index bf3cc3b..aa60d32 100644
--- a/gcc/ada/libgnat/g-diopit.ads
+++ b/gcc/ada/libgnat/g-diopit.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2001-2019, AdaCore --
+-- Copyright (C) 2001-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-dirope.adb b/gcc/ada/libgnat/g-dirope.adb
index 9153c70..3078130 100644
--- a/gcc/ada/libgnat/g-dirope.adb
+++ b/gcc/ada/libgnat/g-dirope.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1998-2019, AdaCore --
+-- Copyright (C) 1998-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -352,6 +352,8 @@ package body GNAT.Directory_Operations is
begin
K := K + 1;
+ pragma Annotate (CodePeer, Modified, P);
+
if P = '%' or else Path (K) = '{' then
-- Set terminator character
diff --git a/gcc/ada/libgnat/g-dirope.ads b/gcc/ada/libgnat/g-dirope.ads
index 3747553..03a062f 100644
--- a/gcc/ada/libgnat/g-dirope.ads
+++ b/gcc/ada/libgnat/g-dirope.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1998-2019, AdaCore --
+-- Copyright (C) 1998-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-dynhta.adb b/gcc/ada/libgnat/g-dynhta.adb
index 84dcc30..4c8dda5 100644
--- a/gcc/ada/libgnat/g-dynhta.adb
+++ b/gcc/ada/libgnat/g-dynhta.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2002-2019, AdaCore --
+-- Copyright (C) 2002-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-dynhta.ads b/gcc/ada/libgnat/g-dynhta.ads
index 107c4c0..3e4f561 100644
--- a/gcc/ada/libgnat/g-dynhta.ads
+++ b/gcc/ada/libgnat/g-dynhta.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1995-2019, AdaCore --
+-- Copyright (C) 1995-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-dyntab.adb b/gcc/ada/libgnat/g-dyntab.adb
index 1eb0e59..4c53f15 100644
--- a/gcc/ada/libgnat/g-dyntab.adb
+++ b/gcc/ada/libgnat/g-dyntab.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2000-2019, AdaCore --
+-- Copyright (C) 2000-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-dyntab.ads b/gcc/ada/libgnat/g-dyntab.ads
index 6a7b5e3..7a6c9fa 100644
--- a/gcc/ada/libgnat/g-dyntab.ads
+++ b/gcc/ada/libgnat/g-dyntab.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2000-2019, AdaCore --
+-- Copyright (C) 2000-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-eacodu.adb b/gcc/ada/libgnat/g-eacodu.adb
index 6dd77b8..cb07631 100644
--- a/gcc/ada/libgnat/g-eacodu.adb
+++ b/gcc/ada/libgnat/g-eacodu.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2003-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2003-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-encstr.adb b/gcc/ada/libgnat/g-encstr.adb
index b115c8a..62fff77 100644
--- a/gcc/ada/libgnat/g-encstr.adb
+++ b/gcc/ada/libgnat/g-encstr.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2007-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2007-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-encstr.ads b/gcc/ada/libgnat/g-encstr.ads
index 764710d..0e2fdf4 100644
--- a/gcc/ada/libgnat/g-encstr.ads
+++ b/gcc/ada/libgnat/g-encstr.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2007-2019, AdaCore --
+-- Copyright (C) 2007-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-enutst.ads b/gcc/ada/libgnat/g-enutst.ads
index b2696e8..e5b20cf 100644
--- a/gcc/ada/libgnat/g-enutst.ads
+++ b/gcc/ada/libgnat/g-enutst.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2007-2019, AdaCore --
+-- Copyright (C) 2007-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-excact.adb b/gcc/ada/libgnat/g-excact.adb
index acffd93..202d9e2 100644
--- a/gcc/ada/libgnat/g-excact.adb
+++ b/gcc/ada/libgnat/g-excact.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2002-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2002-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -38,9 +38,19 @@ with System.Exception_Table; use System.Exception_Table;
package body GNAT.Exception_Actions is
Global_Action : Exception_Action;
- pragma Import (C, Global_Action, "__gnat_exception_actions_global_action");
+ pragma Import
+ (Ada, Global_Action, "__gnat_exception_actions_global_action");
+ pragma Atomic (Global_Action);
-- Imported from Ada.Exceptions. Any change in the external name needs to
- -- be coordinated with a-except.adb
+ -- be coordinated with a-exextr.adb.
+
+ Global_Unhandled_Action : Exception_Action;
+ pragma Import
+ (Ada, Global_Unhandled_Action,
+ "__gnat_exception_actions_global_unhandled_action");
+ pragma Atomic (Global_Unhandled_Action);
+ -- Imported from Ada.Exceptions. Any change in the external name needs to
+ -- be coordinated with a-exextr.adb.
Raise_Hook_Initialized : Boolean;
pragma Import
@@ -61,11 +71,18 @@ package body GNAT.Exception_Actions is
procedure Register_Global_Action (Action : Exception_Action) is
begin
- Lock_Task.all;
Global_Action := Action;
- Unlock_Task.all;
end Register_Global_Action;
+ --------------------------------------
+ -- Register_Global_Unhandled_Action --
+ --------------------------------------
+
+ procedure Register_Global_Unhandled_Action (Action : Exception_Action) is
+ begin
+ Global_Unhandled_Action := Action;
+ end Register_Global_Unhandled_Action;
+
------------------------
-- Register_Id_Action --
------------------------
diff --git a/gcc/ada/libgnat/g-excact.ads b/gcc/ada/libgnat/g-excact.ads
index 92a5329..c38f6a0 100644
--- a/gcc/ada/libgnat/g-excact.ads
+++ b/gcc/ada/libgnat/g-excact.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2002-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2002-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -57,6 +57,7 @@ package GNAT.Exception_Actions is
type Exception_Action is access
procedure (Occurrence : Exception_Occurrence);
+ pragma Favor_Top_Level (Exception_Action);
-- General callback type whenever an exception is raised. The callback
-- procedure must not propagate an exception (execution of the program
-- is erroneous if such an exception is propagated).
@@ -69,6 +70,10 @@ package GNAT.Exception_Actions is
-- Action is called before the exception is propagated to user's code.
-- If Action is null, this will in effect cancel all exception actions.
+ procedure Register_Global_Unhandled_Action (Action : Exception_Action);
+ -- Similar to Register_Global_Action, called on unhandled exceptions
+ -- only.
+
procedure Register_Id_Action
(Id : Exception_Id;
Action : Exception_Action);
diff --git a/gcc/ada/libgnat/g-except.ads b/gcc/ada/libgnat/g-except.ads
index 1af6fca..6d13f5a 100644
--- a/gcc/ada/libgnat/g-except.ads
+++ b/gcc/ada/libgnat/g-except.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2000-2019, AdaCore --
+-- Copyright (C) 2000-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-exctra.adb b/gcc/ada/libgnat/g-exctra.adb
index 371836f..1db76b7 100644
--- a/gcc/ada/libgnat/g-exctra.adb
+++ b/gcc/ada/libgnat/g-exctra.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2000-2019, AdaCore --
+-- Copyright (C) 2000-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-exctra.ads b/gcc/ada/libgnat/g-exctra.ads
index 8e0bdae..3ae90f4 100644
--- a/gcc/ada/libgnat/g-exctra.ads
+++ b/gcc/ada/libgnat/g-exctra.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2000-2019, AdaCore --
+-- Copyright (C) 2000-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-expect.adb b/gcc/ada/libgnat/g-expect.adb
index 4efd98d..78b3c27 100644
--- a/gcc/ada/libgnat/g-expect.adb
+++ b/gcc/ada/libgnat/g-expect.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2000-2019, AdaCore --
+-- Copyright (C) 2000-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-expect.ads b/gcc/ada/libgnat/g-expect.ads
index 77bb579..19e704b 100644
--- a/gcc/ada/libgnat/g-expect.ads
+++ b/gcc/ada/libgnat/g-expect.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2000-2019, AdaCore --
+-- Copyright (C) 2000-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-exptty.adb b/gcc/ada/libgnat/g-exptty.adb
index 758be7a..bc239e4 100644
--- a/gcc/ada/libgnat/g-exptty.adb
+++ b/gcc/ada/libgnat/g-exptty.adb
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2000-2019, AdaCore --
+-- Copyright (C) 2000-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -314,9 +314,9 @@ package body GNAT.Expect.TTY is
overriding procedure Set_Up_Communications
(Pid : in out TTY_Process_Descriptor;
Err_To_Out : Boolean;
- Pipe1 : access Pipe_Type;
- Pipe2 : access Pipe_Type;
- Pipe3 : access Pipe_Type)
+ Pipe1 : not null access Pipe_Type;
+ Pipe2 : not null access Pipe_Type;
+ Pipe3 : not null access Pipe_Type)
is
pragma Unreferenced (Err_To_Out, Pipe1, Pipe2, Pipe3);
diff --git a/gcc/ada/libgnat/g-exptty.ads b/gcc/ada/libgnat/g-exptty.ads
index 683a453..ede147c 100644
--- a/gcc/ada/libgnat/g-exptty.ads
+++ b/gcc/ada/libgnat/g-exptty.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2000-2019, AdaCore --
+-- Copyright (C) 2000-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -116,9 +116,9 @@ private
procedure Set_Up_Communications
(Pid : in out TTY_Process_Descriptor;
Err_To_Out : Boolean;
- Pipe1 : access Pipe_Type;
- Pipe2 : access Pipe_Type;
- Pipe3 : access Pipe_Type);
+ Pipe1 : not null access Pipe_Type;
+ Pipe2 : not null access Pipe_Type;
+ Pipe3 : not null access Pipe_Type);
procedure Set_Up_Parent_Communications
(Pid : in out TTY_Process_Descriptor;
diff --git a/gcc/ada/libgnat/g-flocon.ads b/gcc/ada/libgnat/g-flocon.ads
index 5ea17f1..bdc9b0e 100644
--- a/gcc/ada/libgnat/g-flocon.ads
+++ b/gcc/ada/libgnat/g-flocon.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2000-2019, AdaCore --
+-- Copyright (C) 2000-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-forstr.adb b/gcc/ada/libgnat/g-forstr.adb
index 4fb87ec..94492e9 100644
--- a/gcc/ada/libgnat/g-forstr.adb
+++ b/gcc/ada/libgnat/g-forstr.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2014-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2014-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-forstr.ads b/gcc/ada/libgnat/g-forstr.ads
index 4dd5be5..9c15845 100644
--- a/gcc/ada/libgnat/g-forstr.ads
+++ b/gcc/ada/libgnat/g-forstr.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2014-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2014-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-graphs.adb b/gcc/ada/libgnat/g-graphs.adb
index 1049641..410b6ca 100644
--- a/gcc/ada/libgnat/g-graphs.adb
+++ b/gcc/ada/libgnat/g-graphs.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2018-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2018-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-graphs.ads b/gcc/ada/libgnat/g-graphs.ads
index 3b65522..ec3fbbc 100644
--- a/gcc/ada/libgnat/g-graphs.ads
+++ b/gcc/ada/libgnat/g-graphs.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2018-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2018-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-heasor.adb b/gcc/ada/libgnat/g-heasor.adb
index 00e4108..449cf8d 100644
--- a/gcc/ada/libgnat/g-heasor.adb
+++ b/gcc/ada/libgnat/g-heasor.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1995-2019, AdaCore --
+-- Copyright (C) 1995-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-heasor.ads b/gcc/ada/libgnat/g-heasor.ads
index 4d9dd29..bab0c5b 100644
--- a/gcc/ada/libgnat/g-heasor.ads
+++ b/gcc/ada/libgnat/g-heasor.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1995-2019, AdaCore --
+-- Copyright (C) 1995-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-hesora.adb b/gcc/ada/libgnat/g-hesora.adb
index 0bef033..f4610e2 100644
--- a/gcc/ada/libgnat/g-hesora.adb
+++ b/gcc/ada/libgnat/g-hesora.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1995-2019, AdaCore --
+-- Copyright (C) 1995-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-hesora.ads b/gcc/ada/libgnat/g-hesora.ads
index 0c20479..f7064e4 100644
--- a/gcc/ada/libgnat/g-hesora.ads
+++ b/gcc/ada/libgnat/g-hesora.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1995-2019, AdaCore --
+-- Copyright (C) 1995-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-hesorg.adb b/gcc/ada/libgnat/g-hesorg.adb
index fec6e9c..89de591 100644
--- a/gcc/ada/libgnat/g-hesorg.adb
+++ b/gcc/ada/libgnat/g-hesorg.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1995-2019, AdaCore --
+-- Copyright (C) 1995-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -45,6 +45,8 @@ package body GNAT.Heap_Sort_G is
-- from 2NlogN to NlogN.
procedure Sort (N : Natural) is
+ pragma Annotate (CodePeer, Skip_Analysis);
+ -- CodePeer is sometimes getting confused on this procedure
Max : Natural := N;
-- Current Max index in tree being sifted
diff --git a/gcc/ada/libgnat/g-hesorg.ads b/gcc/ada/libgnat/g-hesorg.ads
index 7127b68..e2a3b8e 100644
--- a/gcc/ada/libgnat/g-hesorg.ads
+++ b/gcc/ada/libgnat/g-hesorg.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1995-2019, AdaCore --
+-- Copyright (C) 1995-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-htable.adb b/gcc/ada/libgnat/g-htable.adb
index 141fe4e..31bce1d 100644
--- a/gcc/ada/libgnat/g-htable.adb
+++ b/gcc/ada/libgnat/g-htable.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1995-2019, AdaCore --
+-- Copyright (C) 1995-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-htable.ads b/gcc/ada/libgnat/g-htable.ads
index 4849ade..b7c464d 100644
--- a/gcc/ada/libgnat/g-htable.ads
+++ b/gcc/ada/libgnat/g-htable.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1995-2019, AdaCore --
+-- Copyright (C) 1995-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-io-put__vxworks.adb b/gcc/ada/libgnat/g-io-put__vxworks.adb
index 4fef0a1..135e435 100644
--- a/gcc/ada/libgnat/g-io-put__vxworks.adb
+++ b/gcc/ada/libgnat/g-io-put__vxworks.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1995-2019, AdaCore --
+-- Copyright (C) 1995-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-io.adb b/gcc/ada/libgnat/g-io.adb
index bc874b5..c2c1ffa 100644
--- a/gcc/ada/libgnat/g-io.adb
+++ b/gcc/ada/libgnat/g-io.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1995-2019, AdaCore --
+-- Copyright (C) 1995-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -47,10 +47,10 @@ package body GNAT.IO is
end Get;
procedure Get (C : out Character) is
- function Get_Char return Character;
+ function Get_Char return Integer;
pragma Import (C, Get_Char, "get_char");
begin
- C := Get_Char;
+ C := Character'Val (Get_Char);
end Get;
--------------
@@ -121,16 +121,16 @@ package body GNAT.IO is
end Put;
procedure Put (File : File_Type; C : Character) is
- procedure Put_Char (C : Character);
+ procedure Put_Char (C : Integer);
pragma Import (C, Put_Char, "put_char");
- procedure Put_Char_Stderr (C : Character);
+ procedure Put_Char_Stderr (C : Integer);
pragma Import (C, Put_Char_Stderr, "put_char_stderr");
begin
case File is
- when Stdout => Put_Char (C);
- when Stderr => Put_Char_Stderr (C);
+ when Stdout => Put_Char (Character'Pos (C));
+ when Stderr => Put_Char_Stderr (Character'Pos (C));
end case;
end Put;
diff --git a/gcc/ada/libgnat/g-io.ads b/gcc/ada/libgnat/g-io.ads
index 1b0ec06..2ba9362 100644
--- a/gcc/ada/libgnat/g-io.ads
+++ b/gcc/ada/libgnat/g-io.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1995-2019, AdaCore --
+-- Copyright (C) 1995-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-io_aux.adb b/gcc/ada/libgnat/g-io_aux.adb
index daaa364..0590199 100644
--- a/gcc/ada/libgnat/g-io_aux.adb
+++ b/gcc/ada/libgnat/g-io_aux.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1995-2019, AdaCore --
+-- Copyright (C) 1995-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-io_aux.ads b/gcc/ada/libgnat/g-io_aux.ads
index 99e0377..aa9978a 100644
--- a/gcc/ada/libgnat/g-io_aux.ads
+++ b/gcc/ada/libgnat/g-io_aux.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1995-2019, AdaCore --
+-- Copyright (C) 1995-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-lists.adb b/gcc/ada/libgnat/g-lists.adb
index 817274a..e9414e7 100644
--- a/gcc/ada/libgnat/g-lists.adb
+++ b/gcc/ada/libgnat/g-lists.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2018-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2018-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-lists.ads b/gcc/ada/libgnat/g-lists.ads
index fdcaed6..29cda7a 100644
--- a/gcc/ada/libgnat/g-lists.ads
+++ b/gcc/ada/libgnat/g-lists.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2018-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2018-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-locfil.adb b/gcc/ada/libgnat/g-locfil.adb
index c5ffb63..7112704 100644
--- a/gcc/ada/libgnat/g-locfil.adb
+++ b/gcc/ada/libgnat/g-locfil.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1998-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1998-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-locfil.ads b/gcc/ada/libgnat/g-locfil.ads
index 4d05149..4ef4912 100644
--- a/gcc/ada/libgnat/g-locfil.ads
+++ b/gcc/ada/libgnat/g-locfil.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1995-2019, AdaCore --
+-- Copyright (C) 1995-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-mbdira.adb b/gcc/ada/libgnat/g-mbdira.adb
index 80117d2..f89a563 100644
--- a/gcc/ada/libgnat/g-mbdira.adb
+++ b/gcc/ada/libgnat/g-mbdira.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-mbdira.ads b/gcc/ada/libgnat/g-mbdira.ads
index 2893db6..f3d7e5e 100644
--- a/gcc/ada/libgnat/g-mbdira.ads
+++ b/gcc/ada/libgnat/g-mbdira.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/g-mbflra.adb b/gcc/ada/libgnat/g-mbflra.adb
index a31f143..2e4498d 100644
--- a/gcc/ada/libgnat/g-mbflra.adb
+++ b/gcc/ada/libgnat/g-mbflra.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-mbflra.ads b/gcc/ada/libgnat/g-mbflra.ads
index 2722659..6c65469 100644
--- a/gcc/ada/libgnat/g-mbflra.ads
+++ b/gcc/ada/libgnat/g-mbflra.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/g-md5.adb b/gcc/ada/libgnat/g-md5.adb
index fa9bb2a..90f2242 100644
--- a/gcc/ada/libgnat/g-md5.adb
+++ b/gcc/ada/libgnat/g-md5.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2009-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2009-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-md5.ads b/gcc/ada/libgnat/g-md5.ads
index 75d337e..f599c8b 100644
--- a/gcc/ada/libgnat/g-md5.ads
+++ b/gcc/ada/libgnat/g-md5.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2009-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2009-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-memdum.adb b/gcc/ada/libgnat/g-memdum.adb
index a680cab..ffc8d02 100644
--- a/gcc/ada/libgnat/g-memdum.adb
+++ b/gcc/ada/libgnat/g-memdum.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2003-2019, AdaCore --
+-- Copyright (C) 2003-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-memdum.ads b/gcc/ada/libgnat/g-memdum.ads
index 2cedbf1..cfb9ad9 100644
--- a/gcc/ada/libgnat/g-memdum.ads
+++ b/gcc/ada/libgnat/g-memdum.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2003-2019, AdaCore --
+-- Copyright (C) 2003-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-moreex.adb b/gcc/ada/libgnat/g-moreex.adb
index 303b4b3..6802b4de 100644
--- a/gcc/ada/libgnat/g-moreex.adb
+++ b/gcc/ada/libgnat/g-moreex.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2000-2019, AdaCore --
+-- Copyright (C) 2000-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-moreex.ads b/gcc/ada/libgnat/g-moreex.ads
index b05706d..15c5c67 100644
--- a/gcc/ada/libgnat/g-moreex.ads
+++ b/gcc/ada/libgnat/g-moreex.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2000-2019, AdaCore --
+-- Copyright (C) 2000-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-os_lib.adb b/gcc/ada/libgnat/g-os_lib.adb
index 56c1197..608f685 100644
--- a/gcc/ada/libgnat/g-os_lib.adb
+++ b/gcc/ada/libgnat/g-os_lib.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1995-2019, AdaCore --
+-- Copyright (C) 1995-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-os_lib.ads b/gcc/ada/libgnat/g-os_lib.ads
index 9796d1e..c178465 100644
--- a/gcc/ada/libgnat/g-os_lib.ads
+++ b/gcc/ada/libgnat/g-os_lib.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1995-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1995-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-pehage.adb b/gcc/ada/libgnat/g-pehage.adb
index 9b88256..a2c25f1 100644
--- a/gcc/ada/libgnat/g-pehage.adb
+++ b/gcc/ada/libgnat/g-pehage.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2002-2019, AdaCore --
+-- Copyright (C) 2002-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -622,6 +622,7 @@ package body GNAT.Perfect_Hash_Generators is
E := Get_Edges (J);
if Get_Graph (E.Y) = -1 then
+ pragma Assert (NK /= 0);
Set_Graph (E.Y, (E.Key - Get_Graph (X)) mod NK);
Assign (E.Y);
end if;
@@ -2201,6 +2202,8 @@ package body GNAT.Perfect_Hash_Generators is
-- in the position selection.
for J in S'Range loop
+ pragma Annotate (CodePeer, Modified, S (J));
+
if S (J).First = S (J).Last then
F := S (J).First;
L := S (J).Last;
@@ -2359,6 +2362,10 @@ package body GNAT.Perfect_Hash_Generators is
for P in 1 .. Last_Sel_Pos - 1 loop
if Max_Diff_Sel_Pos < Sel_Position (P) then
+ pragma Annotate
+ (CodePeer, False_Positive,
+ "test always false", "false positive?");
+
Sel_Position (P + 1 .. Last_Sel_Pos) :=
Sel_Position (P .. Last_Sel_Pos - 1);
Sel_Position (P) := Max_Diff_Sel_Pos;
@@ -2525,6 +2532,7 @@ package body GNAT.Perfect_Hash_Generators is
for J in 0 .. T1_Len - 1 loop
exit when Word (J + 1) = ASCII.NUL;
R := Get_Table (Table, J, Get_Used_Char (Word (J + 1)));
+ pragma Assert (NV /= 0);
S := (S + R) mod NV;
end loop;
@@ -2532,6 +2540,7 @@ package body GNAT.Perfect_Hash_Generators is
for J in 0 .. T1_Len - 1 loop
exit when Word (J + 1) = ASCII.NUL;
R := Get_Table (Table, J, 0);
+ pragma Assert (NV /= 0);
S := (S + R * Character'Pos (Word (J + 1))) mod NV;
end loop;
end case;
diff --git a/gcc/ada/libgnat/g-pehage.ads b/gcc/ada/libgnat/g-pehage.ads
index f9dbc61..814f1cc 100644
--- a/gcc/ada/libgnat/g-pehage.ads
+++ b/gcc/ada/libgnat/g-pehage.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2002-2019, AdaCore --
+-- Copyright (C) 2002-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-rannum.adb b/gcc/ada/libgnat/g-rannum.adb
index ed43a71..b7ef7d1 100644
--- a/gcc/ada/libgnat/g-rannum.adb
+++ b/gcc/ada/libgnat/g-rannum.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2007-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2007-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-rannum.ads b/gcc/ada/libgnat/g-rannum.ads
index fad5ace..5b633ff 100644
--- a/gcc/ada/libgnat/g-rannum.ads
+++ b/gcc/ada/libgnat/g-rannum.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2007-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2007-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-regexp.adb b/gcc/ada/libgnat/g-regexp.adb
index b1e6d1f..3d8b8c7 100644
--- a/gcc/ada/libgnat/g-regexp.adb
+++ b/gcc/ada/libgnat/g-regexp.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1999-2019, AdaCore --
+-- Copyright (C) 1999-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-regexp.ads b/gcc/ada/libgnat/g-regexp.ads
index 162738b..3a21edb 100644
--- a/gcc/ada/libgnat/g-regexp.ads
+++ b/gcc/ada/libgnat/g-regexp.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1998-2019, AdaCore --
+-- Copyright (C) 1998-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-regist.adb b/gcc/ada/libgnat/g-regist.adb
index 283cb05..fa67f0c 100644
--- a/gcc/ada/libgnat/g-regist.adb
+++ b/gcc/ada/libgnat/g-regist.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2001-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2001-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-regist.ads b/gcc/ada/libgnat/g-regist.ads
index bb35523..606fa91 100644
--- a/gcc/ada/libgnat/g-regist.ads
+++ b/gcc/ada/libgnat/g-regist.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2001-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2001-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-regpat.adb b/gcc/ada/libgnat/g-regpat.adb
index 5244a03..b06214b 100644
--- a/gcc/ada/libgnat/g-regpat.adb
+++ b/gcc/ada/libgnat/g-regpat.adb
@@ -7,7 +7,7 @@
-- B o d y --
-- --
-- Copyright (C) 1986 by University of Toronto. --
--- Copyright (C) 1999-2019, AdaCore --
+-- Copyright (C) 1999-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-regpat.ads b/gcc/ada/libgnat/g-regpat.ads
index 62fc2e8..c45e722 100644
--- a/gcc/ada/libgnat/g-regpat.ads
+++ b/gcc/ada/libgnat/g-regpat.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- --
-- Copyright (C) 1986 by University of Toronto. --
--- Copyright (C) 1996-2019, AdaCore --
+-- Copyright (C) 1996-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-rewdat.adb b/gcc/ada/libgnat/g-rewdat.adb
index c4906e8..897cac4 100644
--- a/gcc/ada/libgnat/g-rewdat.adb
+++ b/gcc/ada/libgnat/g-rewdat.adb
@@ -5,7 +5,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2014-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2014-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-rewdat.ads b/gcc/ada/libgnat/g-rewdat.ads
index 8f7602d..108035f 100644
--- a/gcc/ada/libgnat/g-rewdat.ads
+++ b/gcc/ada/libgnat/g-rewdat.ads
@@ -5,7 +5,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2014-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2014-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-sechas.adb b/gcc/ada/libgnat/g-sechas.adb
index edf7d3e..bd97571 100644
--- a/gcc/ada/libgnat/g-sechas.adb
+++ b/gcc/ada/libgnat/g-sechas.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2009-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2009-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -40,25 +40,25 @@ package body GNAT.Secure_Hashes is
type Fill_Buffer_Access is
access procedure
(M : in out Message_State;
- S : String;
- First : Natural;
- Last : out Natural);
- -- A procedure to transfer data from S, starting at First, into M's block
+ SEA : Stream_Element_Array;
+ First : Stream_Element_Offset;
+ Last : out Stream_Element_Offset);
+ -- A procedure to transfer data from SEA, starting at First, into M's block
-- buffer until either the block buffer is full or all data from S has been
-- consumed.
procedure Fill_Buffer_Copy
(M : in out Message_State;
- S : String;
- First : Natural;
- Last : out Natural);
+ SEA : Stream_Element_Array;
+ First : Stream_Element_Offset;
+ Last : out Stream_Element_Offset);
-- Transfer procedure which just copies data from S to M
procedure Fill_Buffer_Swap
(M : in out Message_State;
- S : String;
- First : Natural;
- Last : out Natural);
+ SEA : Stream_Element_Array;
+ First : Stream_Element_Offset;
+ Last : out Stream_Element_Offset);
-- Transfer procedure which swaps bytes from S when copying into M. S must
-- have even length. Note that the swapping is performed considering pairs
-- starting at S'First, even if S'First /= First (that is, if
@@ -75,22 +75,23 @@ package body GNAT.Secure_Hashes is
procedure Fill_Buffer_Copy
(M : in out Message_State;
- S : String;
- First : Natural;
- Last : out Natural)
+ SEA : Stream_Element_Array;
+ First : Stream_Element_Offset;
+ Last : out Stream_Element_Offset)
is
- Buf_String : String (M.Buffer'Range);
- for Buf_String'Address use M.Buffer'Address;
- pragma Import (Ada, Buf_String);
+ Buf_SEA : Stream_Element_Array (M.Buffer'Range);
+ for Buf_SEA'Address use M.Buffer'Address;
+ pragma Import (Ada, Buf_SEA);
- Length : constant Natural :=
- Natural'Min (M.Block_Length - M.Last, S'Last - First + 1);
+ Length : constant Stream_Element_Offset :=
+ Stream_Element_Offset'Min
+ (M.Block_Length - M.Last, SEA'Last - First + 1);
begin
pragma Assert (Length > 0);
- Buf_String (M.Last + 1 .. M.Last + Length) :=
- S (First .. First + Length - 1);
+ Buf_SEA (M.Last + 1 .. M.Last + Length) :=
+ SEA (First .. First + Length - 1);
M.Last := M.Last + Length;
Last := First + Length - 1;
end Fill_Buffer_Copy;
@@ -101,20 +102,21 @@ package body GNAT.Secure_Hashes is
procedure Fill_Buffer_Swap
(M : in out Message_State;
- S : String;
- First : Natural;
- Last : out Natural)
+ SEA : Stream_Element_Array;
+ First : Stream_Element_Offset;
+ Last : out Stream_Element_Offset)
is
- pragma Assert (S'Length mod 2 = 0);
- Length : constant Natural :=
- Natural'Min (M.Block_Length - M.Last, S'Last - First + 1);
+ pragma Assert (SEA'Length mod 2 = 0);
+ Length : constant Stream_Element_Offset :=
+ Stream_Element_Offset'Min
+ (M.Block_Length - M.Last, SEA'Last - First + 1);
begin
Last := First;
while Last - First < Length loop
M.Buffer (M.Last + 1 + Last - First) :=
- (if (Last - S'First) mod 2 = 0
- then S (Last + 1)
- else S (Last - 1));
+ (if (Last - SEA'First) mod 2 = 0
+ then SEA (Last + 1)
+ else SEA (Last - 1));
Last := Last + 1;
end loop;
M.Last := M.Last + Length;
@@ -146,7 +148,7 @@ package body GNAT.Secure_Hashes is
procedure Update
(C : in out Context;
- S : String;
+ SEA : Stream_Element_Array;
Fill_Buffer : Fill_Buffer_Access);
-- Internal common routine for all Update procedures
@@ -161,8 +163,7 @@ package body GNAT.Secure_Hashes is
------------
function Digest (C : Context) return Message_Digest is
- Hash_Bits : Stream_Element_Array
- (1 .. Stream_Element_Offset (Hash_Length));
+ Hash_Bits : Stream_Element_Array (1 .. Hash_Length);
begin
Final (C, Hash_Bits);
return MD : Message_Digest do
@@ -185,8 +186,7 @@ package body GNAT.Secure_Hashes is
end Digest;
function Digest (C : Context) return Binary_Message_Digest is
- Hash_Bits : Stream_Element_Array
- (1 .. Stream_Element_Offset (Hash_Length));
+ Hash_Bits : Stream_Element_Array (1 .. Hash_Length);
begin
Final (C, Hash_Bits);
return Hash_Bits;
@@ -223,13 +223,13 @@ package body GNAT.Secure_Hashes is
is
FC : Context := C;
- Zeroes : Natural;
+ Zeroes : Stream_Element_Count;
-- Number of 0 bytes in padding
Message_Length : Unsigned_64 := FC.M_State.Length;
-- Message length in bytes
- Size_Length : constant Natural :=
+ Size_Length : constant Stream_Element_Count :=
2 * Hash_State.Word'Size / 8;
-- Length in bytes of the size representation
@@ -237,11 +237,11 @@ package body GNAT.Secure_Hashes is
Zeroes := (Block_Length - 1 - Size_Length - FC.M_State.Last)
mod FC.M_State.Block_Length;
declare
- Pad : String (1 .. 1 + Zeroes + Size_Length) :=
- (1 => Character'Val (128), others => ASCII.NUL);
+ Pad : Stream_Element_Array (1 .. 1 + Zeroes + Size_Length) :=
+ (1 => 128, others => 0);
- Index : Natural;
- First_Index : Natural;
+ Index : Stream_Element_Offset;
+ First_Index : Stream_Element_Offset;
begin
First_Index := (if Hash_Bit_Order = Low_Order_First
@@ -255,12 +255,12 @@ package body GNAT.Secure_Hashes is
-- Message_Length is in bytes, but we need to store it as
-- a bit count.
- Pad (Index) := Character'Val
+ Pad (Index) := Stream_Element
(Shift_Left (Message_Length and 16#1f#, 3));
Message_Length := Shift_Right (Message_Length, 5);
else
- Pad (Index) := Character'Val (Message_Length and 16#ff#);
+ Pad (Index) := Stream_Element (Message_Length and 16#ff#);
Message_Length := Shift_Right (Message_Length, 8);
end if;
@@ -308,7 +308,7 @@ package body GNAT.Secure_Hashes is
return C : Context (KL => (if Key'Length <= Key_Length'Last
then Key'Length
- else Stream_Element_Offset (Hash_Length)))
+ else Hash_Length))
do
-- Set Key (if longer than block length, first hash it)
@@ -361,22 +361,29 @@ package body GNAT.Secure_Hashes is
procedure Update
(C : in out Context;
- S : String;
+ SEA : Stream_Element_Array;
Fill_Buffer : Fill_Buffer_Access)
is
- Last : Natural;
+ First, Last : Stream_Element_Offset;
begin
- C.M_State.Length := C.M_State.Length + S'Length;
+ if SEA'Length = 0 then
+ return;
+ end if;
+
+ C.M_State.Length := C.M_State.Length + SEA'Length;
- Last := S'First - 1;
- while Last < S'Last loop
- Fill_Buffer (C.M_State, S, Last + 1, Last);
+ First := SEA'First;
+ loop
+ Fill_Buffer (C.M_State, SEA, First, Last);
if C.M_State.Last = Block_Length then
Transform (C.H_State, C.M_State);
C.M_State.Last := 0;
end if;
+
+ exit when Last = SEA'Last;
+ First := Last + 1;
end loop;
end Update;
@@ -384,7 +391,7 @@ package body GNAT.Secure_Hashes is
-- Update --
------------
- procedure Update (C : in out Context; Input : String) is
+ procedure Update (C : in out Context; Input : Stream_Element_Array) is
begin
Update (C, Input, Fill_Buffer_Copy'Access);
end Update;
@@ -393,12 +400,13 @@ package body GNAT.Secure_Hashes is
-- Update --
------------
- procedure Update (C : in out Context; Input : Stream_Element_Array) is
- S : String (1 .. Input'Length);
- for S'Address use Input'Address;
- pragma Import (Ada, S);
+ procedure Update (C : in out Context; Input : String) is
+ pragma Assert (Input'Length <= Stream_Element_Offset'Last);
+ SEA : Stream_Element_Array (1 .. Input'Length);
+ for SEA'Address use Input'Address;
+ pragma Import (Ada, SEA);
begin
- Update (C, S, Fill_Buffer_Copy'Access);
+ Update (C, SEA, Fill_Buffer_Copy'Access);
end Update;
-----------------
@@ -406,12 +414,12 @@ package body GNAT.Secure_Hashes is
-----------------
procedure Wide_Update (C : in out Context; Input : Wide_String) is
- S : String (1 .. 2 * Input'Length);
- for S'Address use Input'Address;
- pragma Import (Ada, S);
+ SEA : Stream_Element_Array (1 .. 2 * Input'Length);
+ for SEA'Address use Input'Address;
+ pragma Import (Ada, SEA);
begin
Update
- (C, S,
+ (C, SEA,
(if System.Default_Bit_Order /= Low_Order_First
then Fill_Buffer_Swap'Access
else Fill_Buffer_Copy'Access));
@@ -460,7 +468,7 @@ package body GNAT.Secure_Hashes is
-------------
procedure To_Hash (H : State; H_Bits : out Stream_Element_Array) is
- Hash_Words : constant Natural := H'Size / Word'Size;
+ Hash_Words : constant Stream_Element_Offset := H'Size / Word'Size;
Result : State (1 .. Hash_Words) :=
H (H'Last - Hash_Words + 1 .. H'Last);
diff --git a/gcc/ada/libgnat/g-sechas.ads b/gcc/ada/libgnat/g-sechas.ads
index a259ec3..2edc2e3 100644
--- a/gcc/ada/libgnat/g-sechas.ads
+++ b/gcc/ada/libgnat/g-sechas.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2009-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2009-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -44,7 +44,7 @@ with System;
package GNAT.Secure_Hashes is
- type Buffer_Type is new String;
+ type Buffer_Type is new Stream_Element_Array;
for Buffer_Type'Alignment use 8;
-- Secure hash functions use a string buffer that is also accessed as an
-- array of words, which may require up to 64 bit alignment.
@@ -52,8 +52,8 @@ package GNAT.Secure_Hashes is
-- The function-independent part of processing state: A buffer of data
-- being accumulated until a complete block is ready for hashing.
- type Message_State (Block_Length : Natural) is record
- Last : Natural := 0;
+ type Message_State (Block_Length : Stream_Element_Count) is record
+ Last : Stream_Element_Offset := 0;
-- Index of last used element in Buffer
Length : Interfaces.Unsigned_64 := 0;
@@ -81,7 +81,7 @@ package GNAT.Secure_Hashes is
package Hash_Function_State is
- type State is array (Natural range <>) of Word;
+ type State is array (Stream_Element_Offset range <>) of Word;
-- Used to store a hash function's internal state
procedure To_Hash
@@ -97,13 +97,13 @@ package GNAT.Secure_Hashes is
-- secure hash function is an instance of this generic package.
generic
- Block_Words : Natural;
+ Block_Words : Stream_Element_Count;
-- Number of words in each block
- State_Words : Natural;
+ State_Words : Stream_Element_Count;
-- Number of words in internal state
- Hash_Words : Natural;
+ Hash_Words : Stream_Element_Count;
-- Number of words in the final hash (must be no greater than
-- State_Words).
@@ -157,11 +157,10 @@ package GNAT.Secure_Hashes is
-- the Wide_String version, each Wide_Character is processed low order
-- byte first.
- Word_Length : constant Natural := Hash_State.Word'Size / 8;
- Hash_Length : constant Natural := Hash_Words * Word_Length;
+ Word_Length : constant Stream_Element_Offset := Hash_State.Word'Size / 8;
+ Hash_Length : constant Stream_Element_Offset := Hash_Words * Word_Length;
- subtype Binary_Message_Digest is
- Stream_Element_Array (1 .. Stream_Element_Offset (Hash_Length));
+ subtype Binary_Message_Digest is Stream_Element_Array (1 .. Hash_Length);
-- The fixed-length byte array returned by Digest, providing
-- the hash in binary representation.
@@ -176,7 +175,7 @@ package GNAT.Secure_Hashes is
-- Wide_Update) on a default initialized Context, followed by Digest
-- on the resulting Context.
- subtype Message_Digest is String (1 .. 2 * Hash_Length);
+ subtype Message_Digest is String (1 .. 2 * Integer (Hash_Length));
-- The fixed-length string returned by Digest, providing the hash in
-- hexadecimal representation.
@@ -199,11 +198,12 @@ package GNAT.Secure_Hashes is
private
- Block_Length : constant Natural := Block_Words * Word_Length;
+ Block_Length : constant Stream_Element_Count :=
+ Block_Words * Word_Length;
-- Length in bytes of a data block
subtype Key_Length is
- Stream_Element_Offset range 0 .. Stream_Element_Offset (Block_Length);
+ Stream_Element_Offset range 0 .. Block_Length;
-- KL is 0 for a normal hash context, > 0 for HMAC
diff --git a/gcc/ada/libgnat/g-sehamd.adb b/gcc/ada/libgnat/g-sehamd.adb
index f759ec8..d82cc36 100644
--- a/gcc/ada/libgnat/g-sehamd.adb
+++ b/gcc/ada/libgnat/g-sehamd.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2002-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2002-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-sehamd.ads b/gcc/ada/libgnat/g-sehamd.ads
index 7cecc92..5f9bfe3 100644
--- a/gcc/ada/libgnat/g-sehamd.ads
+++ b/gcc/ada/libgnat/g-sehamd.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2002-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2002-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-sehash.adb b/gcc/ada/libgnat/g-sehash.adb
index bd94510..470c9b5 100644
--- a/gcc/ada/libgnat/g-sehash.adb
+++ b/gcc/ada/libgnat/g-sehash.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2002-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2002-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-sehash.ads b/gcc/ada/libgnat/g-sehash.ads
index 133a109..ed8aefb 100644
--- a/gcc/ada/libgnat/g-sehash.ads
+++ b/gcc/ada/libgnat/g-sehash.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2002-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2002-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-sercom.adb b/gcc/ada/libgnat/g-sercom.adb
index ccf5239..6f4d5e0 100644
--- a/gcc/ada/libgnat/g-sercom.adb
+++ b/gcc/ada/libgnat/g-sercom.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2007-2019, AdaCore --
+-- Copyright (C) 2007-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-sercom.ads b/gcc/ada/libgnat/g-sercom.ads
index 52447db..5d4a809 100644
--- a/gcc/ada/libgnat/g-sercom.ads
+++ b/gcc/ada/libgnat/g-sercom.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2007-2019, AdaCore --
+-- Copyright (C) 2007-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-sercom__linux.adb b/gcc/ada/libgnat/g-sercom__linux.adb
index 87143e2..7d93e57 100644
--- a/gcc/ada/libgnat/g-sercom__linux.adb
+++ b/gcc/ada/libgnat/g-sercom__linux.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2007-2019, AdaCore --
+-- Copyright (C) 2007-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-sercom__mingw.adb b/gcc/ada/libgnat/g-sercom__mingw.adb
index d5e2344..a0da5ff 100644
--- a/gcc/ada/libgnat/g-sercom__mingw.adb
+++ b/gcc/ada/libgnat/g-sercom__mingw.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2007-2019, AdaCore --
+-- Copyright (C) 2007-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-sestin.ads b/gcc/ada/libgnat/g-sestin.ads
index 236009d..1e74ff8 100644
--- a/gcc/ada/libgnat/g-sestin.ads
+++ b/gcc/ada/libgnat/g-sestin.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, AdaCore --
+-- Copyright (C) 2004-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-sets.adb b/gcc/ada/libgnat/g-sets.adb
index b588880..9d34553 100644
--- a/gcc/ada/libgnat/g-sets.adb
+++ b/gcc/ada/libgnat/g-sets.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2018-2019, AdaCore --
+-- Copyright (C) 2018-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-sets.ads b/gcc/ada/libgnat/g-sets.ads
index 1898e26..18568fa 100644
--- a/gcc/ada/libgnat/g-sets.ads
+++ b/gcc/ada/libgnat/g-sets.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2018-2019, AdaCore --
+-- Copyright (C) 2018-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-sha1.adb b/gcc/ada/libgnat/g-sha1.adb
index b84ca95..66e717f 100644
--- a/gcc/ada/libgnat/g-sha1.adb
+++ b/gcc/ada/libgnat/g-sha1.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2009-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2009-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-sha1.ads b/gcc/ada/libgnat/g-sha1.ads
index c662e8f..584c560 100644
--- a/gcc/ada/libgnat/g-sha1.ads
+++ b/gcc/ada/libgnat/g-sha1.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2009-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2009-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-sha224.ads b/gcc/ada/libgnat/g-sha224.ads
index 6a4dd25..fd8b753 100644
--- a/gcc/ada/libgnat/g-sha224.ads
+++ b/gcc/ada/libgnat/g-sha224.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2009-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2009-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-sha256.ads b/gcc/ada/libgnat/g-sha256.ads
index 6f226f8..58d8b16 100644
--- a/gcc/ada/libgnat/g-sha256.ads
+++ b/gcc/ada/libgnat/g-sha256.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2009-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2009-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-sha384.ads b/gcc/ada/libgnat/g-sha384.ads
index dc5df0a..32ea088 100644
--- a/gcc/ada/libgnat/g-sha384.ads
+++ b/gcc/ada/libgnat/g-sha384.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2009-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2009-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-sha512.ads b/gcc/ada/libgnat/g-sha512.ads
index 42926ff..6d7c0ee 100644
--- a/gcc/ada/libgnat/g-sha512.ads
+++ b/gcc/ada/libgnat/g-sha512.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2009-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2009-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-shsh32.adb b/gcc/ada/libgnat/g-shsh32.adb
index 4036ad6..1631562 100644
--- a/gcc/ada/libgnat/g-shsh32.adb
+++ b/gcc/ada/libgnat/g-shsh32.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2009-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2009-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-shsh32.ads b/gcc/ada/libgnat/g-shsh32.ads
index 6359001..3f46df3 100644
--- a/gcc/ada/libgnat/g-shsh32.ads
+++ b/gcc/ada/libgnat/g-shsh32.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2009-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2009-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-shsh64.adb b/gcc/ada/libgnat/g-shsh64.adb
index bf95a3d..061c407 100644
--- a/gcc/ada/libgnat/g-shsh64.adb
+++ b/gcc/ada/libgnat/g-shsh64.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2009-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2009-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-shsh64.ads b/gcc/ada/libgnat/g-shsh64.ads
index 5d8e07a..010e5c4 100644
--- a/gcc/ada/libgnat/g-shsh64.ads
+++ b/gcc/ada/libgnat/g-shsh64.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2009-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2009-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-shshco.adb b/gcc/ada/libgnat/g-shshco.adb
index c0802ce..89e27f0 100644
--- a/gcc/ada/libgnat/g-shshco.adb
+++ b/gcc/ada/libgnat/g-shshco.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2009-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2009-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -108,7 +108,8 @@ package body GNAT.Secure_Hashes.SHA2_Common is
-- 3. Perform transformation rounds
for T in 0 .. Rounds - 1 loop
- T1 := H + Sigma1 (E) + Ch (E, F, G) + K (T) + W (T);
+ T1 := H + Sigma1 (E) + Ch (E, F, G)
+ + K (Stream_Element_Offset (T)) + W (T);
T2 := Sigma0 (A) + Maj (A, B, C);
H := G;
G := F;
diff --git a/gcc/ada/libgnat/g-shshco.ads b/gcc/ada/libgnat/g-shshco.ads
index 8f0e84c..8c389dd 100644
--- a/gcc/ada/libgnat/g-shshco.ads
+++ b/gcc/ada/libgnat/g-shshco.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2009-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2009-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-soccon.ads b/gcc/ada/libgnat/g-soccon.ads
index 0fe12dc..06cf683 100644
--- a/gcc/ada/libgnat/g-soccon.ads
+++ b/gcc/ada/libgnat/g-soccon.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2000-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2000-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-socket.adb b/gcc/ada/libgnat/g-socket.adb
index 6c65424..719d9a9 100644
--- a/gcc/ada/libgnat/g-socket.adb
+++ b/gcc/ada/libgnat/g-socket.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2001-2019, AdaCore --
+-- Copyright (C) 2001-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -29,14 +29,14 @@
-- --
------------------------------------------------------------------------------
-with Ada.Streams; use Ada.Streams;
-with Ada.Exceptions; use Ada.Exceptions;
with Ada.Containers.Generic_Array_Sort;
+with Ada.Exceptions; use Ada.Exceptions;
with Ada.Finalization;
+with Ada.Streams; use Ada.Streams;
with Ada.Unchecked_Conversion;
-with GNAT.Sockets.Thin_Common; use GNAT.Sockets.Thin_Common;
with GNAT.Sockets.Thin; use GNAT.Sockets.Thin;
+with GNAT.Sockets.Thin_Common; use GNAT.Sockets.Thin_Common;
with GNAT.Sockets.Linker_Options;
pragma Warnings (Off, GNAT.Sockets.Linker_Options);
@@ -291,7 +291,7 @@ package body GNAT.Sockets is
function Create_Address
(Family : Family_Inet_4_6; Bytes : Inet_Addr_Bytes) return Inet_Addr_Type
with Inline;
- -- Creates address from family and Inet_Addr_Bytes array.
+ -- Creates address from family and Inet_Addr_Bytes array
function Get_Bytes (Addr : Inet_Addr_Type) return Inet_Addr_Bytes
with Inline;
@@ -836,6 +836,7 @@ package body GNAT.Sockets is
-- the waiting task to resume its execution.
Res := Signalling_Fds.Create (Two_Fds'Access);
+ pragma Annotate (CodePeer, Modified, Two_Fds);
if Res = Failure then
Raise_Socket_Error (Socket_Errno);
@@ -886,6 +887,7 @@ package body GNAT.Sockets is
((if Family = Family_Unspec then Default_Socket_Pair_Family
else Families (Family)),
Modes (Mode), Levels (Level), Pair'Access);
+ pragma Annotate (CodePeer, Modified, Pair);
if Res = Failure then
Raise_Socket_Error (Socket_Errno);
@@ -957,8 +959,12 @@ package body GNAT.Sockets is
if Item.Last /= No_Socket then
Get_Socket_From_Set
(Item.Set'Access, Last => L'Access, Socket => S'Access);
+ pragma Annotate (CodePeer, Modified, L);
+ pragma Annotate (CodePeer, Modified, S);
+
Item.Last := Socket_Type (L);
Socket := Socket_Type (S);
+
else
Socket := No_Socket;
end if;
@@ -1216,7 +1222,7 @@ package body GNAT.Sockets is
pragma Unreferenced (Family);
HA : aliased In_Addr_Union (Address.Family);
- Buflen : constant C.int := Netdb_Buffer_Size;
+ Buflen : constant C.size_t := Netdb_Buffer_Size;
Buf : aliased C.char_array (1 .. Netdb_Buffer_Size);
Res : aliased Hostent;
Err : aliased C.int;
@@ -1271,7 +1277,7 @@ package body GNAT.Sockets is
declare
HN : constant C.char_array := C.To_C (Name);
- Buflen : constant C.int := Netdb_Buffer_Size;
+ Buflen : constant C.size_t := Netdb_Buffer_Size;
Buf : aliased C.char_array (1 .. Netdb_Buffer_Size);
Res : aliased Hostent;
Err : aliased C.int;
@@ -1319,7 +1325,7 @@ package body GNAT.Sockets is
is
SN : constant C.char_array := C.To_C (Name);
SP : constant C.char_array := C.To_C (Protocol);
- Buflen : constant C.int := Netdb_Buffer_Size;
+ Buflen : constant C.size_t := Netdb_Buffer_Size;
Buf : aliased C.char_array (1 .. Netdb_Buffer_Size);
Res : aliased Servent;
@@ -1349,7 +1355,7 @@ package body GNAT.Sockets is
Protocol : String) return Service_Entry_Type
is
SP : constant C.char_array := C.To_C (Protocol);
- Buflen : constant C.int := Netdb_Buffer_Size;
+ Buflen : constant C.size_t := Netdb_Buffer_Size;
Buf : aliased C.char_array (1 .. Netdb_Buffer_Size);
Res : aliased Servent;
@@ -2022,7 +2028,11 @@ package body GNAT.Sockets is
type Local_Selector_Access is access Selector_Type;
for Local_Selector_Access'Storage_Size use Selector_Type'Size;
- S : Selector_Access;
+ procedure Unchecked_Free is new Ada.Unchecked_Deallocation
+ (Selector_Type, Local_Selector_Access);
+
+ Local_S : Local_Selector_Access;
+ S : Selector_Access;
-- Selector to use for waiting
R_Fd_Set : Socket_Set_Type;
@@ -2032,12 +2042,9 @@ package body GNAT.Sockets is
-- Create selector if not provided by the user
if Selector = null then
- declare
- Local_S : constant Local_Selector_Access := new Selector_Type;
- begin
- S := Local_S.all'Unchecked_Access;
- Create_Selector (S.all);
- end;
+ Local_S := new Selector_Type;
+ S := Local_S.all'Unchecked_Access;
+ Create_Selector (S.all);
else
S := Selector.all'Access;
@@ -2053,7 +2060,17 @@ package body GNAT.Sockets is
if Selector = null then
Close_Selector (S.all);
+ Unchecked_Free (Local_S);
end if;
+
+ exception
+ when others =>
+ Status := Completed;
+
+ if Selector = null then
+ Close_Selector (S.all);
+ Unchecked_Free (Local_S);
+ end if;
end Wait_On_Socket;
-----------------
@@ -2709,14 +2726,14 @@ package body GNAT.Sockets is
U4 := C.unsigned (Option.Timeout / 0.001);
if Option.Timeout > 0.0 and then U4 = 0 then
- -- Avoid round to zero. Zero timeout mean unlimited.
+ -- Avoid round to zero. Zero timeout mean unlimited
U4 := 1;
end if;
-- Old windows versions actual timeout is 500 ms + the given
-- value (unless it is 0).
- if Minus_500ms_Windows_Timeout /= 0 then
+ if Minus_500ms_Windows_Timeout then
if U4 > 500 then
U4 := U4 - 500;
@@ -2833,9 +2850,11 @@ package body GNAT.Sockets is
-- Check for possible Duration overflow when Tv_Sec field is 64 bit
-- integer.
- if Val.Tv_Sec > time_t (Max_D) or else
- (Val.Tv_Sec = time_t (Max_D) and then
- Val.Tv_Usec > suseconds_t ((Forever - Duration (Max_D)) * 1E6))
+ if Val.Tv_Sec > time_t (Max_D)
+ or else
+ (Val.Tv_Sec = time_t (Max_D)
+ and then
+ Val.Tv_Usec > suseconds_t ((Forever - Duration (Max_D)) * 1E6))
then
return Forever;
end if;
@@ -2921,8 +2940,7 @@ package body GNAT.Sockets is
-- To_Int --
------------
- function To_Int (F : Request_Flag_Type) return C.int
- is
+ function To_Int (F : Request_Flag_Type) return C.int is
Current : Request_Flag_Type := F;
Result : C.int := 0;
@@ -2932,6 +2950,10 @@ package body GNAT.Sockets is
if Current mod 2 /= 0 then
if Flags (J) = -1 then
+ pragma Annotate
+ (CodePeer, False_Positive,
+ "test always false", "self fulfilling prophecy");
+
Raise_Socket_Error (SOSC.EOPNOTSUPP);
end if;
diff --git a/gcc/ada/libgnat/g-socket.ads b/gcc/ada/libgnat/g-socket.ads
index 3962cc0..9167241 100644
--- a/gcc/ada/libgnat/g-socket.ads
+++ b/gcc/ada/libgnat/g-socket.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2001-2019, AdaCore --
+-- Copyright (C) 2001-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-socket__dummy.adb b/gcc/ada/libgnat/g-socket__dummy.adb
index 6873185..a343eab 100644
--- a/gcc/ada/libgnat/g-socket__dummy.adb
+++ b/gcc/ada/libgnat/g-socket__dummy.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2001-2019, AdaCore --
+-- Copyright (C) 2001-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-socket__dummy.ads b/gcc/ada/libgnat/g-socket__dummy.ads
index 67f9e0f..2cd7460 100644
--- a/gcc/ada/libgnat/g-socket__dummy.ads
+++ b/gcc/ada/libgnat/g-socket__dummy.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2001-2019, AdaCore --
+-- Copyright (C) 2001-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-socthi.adb b/gcc/ada/libgnat/g-socthi.adb
index d1640f1..5d86993 100644
--- a/gcc/ada/libgnat/g-socthi.adb
+++ b/gcc/ada/libgnat/g-socthi.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2001-2019, AdaCore --
+-- Copyright (C) 2001-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -74,17 +74,17 @@ package body GNAT.Sockets.Thin is
function Syscall_Recv
(S : C.int;
Msg : System.Address;
- Len : C.int;
- Flags : C.int) return C.int;
+ Len : C.size_t;
+ Flags : C.int) return System.CRTL.ssize_t;
pragma Import (C, Syscall_Recv, "recv");
function Syscall_Recvfrom
(S : C.int;
Msg : System.Address;
- Len : C.int;
+ Len : C.size_t;
Flags : C.int;
From : System.Address;
- Fromlen : not null access C.int) return C.int;
+ Fromlen : not null access C.int) return System.CRTL.ssize_t;
pragma Import (C, Syscall_Recvfrom, "recvfrom");
function Syscall_Recvmsg
@@ -102,10 +102,10 @@ package body GNAT.Sockets.Thin is
function Syscall_Sendto
(S : C.int;
Msg : System.Address;
- Len : C.int;
+ Len : C.size_t;
Flags : C.int;
To : System.Address;
- Tolen : C.int) return C.int;
+ Tolen : C.int) return System.CRTL.ssize_t;
pragma Import (C, Syscall_Sendto, "sendto");
function Syscall_Socket
@@ -250,14 +250,14 @@ package body GNAT.Sockets.Thin is
function C_Recv
(S : C.int;
Msg : System.Address;
- Len : C.int;
+ Len : C.size_t;
Flags : C.int) return C.int
is
Res : C.int;
begin
loop
- Res := Syscall_Recv (S, Msg, Len, Flags);
+ Res := C.int (Syscall_Recv (S, Msg, Len, Flags));
exit when SOSC.Thread_Blocking_IO
or else Res /= Failure
or else Non_Blocking_Socket (S)
@@ -275,7 +275,7 @@ package body GNAT.Sockets.Thin is
function C_Recvfrom
(S : C.int;
Msg : System.Address;
- Len : C.int;
+ Len : C.size_t;
Flags : C.int;
From : System.Address;
Fromlen : not null access C.int) return C.int
@@ -284,7 +284,7 @@ package body GNAT.Sockets.Thin is
begin
loop
- Res := Syscall_Recvfrom (S, Msg, Len, Flags, From, Fromlen);
+ Res := C.int (Syscall_Recvfrom (S, Msg, Len, Flags, From, Fromlen));
exit when SOSC.Thread_Blocking_IO
or else Res /= Failure
or else Non_Blocking_Socket (S)
@@ -350,7 +350,7 @@ package body GNAT.Sockets.Thin is
function C_Sendto
(S : C.int;
Msg : System.Address;
- Len : C.int;
+ Len : C.size_t;
Flags : C.int;
To : System.Address;
Tolen : C.int) return C.int
@@ -359,7 +359,7 @@ package body GNAT.Sockets.Thin is
begin
loop
- Res := Syscall_Sendto (S, Msg, Len, Flags, To, Tolen);
+ Res := C.int (Syscall_Sendto (S, Msg, Len, Flags, To, Tolen));
exit when SOSC.Thread_Blocking_IO
or else Res /= Failure
or else Non_Blocking_Socket (S)
diff --git a/gcc/ada/libgnat/g-socthi.ads b/gcc/ada/libgnat/g-socthi.ads
index 56b31ac..c6a07ba 100644
--- a/gcc/ada/libgnat/g-socthi.ads
+++ b/gcc/ada/libgnat/g-socthi.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2001-2019, AdaCore --
+-- Copyright (C) 2001-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -98,7 +98,7 @@ package GNAT.Sockets.Thin is
function C_Gethostname
(Name : System.Address;
- Namelen : C.int) return C.int;
+ Namelen : C.size_t) return C.int;
function C_Getpeername
(S : C.int;
@@ -129,13 +129,13 @@ package GNAT.Sockets.Thin is
function C_Recv
(S : C.int;
Msg : System.Address;
- Len : C.int;
+ Len : C.size_t;
Flags : C.int) return C.int;
function C_Recvfrom
(S : C.int;
Msg : System.Address;
- Len : C.int;
+ Len : C.size_t;
Flags : C.int;
From : System.Address;
Fromlen : not null access C.int) return C.int;
@@ -160,7 +160,7 @@ package GNAT.Sockets.Thin is
function C_Sendto
(S : C.int;
Msg : System.Address;
- Len : C.int;
+ Len : C.size_t;
Flags : C.int;
To : System.Address;
Tolen : C.int) return C.int;
diff --git a/gcc/ada/libgnat/g-socthi__dummy.adb b/gcc/ada/libgnat/g-socthi__dummy.adb
index c83f9e8..53acef5 100644
--- a/gcc/ada/libgnat/g-socthi__dummy.adb
+++ b/gcc/ada/libgnat/g-socthi__dummy.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2001-2019, AdaCore --
+-- Copyright (C) 2001-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-socthi__dummy.ads b/gcc/ada/libgnat/g-socthi__dummy.ads
index 3aacf17..3ddcdb4 100644
--- a/gcc/ada/libgnat/g-socthi__dummy.ads
+++ b/gcc/ada/libgnat/g-socthi__dummy.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2001-2019, AdaCore --
+-- Copyright (C) 2001-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-socthi__mingw.adb b/gcc/ada/libgnat/g-socthi__mingw.adb
index 5ad292d..f63a6cb 100644
--- a/gcc/ada/libgnat/g-socthi__mingw.adb
+++ b/gcc/ada/libgnat/g-socthi__mingw.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2001-2019, AdaCore --
+-- Copyright (C) 2001-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-socthi__mingw.ads b/gcc/ada/libgnat/g-socthi__mingw.ads
index a5aa67e..ff6feaa 100644
--- a/gcc/ada/libgnat/g-socthi__mingw.ads
+++ b/gcc/ada/libgnat/g-socthi__mingw.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2001-2019, AdaCore --
+-- Copyright (C) 2001-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-socthi__vxworks.adb b/gcc/ada/libgnat/g-socthi__vxworks.adb
index a2bbed6..548b9d3 100644
--- a/gcc/ada/libgnat/g-socthi__vxworks.adb
+++ b/gcc/ada/libgnat/g-socthi__vxworks.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2002-2019, AdaCore --
+-- Copyright (C) 2002-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -78,14 +78,14 @@ package body GNAT.Sockets.Thin is
function Syscall_Recv
(S : C.int;
Msg : System.Address;
- Len : C.int;
+ Len : C.size_t;
Flags : C.int) return C.int;
pragma Import (C, Syscall_Recv, "recv");
function Syscall_Recvfrom
(S : C.int;
Msg : System.Address;
- Len : C.int;
+ Len : C.size_t;
Flags : C.int;
From : System.Address;
Fromlen : not null access C.int) return C.int;
@@ -106,17 +106,17 @@ package body GNAT.Sockets.Thin is
function Syscall_Send
(S : C.int;
Msg : System.Address;
- Len : C.int;
- Flags : C.int) return C.int;
+ Len : C.size_t;
+ Flags : C.int) return System.CRTL.ssize_t;
pragma Import (C, Syscall_Send, "send");
function Syscall_Sendto
(S : C.int;
Msg : System.Address;
- Len : C.int;
+ Len : C.size_t;
Flags : C.int;
To : System.Address;
- Tolen : C.int) return C.int;
+ Tolen : C.int) return System.CRTL.ssize_t;
pragma Import (C, Syscall_Sendto, "sendto");
function Syscall_Socket
@@ -252,7 +252,7 @@ package body GNAT.Sockets.Thin is
function C_Recv
(S : C.int;
Msg : System.Address;
- Len : C.int;
+ Len : C.size_t;
Flags : C.int) return C.int
is
Res : C.int;
@@ -277,7 +277,7 @@ package body GNAT.Sockets.Thin is
function C_Recvfrom
(S : C.int;
Msg : System.Address;
- Len : C.int;
+ Len : C.size_t;
Flags : C.int;
From : System.Address;
Fromlen : not null access C.int) return C.int
@@ -352,7 +352,7 @@ package body GNAT.Sockets.Thin is
function C_Sendto
(S : C.int;
Msg : System.Address;
- Len : C.int;
+ Len : C.size_t;
Flags : C.int;
To : System.Address;
Tolen : C.int) return C.int
@@ -369,12 +369,12 @@ package body GNAT.Sockets.Thin is
-- support sendto(2) calls on connected sockets with a null
-- destination address, so use send(2) instead in that case.
- Res := Syscall_Send (S, Msg, Len, Flags);
+ Res := C.int (Syscall_Send (S, Msg, Len, Flags));
-- Normal case where destination address is non-null
else
- Res := Syscall_Sendto (S, Msg, Len, Flags, To, Tolen);
+ Res := C.int (Syscall_Sendto (S, Msg, Len, Flags, To, Tolen));
end if;
exit when SOSC.Thread_Blocking_IO
diff --git a/gcc/ada/libgnat/g-socthi__vxworks.ads b/gcc/ada/libgnat/g-socthi__vxworks.ads
index 664218d..704ec0a 100644
--- a/gcc/ada/libgnat/g-socthi__vxworks.ads
+++ b/gcc/ada/libgnat/g-socthi__vxworks.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2002-2019, AdaCore --
+-- Copyright (C) 2002-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -95,7 +95,7 @@ package GNAT.Sockets.Thin is
function C_Gethostname
(Name : System.Address;
- Namelen : C.int) return C.int;
+ Namelen : C.size_t) return C.int;
function C_Getpeername
(S : C.int;
@@ -126,13 +126,13 @@ package GNAT.Sockets.Thin is
function C_Recv
(S : C.int;
Msg : System.Address;
- Len : C.int;
+ Len : C.size_t;
Flags : C.int) return C.int;
function C_Recvfrom
(S : C.int;
Msg : System.Address;
- Len : C.int;
+ Len : C.size_t;
Flags : C.int;
From : System.Address;
Fromlen : not null access C.int) return C.int;
@@ -157,7 +157,7 @@ package GNAT.Sockets.Thin is
function C_Sendto
(S : C.int;
Msg : System.Address;
- Len : C.int;
+ Len : C.size_t;
Flags : C.int;
To : System.Address;
Tolen : C.int) return C.int;
diff --git a/gcc/ada/libgnat/g-soliop.ads b/gcc/ada/libgnat/g-soliop.ads
index cbbf015..295d812 100644
--- a/gcc/ada/libgnat/g-soliop.ads
+++ b/gcc/ada/libgnat/g-soliop.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2001-2019, AdaCore --
+-- Copyright (C) 2001-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-soliop__lynxos.ads b/gcc/ada/libgnat/g-soliop__lynxos.ads
index f9f8b89..227c2e4 100644
--- a/gcc/ada/libgnat/g-soliop__lynxos.ads
+++ b/gcc/ada/libgnat/g-soliop__lynxos.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2001-2019, AdaCore --
+-- Copyright (C) 2001-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-soliop__mingw.ads b/gcc/ada/libgnat/g-soliop__mingw.ads
index cca249d..cbb3e36 100644
--- a/gcc/ada/libgnat/g-soliop__mingw.ads
+++ b/gcc/ada/libgnat/g-soliop__mingw.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2001-2019, AdaCore --
+-- Copyright (C) 2001-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-soliop__qnx.ads b/gcc/ada/libgnat/g-soliop__qnx.ads
index 5ea4d8d..c45bd04 100644
--- a/gcc/ada/libgnat/g-soliop__qnx.ads
+++ b/gcc/ada/libgnat/g-soliop__qnx.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2001-2019, AdaCore --
+-- Copyright (C) 2001-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-soliop__solaris.ads b/gcc/ada/libgnat/g-soliop__solaris.ads
index 613b343..388b87c 100644
--- a/gcc/ada/libgnat/g-soliop__solaris.ads
+++ b/gcc/ada/libgnat/g-soliop__solaris.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2001-2019, AdaCore --
+-- Copyright (C) 2001-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-sothco.adb b/gcc/ada/libgnat/g-sothco.adb
index 9794d8b..1b8dd49 100644
--- a/gcc/ada/libgnat/g-sothco.adb
+++ b/gcc/ada/libgnat/g-sothco.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2008-2019, AdaCore --
+-- Copyright (C) 2008-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-sothco.ads b/gcc/ada/libgnat/g-sothco.ads
index a68019c..e30af18 100644
--- a/gcc/ada/libgnat/g-sothco.ads
+++ b/gcc/ada/libgnat/g-sothco.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2008-2019, AdaCore --
+-- Copyright (C) 2008-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -281,7 +281,7 @@ package GNAT.Sockets.Thin_Common is
(Name : C.char_array;
Ret : not null access Hostent;
Buf : System.Address;
- Buflen : C.int;
+ Buflen : C.size_t;
H_Errnop : not null access C.int) return C.int;
function C_Gethostbyaddr
@@ -290,7 +290,7 @@ package GNAT.Sockets.Thin_Common is
Addr_Type : C.int;
Ret : not null access Hostent;
Buf : System.Address;
- Buflen : C.int;
+ Buflen : C.size_t;
H_Errnop : not null access C.int) return C.int;
function C_Getservbyname
@@ -298,14 +298,14 @@ package GNAT.Sockets.Thin_Common is
Proto : C.char_array;
Ret : not null access Servent;
Buf : System.Address;
- Buflen : C.int) return C.int;
+ Buflen : C.size_t) return C.int;
function C_Getservbyport
(Port : C.int;
Proto : C.char_array;
Ret : not null access Servent;
Buf : System.Address;
- Buflen : C.int) return C.int;
+ Buflen : C.size_t) return C.int;
Address_Size : constant := Standard'Address_Size;
@@ -451,12 +451,19 @@ package GNAT.Sockets.Thin_Common is
renames Short_To_Network;
-- Symmetric operation
- function Minus_500ms_Windows_Timeout return C.int;
+ Minus_500ms_Windows_Timeout : constant Boolean;
-- Microsoft Windows desktop older then 8.0 and Microsoft Windows Server
-- older than 2019 need timeout correction for 500 milliseconds. This
- -- routine returns 1 for such versions.
+ -- constant is True for such versions.
private
+
+ function Get_Minus_500ms_Timeout return C.int
+ with Import, Convention => C, External_Name => "__gnat_minus_500ms";
+
+ Minus_500ms_Windows_Timeout : constant Boolean :=
+ Get_Minus_500ms_Timeout /= 0;
+
pragma Import (C, Get_Socket_From_Set, "__gnat_get_socket_from_set");
pragma Import (C, Is_Socket_In_Set, "__gnat_is_socket_in_set");
pragma Import (C, Last_Socket_In_Set, "__gnat_last_socket_in_set");
@@ -488,6 +495,4 @@ private
pragma Import (C, Hostent_H_Length, "__gnat_hostent_h_length");
pragma Import (C, Hostent_H_Addr, "__gnat_hostent_h_addr");
- pragma Import (C, Minus_500ms_Windows_Timeout, "__gnat_minus_500ms");
-
end GNAT.Sockets.Thin_Common;
diff --git a/gcc/ada/libgnat/g-sothco__dummy.adb b/gcc/ada/libgnat/g-sothco__dummy.adb
index 62f99bb..8c90ab0 100644
--- a/gcc/ada/libgnat/g-sothco__dummy.adb
+++ b/gcc/ada/libgnat/g-sothco__dummy.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2008-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2008-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-sothco__dummy.ads b/gcc/ada/libgnat/g-sothco__dummy.ads
index ae3e5cc..d93916a 100644
--- a/gcc/ada/libgnat/g-sothco__dummy.ads
+++ b/gcc/ada/libgnat/g-sothco__dummy.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2008-2019, AdaCore --
+-- Copyright (C) 2008-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-souinf.ads b/gcc/ada/libgnat/g-souinf.ads
index bdd27a5..ce55464 100644
--- a/gcc/ada/libgnat/g-souinf.ads
+++ b/gcc/ada/libgnat/g-souinf.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2000-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2000-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-spchge.adb b/gcc/ada/libgnat/g-spchge.adb
index ad70fad..62f1666 100644
--- a/gcc/ada/libgnat/g-spchge.adb
+++ b/gcc/ada/libgnat/g-spchge.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1998-2019, AdaCore --
+-- Copyright (C) 1998-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-spchge.ads b/gcc/ada/libgnat/g-spchge.ads
index 93e8dbc..a0ce625 100644
--- a/gcc/ada/libgnat/g-spchge.ads
+++ b/gcc/ada/libgnat/g-spchge.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1998-2019, AdaCore --
+-- Copyright (C) 1998-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-speche.adb b/gcc/ada/libgnat/g-speche.adb
index 21c1d85..545ca42 100644
--- a/gcc/ada/libgnat/g-speche.adb
+++ b/gcc/ada/libgnat/g-speche.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1998-2019, AdaCore --
+-- Copyright (C) 1998-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-speche.ads b/gcc/ada/libgnat/g-speche.ads
index d566e1e..a906e43 100644
--- a/gcc/ada/libgnat/g-speche.ads
+++ b/gcc/ada/libgnat/g-speche.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1998-2019, AdaCore --
+-- Copyright (C) 1998-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-spipat.adb b/gcc/ada/libgnat/g-spipat.adb
index 699b322..e9f4bf5 100644
--- a/gcc/ada/libgnat/g-spipat.adb
+++ b/gcc/ada/libgnat/g-spipat.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1998-2019, AdaCore --
+-- Copyright (C) 1998-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-spipat.ads b/gcc/ada/libgnat/g-spipat.ads
index 4dfc25a..d711b3b6 100644
--- a/gcc/ada/libgnat/g-spipat.ads
+++ b/gcc/ada/libgnat/g-spipat.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1997-2019, AdaCore --
+-- Copyright (C) 1997-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-spitbo.adb b/gcc/ada/libgnat/g-spitbo.adb
index ad56822..07ecd52 100644
--- a/gcc/ada/libgnat/g-spitbo.adb
+++ b/gcc/ada/libgnat/g-spitbo.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1998-2019, AdaCore --
+-- Copyright (C) 1998-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-spitbo.ads b/gcc/ada/libgnat/g-spitbo.ads
index 126972f..29a0606 100644
--- a/gcc/ada/libgnat/g-spitbo.ads
+++ b/gcc/ada/libgnat/g-spitbo.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1997-2019, AdaCore --
+-- Copyright (C) 1997-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -126,7 +126,7 @@ package GNAT.Spitbol is
Len : Natural;
Pad : Character := ' ') return VString;
-- If the length of Str is greater than or equal to Len, then Str is
- -- returned unchanged. Otherwise, The value returned is obtained by
+ -- returned unchanged. Otherwise, the value returned is obtained by
-- concatenating Length (Str) - Len instances of the Pad character to
-- the left hand side.
@@ -155,7 +155,7 @@ package GNAT.Spitbol is
Len : Natural;
Pad : Character := ' ') return VString;
-- If the length of Str is greater than or equal to Len, then Str is
- -- returned unchanged. Otherwise, The value returned is obtained by
+ -- returned unchanged. Otherwise, the value returned is obtained by
-- concatenating Length (Str) - Len instances of the Pad character to
-- the right hand side.
diff --git a/gcc/ada/libgnat/g-sptabo.ads b/gcc/ada/libgnat/g-sptabo.ads
index 06de800..4aa1a76 100644
--- a/gcc/ada/libgnat/g-sptabo.ads
+++ b/gcc/ada/libgnat/g-sptabo.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1997-2019, AdaCore --
+-- Copyright (C) 1997-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-sptain.ads b/gcc/ada/libgnat/g-sptain.ads
index 0a0933c..065a33d 100644
--- a/gcc/ada/libgnat/g-sptain.ads
+++ b/gcc/ada/libgnat/g-sptain.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1997-2019, AdaCore --
+-- Copyright (C) 1997-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-sptavs.ads b/gcc/ada/libgnat/g-sptavs.ads
index 8b7d85c..2771cf5 100644
--- a/gcc/ada/libgnat/g-sptavs.ads
+++ b/gcc/ada/libgnat/g-sptavs.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1997-2019, AdaCore --
+-- Copyright (C) 1997-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-sse.ads b/gcc/ada/libgnat/g-sse.ads
index 915eda3..fc220bd 100644
--- a/gcc/ada/libgnat/g-sse.ads
+++ b/gcc/ada/libgnat/g-sse.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2009-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2009-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-ssvety.ads b/gcc/ada/libgnat/g-ssvety.ads
index 53e8dc1..d7b134d 100644
--- a/gcc/ada/libgnat/g-ssvety.ads
+++ b/gcc/ada/libgnat/g-ssvety.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2009-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2009-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-sthcso.adb b/gcc/ada/libgnat/g-sthcso.adb
index 49c55f2..f6345d4 100644
--- a/gcc/ada/libgnat/g-sthcso.adb
+++ b/gcc/ada/libgnat/g-sthcso.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2001-2019, AdaCore --
+-- Copyright (C) 2001-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-stheme.adb b/gcc/ada/libgnat/g-stheme.adb
index 38859dd..679adf0 100644
--- a/gcc/ada/libgnat/g-stheme.adb
+++ b/gcc/ada/libgnat/g-stheme.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2007-2019, AdaCore --
+-- Copyright (C) 2007-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-strhas.ads b/gcc/ada/libgnat/g-strhas.ads
index 266c2e1..f6949b5 100644
--- a/gcc/ada/libgnat/g-strhas.ads
+++ b/gcc/ada/libgnat/g-strhas.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2015-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2015-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-string.adb b/gcc/ada/libgnat/g-string.adb
index a4d3c54..7d820c6 100644
--- a/gcc/ada/libgnat/g-string.adb
+++ b/gcc/ada/libgnat/g-string.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1995-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1995-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-string.ads b/gcc/ada/libgnat/g-string.ads
index 37d86a4..8d35847 100644
--- a/gcc/ada/libgnat/g-string.ads
+++ b/gcc/ada/libgnat/g-string.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1995-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1995-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-strspl.ads b/gcc/ada/libgnat/g-strspl.ads
index af58dc6..0995e2b 100644
--- a/gcc/ada/libgnat/g-strspl.ads
+++ b/gcc/ada/libgnat/g-strspl.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2002-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2002-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-stseme.adb b/gcc/ada/libgnat/g-stseme.adb
index e752622..ad78669 100644
--- a/gcc/ada/libgnat/g-stseme.adb
+++ b/gcc/ada/libgnat/g-stseme.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2007-2019, AdaCore --
+-- Copyright (C) 2007-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-stsifd__sockets.adb b/gcc/ada/libgnat/g-stsifd__sockets.adb
index 90c98b7..6d018e2 100644
--- a/gcc/ada/libgnat/g-stsifd__sockets.adb
+++ b/gcc/ada/libgnat/g-stsifd__sockets.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2001-2019, AdaCore --
+-- Copyright (C) 2001-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-table.adb b/gcc/ada/libgnat/g-table.adb
index bcced26..8872a4c 100644
--- a/gcc/ada/libgnat/g-table.adb
+++ b/gcc/ada/libgnat/g-table.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1998-2019, AdaCore --
+-- Copyright (C) 1998-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-table.ads b/gcc/ada/libgnat/g-table.ads
index 68c851c..752f1dc 100644
--- a/gcc/ada/libgnat/g-table.ads
+++ b/gcc/ada/libgnat/g-table.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1998-2019, AdaCore --
+-- Copyright (C) 1998-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-tasloc.adb b/gcc/ada/libgnat/g-tasloc.adb
index ca46b89..64c4940 100644
--- a/gcc/ada/libgnat/g-tasloc.adb
+++ b/gcc/ada/libgnat/g-tasloc.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1997-2019, AdaCore --
+-- Copyright (C) 1997-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-tasloc.ads b/gcc/ada/libgnat/g-tasloc.ads
index 7770c27b..b8ccb83 100644
--- a/gcc/ada/libgnat/g-tasloc.ads
+++ b/gcc/ada/libgnat/g-tasloc.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1998-2019, AdaCore --
+-- Copyright (C) 1998-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-timsta.adb b/gcc/ada/libgnat/g-timsta.adb
index 1c34082..6bc12ab 100644
--- a/gcc/ada/libgnat/g-timsta.adb
+++ b/gcc/ada/libgnat/g-timsta.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2008-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2008-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-timsta.ads b/gcc/ada/libgnat/g-timsta.ads
index fa3c2e0..df87840 100644
--- a/gcc/ada/libgnat/g-timsta.ads
+++ b/gcc/ada/libgnat/g-timsta.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2008-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2008-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-traceb.adb b/gcc/ada/libgnat/g-traceb.adb
index 9cf04de..c826dd5 100644
--- a/gcc/ada/libgnat/g-traceb.adb
+++ b/gcc/ada/libgnat/g-traceb.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1999-2019, AdaCore --
+-- Copyright (C) 1999-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-traceb.ads b/gcc/ada/libgnat/g-traceb.ads
index 6a565c9..0bd1ddf 100644
--- a/gcc/ada/libgnat/g-traceb.ads
+++ b/gcc/ada/libgnat/g-traceb.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1999-2019, AdaCore --
+-- Copyright (C) 1999-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-trasym.adb b/gcc/ada/libgnat/g-trasym.adb
index ecc2aac..064724c 100644
--- a/gcc/ada/libgnat/g-trasym.adb
+++ b/gcc/ada/libgnat/g-trasym.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1999-2019, AdaCore --
+-- Copyright (C) 1999-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-trasym.ads b/gcc/ada/libgnat/g-trasym.ads
index 5d3620c..03055d4 100644
--- a/gcc/ada/libgnat/g-trasym.ads
+++ b/gcc/ada/libgnat/g-trasym.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1999-2019, AdaCore --
+-- Copyright (C) 1999-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-tty.adb b/gcc/ada/libgnat/g-tty.adb
index da9a60f..ff3bb46 100644
--- a/gcc/ada/libgnat/g-tty.adb
+++ b/gcc/ada/libgnat/g-tty.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2002-2019, AdaCore --
+-- Copyright (C) 2002-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-tty.ads b/gcc/ada/libgnat/g-tty.ads
index 022a778..502850b 100644
--- a/gcc/ada/libgnat/g-tty.ads
+++ b/gcc/ada/libgnat/g-tty.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2002-2019, AdaCore --
+-- Copyright (C) 2002-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-u3spch.adb b/gcc/ada/libgnat/g-u3spch.adb
index 0012953..a225afb 100644
--- a/gcc/ada/libgnat/g-u3spch.adb
+++ b/gcc/ada/libgnat/g-u3spch.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1998-2019, AdaCore --
+-- Copyright (C) 1998-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-u3spch.ads b/gcc/ada/libgnat/g-u3spch.ads
index c31d604..8960231 100644
--- a/gcc/ada/libgnat/g-u3spch.ads
+++ b/gcc/ada/libgnat/g-u3spch.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1998-2019, AdaCore --
+-- Copyright (C) 1998-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-utf_32.adb b/gcc/ada/libgnat/g-utf_32.adb
index dd5a9b6..82958f8 100644
--- a/gcc/ada/libgnat/g-utf_32.adb
+++ b/gcc/ada/libgnat/g-utf_32.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2005-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2005-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-utf_32.ads b/gcc/ada/libgnat/g-utf_32.ads
index 11dc6fd..2d6dc72 100644
--- a/gcc/ada/libgnat/g-utf_32.ads
+++ b/gcc/ada/libgnat/g-utf_32.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2005-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2005-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-wispch.adb b/gcc/ada/libgnat/g-wispch.adb
index 670edc1..403d02a 100644
--- a/gcc/ada/libgnat/g-wispch.adb
+++ b/gcc/ada/libgnat/g-wispch.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1998-2019, AdaCore --
+-- Copyright (C) 1998-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-wispch.ads b/gcc/ada/libgnat/g-wispch.ads
index 1a3b569..cfff62e 100644
--- a/gcc/ada/libgnat/g-wispch.ads
+++ b/gcc/ada/libgnat/g-wispch.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1998-2019, AdaCore --
+-- Copyright (C) 1998-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-wistsp.ads b/gcc/ada/libgnat/g-wistsp.ads
index 2026718..da64a6d 100644
--- a/gcc/ada/libgnat/g-wistsp.ads
+++ b/gcc/ada/libgnat/g-wistsp.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2002-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2002-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-zspche.adb b/gcc/ada/libgnat/g-zspche.adb
index 0014d49..38684f3 100644
--- a/gcc/ada/libgnat/g-zspche.adb
+++ b/gcc/ada/libgnat/g-zspche.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1998-2019, AdaCore --
+-- Copyright (C) 1998-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-zspche.ads b/gcc/ada/libgnat/g-zspche.ads
index cd9c85a..47f5772 100644
--- a/gcc/ada/libgnat/g-zspche.ads
+++ b/gcc/ada/libgnat/g-zspche.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1998-2019, AdaCore --
+-- Copyright (C) 1998-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/g-zstspl.ads b/gcc/ada/libgnat/g-zstspl.ads
index 16400fd..9a8b5f9 100644
--- a/gcc/ada/libgnat/g-zstspl.ads
+++ b/gcc/ada/libgnat/g-zstspl.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2002-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2002-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/gnat.ads b/gcc/ada/libgnat/gnat.ads
index ffcb725..c3217a6 100644
--- a/gcc/ada/libgnat/gnat.ads
+++ b/gcc/ada/libgnat/gnat.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, AdaCore --
+-- Copyright (C) 1992-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/i-c.adb b/gcc/ada/libgnat/i-c.adb
index 2e651b6..028e5cb 100644
--- a/gcc/ada/libgnat/i-c.adb
+++ b/gcc/ada/libgnat/i-c.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/i-c.ads b/gcc/ada/libgnat/i-c.ads
index 1088836..279c75a 100644
--- a/gcc/ada/libgnat/i-c.ads
+++ b/gcc/ada/libgnat/i-c.ads
@@ -36,13 +36,15 @@ package Interfaces.C is
type short is new Short_Integer;
type long is range -(2 ** (System.Parameters.long_bits - Integer'(1)))
.. +(2 ** (System.Parameters.long_bits - Integer'(1))) - 1;
+ type long_long is new Long_Long_Integer;
type signed_char is range SCHAR_MIN .. SCHAR_MAX;
for signed_char'Size use CHAR_BIT;
- type unsigned is mod 2 ** int'Size;
- type unsigned_short is mod 2 ** short'Size;
- type unsigned_long is mod 2 ** long'Size;
+ type unsigned is mod 2 ** int'Size;
+ type unsigned_short is mod 2 ** short'Size;
+ type unsigned_long is mod 2 ** long'Size;
+ type unsigned_long_long is mod 2 ** long_long'Size;
type unsigned_char is mod (UCHAR_MAX + 1);
for unsigned_char'Size use CHAR_BIT;
diff --git a/gcc/ada/libgnat/i-cexten.ads b/gcc/ada/libgnat/i-cexten.ads
index d0a0747..2772860 100644
--- a/gcc/ada/libgnat/i-cexten.ads
+++ b/gcc/ada/libgnat/i-cexten.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -61,8 +61,8 @@ package Interfaces.C.Extensions is
-- 64-bit integer types
- subtype long_long is Long_Long_Integer;
- type unsigned_long_long is mod 2 ** 64;
+ subtype long_long is Interfaces.C.long_long;
+ subtype unsigned_long_long is Interfaces.C.unsigned_long_long;
-- 128-bit integer type available on 64-bit platforms:
-- typedef int signed_128 __attribute__ ((mode (TI)));
diff --git a/gcc/ada/libgnat/i-cobol.adb b/gcc/ada/libgnat/i-cobol.adb
index 807a3a1..d69ef9d 100644
--- a/gcc/ada/libgnat/i-cobol.adb
+++ b/gcc/ada/libgnat/i-cobol.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -240,11 +240,6 @@ package body Interfaces.COBOL is
(COBOL_Character'Pos (K) -
COBOL_Character'Pos (COBOL_Digits'First));
- elsif K in COBOL_Plus_Digits then
- Result := Result * 10 +
- (COBOL_Character'Pos (K) -
- COBOL_Character'Pos (COBOL_Plus_Digits'First));
-
elsif K in COBOL_Minus_Digits then
Result := Result * 10 +
(COBOL_Character'Pos (K) -
diff --git a/gcc/ada/libgnat/i-cobol.ads b/gcc/ada/libgnat/i-cobol.ads
index 1741474..21eecf8 100644
--- a/gcc/ada/libgnat/i-cobol.ads
+++ b/gcc/ada/libgnat/i-cobol.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (ASCII Version) --
-- --
--- Copyright (C) 1993-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1993-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/i-cpoint.adb b/gcc/ada/libgnat/i-cpoint.adb
index 6f3c530..6e5a2d2 100644
--- a/gcc/ada/libgnat/i-cpoint.adb
+++ b/gcc/ada/libgnat/i-cpoint.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/i-cpoint.ads b/gcc/ada/libgnat/i-cpoint.ads
index 03ca369..a3caca8 100644
--- a/gcc/ada/libgnat/i-cpoint.ads
+++ b/gcc/ada/libgnat/i-cpoint.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1993-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1993-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/i-cstrea.adb b/gcc/ada/libgnat/i-cstrea.adb
index 5574908..4cd4bed 100644
--- a/gcc/ada/libgnat/i-cstrea.adb
+++ b/gcc/ada/libgnat/i-cstrea.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1996-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1996-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/i-cstrea.ads b/gcc/ada/libgnat/i-cstrea.ads
index 2b78a9a..4277042 100644
--- a/gcc/ada/libgnat/i-cstrea.ads
+++ b/gcc/ada/libgnat/i-cstrea.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1995-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1995-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/i-cstrin.adb b/gcc/ada/libgnat/i-cstrin.adb
index 3d20294..17f4585 100644
--- a/gcc/ada/libgnat/i-cstrin.adb
+++ b/gcc/ada/libgnat/i-cstrin.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/i-cstrin.ads b/gcc/ada/libgnat/i-cstrin.ads
index 0272136..fae8e97 100644
--- a/gcc/ada/libgnat/i-cstrin.ads
+++ b/gcc/ada/libgnat/i-cstrin.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1993-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1993-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/i-fortra.adb b/gcc/ada/libgnat/i-fortra.adb
index f74d632..b529717 100644
--- a/gcc/ada/libgnat/i-fortra.adb
+++ b/gcc/ada/libgnat/i-fortra.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/i-pacdec.adb b/gcc/ada/libgnat/i-pacdec.adb
index 4f86f5b..e6eb790 100644
--- a/gcc/ada/libgnat/i-pacdec.adb
+++ b/gcc/ada/libgnat/i-pacdec.adb
@@ -7,7 +7,7 @@
-- B o d y --
-- (Version for IBM Mainframe Packed Decimal Format) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/i-pacdec.ads b/gcc/ada/libgnat/i-pacdec.ads
index 43381ac..389dc3a 100644
--- a/gcc/ada/libgnat/i-pacdec.ads
+++ b/gcc/ada/libgnat/i-pacdec.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (Version for IBM Mainframe Packed Decimal Format) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/i-vxwoio.adb b/gcc/ada/libgnat/i-vxwoio.adb
index 4b75364..4ae2245 100644
--- a/gcc/ada/libgnat/i-vxwoio.adb
+++ b/gcc/ada/libgnat/i-vxwoio.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2002-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2002-2020, Free Software Foundation, Inc. --
-- --
-- GNARL is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/i-vxwoio.ads b/gcc/ada/libgnat/i-vxwoio.ads
index 052626e..fc6c10f 100644
--- a/gcc/ada/libgnat/i-vxwoio.ads
+++ b/gcc/ada/libgnat/i-vxwoio.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2002-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2002-2020, Free Software Foundation, Inc. --
-- --
-- GNARL is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/i-vxwork.ads b/gcc/ada/libgnat/i-vxwork.ads
index 5285a8c..4f25bbd 100644
--- a/gcc/ada/libgnat/i-vxwork.ads
+++ b/gcc/ada/libgnat/i-vxwork.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1999-2019, AdaCore --
+-- Copyright (C) 1999-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/i-vxwork__x86.ads b/gcc/ada/libgnat/i-vxwork__x86.ads
index 8dc81d2..641f9fe 100644
--- a/gcc/ada/libgnat/i-vxwork__x86.ads
+++ b/gcc/ada/libgnat/i-vxwork__x86.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1999-2019, AdaCore --
+-- Copyright (C) 1999-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/interfac.ads b/gcc/ada/libgnat/interfac.ads
index 829cd8e..9fe7aac 100644
--- a/gcc/ada/libgnat/interfac.ads
+++ b/gcc/ada/libgnat/interfac.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2002-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2002-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/libada.gpr b/gcc/ada/libgnat/libada.gpr
new file mode 100644
index 0000000..9453cae
--- /dev/null
+++ b/gcc/ada/libgnat/libada.gpr
@@ -0,0 +1,77 @@
+-- This is a project file used to rebuild the GNAT run-time for debug
+-- or instrumentation purposes.
+--
+-- Here is how to use this project file:
+--
+-- 1. Create a new directory (e.g. "rts-debug"), then copy the adainclude
+-- directory from the reference runtime that you want to rebuild.
+-- You can find the relevant adainclude directory by running the command
+-- gprls [--target=<target>] [--RTS=<runtime>] and using the adainclude
+-- directory listed. For example:
+-- $ cd <reference directory>
+-- $ mkdir rts-debug
+-- $ cd rts-debug
+-- $ cp -a `gprls -v | grep adainclude` .
+-- $ cd adainclude
+--
+-- or under Windows:
+--
+-- $ mkdir adainclude
+-- $ xcopy /s /path/to/adainclude adainclude
+-- $ cd adainclude
+--
+-- 2. If needed (e.g for pragma Normalize_Scalars), create a file called
+-- gnat.adc in the adainclude directory containing the configuration pragmas
+-- you want to use to build the library, e.g.
+--
+-- $ echo "pragma Normalize_Scalars;" > gnat.adc
+--
+-- Note that this step is usually not needed, and most pragmas are not
+-- relevant to the GNAT run time.
+--
+-- 3. Determine the values of the following variables
+-- CFLAGS (back end compilation flags such as -g -O2)
+-- ADAFLAGS (front end compilation flags such as -gnatn)
+--
+-- 4. Run gprbuild on libada.gpr, e.g:
+-- $ gprbuild -p -Plibada -j0 -XCFLAGS="-O2 -g" -XADAFLAGS="-gnatn"
+--
+-- or for a cross target:
+--
+-- $ gprbuild --target=powerpc-elf -p -Plibada -j0 [...]
+--
+-- if you created a gnat.adc file at step 2, add "-XCONFIG_FILE=gnat.adc" to
+-- the gprbuild switches.
+--
+-- The above command will build libgnat.a and libgnarl.a with the given
+-- switches.
+--
+-- 4b. In order to generate shared libraries instead, add
+-- "-XLIBRARY_KIND=dynamic" to the gprbuild switches, and if you want to
+-- build both shared and static libraries, you can run gprbuild twice in
+-- a row, e.g:
+--
+-- $ gprbuild -p -Plibada -j0 -XLIBRARY_KIND=dynamic [...]
+-- $ gprbuild -p -Plibada -j0 -XLIBRARY_KIND=static [...]
+--
+-- 5. Once the above gprbuild command is successful, you can use this new
+-- runtime directory by specifying it either via the --RTS= switch on the
+-- command line or via the attribute Runtime ("Ada") in the main project
+-- file:
+-- $ gprbuild --RTS=.../rts-debug ...
+-- or
+-- for Runtime ("Ada") use ".../rts-debug";
+
+aggregate project Libada is
+ for Project_Files use ("libgnat.gpr", "libgnarl.gpr");
+
+ Config_File := External ("CONFIG_FILE", "");
+
+ package Builder is
+ case Config_File is
+ when "" => null;
+ when others => for Global_Configuration_Pragmas use Config_File;
+ end case;
+ end Builder;
+
+end Libada;
diff --git a/gcc/ada/libgnat/libgnat.gpr b/gcc/ada/libgnat/libgnat.gpr
new file mode 100644
index 0000000..006ff2d
--- /dev/null
+++ b/gcc/ada/libgnat/libgnat.gpr
@@ -0,0 +1,69 @@
+with "libgnat_common";
+
+library project Libgnat is
+
+ for Languages use ("Ada", "C");
+ for Source_Dirs use (".");
+ for Source_List_File use "libgnat.lst";
+ for Object_Dir use "../obj-" & Libgnat_Common.Library_Kind;
+
+ for Library_Name use "gnat";
+ for Library_Dir use "../adalib";
+ for Library_Kind use Libgnat_Common.Library_Kind;
+
+ package Compiler is
+
+ for Switches ("C") use Libgnat_Common.C_Flags;
+ for Switches ("Ada") use Libgnat_Common.Ada_Flags;
+
+ for Switches ("s-traceb.adb") use
+ Libgnat_Common.Ada_Flags & Libgnat_Common.Force_Debug &
+ Libgnat_Common.No_Inline & Libgnat_Common.No_Sibling;
+ -- Force no sibling call optimization on s-traceb.o so the number of
+ -- stack frames to be skipped when computing a call chain is not
+ -- modified by optimization. We don.t want inlining, either.
+
+ for Switches ("a-except.adb") use
+ Libgnat_Common.Ada_Flags & ("-O1") &
+ Libgnat_Common.Force_Debug & Libgnat_Common.No_Inline &
+ Libgnat_Common.No_Reorder;
+ -- Force no function reordering because of the exclusion bounds
+ -- mechanism (see the source file for more detailed information).
+ -- Force debugging information so that it is always possible to set
+ -- conditional breakpoints on exceptions.
+ -- Use -O1 otherwise gdb isn.t able to get a full backtrace on mips
+ -- targets.
+
+ for Switches ("s-excdeb.adb") use
+ Libgnat_Common.Ada_Flags & Libgnat_Common.Force_Debug &
+ Libgnat_Common.No_Opt;
+ -- Compile without optimization and with debug info to let the debugger
+ -- set breakpoints and inspect subprogram parameters on exception
+ -- related events.
+
+ for Switches ("s-assert.adb") use
+ Libgnat_Common.Ada_Flags & Libgnat_Common.Force_Debug;
+ -- Force debugging information on s-assert.o so that it is always
+ -- possible to set breakpoint on assert failures.
+
+ for Switches ("a-tags.adb") use
+ Libgnat_Common.Ada_Flags & Libgnat_Common.Force_Debug;
+ -- Force debugging information on a-tags.o so that the debugger can find
+ -- the description of Ada.Tags.Type_Specific_Data.
+
+ for Switches ("s-memory.adb") use
+ Libgnat_Common.Ada_Flags & Libgnat_Common.No_Sibling;
+ -- Force no sibling call optimization on s-memory.o to avoid turning the
+ -- tail recursion in Alloc into a loop that confuses branch prediction.
+
+ for Switches ("g-debpoo.adb") use
+ Libgnat_Common.Ada_Flags & Libgnat_Common.No_Reorder;
+ -- Need to keep functions ordered on g-debpoo.o since labels are used to
+ -- exclude subprograms from traceback computation.
+
+ for Switches ("traceback.c") use
+ Libgnat_Common.C_Flags & Libgnat_Common.No_Omit;
+
+ end Compiler;
+
+end Libgnat;
diff --git a/gcc/ada/libgnat/libgnat_common.gpr b/gcc/ada/libgnat/libgnat_common.gpr
new file mode 100644
index 0000000..6303928
--- /dev/null
+++ b/gcc/ada/libgnat/libgnat_common.gpr
@@ -0,0 +1,19 @@
+abstract project Libgnat_Common is
+
+ Common_Flags := Split (External ("CFLAGS", "-O2 -g"), " ");
+ C_Flags := Common_Flags &
+ ("-I../include", "-DIN_RTS=1", "-fexceptions",
+ "-DSTANDALONE") &
+ External_As_List ("EXTRALIBFLAGS", " ");
+ Ada_Flags := Common_Flags & ("-nostdinc", "-I../adainclude")
+ & Split (External ("ADAFLAGS", "-gnatpg"), " ");
+ Library_Kind := External ("LIBRARY_KIND", "static");
+
+ No_Opt := ("-O0");
+ Force_Debug := ("-g");
+ No_Inline := ("-fno-inline");
+ No_Omit := ("-fno-omit-frame-pointer");
+ No_Sibling := ("-fno-optimize-sibling-calls");
+ No_Reorder := ("-fno-toplevel-reorder", "-O0");
+
+end Libgnat_Common;
diff --git a/gcc/ada/libgnat/memtrack.adb b/gcc/ada/libgnat/memtrack.adb
index 04f3f0f..bd34796 100644
--- a/gcc/ada/libgnat/memtrack.adb
+++ b/gcc/ada/libgnat/memtrack.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2001-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2001-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-addima.adb b/gcc/ada/libgnat/s-addima.adb
index 6a7ab7e..a231be2 100644
--- a/gcc/ada/libgnat/s-addima.adb
+++ b/gcc/ada/libgnat/s-addima.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-addima.ads b/gcc/ada/libgnat/s-addima.ads
index 04bf964..281655d 100644
--- a/gcc/ada/libgnat/s-addima.ads
+++ b/gcc/ada/libgnat/s-addima.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-addope.adb b/gcc/ada/libgnat/s-addope.adb
index edda33d..5c3fd4a 100644
--- a/gcc/ada/libgnat/s-addope.adb
+++ b/gcc/ada/libgnat/s-addope.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-addope.ads b/gcc/ada/libgnat/s-addope.ads
index fc71956e..881882a 100644
--- a/gcc/ada/libgnat/s-addope.ads
+++ b/gcc/ada/libgnat/s-addope.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-atopar.adb b/gcc/ada/libgnat/s-aoinar.adb
index 82cfbd3..b05134f 100644
--- a/gcc/ada/libgnat/s-atopar.adb
+++ b/gcc/ada/libgnat/s-aoinar.adb
@@ -2,11 +2,11 @@
-- --
-- GNAT RUN-TIME COMPONENTS --
-- --
--- System.Atomic_Operations.Arithmetic --
+-- System.Atomic_Operations.Integer_Arithmetic --
-- --
-- B o d y --
-- --
--- Copyright (C) 2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2019-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -30,9 +30,12 @@
------------------------------------------------------------------------------
with System.Atomic_Primitives; use System.Atomic_Primitives;
+with System.Atomic_Operations.Exchange;
with Interfaces.C;
-package body System.Atomic_Operations.Arithmetic is
+package body System.Atomic_Operations.Integer_Arithmetic is
+
+ package Exchange is new System.Atomic_Operations.Exchange (Atomic_Type);
----------------
-- Atomic_Add --
@@ -88,13 +91,42 @@ package body System.Atomic_Operations.Arithmetic is
pragma Warnings (On);
begin
- case Item'Size is
- when 8 => return Atomic_Fetch_Add_1 (Item'Address, Value);
- when 16 => return Atomic_Fetch_Add_2 (Item'Address, Value);
- when 32 => return Atomic_Fetch_Add_4 (Item'Address, Value);
- when 64 => return Atomic_Fetch_Add_8 (Item'Address, Value);
- when others => raise Program_Error;
- end case;
+ -- Use the direct intrinsics when possible, and fallback to
+ -- compare-and-exchange otherwise.
+
+ if Atomic_Type'Base'Last = Atomic_Type'Last
+ and then Atomic_Type'Base'First = Atomic_Type'First
+ and then Atomic_Type'Last
+ in 2 ** 7 - 1 | 2 ** 15 - 1 | 2 ** 31 - 1 | 2 ** 63 - 1
+ then
+ case Long_Long_Integer (Atomic_Type'Last) is
+ when 2 ** 7 - 1 =>
+ return Atomic_Fetch_Add_1 (Item'Address, Value);
+ when 2 ** 15 - 1 =>
+ return Atomic_Fetch_Add_2 (Item'Address, Value);
+ when 2 ** 31 - 1 =>
+ return Atomic_Fetch_Add_4 (Item'Address, Value);
+ when 2 ** 63 - 1 =>
+ return Atomic_Fetch_Add_8 (Item'Address, Value);
+ when others =>
+ raise Program_Error;
+ end case;
+ else
+ declare
+ Old_Value : aliased Atomic_Type := Item;
+ New_Value : Atomic_Type := Old_Value + Value;
+ begin
+ -- Keep iterating until the exchange succeeds
+
+ while not Exchange.Atomic_Compare_And_Exchange
+ (Item, Old_Value, New_Value)
+ loop
+ New_Value := Old_Value + Value;
+ end loop;
+
+ return Old_Value;
+ end;
+ end if;
end Atomic_Fetch_And_Add;
-------------------------------
@@ -125,13 +157,42 @@ package body System.Atomic_Operations.Arithmetic is
pragma Warnings (On);
begin
- case Item'Size is
- when 8 => return Atomic_Fetch_Sub_1 (Item'Address, Value);
- when 16 => return Atomic_Fetch_Sub_2 (Item'Address, Value);
- when 32 => return Atomic_Fetch_Sub_4 (Item'Address, Value);
- when 64 => return Atomic_Fetch_Sub_8 (Item'Address, Value);
- when others => raise Program_Error;
- end case;
+ -- Use the direct intrinsics when possible, and fallback to
+ -- compare-and-exchange otherwise.
+
+ if Atomic_Type'Base'Last = Atomic_Type'Last
+ and then Atomic_Type'Base'First = Atomic_Type'First
+ and then Atomic_Type'Last
+ in 2 ** 7 - 1 | 2 ** 15 - 1 | 2 ** 31 - 1 | 2 ** 63 - 1
+ then
+ case Long_Long_Integer (Atomic_Type'Last) is
+ when 2 ** 7 - 1 =>
+ return Atomic_Fetch_Sub_1 (Item'Address, Value);
+ when 2 ** 15 - 1 =>
+ return Atomic_Fetch_Sub_2 (Item'Address, Value);
+ when 2 ** 31 - 1 =>
+ return Atomic_Fetch_Sub_4 (Item'Address, Value);
+ when 2 ** 63 - 1 =>
+ return Atomic_Fetch_Sub_8 (Item'Address, Value);
+ when others =>
+ raise Program_Error;
+ end case;
+ else
+ declare
+ Old_Value : aliased Atomic_Type := Item;
+ New_Value : Atomic_Type := Old_Value - Value;
+ begin
+ -- Keep iterating until the exchange succeeds
+
+ while not Exchange.Atomic_Compare_And_Exchange
+ (Item, Old_Value, New_Value)
+ loop
+ New_Value := Old_Value - Value;
+ end loop;
+
+ return Old_Value;
+ end;
+ end if;
end Atomic_Fetch_And_Subtract;
------------------
@@ -139,9 +200,10 @@ package body System.Atomic_Operations.Arithmetic is
------------------
function Is_Lock_Free (Item : aliased Atomic_Type) return Boolean is
+ pragma Unreferenced (Item);
use type Interfaces.C.size_t;
begin
- return Boolean (Atomic_Always_Lock_Free (Item'Size / 8));
+ return Boolean (Atomic_Always_Lock_Free (Atomic_Type'Object_Size / 8));
end Is_Lock_Free;
-end System.Atomic_Operations.Arithmetic;
+end System.Atomic_Operations.Integer_Arithmetic;
diff --git a/gcc/ada/libgnat/s-atopar.ads b/gcc/ada/libgnat/s-aoinar.ads
index 73c2447..558754f 100644
--- a/gcc/ada/libgnat/s-atopar.ads
+++ b/gcc/ada/libgnat/s-aoinar.ads
@@ -2,11 +2,15 @@
-- --
-- GNAT RUN-TIME COMPONENTS --
-- --
--- System.Atomic_Operations.Arithmetic --
+-- System.Atomic_Operations.Integer_Arithmetic --
-- --
-- S p e c --
-- --
--- Copyright (C) 2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2019-2020, Free Software Foundation, Inc. --
+-- --
+-- This specification is derived from the Ada Reference Manual for use with --
+-- GNAT. The copyright notice above, and the license provisions that follow --
+-- apply solely to the contents of the part following the private keyword. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -29,13 +33,10 @@
-- --
------------------------------------------------------------------------------
-pragma Ada_2020;
-
generic
type Atomic_Type is range <> with Atomic;
-package System.Atomic_Operations.Arithmetic
+package System.Atomic_Operations.Integer_Arithmetic
with Pure
--- Nonblocking
is
procedure Atomic_Add
(Item : aliased in out Atomic_Type;
@@ -62,4 +63,4 @@ private
pragma Inline_Always (Atomic_Fetch_And_Add);
pragma Inline_Always (Atomic_Fetch_And_Subtract);
pragma Inline_Always (Is_Lock_Free);
-end System.Atomic_Operations.Arithmetic;
+end System.Atomic_Operations.Integer_Arithmetic;
diff --git a/gcc/ada/libgnat/s-aomoar.adb b/gcc/ada/libgnat/s-aomoar.adb
new file mode 100644
index 0000000..9f350c1
--- /dev/null
+++ b/gcc/ada/libgnat/s-aomoar.adb
@@ -0,0 +1,215 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT RUN-TIME COMPONENTS --
+-- --
+-- System.Atomic_Operations.Modular_Arithmetic --
+-- --
+-- B o d y --
+-- --
+-- Copyright (C) 2019-2020, Free Software Foundation, Inc. --
+-- --
+-- GNAT is free software; you can redistribute it and/or modify it under --
+-- terms of the GNU General Public License as published by the Free Soft- --
+-- ware Foundation; either version 3, or (at your option) any later ver- --
+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
+-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
+-- or FITNESS FOR A PARTICULAR PURPOSE. --
+-- --
+-- As a special exception under Section 7 of GPL version 3, you are granted --
+-- additional permissions described in the GCC Runtime Library Exception, --
+-- version 3.1, as published by the Free Software Foundation. --
+-- --
+-- You should have received a copy of the GNU General Public License and --
+-- a copy of the GCC Runtime Library Exception along with this program; --
+-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
+-- <http://www.gnu.org/licenses/>. --
+-- --
+-- GNAT was originally developed by the GNAT team at New York University. --
+-- Extensive contributions were provided by Ada Core Technologies Inc. --
+-- --
+------------------------------------------------------------------------------
+
+with System.Atomic_Primitives; use System.Atomic_Primitives;
+with System.Atomic_Operations.Exchange;
+with Interfaces.C; use Interfaces;
+
+package body System.Atomic_Operations.Modular_Arithmetic is
+
+ package Exchange is new System.Atomic_Operations.Exchange (Atomic_Type);
+
+ ----------------
+ -- Atomic_Add --
+ ----------------
+
+ procedure Atomic_Add
+ (Item : aliased in out Atomic_Type;
+ Value : Atomic_Type)
+ is
+ Ignore : constant Atomic_Type := Atomic_Fetch_And_Add (Item, Value);
+ begin
+ null;
+ end Atomic_Add;
+
+ ---------------------
+ -- Atomic_Subtract --
+ ---------------------
+
+ procedure Atomic_Subtract
+ (Item : aliased in out Atomic_Type;
+ Value : Atomic_Type)
+ is
+ Ignore : constant Atomic_Type := Atomic_Fetch_And_Subtract (Item, Value);
+ begin
+ null;
+ end Atomic_Subtract;
+
+ --------------------------
+ -- Atomic_Fetch_And_Add --
+ --------------------------
+
+ function Atomic_Fetch_And_Add
+ (Item : aliased in out Atomic_Type;
+ Value : Atomic_Type) return Atomic_Type
+ is
+ pragma Warnings (Off);
+ function Atomic_Fetch_Add_1
+ (Ptr : System.Address; Val : Atomic_Type; Model : Mem_Model := Seq_Cst)
+ return Atomic_Type;
+ pragma Import (Intrinsic, Atomic_Fetch_Add_1, "__atomic_fetch_add_1");
+ function Atomic_Fetch_Add_2
+ (Ptr : System.Address; Val : Atomic_Type; Model : Mem_Model := Seq_Cst)
+ return Atomic_Type;
+ pragma Import (Intrinsic, Atomic_Fetch_Add_2, "__atomic_fetch_add_2");
+ function Atomic_Fetch_Add_4
+ (Ptr : System.Address; Val : Atomic_Type; Model : Mem_Model := Seq_Cst)
+ return Atomic_Type;
+ pragma Import (Intrinsic, Atomic_Fetch_Add_4, "__atomic_fetch_add_4");
+ function Atomic_Fetch_Add_8
+ (Ptr : System.Address; Val : Atomic_Type; Model : Mem_Model := Seq_Cst)
+ return Atomic_Type;
+ pragma Import (Intrinsic, Atomic_Fetch_Add_8, "__atomic_fetch_add_8");
+ pragma Warnings (On);
+
+ begin
+ -- Use the direct intrinsics when possible, and fallback to
+ -- compare-and-exchange otherwise.
+ -- Also suppress spurious warnings.
+
+ pragma Warnings (Off);
+ if Atomic_Type'Base'Last = Atomic_Type'Last
+ and then Atomic_Type'First = 0
+ and then Atomic_Type'Last
+ in 2 ** 8 - 1 | 2 ** 16 - 1 | 2 ** 32 - 1 | 2 ** 64 - 1
+ then
+ pragma Warnings (On);
+ case Unsigned_64 (Atomic_Type'Last) is
+ when 2 ** 8 - 1 =>
+ return Atomic_Fetch_Add_1 (Item'Address, Value);
+ when 2 ** 16 - 1 =>
+ return Atomic_Fetch_Add_2 (Item'Address, Value);
+ when 2 ** 32 - 1 =>
+ return Atomic_Fetch_Add_4 (Item'Address, Value);
+ when 2 ** 64 - 1 =>
+ return Atomic_Fetch_Add_8 (Item'Address, Value);
+ when others =>
+ raise Program_Error;
+ end case;
+ else
+ declare
+ Old_Value : aliased Atomic_Type := Item;
+ New_Value : Atomic_Type := Old_Value + Value;
+ begin
+ -- Keep iterating until the exchange succeeds
+
+ while not Exchange.Atomic_Compare_And_Exchange
+ (Item, Old_Value, New_Value)
+ loop
+ New_Value := Old_Value + Value;
+ end loop;
+
+ return Old_Value;
+ end;
+ end if;
+ end Atomic_Fetch_And_Add;
+
+ -------------------------------
+ -- Atomic_Fetch_And_Subtract --
+ -------------------------------
+
+ function Atomic_Fetch_And_Subtract
+ (Item : aliased in out Atomic_Type;
+ Value : Atomic_Type) return Atomic_Type
+ is
+ pragma Warnings (Off);
+ function Atomic_Fetch_Sub_1
+ (Ptr : System.Address; Val : Atomic_Type; Model : Mem_Model := Seq_Cst)
+ return Atomic_Type;
+ pragma Import (Intrinsic, Atomic_Fetch_Sub_1, "__atomic_fetch_sub_1");
+ function Atomic_Fetch_Sub_2
+ (Ptr : System.Address; Val : Atomic_Type; Model : Mem_Model := Seq_Cst)
+ return Atomic_Type;
+ pragma Import (Intrinsic, Atomic_Fetch_Sub_2, "__atomic_fetch_sub_2");
+ function Atomic_Fetch_Sub_4
+ (Ptr : System.Address; Val : Atomic_Type; Model : Mem_Model := Seq_Cst)
+ return Atomic_Type;
+ pragma Import (Intrinsic, Atomic_Fetch_Sub_4, "__atomic_fetch_sub_4");
+ function Atomic_Fetch_Sub_8
+ (Ptr : System.Address; Val : Atomic_Type; Model : Mem_Model := Seq_Cst)
+ return Atomic_Type;
+ pragma Import (Intrinsic, Atomic_Fetch_Sub_8, "__atomic_fetch_sub_8");
+ pragma Warnings (On);
+
+ begin
+ -- Use the direct intrinsics when possible, and fallback to
+ -- compare-and-exchange otherwise.
+ -- Also suppress spurious warnings.
+
+ pragma Warnings (Off);
+ if Atomic_Type'Base'Last = Atomic_Type'Last
+ and then Atomic_Type'First = 0
+ and then Atomic_Type'Last
+ in 2 ** 8 - 1 | 2 ** 16 - 1 | 2 ** 32 - 1 | 2 ** 64 - 1
+ then
+ pragma Warnings (On);
+ case Unsigned_64 (Atomic_Type'Last) is
+ when 2 ** 8 - 1 =>
+ return Atomic_Fetch_Sub_1 (Item'Address, Value);
+ when 2 ** 16 - 1 =>
+ return Atomic_Fetch_Sub_2 (Item'Address, Value);
+ when 2 ** 32 - 1 =>
+ return Atomic_Fetch_Sub_4 (Item'Address, Value);
+ when 2 ** 64 - 1 =>
+ return Atomic_Fetch_Sub_8 (Item'Address, Value);
+ when others =>
+ raise Program_Error;
+ end case;
+ else
+ declare
+ Old_Value : aliased Atomic_Type := Item;
+ New_Value : Atomic_Type := Old_Value - Value;
+ begin
+ -- Keep iterating until the exchange succeeds
+
+ while not Exchange.Atomic_Compare_And_Exchange
+ (Item, Old_Value, New_Value)
+ loop
+ New_Value := Old_Value - Value;
+ end loop;
+
+ return Old_Value;
+ end;
+ end if;
+ end Atomic_Fetch_And_Subtract;
+
+ ------------------
+ -- Is_Lock_Free --
+ ------------------
+
+ function Is_Lock_Free (Item : aliased Atomic_Type) return Boolean is
+ pragma Unreferenced (Item);
+ use type Interfaces.C.size_t;
+ begin
+ return Boolean (Atomic_Always_Lock_Free (Atomic_Type'Object_Size / 8));
+ end Is_Lock_Free;
+
+end System.Atomic_Operations.Modular_Arithmetic;
diff --git a/gcc/ada/libgnat/s-aomoar.ads b/gcc/ada/libgnat/s-aomoar.ads
new file mode 100644
index 0000000..4062d1a
--- /dev/null
+++ b/gcc/ada/libgnat/s-aomoar.ads
@@ -0,0 +1,66 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT RUN-TIME COMPONENTS --
+-- --
+-- System.Atomic_Operations.Modular_Arithmetic --
+-- --
+-- S p e c --
+-- --
+-- Copyright (C) 2019-2020, Free Software Foundation, Inc. --
+-- --
+-- This specification is derived from the Ada Reference Manual for use with --
+-- GNAT. The copyright notice above, and the license provisions that follow --
+-- apply solely to the contents of the part following the private keyword. --
+-- --
+-- GNAT is free software; you can redistribute it and/or modify it under --
+-- terms of the GNU General Public License as published by the Free Soft- --
+-- ware Foundation; either version 3, or (at your option) any later ver- --
+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
+-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
+-- or FITNESS FOR A PARTICULAR PURPOSE. --
+-- --
+-- As a special exception under Section 7 of GPL version 3, you are granted --
+-- additional permissions described in the GCC Runtime Library Exception, --
+-- version 3.1, as published by the Free Software Foundation. --
+-- --
+-- You should have received a copy of the GNU General Public License and --
+-- a copy of the GCC Runtime Library Exception along with this program; --
+-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
+-- <http://www.gnu.org/licenses/>. --
+-- --
+-- GNAT was originally developed by the GNAT team at New York University. --
+-- Extensive contributions were provided by Ada Core Technologies Inc. --
+-- --
+------------------------------------------------------------------------------
+
+generic
+ type Atomic_Type is mod <> with Atomic;
+package System.Atomic_Operations.Modular_Arithmetic
+ with Pure
+is
+ procedure Atomic_Add
+ (Item : aliased in out Atomic_Type;
+ Value : Atomic_Type) with Convention => Intrinsic;
+
+ procedure Atomic_Subtract
+ (Item : aliased in out Atomic_Type;
+ Value : Atomic_Type) with Convention => Intrinsic;
+
+ function Atomic_Fetch_And_Add
+ (Item : aliased in out Atomic_Type;
+ Value : Atomic_Type) return Atomic_Type with Convention => Intrinsic;
+
+ function Atomic_Fetch_And_Subtract
+ (Item : aliased in out Atomic_Type;
+ Value : Atomic_Type) return Atomic_Type with Convention => Intrinsic;
+
+ function Is_Lock_Free
+ (Item : aliased Atomic_Type) return Boolean with Convention => Intrinsic;
+
+private
+ pragma Inline_Always (Atomic_Add);
+ pragma Inline_Always (Atomic_Subtract);
+ pragma Inline_Always (Atomic_Fetch_And_Add);
+ pragma Inline_Always (Atomic_Fetch_And_Subtract);
+ pragma Inline_Always (Is_Lock_Free);
+end System.Atomic_Operations.Modular_Arithmetic;
diff --git a/gcc/ada/libgnat/s-aotase.adb b/gcc/ada/libgnat/s-aotase.adb
index 7ed6ab8..84a1a6e 100644
--- a/gcc/ada/libgnat/s-aotase.adb
+++ b/gcc/ada/libgnat/s-aotase.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2019-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-aotase.ads b/gcc/ada/libgnat/s-aotase.ads
index 0406630..f979788 100644
--- a/gcc/ada/libgnat/s-aotase.ads
+++ b/gcc/ada/libgnat/s-aotase.ads
@@ -6,7 +6,11 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2019-2020, Free Software Foundation, Inc. --
+-- --
+-- This specification is derived from the Ada Reference Manual for use with --
+-- GNAT. The copyright notice above, and the license provisions that follow --
+-- apply solely to the contents of the part following the private keyword. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -31,7 +35,6 @@
package System.Atomic_Operations.Test_And_Set
with Pure
--- Nonblocking
is
type Test_And_Set_Flag is mod 2 ** 8
with Atomic, Default_Value => 0, Size => 8;
diff --git a/gcc/ada/libgnat/s-arit64.adb b/gcc/ada/libgnat/s-arit64.adb
index ede7562..060f352 100644
--- a/gcc/ada/libgnat/s-arit64.adb
+++ b/gcc/ada/libgnat/s-arit64.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-arit64.ads b/gcc/ada/libgnat/s-arit64.ads
index bc9d5a6..479515f 100644
--- a/gcc/ada/libgnat/s-arit64.ads
+++ b/gcc/ada/libgnat/s-arit64.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-assert.adb b/gcc/ada/libgnat/s-assert.adb
index 412b5b7..55020b9 100644
--- a/gcc/ada/libgnat/s-assert.adb
+++ b/gcc/ada/libgnat/s-assert.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-assert.ads b/gcc/ada/libgnat/s-assert.ads
index a5dc808..7dcd93a 100644
--- a/gcc/ada/libgnat/s-assert.ads
+++ b/gcc/ada/libgnat/s-assert.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-atacco.adb b/gcc/ada/libgnat/s-atacco.adb
index 892d6d7..11857b9 100644
--- a/gcc/ada/libgnat/s-atacco.adb
+++ b/gcc/ada/libgnat/s-atacco.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-atacco.ads b/gcc/ada/libgnat/s-atacco.ads
index 2609998..e9076cc 100644
--- a/gcc/ada/libgnat/s-atacco.ads
+++ b/gcc/ada/libgnat/s-atacco.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/s-atocou.adb b/gcc/ada/libgnat/s-atocou.adb
index cb6ead4..5d7f98e 100644
--- a/gcc/ada/libgnat/s-atocou.adb
+++ b/gcc/ada/libgnat/s-atocou.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2011-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2011-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-atocou.ads b/gcc/ada/libgnat/s-atocou.ads
index 51930e6..b64f947 100644
--- a/gcc/ada/libgnat/s-atocou.ads
+++ b/gcc/ada/libgnat/s-atocou.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2011-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2011-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-atocou__builtin.adb b/gcc/ada/libgnat/s-atocou__builtin.adb
index cf60e68..2f2a5f6 100644
--- a/gcc/ada/libgnat/s-atocou__builtin.adb
+++ b/gcc/ada/libgnat/s-atocou__builtin.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2011-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2011-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-atocou__x86.adb b/gcc/ada/libgnat/s-atocou__x86.adb
index 322b03f..217cdec 100644
--- a/gcc/ada/libgnat/s-atocou__x86.adb
+++ b/gcc/ada/libgnat/s-atocou__x86.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2011-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2011-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-atoope.ads b/gcc/ada/libgnat/s-atoope.ads
index cbe089b..a0f0eb8 100644
--- a/gcc/ada/libgnat/s-atoope.ads
+++ b/gcc/ada/libgnat/s-atoope.ads
@@ -6,7 +6,11 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2019-2020, Free Software Foundation, Inc. --
+-- --
+-- This specification is derived from the Ada Reference Manual for use with --
+-- GNAT. The copyright notice above, and the license provisions that follow --
+-- apply solely to the contents of the part following the private keyword. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-atopex.adb b/gcc/ada/libgnat/s-atopex.adb
index 624d3d5..4fb2824 100644
--- a/gcc/ada/libgnat/s-atopex.adb
+++ b/gcc/ada/libgnat/s-atopex.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2019-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -66,7 +66,7 @@ package body System.Atomic_Operations.Exchange is
pragma Warnings (On);
begin
- case Item'Size is
+ case Atomic_Type'Object_Size is
when 8 => return Atomic_Exchange_1 (Item'Address, Value);
when 16 => return Atomic_Exchange_2 (Item'Address, Value);
when 32 => return Atomic_Exchange_4 (Item'Address, Value);
@@ -124,7 +124,7 @@ package body System.Atomic_Operations.Exchange is
pragma Warnings (On);
begin
- case Item'Size is
+ case Atomic_Type'Object_Size is
when 8 =>
return Boolean
(Atomic_Compare_Exchange_1
@@ -151,9 +151,10 @@ package body System.Atomic_Operations.Exchange is
------------------
function Is_Lock_Free (Item : aliased Atomic_Type) return Boolean is
+ pragma Unreferenced (Item);
use type Interfaces.C.size_t;
begin
- return Boolean (Atomic_Always_Lock_Free (Item'Size / 8));
+ return Boolean (Atomic_Always_Lock_Free (Atomic_Type'Object_Size / 8));
end Is_Lock_Free;
end System.Atomic_Operations.Exchange;
diff --git a/gcc/ada/libgnat/s-atopex.ads b/gcc/ada/libgnat/s-atopex.ads
index 51db0b9..996883c 100644
--- a/gcc/ada/libgnat/s-atopex.ads
+++ b/gcc/ada/libgnat/s-atopex.ads
@@ -6,7 +6,11 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2019-2020, Free Software Foundation, Inc. --
+-- --
+-- This specification is derived from the Ada Reference Manual for use with --
+-- GNAT. The copyright notice above, and the license provisions that follow --
+-- apply solely to the contents of the part following the private keyword. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -29,13 +33,10 @@
-- --
------------------------------------------------------------------------------
-pragma Ada_2020;
-
generic
type Atomic_Type is private with Atomic;
package System.Atomic_Operations.Exchange
with Pure
--- Blocking
is
function Atomic_Exchange
(Item : aliased in out Atomic_Type;
diff --git a/gcc/ada/libgnat/s-atopri.adb b/gcc/ada/libgnat/s-atopri.adb
index f1b8a55..fa40d20 100644
--- a/gcc/ada/libgnat/s-atopri.adb
+++ b/gcc/ada/libgnat/s-atopri.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2012-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2012-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-atopri.ads b/gcc/ada/libgnat/s-atopri.ads
index b65156a..603793f 100644
--- a/gcc/ada/libgnat/s-atopri.ads
+++ b/gcc/ada/libgnat/s-atopri.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2012-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2012-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-auxdec.adb b/gcc/ada/libgnat/s-auxdec.adb
index 51c0c33..19741ea 100644
--- a/gcc/ada/libgnat/s-auxdec.adb
+++ b/gcc/ada/libgnat/s-auxdec.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/Or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-auxdec.ads b/gcc/ada/libgnat/s-auxdec.ads
index f8defb2..66a9c9e 100644
--- a/gcc/ada/libgnat/s-auxdec.ads
+++ b/gcc/ada/libgnat/s-auxdec.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1996-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1996-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -198,6 +198,8 @@ package System.Aux_DEC is
type Unsigned_Quadword_Array is
array (Integer range <>) of Unsigned_Quadword;
+ subtype Address_Int is Integer;
+
function To_Address (X : Integer) return Address;
pragma Pure_Function (To_Address);
diff --git a/gcc/ada/libgnat/s-bignum.adb b/gcc/ada/libgnat/s-bignum.adb
index bde6c1f..5e85c4a 100644
--- a/gcc/ada/libgnat/s-bignum.adb
+++ b/gcc/ada/libgnat/s-bignum.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2012-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2012-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -29,68 +29,121 @@
-- --
------------------------------------------------------------------------------
-with System.Generic_Bignums;
with Ada.Unchecked_Conversion;
+with System.Generic_Bignums;
+with System.Secondary_Stack; use System.Secondary_Stack;
+with System.Shared_Bignums; use System.Shared_Bignums;
+with System.Storage_Elements; use System.Storage_Elements;
package body System.Bignums is
- package Sec_Stack_Bignums is new
- System.Generic_Bignums (Use_Secondary_Stack => True);
- use Sec_Stack_Bignums;
+ function Allocate_Bignum (D : Digit_Vector; Neg : Boolean) return Bignum;
+ -- Allocate Bignum value with the given contents
+
+ procedure Free_Bignum (X : in out Bignum) is null;
+ -- No op when using the secondary stack
+
+ function To_Bignum (X : aliased in out Bignum) return Bignum is (X);
+
+ ---------------------
+ -- Allocate_Bignum --
+ ---------------------
+
+ function Allocate_Bignum (D : Digit_Vector; Neg : Boolean) return Bignum is
+ Addr : aliased Address;
+ begin
+ -- Note: The approach used here is designed to avoid strict aliasing
+ -- warnings that appeared previously using unchecked conversion.
+
+ SS_Allocate (Addr, Storage_Offset (4 + 4 * D'Length));
+
+ declare
+ B : Bignum;
+ for B'Address use Addr'Address;
+ pragma Import (Ada, B);
+
+ BD : Bignum_Data (D'Length);
+ for BD'Address use Addr;
+ pragma Import (Ada, BD);
+
+ -- Expose a writable view of discriminant BD.Len so that we can
+ -- initialize it. We need to use the exact layout of the record
+ -- to ensure that the Length field has 24 bits as expected.
+
+ type Bignum_Data_Header is record
+ Len : Length;
+ Neg : Boolean;
+ end record;
+
+ for Bignum_Data_Header use record
+ Len at 0 range 0 .. 23;
+ Neg at 3 range 0 .. 7;
+ end record;
+
+ BDH : Bignum_Data_Header;
+ for BDH'Address use BD'Address;
+ pragma Import (Ada, BDH);
+
+ pragma Assert (BDH.Len'Size = BD.Len'Size);
- function "+" is new Ada.Unchecked_Conversion
- (Bignum, Sec_Stack_Bignums.Bignum);
+ begin
+ BDH.Len := D'Length;
+ BDH.Neg := Neg;
+ B.D := D;
+ return B;
+ end;
+ end Allocate_Bignum;
- function "-" is new Ada.Unchecked_Conversion
- (Sec_Stack_Bignums.Bignum, Bignum);
+ package Sec_Stack_Bignums is new System.Generic_Bignums
+ (Bignum, Allocate_Bignum, Free_Bignum, To_Bignum);
- function Big_Add (X, Y : Bignum) return Bignum is
- (-Sec_Stack_Bignums.Big_Add (+X, +Y));
+ function Big_Add (X, Y : Bignum) return Bignum
+ renames Sec_Stack_Bignums.Big_Add;
- function Big_Sub (X, Y : Bignum) return Bignum is
- (-Sec_Stack_Bignums.Big_Sub (+X, +Y));
+ function Big_Sub (X, Y : Bignum) return Bignum
+ renames Sec_Stack_Bignums.Big_Sub;
- function Big_Mul (X, Y : Bignum) return Bignum is
- (-Sec_Stack_Bignums.Big_Mul (+X, +Y));
+ function Big_Mul (X, Y : Bignum) return Bignum
+ renames Sec_Stack_Bignums.Big_Mul;
- function Big_Div (X, Y : Bignum) return Bignum is
- (-Sec_Stack_Bignums.Big_Div (+X, +Y));
+ function Big_Div (X, Y : Bignum) return Bignum
+ renames Sec_Stack_Bignums.Big_Div;
- function Big_Exp (X, Y : Bignum) return Bignum is
- (-Sec_Stack_Bignums.Big_Exp (+X, +Y));
+ function Big_Exp (X, Y : Bignum) return Bignum
+ renames Sec_Stack_Bignums.Big_Exp;
- function Big_Mod (X, Y : Bignum) return Bignum is
- (-Sec_Stack_Bignums.Big_Mod (+X, +Y));
+ function Big_Mod (X, Y : Bignum) return Bignum
+ renames Sec_Stack_Bignums.Big_Mod;
- function Big_Rem (X, Y : Bignum) return Bignum is
- (-Sec_Stack_Bignums.Big_Rem (+X, +Y));
+ function Big_Rem (X, Y : Bignum) return Bignum
+ renames Sec_Stack_Bignums.Big_Rem;
- function Big_Neg (X : Bignum) return Bignum is
- (-Sec_Stack_Bignums.Big_Neg (+X));
+ function Big_Neg (X : Bignum) return Bignum
+ renames Sec_Stack_Bignums.Big_Neg;
- function Big_Abs (X : Bignum) return Bignum is
- (-Sec_Stack_Bignums.Big_Abs (+X));
+ function Big_Abs (X : Bignum) return Bignum
+ renames Sec_Stack_Bignums.Big_Abs;
- function Big_EQ (X, Y : Bignum) return Boolean is
- (Sec_Stack_Bignums.Big_EQ (+X, +Y));
- function Big_NE (X, Y : Bignum) return Boolean is
- (Sec_Stack_Bignums.Big_NE (+X, +Y));
- function Big_GE (X, Y : Bignum) return Boolean is
- (Sec_Stack_Bignums.Big_GE (+X, +Y));
- function Big_LE (X, Y : Bignum) return Boolean is
- (Sec_Stack_Bignums.Big_LE (+X, +Y));
- function Big_GT (X, Y : Bignum) return Boolean is
- (Sec_Stack_Bignums.Big_GT (+X, +Y));
- function Big_LT (X, Y : Bignum) return Boolean is
- (Sec_Stack_Bignums.Big_LT (+X, +Y));
+ function Big_EQ (X, Y : Bignum) return Boolean
+ renames Sec_Stack_Bignums.Big_EQ;
+ function Big_NE (X, Y : Bignum) return Boolean
+ renames Sec_Stack_Bignums.Big_NE;
+ function Big_GE (X, Y : Bignum) return Boolean
+ renames Sec_Stack_Bignums.Big_GE;
+ function Big_LE (X, Y : Bignum) return Boolean
+ renames Sec_Stack_Bignums.Big_LE;
+ function Big_GT (X, Y : Bignum) return Boolean
+ renames Sec_Stack_Bignums.Big_GT;
+ function Big_LT (X, Y : Bignum) return Boolean
+ renames Sec_Stack_Bignums.Big_LT;
- function Bignum_In_LLI_Range (X : Bignum) return Boolean is
- (Sec_Stack_Bignums.Bignum_In_LLI_Range (+X));
+ function Bignum_In_LLI_Range (X : Bignum) return Boolean
+ renames Sec_Stack_Bignums.Bignum_In_LLI_Range;
- function To_Bignum (X : Long_Long_Integer) return Bignum is
- (-Sec_Stack_Bignums.To_Bignum (X));
+ function To_Bignum (X : Long_Long_Integer) return Bignum
+ renames Sec_Stack_Bignums.To_Bignum;
- function From_Bignum (X : Bignum) return Long_Long_Integer is
- (Sec_Stack_Bignums.From_Bignum (+X));
+ function From_Bignum (X : Bignum) return Long_Long_Integer
+ renames Sec_Stack_Bignums.From_Bignum;
end System.Bignums;
diff --git a/gcc/ada/libgnat/s-bignum.ads b/gcc/ada/libgnat/s-bignum.ads
index 5edb62c..728e5438 100644
--- a/gcc/ada/libgnat/s-bignum.ads
+++ b/gcc/ada/libgnat/s-bignum.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2012-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2012-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -36,10 +36,12 @@
-- Note that we cannot use a straight instantiation of System.Generic_Bignums
-- because the rtsfind mechanism is not ready to handle instantiations.
+with System.Shared_Bignums;
+
package System.Bignums is
pragma Preelaborate;
- type Bignum is private;
+ subtype Bignum is System.Shared_Bignums.Bignum;
function Big_Add (X, Y : Bignum) return Bignum; -- "+"
function Big_Sub (X, Y : Bignum) return Bignum; -- "-"
@@ -77,8 +79,6 @@ package System.Bignums is
private
- type Bignum is new System.Address;
-
pragma Inline (Big_Add);
pragma Inline (Big_Sub);
pragma Inline (Big_Mul);
diff --git a/gcc/ada/libgnat/s-bitfie.ads b/gcc/ada/libgnat/s-bitfie.ads
index a90605b..4f17a9c 100644
--- a/gcc/ada/libgnat/s-bitfie.ads
+++ b/gcc/ada/libgnat/s-bitfie.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2019-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-bitops.adb b/gcc/ada/libgnat/s-bitops.adb
index 7535810..19bf14f 100644
--- a/gcc/ada/libgnat/s-bitops.adb
+++ b/gcc/ada/libgnat/s-bitops.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1996-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1996-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-bitops.ads b/gcc/ada/libgnat/s-bitops.ads
index b7f8b0a..8caf77c 100644
--- a/gcc/ada/libgnat/s-bitops.ads
+++ b/gcc/ada/libgnat/s-bitops.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-bituti.adb b/gcc/ada/libgnat/s-bituti.adb
index b425e9f..e3bd70a 100644
--- a/gcc/ada/libgnat/s-bituti.adb
+++ b/gcc/ada/libgnat/s-bituti.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2019-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-bituti.ads b/gcc/ada/libgnat/s-bituti.ads
index 1e446c1..305133b 100644
--- a/gcc/ada/libgnat/s-bituti.ads
+++ b/gcc/ada/libgnat/s-bituti.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2019-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-boarop.ads b/gcc/ada/libgnat/s-boarop.ads
index c648413..3f3656d 100644
--- a/gcc/ada/libgnat/s-boarop.ads
+++ b/gcc/ada/libgnat/s-boarop.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2002-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2002-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-boustr.adb b/gcc/ada/libgnat/s-boustr.adb
index 3b878a9..d153f10 100644
--- a/gcc/ada/libgnat/s-boustr.adb
+++ b/gcc/ada/libgnat/s-boustr.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2016-2019, AdaCore --
+-- Copyright (C) 2016-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-boustr.ads b/gcc/ada/libgnat/s-boustr.ads
index af88c23..e49c5aa 100644
--- a/gcc/ada/libgnat/s-boustr.ads
+++ b/gcc/ada/libgnat/s-boustr.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2016-2019, AdaCore --
+-- Copyright (C) 2016-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-bytswa.ads b/gcc/ada/libgnat/s-bytswa.ads
index 7ba6047..76d8ded 100644
--- a/gcc/ada/libgnat/s-bytswa.ads
+++ b/gcc/ada/libgnat/s-bytswa.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2006-2019, AdaCore --
+-- Copyright (C) 2006-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-carsi8.adb b/gcc/ada/libgnat/s-carsi8.adb
index 8ffdb67..11ec460 100644
--- a/gcc/ada/libgnat/s-carsi8.adb
+++ b/gcc/ada/libgnat/s-carsi8.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2002-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2002-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-carsi8.ads b/gcc/ada/libgnat/s-carsi8.ads
index 7830859..a515aad 100644
--- a/gcc/ada/libgnat/s-carsi8.ads
+++ b/gcc/ada/libgnat/s-carsi8.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2002-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2002-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-carun8.adb b/gcc/ada/libgnat/s-carun8.adb
index 3304769..412410e 100644
--- a/gcc/ada/libgnat/s-carun8.adb
+++ b/gcc/ada/libgnat/s-carun8.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2002-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2002-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-carun8.ads b/gcc/ada/libgnat/s-carun8.ads
index f4694d1..f74c1e3 100644
--- a/gcc/ada/libgnat/s-carun8.ads
+++ b/gcc/ada/libgnat/s-carun8.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2002-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2002-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-casi16.adb b/gcc/ada/libgnat/s-casi16.adb
index 40741f4..17f8429 100644
--- a/gcc/ada/libgnat/s-casi16.adb
+++ b/gcc/ada/libgnat/s-casi16.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2002-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2002-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-casi16.ads b/gcc/ada/libgnat/s-casi16.ads
index 83b5fc9..cdb9b51 100644
--- a/gcc/ada/libgnat/s-casi16.ads
+++ b/gcc/ada/libgnat/s-casi16.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2002-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2002-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-casi32.adb b/gcc/ada/libgnat/s-casi32.adb
index b125d25..9d54fe3 100644
--- a/gcc/ada/libgnat/s-casi32.adb
+++ b/gcc/ada/libgnat/s-casi32.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2002-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2002-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-casi32.ads b/gcc/ada/libgnat/s-casi32.ads
index f497fbb..90ffaf0 100644
--- a/gcc/ada/libgnat/s-casi32.ads
+++ b/gcc/ada/libgnat/s-casi32.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2002-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2002-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-casi64.adb b/gcc/ada/libgnat/s-casi64.adb
index 4ec7161..464f99e 100644
--- a/gcc/ada/libgnat/s-casi64.adb
+++ b/gcc/ada/libgnat/s-casi64.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2002-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2002-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-casi64.ads b/gcc/ada/libgnat/s-casi64.ads
index f512c56..7296dd8 100644
--- a/gcc/ada/libgnat/s-casi64.ads
+++ b/gcc/ada/libgnat/s-casi64.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2002-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2002-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-casuti.adb b/gcc/ada/libgnat/s-casuti.adb
index 712b2b4..a8982f2 100644
--- a/gcc/ada/libgnat/s-casuti.adb
+++ b/gcc/ada/libgnat/s-casuti.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1995-2019, AdaCore --
+-- Copyright (C) 1995-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-casuti.ads b/gcc/ada/libgnat/s-casuti.ads
index 09b8ae0..4204b5e 100644
--- a/gcc/ada/libgnat/s-casuti.ads
+++ b/gcc/ada/libgnat/s-casuti.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1995-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1995-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-caun16.adb b/gcc/ada/libgnat/s-caun16.adb
index df3dcc1..ef016b5 100644
--- a/gcc/ada/libgnat/s-caun16.adb
+++ b/gcc/ada/libgnat/s-caun16.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2002-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2002-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-caun16.ads b/gcc/ada/libgnat/s-caun16.ads
index 8efac8a..beb6322 100644
--- a/gcc/ada/libgnat/s-caun16.ads
+++ b/gcc/ada/libgnat/s-caun16.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2002-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2002-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-caun32.adb b/gcc/ada/libgnat/s-caun32.adb
index d0ae97d..6979dfc 100644
--- a/gcc/ada/libgnat/s-caun32.adb
+++ b/gcc/ada/libgnat/s-caun32.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2002-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2002-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-caun32.ads b/gcc/ada/libgnat/s-caun32.ads
index e4fb4f9..8f07450b 100644
--- a/gcc/ada/libgnat/s-caun32.ads
+++ b/gcc/ada/libgnat/s-caun32.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2002-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2002-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-caun64.adb b/gcc/ada/libgnat/s-caun64.adb
index 2184721..32e3749 100644
--- a/gcc/ada/libgnat/s-caun64.adb
+++ b/gcc/ada/libgnat/s-caun64.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2002-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2002-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-caun64.ads b/gcc/ada/libgnat/s-caun64.ads
index 5d1413f..e732fc7 100644
--- a/gcc/ada/libgnat/s-caun64.ads
+++ b/gcc/ada/libgnat/s-caun64.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2002-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2002-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-chepoo.ads b/gcc/ada/libgnat/s-chepoo.ads
index b253df7..47ea922 100644
--- a/gcc/ada/libgnat/s-chepoo.ads
+++ b/gcc/ada/libgnat/s-chepoo.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-commun.adb b/gcc/ada/libgnat/s-commun.adb
index 65b2a14..0e924be 100644
--- a/gcc/ada/libgnat/s-commun.adb
+++ b/gcc/ada/libgnat/s-commun.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2001-2019, AdaCore --
+-- Copyright (C) 2001-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-commun.ads b/gcc/ada/libgnat/s-commun.ads
index 4528415..b338343 100644
--- a/gcc/ada/libgnat/s-commun.ads
+++ b/gcc/ada/libgnat/s-commun.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2001-2019, AdaCore --
+-- Copyright (C) 2001-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-conca2.adb b/gcc/ada/libgnat/s-conca2.adb
index 37ec804..3b6639c 100644
--- a/gcc/ada/libgnat/s-conca2.adb
+++ b/gcc/ada/libgnat/s-conca2.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2008-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2008-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-conca2.ads b/gcc/ada/libgnat/s-conca2.ads
index 2250e09..d120d47 100644
--- a/gcc/ada/libgnat/s-conca2.ads
+++ b/gcc/ada/libgnat/s-conca2.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2008-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2008-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-conca3.adb b/gcc/ada/libgnat/s-conca3.adb
index 4685218..1115434 100644
--- a/gcc/ada/libgnat/s-conca3.adb
+++ b/gcc/ada/libgnat/s-conca3.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2008-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2008-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-conca3.ads b/gcc/ada/libgnat/s-conca3.ads
index 4c0c454..6935974 100644
--- a/gcc/ada/libgnat/s-conca3.ads
+++ b/gcc/ada/libgnat/s-conca3.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2008-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2008-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-conca4.adb b/gcc/ada/libgnat/s-conca4.adb
index 81e47b8..b170b1f 100644
--- a/gcc/ada/libgnat/s-conca4.adb
+++ b/gcc/ada/libgnat/s-conca4.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2008-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2008-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-conca4.ads b/gcc/ada/libgnat/s-conca4.ads
index cca1844..64157df 100644
--- a/gcc/ada/libgnat/s-conca4.ads
+++ b/gcc/ada/libgnat/s-conca4.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2008-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2008-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-conca5.adb b/gcc/ada/libgnat/s-conca5.adb
index 9612681..0b14a5c 100644
--- a/gcc/ada/libgnat/s-conca5.adb
+++ b/gcc/ada/libgnat/s-conca5.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2008-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2008-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-conca5.ads b/gcc/ada/libgnat/s-conca5.ads
index 8dfbda9..ec6c326 100644
--- a/gcc/ada/libgnat/s-conca5.ads
+++ b/gcc/ada/libgnat/s-conca5.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2008-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2008-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-conca6.adb b/gcc/ada/libgnat/s-conca6.adb
index d56523c..43a15b9 100644
--- a/gcc/ada/libgnat/s-conca6.adb
+++ b/gcc/ada/libgnat/s-conca6.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2008-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2008-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-conca6.ads b/gcc/ada/libgnat/s-conca6.ads
index 95b377d..20a9075 100644
--- a/gcc/ada/libgnat/s-conca6.ads
+++ b/gcc/ada/libgnat/s-conca6.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2008-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2008-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-conca7.adb b/gcc/ada/libgnat/s-conca7.adb
index 418c637..9691ec0 100644
--- a/gcc/ada/libgnat/s-conca7.adb
+++ b/gcc/ada/libgnat/s-conca7.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2008-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2008-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-conca7.ads b/gcc/ada/libgnat/s-conca7.ads
index 859e63a..2a382c2 100644
--- a/gcc/ada/libgnat/s-conca7.ads
+++ b/gcc/ada/libgnat/s-conca7.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2008-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2008-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-conca8.adb b/gcc/ada/libgnat/s-conca8.adb
index 53e3f19..44968ac 100644
--- a/gcc/ada/libgnat/s-conca8.adb
+++ b/gcc/ada/libgnat/s-conca8.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2008-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2008-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-conca8.ads b/gcc/ada/libgnat/s-conca8.ads
index 027f3c0..1bee3cf 100644
--- a/gcc/ada/libgnat/s-conca8.ads
+++ b/gcc/ada/libgnat/s-conca8.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2008-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2008-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-conca9.adb b/gcc/ada/libgnat/s-conca9.adb
index 9b3f33d..b5c4ade 100644
--- a/gcc/ada/libgnat/s-conca9.adb
+++ b/gcc/ada/libgnat/s-conca9.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2008-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2008-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-conca9.ads b/gcc/ada/libgnat/s-conca9.ads
index 632a002..fc900c6 100644
--- a/gcc/ada/libgnat/s-conca9.ads
+++ b/gcc/ada/libgnat/s-conca9.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2008-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2008-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-crc32.adb b/gcc/ada/libgnat/s-crc32.adb
index ae415e3..49df8c2 100644
--- a/gcc/ada/libgnat/s-crc32.adb
+++ b/gcc/ada/libgnat/s-crc32.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2001-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2001-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-crc32.ads b/gcc/ada/libgnat/s-crc32.ads
index 065ac1b..3591120 100644
--- a/gcc/ada/libgnat/s-crc32.ads
+++ b/gcc/ada/libgnat/s-crc32.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2001-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2001-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-crtl.ads b/gcc/ada/libgnat/s-crtl.ads
index 306a607..a3299ef 100644
--- a/gcc/ada/libgnat/s-crtl.ads
+++ b/gcc/ada/libgnat/s-crtl.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2003-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2003-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-dfmkio.ads b/gcc/ada/libgnat/s-dfmkio.ads
index 1629edb..cad07fe 100644
--- a/gcc/ada/libgnat/s-dfmkio.ads
+++ b/gcc/ada/libgnat/s-dfmkio.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2018-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2018-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-dfmopr.ads b/gcc/ada/libgnat/s-dfmopr.ads
index be71b4f..f9e24bb 100644
--- a/gcc/ada/libgnat/s-dfmopr.ads
+++ b/gcc/ada/libgnat/s-dfmopr.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2018-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2018-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-dgmgop.ads b/gcc/ada/libgnat/s-dgmgop.ads
index 5f38c65..3141ddb 100644
--- a/gcc/ada/libgnat/s-dgmgop.ads
+++ b/gcc/ada/libgnat/s-dgmgop.ads
@@ -7,7 +7,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2011-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2011-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-diflio.adb b/gcc/ada/libgnat/s-diflio.adb
index 20afccc..222679ef 100644
--- a/gcc/ada/libgnat/s-diflio.adb
+++ b/gcc/ada/libgnat/s-diflio.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2011-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2011-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-diflio.ads b/gcc/ada/libgnat/s-diflio.ads
index fb92ea9..67bce0f 100644
--- a/gcc/ada/libgnat/s-diflio.ads
+++ b/gcc/ada/libgnat/s-diflio.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2011-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2011-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-diflmk.ads b/gcc/ada/libgnat/s-diflmk.ads
index fcd5938..6ba1e01 100644
--- a/gcc/ada/libgnat/s-diflmk.ads
+++ b/gcc/ada/libgnat/s-diflmk.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2018-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2018-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-digemk.ads b/gcc/ada/libgnat/s-digemk.ads
index 6a2798a..5013083 100644
--- a/gcc/ada/libgnat/s-digemk.ads
+++ b/gcc/ada/libgnat/s-digemk.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2011-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2011-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-diinio.adb b/gcc/ada/libgnat/s-diinio.adb
index 2439769..a067ccc 100644
--- a/gcc/ada/libgnat/s-diinio.adb
+++ b/gcc/ada/libgnat/s-diinio.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2011-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2011-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-diinio.ads b/gcc/ada/libgnat/s-diinio.ads
index a54804b..ddcd716 100644
--- a/gcc/ada/libgnat/s-diinio.ads
+++ b/gcc/ada/libgnat/s-diinio.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2011-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2011-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-dilomk.ads b/gcc/ada/libgnat/s-dilomk.ads
index 0666b2d..df3d28f 100644
--- a/gcc/ada/libgnat/s-dilomk.ads
+++ b/gcc/ada/libgnat/s-dilomk.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2018-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2018-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-dim.ads b/gcc/ada/libgnat/s-dim.ads
index d119371..9780a85 100644
--- a/gcc/ada/libgnat/s-dim.ads
+++ b/gcc/ada/libgnat/s-dim.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2012-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2012-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-dimkio.ads b/gcc/ada/libgnat/s-dimkio.ads
index bb87bdf..4293103 100644
--- a/gcc/ada/libgnat/s-dimkio.ads
+++ b/gcc/ada/libgnat/s-dimkio.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2011-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2011-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-dimmks.ads b/gcc/ada/libgnat/s-dimmks.ads
index 5a3f8e4..24eb0b9 100644
--- a/gcc/ada/libgnat/s-dimmks.ads
+++ b/gcc/ada/libgnat/s-dimmks.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2011-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2011-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-direio.adb b/gcc/ada/libgnat/s-direio.adb
index 23b1157..0ebc2bc 100644
--- a/gcc/ada/libgnat/s-direio.adb
+++ b/gcc/ada/libgnat/s-direio.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-direio.ads b/gcc/ada/libgnat/s-direio.ads
index c2672ca..aa93797 100644
--- a/gcc/ada/libgnat/s-direio.ads
+++ b/gcc/ada/libgnat/s-direio.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-dlmkio.ads b/gcc/ada/libgnat/s-dlmkio.ads
index 2a13299..fccfd8b 100644
--- a/gcc/ada/libgnat/s-dlmkio.ads
+++ b/gcc/ada/libgnat/s-dlmkio.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2018-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2018-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-dlmopr.ads b/gcc/ada/libgnat/s-dlmopr.ads
index 53dc586..ee743d5 100644
--- a/gcc/ada/libgnat/s-dlmopr.ads
+++ b/gcc/ada/libgnat/s-dlmopr.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2018-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2018-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-dmotpr.ads b/gcc/ada/libgnat/s-dmotpr.ads
index 0208341..04d6ca4 100644
--- a/gcc/ada/libgnat/s-dmotpr.ads
+++ b/gcc/ada/libgnat/s-dmotpr.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2011-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2011-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-dsaser.ads b/gcc/ada/libgnat/s-dsaser.ads
index 2275669..4f38d8b 100644
--- a/gcc/ada/libgnat/s-dsaser.ads
+++ b/gcc/ada/libgnat/s-dsaser.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2006-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2006-2020, Free Software Foundation, Inc. --
-- --
-- GNARL is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-dwalin.adb b/gcc/ada/libgnat/s-dwalin.adb
index 5307eae..dbd4c53 100644
--- a/gcc/ada/libgnat/s-dwalin.adb
+++ b/gcc/ada/libgnat/s-dwalin.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2009-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2009-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -440,6 +440,10 @@ package body System.Dwarf_Lines is
or else Info_Sec = Null_Section
or else Aranges_Sec = Null_Section
then
+ pragma Annotate
+ (CodePeer, False_Positive,
+ "test always true", "codepeer got confused");
+
C.Has_Debug := False;
return;
end if;
@@ -883,6 +887,7 @@ package body System.Dwarf_Lines is
Success : out Boolean)
is
begin
+ Info_Offset := 0;
Seek (C.Aranges, 0);
while Tell (C.Aranges) < Length (C.Aranges) loop
@@ -905,6 +910,7 @@ package body System.Dwarf_Lines is
end;
end loop;
end loop;
+
Success := False;
end Aranges_Lookup;
@@ -1028,6 +1034,7 @@ package body System.Dwarf_Lines is
Has_Child : uint8;
pragma Unreferenced (Has_Child);
begin
+ Line_Offset := 0;
Success := False;
Seek (C.Info, Info_Offset);
@@ -1119,7 +1126,8 @@ package body System.Dwarf_Lines is
Version : uint16;
Sz : uint8;
begin
- Success := False;
+ Success := False;
+ Info_Offset := 0;
Read_Initial_Length (C.Aranges, Unit_Length, Is64);
@@ -1407,6 +1415,7 @@ package body System.Dwarf_Lines is
Success : Boolean;
Done : Boolean;
S : Object_Symbol;
+
begin
-- Initialize result
Dir_Name := null;
@@ -1422,6 +1431,8 @@ package body System.Dwarf_Lines is
begin
First := C.Cache'First;
Last := C.Cache'Last;
+ Mid := First;
+
while First <= Last loop
Mid := First + (Last - First) / 2;
if Addr_Off < C.Cache (Mid).First then
@@ -1432,6 +1443,7 @@ package body System.Dwarf_Lines is
exit;
end if;
end loop;
+
if Addr_Off >= C.Cache (Mid).First
and then Addr_Off < C.Cache (Mid).First + C.Cache (Mid).Size
then
@@ -1474,6 +1486,7 @@ package body System.Dwarf_Lines is
C.Next_Prologue := 0;
Initialize_State_Machine (C);
Parse_Prologue (C);
+ Previous_Row.Line := 0;
-- Advance to the first entry
@@ -1535,7 +1548,7 @@ package body System.Dwarf_Lines is
(Cin : Dwarf_Context;
Traceback : AET.Tracebacks_Array;
Suppress_Hex : Boolean;
- Symbol_Found : in out Boolean;
+ Symbol_Found : out Boolean;
Res : in out System.Bounded_Strings.Bounded_String)
is
use Ada.Characters.Handling;
diff --git a/gcc/ada/libgnat/s-dwalin.ads b/gcc/ada/libgnat/s-dwalin.ads
index 297fd8e..2753be3 100644
--- a/gcc/ada/libgnat/s-dwalin.ads
+++ b/gcc/ada/libgnat/s-dwalin.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2009-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2009-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -93,7 +93,7 @@ package System.Dwarf_Lines is
(Cin : Dwarf_Context;
Traceback : AET.Tracebacks_Array;
Suppress_Hex : Boolean;
- Symbol_Found : in out Boolean;
+ Symbol_Found : out Boolean;
Res : in out System.Bounded_Strings.Bounded_String);
-- Generate a string for a traceback suitable for displaying to the user.
-- If one or more symbols are found, Symbol_Found is set to True. This
diff --git a/gcc/ada/libgnat/s-elaall.adb b/gcc/ada/libgnat/s-elaall.adb
index 24fc0ff..03ed66c 100644
--- a/gcc/ada/libgnat/s-elaall.adb
+++ b/gcc/ada/libgnat/s-elaall.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2014-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2014-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-elaall.ads b/gcc/ada/libgnat/s-elaall.ads
index 3773b72..27344bf 100644
--- a/gcc/ada/libgnat/s-elaall.ads
+++ b/gcc/ada/libgnat/s-elaall.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2014-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2014-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-excdeb.adb b/gcc/ada/libgnat/s-excdeb.adb
index 8e48caf..56efde6 100644
--- a/gcc/ada/libgnat/s-excdeb.adb
+++ b/gcc/ada/libgnat/s-excdeb.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2006-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2006-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-excdeb.ads b/gcc/ada/libgnat/s-excdeb.ads
index 7afdb6c..c1836b2 100644
--- a/gcc/ada/libgnat/s-excdeb.ads
+++ b/gcc/ada/libgnat/s-excdeb.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2006-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2006-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-except.adb b/gcc/ada/libgnat/s-except.adb
index b742226..228cf2b 100644
--- a/gcc/ada/libgnat/s-except.adb
+++ b/gcc/ada/libgnat/s-except.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2006-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2006-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-except.ads b/gcc/ada/libgnat/s-except.ads
index 02a139f..29d960e 100644
--- a/gcc/ada/libgnat/s-except.ads
+++ b/gcc/ada/libgnat/s-except.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2006-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2006-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-excmac__arm.adb b/gcc/ada/libgnat/s-excmac__arm.adb
index 5571245..faf53b7 100644
--- a/gcc/ada/libgnat/s-excmac__arm.adb
+++ b/gcc/ada/libgnat/s-excmac__arm.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2013-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2013-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-excmac__arm.ads b/gcc/ada/libgnat/s-excmac__arm.ads
index 380c116..65269ae 100644
--- a/gcc/ada/libgnat/s-excmac__arm.ads
+++ b/gcc/ada/libgnat/s-excmac__arm.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2013-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2013-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-excmac__gcc.adb b/gcc/ada/libgnat/s-excmac__gcc.adb
index add7c3a..ead0550 100644
--- a/gcc/ada/libgnat/s-excmac__gcc.adb
+++ b/gcc/ada/libgnat/s-excmac__gcc.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2013-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2013-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-excmac__gcc.ads b/gcc/ada/libgnat/s-excmac__gcc.ads
index bdb2648..f7148a3 100644
--- a/gcc/ada/libgnat/s-excmac__gcc.ads
+++ b/gcc/ada/libgnat/s-excmac__gcc.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2013-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2013-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-exctab.adb b/gcc/ada/libgnat/s-exctab.adb
index 09f494e..ec5e0a7 100644
--- a/gcc/ada/libgnat/s-exctab.adb
+++ b/gcc/ada/libgnat/s-exctab.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1996-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1996-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-exctab.ads b/gcc/ada/libgnat/s-exctab.ads
index 4063b15..d0ead62 100644
--- a/gcc/ada/libgnat/s-exctab.ads
+++ b/gcc/ada/libgnat/s-exctab.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1996-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1996-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-exctra.adb b/gcc/ada/libgnat/s-exctra.adb
index 3254d10..2ada43b 100644
--- a/gcc/ada/libgnat/s-exctra.adb
+++ b/gcc/ada/libgnat/s-exctra.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2000-2019, AdaCore --
+-- Copyright (C) 2000-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-exctra.ads b/gcc/ada/libgnat/s-exctra.ads
index 73380b2..e3b360f 100644
--- a/gcc/ada/libgnat/s-exctra.ads
+++ b/gcc/ada/libgnat/s-exctra.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2000-2019, AdaCore --
+-- Copyright (C) 2000-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-exnint.adb b/gcc/ada/libgnat/s-exnint.adb
index 46bb82d..fccd675 100644
--- a/gcc/ada/libgnat/s-exnint.adb
+++ b/gcc/ada/libgnat/s-exnint.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-exnint.ads b/gcc/ada/libgnat/s-exnint.ads
index 3e99a39..29303a3 100644
--- a/gcc/ada/libgnat/s-exnint.ads
+++ b/gcc/ada/libgnat/s-exnint.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-exnllf.adb b/gcc/ada/libgnat/s-exnllf.adb
index 84bf7f9..7ca2675 100644
--- a/gcc/ada/libgnat/s-exnllf.adb
+++ b/gcc/ada/libgnat/s-exnllf.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-exnllf.ads b/gcc/ada/libgnat/s-exnllf.ads
index b023bd8..6a334de 100644
--- a/gcc/ada/libgnat/s-exnllf.ads
+++ b/gcc/ada/libgnat/s-exnllf.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-exnlli.adb b/gcc/ada/libgnat/s-exnlli.adb
index 6e77b09..dc486d6 100644
--- a/gcc/ada/libgnat/s-exnlli.adb
+++ b/gcc/ada/libgnat/s-exnlli.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-exnlli.ads b/gcc/ada/libgnat/s-exnlli.ads
index 2e716d4..f6d94de 100644
--- a/gcc/ada/libgnat/s-exnlli.ads
+++ b/gcc/ada/libgnat/s-exnlli.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-expint.adb b/gcc/ada/libgnat/s-expint.adb
index 1cc2181..aa3445c 100644
--- a/gcc/ada/libgnat/s-expint.adb
+++ b/gcc/ada/libgnat/s-expint.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-expint.ads b/gcc/ada/libgnat/s-expint.ads
index f6c9f83..584564a 100644
--- a/gcc/ada/libgnat/s-expint.ads
+++ b/gcc/ada/libgnat/s-expint.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-explli.adb b/gcc/ada/libgnat/s-explli.adb
index 782d881..4f244cd 100644
--- a/gcc/ada/libgnat/s-explli.adb
+++ b/gcc/ada/libgnat/s-explli.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-explli.ads b/gcc/ada/libgnat/s-explli.ads
index be37781..f1283cd 100644
--- a/gcc/ada/libgnat/s-explli.ads
+++ b/gcc/ada/libgnat/s-explli.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-expllu.adb b/gcc/ada/libgnat/s-expllu.adb
index ad28a24..5615e4a 100644
--- a/gcc/ada/libgnat/s-expllu.adb
+++ b/gcc/ada/libgnat/s-expllu.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-expllu.ads b/gcc/ada/libgnat/s-expllu.ads
index 683aae2..2127aaad 100644
--- a/gcc/ada/libgnat/s-expllu.ads
+++ b/gcc/ada/libgnat/s-expllu.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-expmod.adb b/gcc/ada/libgnat/s-expmod.adb
index 713a6e7..1d6b404 100644
--- a/gcc/ada/libgnat/s-expmod.adb
+++ b/gcc/ada/libgnat/s-expmod.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-expmod.ads b/gcc/ada/libgnat/s-expmod.ads
index d221a2b..925ae11 100644
--- a/gcc/ada/libgnat/s-expmod.ads
+++ b/gcc/ada/libgnat/s-expmod.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-expuns.adb b/gcc/ada/libgnat/s-expuns.adb
index 4bf3f3f..da43763 100644
--- a/gcc/ada/libgnat/s-expuns.adb
+++ b/gcc/ada/libgnat/s-expuns.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-expuns.ads b/gcc/ada/libgnat/s-expuns.ads
index 69dd64f..a0d8085 100644
--- a/gcc/ada/libgnat/s-expuns.ads
+++ b/gcc/ada/libgnat/s-expuns.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-fatflt.ads b/gcc/ada/libgnat/s-fatflt.ads
index 3e9abfa..615e5f4 100644
--- a/gcc/ada/libgnat/s-fatflt.ads
+++ b/gcc/ada/libgnat/s-fatflt.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-fatgen.adb b/gcc/ada/libgnat/s-fatgen.adb
index 93237fb..b544587 100644
--- a/gcc/ada/libgnat/s-fatgen.adb
+++ b/gcc/ada/libgnat/s-fatgen.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -219,6 +219,10 @@ package body System.Fat_Gen is
Ax := Ax * R_Power (Expbits'Last);
Ex := Ex - Log_Power (Expbits'Last);
end loop;
+ pragma Annotate
+ (CodePeer, Intentional,
+ "test always false",
+ "expected for some instantiations");
-- Rad ** -64 <= Ax < 1
diff --git a/gcc/ada/libgnat/s-fatgen.ads b/gcc/ada/libgnat/s-fatgen.ads
index d338a45..b84d23b 100644
--- a/gcc/ada/libgnat/s-fatgen.ads
+++ b/gcc/ada/libgnat/s-fatgen.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-fatlfl.ads b/gcc/ada/libgnat/s-fatlfl.ads
index 48539c6..2be41118 100644
--- a/gcc/ada/libgnat/s-fatlfl.ads
+++ b/gcc/ada/libgnat/s-fatlfl.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-fatllf.ads b/gcc/ada/libgnat/s-fatllf.ads
index b352ecc..6361296 100644
--- a/gcc/ada/libgnat/s-fatllf.ads
+++ b/gcc/ada/libgnat/s-fatllf.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-fatsfl.ads b/gcc/ada/libgnat/s-fatsfl.ads
index ad7a810..45b13e1 100644
--- a/gcc/ada/libgnat/s-fatsfl.ads
+++ b/gcc/ada/libgnat/s-fatsfl.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-ficobl.ads b/gcc/ada/libgnat/s-ficobl.ads
index 5098d6b..1532cdb 100644
--- a/gcc/ada/libgnat/s-ficobl.ads
+++ b/gcc/ada/libgnat/s-ficobl.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-filatt.ads b/gcc/ada/libgnat/s-filatt.ads
index 8588458..d969cec 100644
--- a/gcc/ada/libgnat/s-filatt.ads
+++ b/gcc/ada/libgnat/s-filatt.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2013-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2013-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-fileio.adb b/gcc/ada/libgnat/s-fileio.adb
index 6339532..b6377e3 100644
--- a/gcc/ada/libgnat/s-fileio.adb
+++ b/gcc/ada/libgnat/s-fileio.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-fileio.ads b/gcc/ada/libgnat/s-fileio.ads
index f4aa52a..de464d8 100644
--- a/gcc/ada/libgnat/s-fileio.ads
+++ b/gcc/ada/libgnat/s-fileio.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-finmas.adb b/gcc/ada/libgnat/s-finmas.adb
index 9004d76..5a6583a 100644
--- a/gcc/ada/libgnat/s-finmas.adb
+++ b/gcc/ada/libgnat/s-finmas.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2015-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2015-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-finmas.ads b/gcc/ada/libgnat/s-finmas.ads
index 5b2fc39..ae0276f 100644
--- a/gcc/ada/libgnat/s-finmas.ads
+++ b/gcc/ada/libgnat/s-finmas.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2011-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2011-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-finroo.adb b/gcc/ada/libgnat/s-finroo.adb
index e4184c1..c56f8fa 100644
--- a/gcc/ada/libgnat/s-finroo.adb
+++ b/gcc/ada/libgnat/s-finroo.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-finroo.ads b/gcc/ada/libgnat/s-finroo.ads
index 0a32ecf..c3b36c0 100644
--- a/gcc/ada/libgnat/s-finroo.ads
+++ b/gcc/ada/libgnat/s-finroo.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-flocon.adb b/gcc/ada/libgnat/s-flocon.adb
index f50359a..9eabefc 100644
--- a/gcc/ada/libgnat/s-flocon.adb
+++ b/gcc/ada/libgnat/s-flocon.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2011-2019, AdaCore --
+-- Copyright (C) 2011-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-flocon.ads b/gcc/ada/libgnat/s-flocon.ads
index af4eef5..a5617c0 100644
--- a/gcc/ada/libgnat/s-flocon.ads
+++ b/gcc/ada/libgnat/s-flocon.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2000-2019, AdaCore --
+-- Copyright (C) 2000-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-flocon__none.adb b/gcc/ada/libgnat/s-flocon__none.adb
index 435363a..1dc3132 100644
--- a/gcc/ada/libgnat/s-flocon__none.adb
+++ b/gcc/ada/libgnat/s-flocon__none.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2011-2019, AdaCore --
+-- Copyright (C) 2011-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-fore.adb b/gcc/ada/libgnat/s-fore.adb
index 43afbef..2a4aa81 100644
--- a/gcc/ada/libgnat/s-fore.adb
+++ b/gcc/ada/libgnat/s-fore.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-fore.ads b/gcc/ada/libgnat/s-fore.ads
index 7f06b0d..7d78952 100644
--- a/gcc/ada/libgnat/s-fore.ads
+++ b/gcc/ada/libgnat/s-fore.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-gearop.adb b/gcc/ada/libgnat/s-gearop.adb
index 4064571..3eaeec2 100644
--- a/gcc/ada/libgnat/s-gearop.adb
+++ b/gcc/ada/libgnat/s-gearop.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2006-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2006-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -240,6 +240,8 @@ package body System.Generic_Array_Operations is
for J in N'Range (2) loop
N (Row - M'First (1) + N'First (1), J) :=
N (Row - M'First (1) + N'First (1), J) / Scale;
+ pragma Annotate
+ (CodePeer, False_Positive, "divide by zero", "Scale /= 0");
end loop;
end Divide_Row;
@@ -602,6 +604,9 @@ package body System.Generic_Array_Operations is
end if;
elsif X > Real'Base'Last then
+ pragma Annotate
+ (CodePeer, Intentional,
+ "test always false", "test for infinity");
-- X is infinity, which is its own square root
@@ -627,6 +632,8 @@ package body System.Generic_Array_Operations is
-- of precision.
for J in 1 .. 8 loop
+ pragma Assert (Root /= 0.0);
+
Next := (Root + X / Root) / 2.0;
exit when Root = Next;
Root := Next;
diff --git a/gcc/ada/libgnat/s-gearop.ads b/gcc/ada/libgnat/s-gearop.ads
index b25d40e..2ee455c 100644
--- a/gcc/ada/libgnat/s-gearop.ads
+++ b/gcc/ada/libgnat/s-gearop.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2006-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2006-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-genbig.adb b/gcc/ada/libgnat/s-genbig.adb
index 0a92dfb..71aff9b 100644
--- a/gcc/ada/libgnat/s-genbig.adb
+++ b/gcc/ada/libgnat/s-genbig.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2012-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2012-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -31,15 +31,13 @@
-- This package provides arbitrary precision signed integer arithmetic.
-with System; use System;
-with System.Secondary_Stack; use System.Secondary_Stack;
-with System.Storage_Elements; use System.Storage_Elements;
-
package body System.Generic_Bignums is
use Interfaces;
-- So that operations on Unsigned_32/Unsigned_64 are available
+ use Shared_Bignums;
+
type DD is mod Base ** 2;
-- Double length digit used for intermediate computations
@@ -65,18 +63,13 @@ package body System.Generic_Bignums is
function Add
(X, Y : Digit_Vector;
X_Neg : Boolean;
- Y_Neg : Boolean) return Bignum
+ Y_Neg : Boolean) return Big_Integer
with
Pre => X'First = 1 and then Y'First = 1;
-- This procedure adds two signed numbers returning the Sum, it is used
-- for both addition and subtraction. The value computed is X + Y, with
-- X_Neg and Y_Neg giving the signs of the operands.
- function Allocate_Bignum (Len : Length) return Bignum with
- Post => Allocate_Bignum'Result.Len = Len;
- -- Allocate Bignum value of indicated length on secondary stack. On return
- -- the Neg and D fields are left uninitialized.
-
type Compare_Result is (LT, EQ, GT);
-- Indicates result of comparison in following call
@@ -90,8 +83,8 @@ package body System.Generic_Bignums is
procedure Div_Rem
(X, Y : Bignum;
- Quotient : out Bignum;
- Remainder : out Bignum;
+ Quotient : out Big_Integer;
+ Remainder : out Big_Integer;
Discard_Quotient : Boolean := False;
Discard_Remainder : Boolean := False);
-- Returns the Quotient and Remainder from dividing abs (X) by abs (Y). The
@@ -99,18 +92,16 @@ package body System.Generic_Bignums is
-- Quotient is undefined on return, and if Discard_Remainder is True, then
-- Remainder is undefined on return. Service routine for Big_Div/Rem/Mod.
- procedure Free_Bignum (X : Bignum) is null;
- -- Called to free a Bignum value used in intermediate computations. In
- -- this implementation using the secondary stack, it does nothing at all,
- -- because we rely on Mark/Release, but it may be of use for some
- -- alternative implementation.
-
function Normalize
(X : Digit_Vector;
- Neg : Boolean := False) return Bignum;
- -- Given a digit vector and sign, allocate and construct a Bignum value.
- -- Note that X may have leading zeroes which must be removed, and if the
- -- result is zero, the sign is forced positive.
+ Neg : Boolean := False) return Big_Integer;
+ -- Given a digit vector and sign, allocate and construct a big integer
+ -- value. Note that X may have leading zeroes which must be removed, and if
+ -- the result is zero, the sign is forced positive.
+ -- If X is too big, Storage_Error is raised.
+
+ function "**" (X : Bignum; Y : SD) return Big_Integer;
+ -- Exponentiation routine where we know right operand is one word
---------
-- Add --
@@ -119,7 +110,7 @@ package body System.Generic_Bignums is
function Add
(X, Y : Digit_Vector;
X_Neg : Boolean;
- Y_Neg : Boolean) return Bignum
+ Y_Neg : Boolean) return Big_Integer
is
begin
-- If signs are the same, we are doing an addition, it is convenient to
@@ -202,73 +193,11 @@ package body System.Generic_Bignums is
end if;
end Add;
- ---------------------
- -- Allocate_Bignum --
- ---------------------
-
- function Allocate_Bignum (Len : Length) return Bignum is
- Addr : Address;
-
- begin
- -- Allocation on the heap
-
- if not Use_Secondary_Stack then
- declare
- B : Bignum;
- begin
- B := new Bignum_Data'(Len, False, (others => 0));
- return B;
- end;
-
- -- Allocation on the secondary stack
-
- else
- -- Note: The approach used here is designed to avoid strict aliasing
- -- warnings that appeared previously using unchecked conversion.
-
- SS_Allocate (Addr, Storage_Offset (4 + 4 * Len));
-
- declare
- B : Bignum;
- for B'Address use Addr'Address;
- pragma Import (Ada, B);
-
- BD : Bignum_Data (Len);
- for BD'Address use Addr;
- pragma Import (Ada, BD);
-
- -- Expose a writable view of discriminant BD.Len so that we can
- -- initialize it. We need to use the exact layout of the record
- -- to ensure that the Length field has 24 bits as expected.
-
- type Bignum_Data_Header is record
- Len : Length;
- Neg : Boolean;
- end record;
-
- for Bignum_Data_Header use record
- Len at 0 range 0 .. 23;
- Neg at 3 range 0 .. 7;
- end record;
-
- BDH : Bignum_Data_Header;
- for BDH'Address use BD'Address;
- pragma Import (Ada, BDH);
-
- pragma Assert (BDH.Len'Size = BD.Len'Size);
-
- begin
- BDH.Len := Len;
- return B;
- end;
- end if;
- end Allocate_Bignum;
-
-------------
-- Big_Abs --
-------------
- function Big_Abs (X : Bignum) return Bignum is
+ function Big_Abs (X : Bignum) return Big_Integer is
begin
return Normalize (X.D);
end Big_Abs;
@@ -277,7 +206,7 @@ package body System.Generic_Bignums is
-- Big_Add --
-------------
- function Big_Add (X, Y : Bignum) return Bignum is
+ function Big_Add (X, Y : Bignum) return Big_Integer is
begin
return Add (X.D, Y.D, X.Neg, Y.Neg);
end Big_Add;
@@ -305,85 +234,69 @@ package body System.Generic_Bignums is
-- 13 -5 -2 -13 -5 2
-- 14 -5 -2 -14 -5 2
- function Big_Div (X, Y : Bignum) return Bignum is
- Q, R : Bignum;
+ function Big_Div (X, Y : Bignum) return Big_Integer is
+ Q, R : aliased Big_Integer;
begin
Div_Rem (X, Y, Q, R, Discard_Remainder => True);
- Q.Neg := Q.Len > 0 and then (X.Neg xor Y.Neg);
+ To_Bignum (Q).Neg := To_Bignum (Q).Len > 0 and then (X.Neg xor Y.Neg);
return Q;
end Big_Div;
- -------------
- -- Big_Exp --
- -------------
-
- function Big_Exp (X, Y : Bignum) return Bignum is
-
- function "**" (X : Bignum; Y : SD) return Bignum;
- -- Internal routine where we know right operand is one word
-
- ----------
- -- "**" --
- ----------
-
- function "**" (X : Bignum; Y : SD) return Bignum is
- begin
- case Y is
-
- -- X ** 0 is 1
-
- when 0 =>
- return Normalize (One_Data);
-
- -- X ** 1 is X
-
- when 1 =>
- return Normalize (X.D);
+ ----------
+ -- "**" --
+ ----------
- -- X ** 2 is X * X
+ function "**" (X : Bignum; Y : SD) return Big_Integer is
+ begin
+ case Y is
- when 2 =>
- return Big_Mul (X, X);
+ -- X ** 0 is 1
- -- For X greater than 2, use the recursion
+ when 0 =>
+ return Normalize (One_Data);
- -- X even, X ** Y = (X ** (Y/2)) ** 2;
- -- X odd, X ** Y = (X ** (Y/2)) ** 2 * X;
+ -- X ** 1 is X
- when others =>
- declare
- XY2 : constant Bignum := X ** (Y / 2);
- XY2S : constant Bignum := Big_Mul (XY2, XY2);
- Res : Bignum;
+ when 1 =>
+ return Normalize (X.D);
- begin
- Free_Bignum (XY2);
+ -- X ** 2 is X * X
- -- Raise storage error if intermediate value is getting too
- -- large, which we arbitrarily define as 200 words for now.
+ when 2 =>
+ return Big_Mul (X, X);
- if XY2S.Len > 200 then
- Free_Bignum (XY2S);
- raise Storage_Error with
- "exponentiation result is too large";
- end if;
+ -- For X greater than 2, use the recursion
- -- Otherwise take care of even/odd cases
+ -- X even, X ** Y = (X ** (Y/2)) ** 2;
+ -- X odd, X ** Y = (X ** (Y/2)) ** 2 * X;
- if (Y and 1) = 0 then
- return XY2S;
+ when others =>
+ declare
+ XY2 : aliased Big_Integer := X ** (Y / 2);
+ XY2S : aliased Big_Integer :=
+ Big_Mul (To_Bignum (XY2), To_Bignum (XY2));
- else
- Res := Big_Mul (XY2S, X);
- Free_Bignum (XY2S);
- return Res;
- end if;
- end;
- end case;
- end "**";
+ begin
+ Free_Big_Integer (XY2);
+
+ if (Y and 1) = 0 then
+ return XY2S;
+ else
+ return Res : constant Big_Integer :=
+ Big_Mul (To_Bignum (XY2S), X)
+ do
+ Free_Big_Integer (XY2S);
+ end return;
+ end if;
+ end;
+ end case;
+ end "**";
- -- Start of processing for Big_Exp
+ -------------
+ -- Big_Exp --
+ -------------
+ function Big_Exp (X, Y : Bignum) return Big_Integer is
begin
-- Error if right operand negative
@@ -431,6 +344,127 @@ package body System.Generic_Bignums is
end if;
end Big_Exp;
+ -------------
+ -- Big_And --
+ -------------
+
+ function Big_And (X, Y : Bignum) return Big_Integer is
+ begin
+ if X.Len > Y.Len then
+ return Big_And (X => Y, Y => X);
+ end if;
+
+ -- X is the smallest integer
+
+ declare
+ Result : Digit_Vector (1 .. X.Len);
+ Diff : constant Length := Y.Len - X.Len;
+ begin
+ for J in 1 .. X.Len loop
+ Result (J) := X.D (J) and Y.D (J + Diff);
+ end loop;
+
+ return Normalize (Result, X.Neg and Y.Neg);
+ end;
+ end Big_And;
+
+ ------------
+ -- Big_Or --
+ ------------
+
+ function Big_Or (X, Y : Bignum) return Big_Integer is
+ begin
+ if X.Len < Y.Len then
+ return Big_Or (X => Y, Y => X);
+ end if;
+
+ -- X is the largest integer
+
+ declare
+ Result : Digit_Vector (1 .. X.Len);
+ Index : Length;
+ Diff : constant Length := X.Len - Y.Len;
+
+ begin
+ Index := 1;
+
+ while Index <= Diff loop
+ Result (Index) := X.D (Index);
+ Index := Index + 1;
+ end loop;
+
+ for J in 1 .. Y.Len loop
+ Result (Index) := X.D (Index) or Y.D (J);
+ Index := Index + 1;
+ end loop;
+
+ return Normalize (Result, X.Neg or Y.Neg);
+ end;
+ end Big_Or;
+
+ --------------------
+ -- Big_Shift_Left --
+ --------------------
+
+ function Big_Shift_Left (X : Bignum; Amount : Natural) return Big_Integer is
+ begin
+ if X.Neg then
+ raise Constraint_Error;
+ elsif Amount = 0 then
+ return Allocate_Big_Integer (X.D, False);
+ end if;
+
+ declare
+ Shift : constant Natural := Amount rem SD'Size;
+ Result : Digit_Vector (0 .. X.Len + Amount / SD'Size);
+ Carry : SD := 0;
+
+ begin
+ for J in X.Len + 1 .. Result'Last loop
+ Result (J) := 0;
+ end loop;
+
+ for J in reverse 1 .. X.Len loop
+ Result (J) := Shift_Left (X.D (J), Shift) or Carry;
+ Carry := Shift_Right (X.D (J), SD'Size - Shift);
+ end loop;
+
+ Result (0) := Carry;
+ return Normalize (Result, False);
+ end;
+ end Big_Shift_Left;
+
+ ---------------------
+ -- Big_Shift_Right --
+ ---------------------
+
+ function Big_Shift_Right
+ (X : Bignum; Amount : Natural) return Big_Integer is
+ begin
+ if X.Neg then
+ raise Constraint_Error;
+ elsif Amount = 0 then
+ return Allocate_Big_Integer (X.D, False);
+ end if;
+
+ declare
+ Shift : constant Natural := Amount rem SD'Size;
+ Result : Digit_Vector (1 .. X.Len - Amount / SD'Size);
+ Carry : SD := 0;
+
+ begin
+ for J in 1 .. Result'Last - 1 loop
+ Result (J) := Shift_Right (X.D (J), Shift) or Carry;
+ Carry := Shift_Left (X.D (J), SD'Size - Shift);
+ end loop;
+
+ Result (Result'Last) :=
+ Shift_Right (X.D (Result'Last), Shift) or Carry;
+
+ return Normalize (Result, False);
+ end;
+ end Big_Shift_Right;
+
------------
-- Big_EQ --
------------
@@ -499,8 +533,8 @@ package body System.Generic_Bignums is
-- 13 -5 -2 3 -13 -5 -3 -3
-- 14 -5 -1 4 -14 -5 -4 -4
- function Big_Mod (X, Y : Bignum) return Bignum is
- Q, R : Bignum;
+ function Big_Mod (X, Y : Bignum) return Big_Integer is
+ Q, R : aliased Big_Integer;
begin
-- If signs are same, result is same as Rem
@@ -517,17 +551,17 @@ package body System.Generic_Bignums is
-- Zero result is unchanged
- if R.Len = 0 then
+ if To_Bignum (R).Len = 0 then
return R;
-- Otherwise adjust result
else
declare
- T1 : constant Bignum := Big_Sub (Y, R);
+ T1 : aliased Big_Integer := Big_Sub (Y, To_Bignum (R));
begin
- T1.Neg := Y.Neg;
- Free_Bignum (R);
+ To_Bignum (T1).Neg := Y.Neg;
+ Free_Big_Integer (R);
return T1;
end;
end if;
@@ -538,7 +572,7 @@ package body System.Generic_Bignums is
-- Big_Mul --
-------------
- function Big_Mul (X, Y : Bignum) return Bignum is
+ function Big_Mul (X, Y : Bignum) return Big_Integer is
Result : Digit_Vector (1 .. X.Len + Y.Len) := (others => 0);
-- Accumulate result (max length of result is sum of operand lengths)
@@ -589,7 +623,7 @@ package body System.Generic_Bignums is
-- Big_Neg --
-------------
- function Big_Neg (X : Bignum) return Bignum is
+ function Big_Neg (X : Bignum) return Big_Integer is
begin
return Normalize (X.D, not X.Neg);
end Big_Neg;
@@ -617,11 +651,11 @@ package body System.Generic_Bignums is
-- 13 -5 3 -13 -5 -3
-- 14 -5 4 -14 -5 -4
- function Big_Rem (X, Y : Bignum) return Bignum is
- Q, R : Bignum;
+ function Big_Rem (X, Y : Bignum) return Big_Integer is
+ Q, R : aliased Big_Integer;
begin
Div_Rem (X, Y, Q, R, Discard_Quotient => True);
- R.Neg := R.Len > 0 and then X.Neg;
+ To_Bignum (R).Neg := To_Bignum (R).Len > 0 and then X.Neg;
return R;
end Big_Rem;
@@ -629,7 +663,7 @@ package body System.Generic_Bignums is
-- Big_Sub --
-------------
- function Big_Sub (X, Y : Bignum) return Bignum is
+ function Big_Sub (X, Y : Bignum) return Big_Integer is
begin
-- If right operand zero, return left operand (avoiding sharing)
@@ -681,11 +715,10 @@ package body System.Generic_Bignums is
procedure Div_Rem
(X, Y : Bignum;
- Quotient : out Bignum;
- Remainder : out Bignum;
+ Quotient : out Big_Integer;
+ Remainder : out Big_Integer;
Discard_Quotient : Boolean := False;
- Discard_Remainder : Boolean := False)
- is
+ Discard_Remainder : Boolean := False) is
begin
-- Error if division by zero
@@ -698,8 +731,14 @@ package body System.Generic_Bignums is
-- If X < Y then quotient is zero and remainder is X
if Compare (X.D, Y.D, False, False) = LT then
- Remainder := Normalize (X.D);
- Quotient := Normalize (Zero_Data);
+ if not Discard_Quotient then
+ Quotient := Normalize (Zero_Data);
+ end if;
+
+ if not Discard_Remainder then
+ Remainder := Normalize (X.D);
+ end if;
+
return;
-- If both X and Y are less than 2**63-1, we can use Long_Long_Integer
@@ -714,8 +753,14 @@ package body System.Generic_Bignums is
A : constant LLI := abs (From_Bignum (X));
B : constant LLI := abs (From_Bignum (Y));
begin
- Quotient := To_Bignum (A / B);
- Remainder := To_Bignum (A rem B);
+ if not Discard_Quotient then
+ Quotient := To_Bignum (A / B);
+ end if;
+
+ if not Discard_Remainder then
+ Remainder := To_Bignum (A rem B);
+ end if;
+
return;
end;
@@ -733,13 +778,20 @@ package body System.Generic_Bignums is
ND := 0;
for J in 1 .. X.Len loop
ND := Base * ND + DD (X.D (J));
+ pragma Assert (Div /= 0);
Result (J) := SD (ND / Div);
ND := ND rem Div;
end loop;
- Quotient := Normalize (Result);
- Remdr (1) := SD (ND);
- Remainder := Normalize (Remdr);
+ if not Discard_Quotient then
+ Quotient := Normalize (Result);
+ end if;
+
+ if not Discard_Remainder then
+ Remdr (1) := SD (ND);
+ Remainder := Normalize (Remdr);
+ end if;
+
return;
end;
end if;
@@ -968,9 +1020,9 @@ package body System.Generic_Bignums is
if not Discard_Remainder then
declare
Remdr : DD;
-
begin
Remdr := 0;
+
for K in 1 .. n loop
Remdr := Base * Remdr + DD (u (m + K));
r (K) := SD (Remdr / d);
@@ -1043,11 +1095,12 @@ package body System.Generic_Bignums is
-- Normalize --
---------------
+ Bignum_Limit : constant := 200;
+
function Normalize
(X : Digit_Vector;
- Neg : Boolean := False) return Bignum
+ Neg : Boolean := False) return Big_Integer
is
- B : Bignum;
J : Length;
begin
@@ -1056,73 +1109,163 @@ package body System.Generic_Bignums is
J := J + 1;
end loop;
- B := Allocate_Bignum (X'Last - J + 1);
- B.Neg := B.Len > 0 and then Neg;
- B.D := X (J .. X'Last);
- return B;
+ if X'Last - J > Bignum_Limit then
+ raise Storage_Error with "big integer limit exceeded";
+ end if;
+
+ return Allocate_Big_Integer (X (J .. X'Last), J <= X'Last and then Neg);
end Normalize;
---------------
-- To_Bignum --
---------------
- function To_Bignum (X : Long_Long_Integer) return Bignum is
- R : Bignum;
-
+ function To_Bignum (X : Long_Long_Integer) return Big_Integer is
begin
if X = 0 then
- R := Allocate_Bignum (0);
+ return Allocate_Big_Integer ((1 .. 0 => <>), False);
-- One word result
elsif X in -(2 ** 32 - 1) .. +(2 ** 32 - 1) then
- R := Allocate_Bignum (1);
- R.D (1) := SD (abs (X));
+ return Allocate_Big_Integer ((1 => SD (abs X)), X < 0);
-- Largest negative number annoyance
elsif X = Long_Long_Integer'First then
- R := Allocate_Bignum (2);
- R.D (1) := 2 ** 31;
- R.D (2) := 0;
+ return Allocate_Big_Integer ((2 ** 31, 0), True);
+
+ -- Other negative numbers
- -- Normal two word case
+ elsif X < 0 then
+ return Allocate_Big_Integer
+ ((SD ((-X) / Base), SD ((-X) mod Base)), True);
+ -- Positive numbers
else
- R := Allocate_Bignum (2);
- R.D (2) := SD (abs (X) mod Base);
- R.D (1) := SD (abs (X) / Base);
+ return Allocate_Big_Integer ((SD (X / Base), SD (X mod Base)), False);
end if;
-
- R.Neg := X < 0;
- return R;
end To_Bignum;
- function To_Bignum (X : Unsigned_64) return Bignum is
- R : Bignum;
-
+ function To_Bignum (X : Unsigned_64) return Big_Integer is
begin
if X = 0 then
- R := Allocate_Bignum (0);
+ return Allocate_Big_Integer ((1 .. 0 => <>), False);
-- One word result
elsif X < 2 ** 32 then
- R := Allocate_Bignum (1);
- R.D (1) := SD (X);
+ return Allocate_Big_Integer ((1 => SD (X)), False);
-- Two word result
else
- R := Allocate_Bignum (2);
- R.D (2) := SD (X mod Base);
- R.D (1) := SD (X / Base);
+ return Allocate_Big_Integer ((SD (X / Base), SD (X mod Base)), False);
end if;
-
- R.Neg := False;
- return R;
end To_Bignum;
+ ---------------
+ -- To_String --
+ ---------------
+
+ Hex_Chars : constant array (0 .. 15) of Character := "0123456789ABCDEF";
+
+ function To_String
+ (X : Bignum; Width : Natural := 0; Base : Positive := 10) return String
+ is
+ Big_Base : aliased Bignum_Data := (1, False, (1 => SD (Base)));
+
+ function Add_Base (S : String) return String;
+ -- Add base information if Base /= 10
+
+ function Leading_Padding
+ (Str : String;
+ Min_Length : Natural;
+ Char : Character := ' ') return String;
+ -- Return padding of Char concatenated with Str so that the resulting
+ -- string is at least Min_Length long.
+
+ function Image (Arg : Bignum) return String;
+ -- Return image of Arg, assuming Arg is positive.
+
+ function Image (N : Natural) return String;
+ -- Return image of N, with no leading space.
+
+ --------------
+ -- Add_Base --
+ --------------
+
+ function Add_Base (S : String) return String is
+ begin
+ if Base = 10 then
+ return S;
+ else
+ return Image (Base) & "#" & S & "#";
+ end if;
+ end Add_Base;
+
+ -----------
+ -- Image --
+ -----------
+
+ function Image (N : Natural) return String is
+ S : constant String := Natural'Image (N);
+ begin
+ return S (2 .. S'Last);
+ end Image;
+
+ function Image (Arg : Bignum) return String is
+ begin
+ if Big_LT (Arg, Big_Base'Unchecked_Access) then
+ return (1 => Hex_Chars (Natural (From_Bignum (Arg))));
+ else
+ declare
+ Div : aliased Big_Integer;
+ Remain : aliased Big_Integer;
+ R : Natural;
+
+ begin
+ Div_Rem (Arg, Big_Base'Unchecked_Access, Div, Remain);
+ R := Natural (From_Bignum (To_Bignum (Remain)));
+ Free_Big_Integer (Remain);
+
+ return S : constant String :=
+ Image (To_Bignum (Div)) & Hex_Chars (R)
+ do
+ Free_Big_Integer (Div);
+ end return;
+ end;
+ end if;
+ end Image;
+
+ ---------------------
+ -- Leading_Padding --
+ ---------------------
+
+ function Leading_Padding
+ (Str : String;
+ Min_Length : Natural;
+ Char : Character := ' ') return String is
+ begin
+ return (1 .. Integer'Max (Integer (Min_Length) - Str'Length, 0)
+ => Char) & Str;
+ end Leading_Padding;
+
+ Zero : aliased Bignum_Data := (0, False, D => Zero_Data);
+
+ begin
+ if Big_LT (X, Zero'Unchecked_Access) then
+ declare
+ X_Pos : aliased Bignum_Data := (X.Len, not X.Neg, X.D);
+ begin
+ return Leading_Padding
+ ("-" & Add_Base (Image (X_Pos'Unchecked_Access)), Width);
+ end;
+ else
+ return Leading_Padding (" " & Add_Base (Image (X)), Width);
+ end if;
+ end To_String;
+
-------------
-- Is_Zero --
-------------
diff --git a/gcc/ada/libgnat/s-genbig.ads b/gcc/ada/libgnat/s-genbig.ads
index d9408af..003a8fd 100644
--- a/gcc/ada/libgnat/s-genbig.ads
+++ b/gcc/ada/libgnat/s-genbig.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2012-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2012-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -33,77 +33,57 @@
-- and can be used either built into the compiler via System.Bignums or to
-- implement a default version of Ada.Numerics.Big_Numbers.Big_Integers.
--- If Use_Secondary_Stack is True then all Bignum values are allocated on the
--- secondary stack. If False, the heap is used and the caller is responsible
--- for memory management.
-
-with Ada.Unchecked_Conversion;
with Interfaces;
+with System.Shared_Bignums;
generic
- Use_Secondary_Stack : Boolean;
-package System.Generic_Bignums is
- pragma Preelaborate;
-
- pragma Assert (Long_Long_Integer'Size = 64);
- -- This package assumes that Long_Long_Integer size is 64 bit (i.e. that it
- -- has a range of -2**63 to 2**63-1). The front end ensures that the mode
- -- ELIMINATED is not allowed for overflow checking if this is not the case.
-
- subtype Length is Natural range 0 .. 2 ** 23 - 1;
- -- Represent number of words in Digit_Vector
-
- Base : constant := 2 ** 32;
- -- Digit vectors use this base
-
- subtype SD is Interfaces.Unsigned_32;
- -- Single length digit
+ type Big_Integer is private;
- type Digit_Vector is array (Length range <>) of SD;
- -- Represent digits of a number (most significant digit first)
+ with function Allocate_Big_Integer
+ (D : Shared_Bignums.Digit_Vector; Neg : Boolean) return Big_Integer;
+ -- Allocate Bignum value with the given contents
- type Bignum_Data (Len : Length) is record
- Neg : Boolean;
- -- Set if value is negative, never set for zero
+ with procedure Free_Big_Integer (X : in out Big_Integer);
+ -- Free the memory associated with X
- D : Digit_Vector (1 .. Len);
- -- Digits of number, most significant first, represented in base
- -- 2**Base. No leading zeroes are stored, and the value of zero is
- -- represented using an empty vector for D.
- end record;
+ with function To_Bignum
+ (X : aliased in out Big_Integer) return Shared_Bignums.Bignum;
+ -- Convert the given Big_Integer to a Bignum
- for Bignum_Data use record
- Len at 0 range 0 .. 23;
- Neg at 3 range 0 .. 7;
- end record;
+package System.Generic_Bignums is
+ pragma Preelaborate;
- type Bignum is access all Bignum_Data;
- -- This is the type that is used externally. Possibly this could be a
- -- private type, but we leave the structure exposed for now. For one
- -- thing it helps with debugging. Note that this package never shares
- -- an allocated Bignum value, so for example for X + 0, a copy of X is
- -- returned, not X itself.
+ subtype Bignum is Shared_Bignums.Bignum;
- function To_Bignum is new Ada.Unchecked_Conversion (System.Address, Bignum);
- function To_Address is new
- Ada.Unchecked_Conversion (Bignum, System.Address);
+ -- Note that this package never shares an allocated Big_Integer value, so
+ -- so for example for X + 0, a copy of X is returned, not X itself.
-- Note: none of the subprograms in this package modify the Bignum_Data
-- records referenced by Bignum arguments of mode IN.
- function Big_Add (X, Y : Bignum) return Bignum; -- "+"
- function Big_Sub (X, Y : Bignum) return Bignum; -- "-"
- function Big_Mul (X, Y : Bignum) return Bignum; -- "*"
- function Big_Div (X, Y : Bignum) return Bignum; -- "/"
- function Big_Exp (X, Y : Bignum) return Bignum; -- "**"
- function Big_Mod (X, Y : Bignum) return Bignum; -- "mod"
- function Big_Rem (X, Y : Bignum) return Bignum; -- "rem"
- function Big_Neg (X : Bignum) return Bignum; -- "-"
- function Big_Abs (X : Bignum) return Bignum; -- "abs"
+ function Big_Add (X, Y : Bignum) return Big_Integer; -- "+"
+ function Big_Sub (X, Y : Bignum) return Big_Integer; -- "-"
+ function Big_Mul (X, Y : Bignum) return Big_Integer; -- "*"
+ function Big_Div (X, Y : Bignum) return Big_Integer; -- "/"
+ function Big_Exp (X, Y : Bignum) return Big_Integer; -- "**"
+ function Big_Mod (X, Y : Bignum) return Big_Integer; -- "mod"
+ function Big_Rem (X, Y : Bignum) return Big_Integer; -- "rem"
+ function Big_Neg (X : Bignum) return Big_Integer; -- "-"
+ function Big_Abs (X : Bignum) return Big_Integer; -- "abs"
-- Perform indicated arithmetic operation on bignum values. No exception
-- raised except for Div/Mod/Rem by 0 which raises Constraint_Error with
-- an appropriate message.
+ function Big_And (X, Y : Bignum) return Big_Integer; -- "and"
+ function Big_Or (X, Y : Bignum) return Big_Integer; -- "or"
+ -- Perform indicated bitwise operation on big num values.
+ -- The negative flags of X and Y are also combined.
+
+ function Big_Shift_Left (X : Bignum; Amount : Natural) return Big_Integer;
+ function Big_Shift_Right (X : Bignum; Amount : Natural) return Big_Integer;
+ -- Perform indicated bitwise operation on big num values.
+ -- Constraint_Error is raised if X is negative.
+
function Big_EQ (X, Y : Bignum) return Boolean; -- "="
function Big_NE (X, Y : Bignum) return Boolean; -- "/="
function Big_GE (X, Y : Bignum) return Boolean; -- ">="
@@ -117,18 +97,24 @@ package System.Generic_Bignums is
-- Returns True if the Bignum value is in the range of Long_Long_Integer,
-- so that a call to From_Bignum is guaranteed not to raise an exception.
- function To_Bignum (X : Long_Long_Integer) return Bignum;
- -- Convert Long_Long_Integer to Bignum. No exception can be raised for any
- -- input argument.
+ function To_Bignum (X : Long_Long_Integer) return Big_Integer;
+ -- Convert Long_Long_Integer to a big integer. No exception can be raised
+ -- for any input argument.
- function To_Bignum (X : Interfaces.Unsigned_64) return Bignum;
- -- Convert Unsigned_64 to Bignum. No exception can be raised for any
+ function To_Bignum (X : Interfaces.Unsigned_64) return Big_Integer;
+ -- Convert Unsigned_64 to a big integer. No exception can be raised for any
-- input argument.
function From_Bignum (X : Bignum) return Long_Long_Integer;
-- Convert Bignum to Long_Long_Integer. Constraint_Error raised with
-- appropriate message if value is out of range of Long_Long_Integer.
+ function To_String
+ (X : Bignum; Width : Natural := 0; Base : Positive := 10)
+ return String;
+ -- Return the image of X, based on the given Width and Base, as defined
+ -- in the RM for Ada.Text_IO. Base should really be in the range 2 .. 16.
+
function Is_Zero (X : Bignum) return Boolean;
-- Return True if X = 0
diff --git a/gcc/ada/libgnat/s-geveop.adb b/gcc/ada/libgnat/s-geveop.adb
index 01f7862..8e59b30 100644
--- a/gcc/ada/libgnat/s-geveop.adb
+++ b/gcc/ada/libgnat/s-geveop.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2002-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2002-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-geveop.ads b/gcc/ada/libgnat/s-geveop.ads
index 11952c1..33f4e69 100644
--- a/gcc/ada/libgnat/s-geveop.ads
+++ b/gcc/ada/libgnat/s-geveop.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2002-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2002-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-gloloc.adb b/gcc/ada/libgnat/s-gloloc.adb
index a8efd8e..9c859cf 100644
--- a/gcc/ada/libgnat/s-gloloc.adb
+++ b/gcc/ada/libgnat/s-gloloc.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1999-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1999-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-gloloc.ads b/gcc/ada/libgnat/s-gloloc.ads
index 2af8f54..e95884f 100644
--- a/gcc/ada/libgnat/s-gloloc.ads
+++ b/gcc/ada/libgnat/s-gloloc.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1999-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1999-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-gloloc__mingw.adb b/gcc/ada/libgnat/s-gloloc__mingw.adb
index abb97e7..d8c180e 100644
--- a/gcc/ada/libgnat/s-gloloc__mingw.adb
+++ b/gcc/ada/libgnat/s-gloloc__mingw.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1999-2019, AdaCore --
+-- Copyright (C) 1999-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-htable.adb b/gcc/ada/libgnat/s-htable.adb
index 4618981..476f4aa 100644
--- a/gcc/ada/libgnat/s-htable.adb
+++ b/gcc/ada/libgnat/s-htable.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1995-2019, AdaCore --
+-- Copyright (C) 1995-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-htable.ads b/gcc/ada/libgnat/s-htable.ads
index 87834d5..6313ab3 100644
--- a/gcc/ada/libgnat/s-htable.ads
+++ b/gcc/ada/libgnat/s-htable.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1995-2019, AdaCore --
+-- Copyright (C) 1995-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-imenne.adb b/gcc/ada/libgnat/s-imenne.adb
index 30df1a4..605b85b 100644
--- a/gcc/ada/libgnat/s-imenne.adb
+++ b/gcc/ada/libgnat/s-imenne.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2000-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2000-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-imenne.ads b/gcc/ada/libgnat/s-imenne.ads
index 0e661bf..e150891 100644
--- a/gcc/ada/libgnat/s-imenne.ads
+++ b/gcc/ada/libgnat/s-imenne.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2000-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2000-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-imgbiu.adb b/gcc/ada/libgnat/s-imgbiu.adb
index e1022b9..7b765c0 100644
--- a/gcc/ada/libgnat/s-imgbiu.adb
+++ b/gcc/ada/libgnat/s-imgbiu.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-imgbiu.ads b/gcc/ada/libgnat/s-imgbiu.ads
index c9adaae..524e582 100644
--- a/gcc/ada/libgnat/s-imgbiu.ads
+++ b/gcc/ada/libgnat/s-imgbiu.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-imgboo.adb b/gcc/ada/libgnat/s-imgboo.adb
index e4bd5ca..35ae001 100644
--- a/gcc/ada/libgnat/s-imgboo.adb
+++ b/gcc/ada/libgnat/s-imgboo.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-imgboo.ads b/gcc/ada/libgnat/s-imgboo.ads
index cd422c4..1bf8449 100644
--- a/gcc/ada/libgnat/s-imgboo.ads
+++ b/gcc/ada/libgnat/s-imgboo.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-imgcha.adb b/gcc/ada/libgnat/s-imgcha.adb
index 69883d3..a2d7c46 100644
--- a/gcc/ada/libgnat/s-imgcha.adb
+++ b/gcc/ada/libgnat/s-imgcha.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-imgcha.ads b/gcc/ada/libgnat/s-imgcha.ads
index ff067d0..5c9ead8 100644
--- a/gcc/ada/libgnat/s-imgcha.ads
+++ b/gcc/ada/libgnat/s-imgcha.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-imgdec.adb b/gcc/ada/libgnat/s-imgdec.adb
index 20ef3ce..6000d44 100644
--- a/gcc/ada/libgnat/s-imgdec.adb
+++ b/gcc/ada/libgnat/s-imgdec.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-imgdec.ads b/gcc/ada/libgnat/s-imgdec.ads
index 5d03f22..d45a05f 100644
--- a/gcc/ada/libgnat/s-imgdec.ads
+++ b/gcc/ada/libgnat/s-imgdec.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-imgenu.adb b/gcc/ada/libgnat/s-imgenu.adb
index 130833a..7eae182 100644
--- a/gcc/ada/libgnat/s-imgenu.adb
+++ b/gcc/ada/libgnat/s-imgenu.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2000-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2000-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-imgenu.ads b/gcc/ada/libgnat/s-imgenu.ads
index fe5a731..ccb1d07 100644
--- a/gcc/ada/libgnat/s-imgenu.ads
+++ b/gcc/ada/libgnat/s-imgenu.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2000-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2000-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-imgint.adb b/gcc/ada/libgnat/s-imgint.adb
index dd29205..2b94472 100644
--- a/gcc/ada/libgnat/s-imgint.adb
+++ b/gcc/ada/libgnat/s-imgint.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-imgint.ads b/gcc/ada/libgnat/s-imgint.ads
index df76d0b..6c2c675 100644
--- a/gcc/ada/libgnat/s-imgint.ads
+++ b/gcc/ada/libgnat/s-imgint.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-imgllb.adb b/gcc/ada/libgnat/s-imgllb.adb
index fefa68d..30d6a3c 100644
--- a/gcc/ada/libgnat/s-imgllb.adb
+++ b/gcc/ada/libgnat/s-imgllb.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-imgllb.ads b/gcc/ada/libgnat/s-imgllb.ads
index dba0f40..0232315 100644
--- a/gcc/ada/libgnat/s-imgllb.ads
+++ b/gcc/ada/libgnat/s-imgllb.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-imglld.adb b/gcc/ada/libgnat/s-imglld.adb
index 9f2019b1..c70f409 100644
--- a/gcc/ada/libgnat/s-imglld.adb
+++ b/gcc/ada/libgnat/s-imglld.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-imglld.ads b/gcc/ada/libgnat/s-imglld.ads
index 37e9e7d..fdb25b4 100644
--- a/gcc/ada/libgnat/s-imglld.ads
+++ b/gcc/ada/libgnat/s-imglld.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-imglli.adb b/gcc/ada/libgnat/s-imglli.adb
index b4e9604..4d024ee 100644
--- a/gcc/ada/libgnat/s-imglli.adb
+++ b/gcc/ada/libgnat/s-imglli.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-imglli.ads b/gcc/ada/libgnat/s-imglli.ads
index a4eb6ec..b0d3cae 100644
--- a/gcc/ada/libgnat/s-imglli.ads
+++ b/gcc/ada/libgnat/s-imglli.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-imgllu.adb b/gcc/ada/libgnat/s-imgllu.adb
index 2220838..f62a25d 100644
--- a/gcc/ada/libgnat/s-imgllu.adb
+++ b/gcc/ada/libgnat/s-imgllu.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-imgllu.ads b/gcc/ada/libgnat/s-imgllu.ads
index 6c0d43e..d54bb33 100644
--- a/gcc/ada/libgnat/s-imgllu.ads
+++ b/gcc/ada/libgnat/s-imgllu.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-imgllw.adb b/gcc/ada/libgnat/s-imgllw.adb
index 385e1f1..cfd4fc2 100644
--- a/gcc/ada/libgnat/s-imgllw.adb
+++ b/gcc/ada/libgnat/s-imgllw.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-imgllw.ads b/gcc/ada/libgnat/s-imgllw.ads
index 5aaac58..e6e5fb0 100644
--- a/gcc/ada/libgnat/s-imgllw.ads
+++ b/gcc/ada/libgnat/s-imgllw.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-imgrea.adb b/gcc/ada/libgnat/s-imgrea.adb
index 467c482..68b1fdc 100644
--- a/gcc/ada/libgnat/s-imgrea.adb
+++ b/gcc/ada/libgnat/s-imgrea.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -151,14 +151,9 @@ package body System.Img_Real is
Scale : Integer;
Expon : Integer;
- Field_Max : constant := 255;
- -- This should be the same value as Ada.[Wide_]Text_IO.Field'Last.
- -- It is not worth dragging in Ada.Text_IO to pick up this value,
- -- since it really should never be necessary to change it.
-
- Digs : String (1 .. 2 * Field_Max + 16);
- -- Array used to hold digits of converted integer value. This is a
- -- large enough buffer to accommodate ludicrous values of Fore and Aft.
+ Digs : String (1 .. Max_Real_Image_Length);
+ -- Array used to hold digits of converted integer value. This is a large
+ -- enough buffer to accommodate ludicrous Fore/Aft/Exp combinations.
Ndigs : Natural;
-- Number of digits stored in Digs (and also subscript of last digit)
@@ -289,6 +284,8 @@ package body System.Img_Real is
-- What we are looking for is a power of ten to divide X by
-- so that the result lies within the required range.
+ pragma Assert (Powten (Maxpow) /= 0.0);
+
loop
XP := X / Powten (Maxpow);
exit when XP < Powten (S) or else Scale > Maxscaling;
@@ -490,6 +487,9 @@ package body System.Img_Real is
-- an infinite value, so we print Inf.
if V > Long_Long_Float'Last then
+ pragma Annotate
+ (CodePeer, Intentional, "test always true", "test for infinity");
+
Set ('+');
Set ('I');
Set ('n');
diff --git a/gcc/ada/libgnat/s-imgrea.ads b/gcc/ada/libgnat/s-imgrea.ads
index c17d35c..9711516 100644
--- a/gcc/ada/libgnat/s-imgrea.ads
+++ b/gcc/ada/libgnat/s-imgrea.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -73,4 +73,9 @@ package System.Img_Real is
-- can be set to any valid values for the case of use from Text_IO. Note
-- that no space is stored at the start for non-negative values.
+ Max_Real_Image_Length : constant := 5200;
+ -- If Exp is set to zero and Aft is set to Text_IO.Field'Last (i.e., 255)
+ -- then Long_Long_Float'Last generates an image whose length is
+ -- slightly less than 5200.
+
end System.Img_Real;
diff --git a/gcc/ada/libgnat/s-imguns.adb b/gcc/ada/libgnat/s-imguns.adb
index 779c41c..914121d 100644
--- a/gcc/ada/libgnat/s-imguns.adb
+++ b/gcc/ada/libgnat/s-imguns.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-imguns.ads b/gcc/ada/libgnat/s-imguns.ads
index 84cb609..86e6d99 100644
--- a/gcc/ada/libgnat/s-imguns.ads
+++ b/gcc/ada/libgnat/s-imguns.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-imgwch.adb b/gcc/ada/libgnat/s-imgwch.adb
index 3892c77..499a513 100644
--- a/gcc/ada/libgnat/s-imgwch.adb
+++ b/gcc/ada/libgnat/s-imgwch.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-imgwch.ads b/gcc/ada/libgnat/s-imgwch.ads
index 349ff1e..efc1463 100644
--- a/gcc/ada/libgnat/s-imgwch.ads
+++ b/gcc/ada/libgnat/s-imgwch.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-imgwiu.adb b/gcc/ada/libgnat/s-imgwiu.adb
index 319410c..90a8f41 100644
--- a/gcc/ada/libgnat/s-imgwiu.adb
+++ b/gcc/ada/libgnat/s-imgwiu.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-imgwiu.ads b/gcc/ada/libgnat/s-imgwiu.ads
index ae67de0..6d33599 100644
--- a/gcc/ada/libgnat/s-imgwiu.ads
+++ b/gcc/ada/libgnat/s-imgwiu.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-io.adb b/gcc/ada/libgnat/s-io.adb
index 18edf63..23301e9 100644
--- a/gcc/ada/libgnat/s-io.adb
+++ b/gcc/ada/libgnat/s-io.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -65,16 +65,16 @@ package body System.IO is
end Put;
procedure Put (C : Character) is
- procedure Put_Char (C : Character);
+ procedure Put_Char (C : Integer);
pragma Import (C, Put_Char, "put_char");
- procedure Put_Char_Stderr (C : Character);
+ procedure Put_Char_Stderr (C : Integer);
pragma Import (C, Put_Char_Stderr, "put_char_stderr");
begin
case Current_Out is
- when Stdout => Put_Char (C);
- when Stderr => Put_Char_Stderr (C);
+ when Stdout => Put_Char (Character'Pos (C));
+ when Stderr => Put_Char_Stderr (Character'Pos (C));
end case;
end Put;
diff --git a/gcc/ada/libgnat/s-io.ads b/gcc/ada/libgnat/s-io.ads
index 4e515e5..6b733b6 100644
--- a/gcc/ada/libgnat/s-io.ads
+++ b/gcc/ada/libgnat/s-io.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-llflex.ads b/gcc/ada/libgnat/s-llflex.ads
index 70cd9ce..bbc79a8 100644
--- a/gcc/ada/libgnat/s-llflex.ads
+++ b/gcc/ada/libgnat/s-llflex.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2011-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2011-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-maccod.ads b/gcc/ada/libgnat/s-maccod.ads
index 9f0dc46..d2465f6 100644
--- a/gcc/ada/libgnat/s-maccod.ads
+++ b/gcc/ada/libgnat/s-maccod.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-mantis.adb b/gcc/ada/libgnat/s-mantis.adb
index da4e6ba8..48eb280 100644
--- a/gcc/ada/libgnat/s-mantis.adb
+++ b/gcc/ada/libgnat/s-mantis.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1996-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1996-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-mantis.ads b/gcc/ada/libgnat/s-mantis.ads
index 4204732..7ad511e 100644
--- a/gcc/ada/libgnat/s-mantis.ads
+++ b/gcc/ada/libgnat/s-mantis.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1996-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1996-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-mastop.adb b/gcc/ada/libgnat/s-mastop.adb
index 7848fff..cf87731 100644
--- a/gcc/ada/libgnat/s-mastop.adb
+++ b/gcc/ada/libgnat/s-mastop.adb
@@ -7,7 +7,7 @@
-- B o d y --
-- (Dummy version) --
-- --
--- Copyright (C) 1999-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1999-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-mastop.ads b/gcc/ada/libgnat/s-mastop.ads
index 10e5616..c2c23d3 100644
--- a/gcc/ada/libgnat/s-mastop.ads
+++ b/gcc/ada/libgnat/s-mastop.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1999-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1999-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-memcop.ads b/gcc/ada/libgnat/s-memcop.ads
index 7c6045e..db33a57 100644
--- a/gcc/ada/libgnat/s-memcop.ads
+++ b/gcc/ada/libgnat/s-memcop.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2001-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2001-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/s-memory.adb b/gcc/ada/libgnat/s-memory.adb
index ebc168e..f6ecf47 100644
--- a/gcc/ada/libgnat/s-memory.adb
+++ b/gcc/ada/libgnat/s-memory.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2001-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2001-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-memory.ads b/gcc/ada/libgnat/s-memory.ads
index 68b49aa..57e8b24 100644
--- a/gcc/ada/libgnat/s-memory.ads
+++ b/gcc/ada/libgnat/s-memory.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2001-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2001-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-mmap.adb b/gcc/ada/libgnat/s-mmap.adb
index 079f021..0e1f4f7 100644
--- a/gcc/ada/libgnat/s-mmap.adb
+++ b/gcc/ada/libgnat/s-mmap.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2007-2019, AdaCore --
+-- Copyright (C) 2007-2020, AdaCore --
-- --
-- This library is free software; you can redistribute it and/or modify it --
-- under terms of the GNU General Public License as published by the Free --
diff --git a/gcc/ada/libgnat/s-mmap.ads b/gcc/ada/libgnat/s-mmap.ads
index 7f68cb5..305d1f8 100644
--- a/gcc/ada/libgnat/s-mmap.ads
+++ b/gcc/ada/libgnat/s-mmap.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2007-2019, AdaCore --
+-- Copyright (C) 2007-2020, AdaCore --
-- --
-- This library is free software; you can redistribute it and/or modify it --
-- under terms of the GNU General Public License as published by the Free --
@@ -223,13 +223,11 @@ package System.Mmap is
-- (File); such accesses may cause Storage_Error to be raised.
function Data (Region : Mapped_Region) return Str_Access;
- pragma Inline (Data);
-- The data mapped in Region as requested. The result is an unconstrained
-- string, so you cannot use the usual 'First and 'Last attributes.
-- Instead, these are respectively 1 and Size.
function Data (File : Mapped_File) return Str_Access;
- pragma Inline (Data);
-- Likewise for the region contained in File
function Is_Mutable (Region : Mapped_Region) return Boolean;
diff --git a/gcc/ada/libgnat/s-mmauni__long.ads b/gcc/ada/libgnat/s-mmauni__long.ads
index d12b154..4fbd00a 100644
--- a/gcc/ada/libgnat/s-mmauni__long.ads
+++ b/gcc/ada/libgnat/s-mmauni__long.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2007-2019, AdaCore --
+-- Copyright (C) 2007-2020, AdaCore --
-- --
-- This library is free software; you can redistribute it and/or modify it --
-- under terms of the GNU General Public License as published by the Free --
diff --git a/gcc/ada/libgnat/s-mmosin__mingw.adb b/gcc/ada/libgnat/s-mmosin__mingw.adb
index ea993d7..631e0dd 100644
--- a/gcc/ada/libgnat/s-mmosin__mingw.adb
+++ b/gcc/ada/libgnat/s-mmosin__mingw.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2007-2019, AdaCore --
+-- Copyright (C) 2007-2020, AdaCore --
-- --
-- This library is free software; you can redistribute it and/or modify it --
-- under terms of the GNU General Public License as published by the Free --
diff --git a/gcc/ada/libgnat/s-mmosin__mingw.ads b/gcc/ada/libgnat/s-mmosin__mingw.ads
index 390709f..8c3a472 100644
--- a/gcc/ada/libgnat/s-mmosin__mingw.ads
+++ b/gcc/ada/libgnat/s-mmosin__mingw.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2007-2019, AdaCore --
+-- Copyright (C) 2007-2020, AdaCore --
-- --
-- This library is free software; you can redistribute it and/or modify it --
-- under terms of the GNU General Public License as published by the Free --
diff --git a/gcc/ada/libgnat/s-mmosin__unix.adb b/gcc/ada/libgnat/s-mmosin__unix.adb
index bb68849..e0b369f 100644
--- a/gcc/ada/libgnat/s-mmosin__unix.adb
+++ b/gcc/ada/libgnat/s-mmosin__unix.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2007-2019, AdaCore --
+-- Copyright (C) 2007-2020, AdaCore --
-- --
-- This library is free software; you can redistribute it and/or modify it --
-- under terms of the GNU General Public License as published by the Free --
diff --git a/gcc/ada/libgnat/s-mmosin__unix.ads b/gcc/ada/libgnat/s-mmosin__unix.ads
index b0832f0..234ce42 100644
--- a/gcc/ada/libgnat/s-mmosin__unix.ads
+++ b/gcc/ada/libgnat/s-mmosin__unix.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2007-2019, AdaCore --
+-- Copyright (C) 2007-2020, AdaCore --
-- --
-- This library is free software; you can redistribute it and/or modify it --
-- under terms of the GNU General Public License as published by the Free --
diff --git a/gcc/ada/libgnat/s-multip.adb b/gcc/ada/libgnat/s-multip.adb
index 62dc988..e17872c 100644
--- a/gcc/ada/libgnat/s-multip.adb
+++ b/gcc/ada/libgnat/s-multip.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2010-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2010-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-objrea.adb b/gcc/ada/libgnat/s-objrea.adb
index 89b58a6..d64e285 100644
--- a/gcc/ada/libgnat/s-objrea.adb
+++ b/gcc/ada/libgnat/s-objrea.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2009-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2009-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-objrea.ads b/gcc/ada/libgnat/s-objrea.ads
index 372ad96..bd4fbd5 100644
--- a/gcc/ada/libgnat/s-objrea.ads
+++ b/gcc/ada/libgnat/s-objrea.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2009-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2009-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-optide.adb b/gcc/ada/libgnat/s-optide.adb
index f0d46f8..c979797 100644
--- a/gcc/ada/libgnat/s-optide.adb
+++ b/gcc/ada/libgnat/s-optide.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2012-2019, AdaCore --
+-- Copyright (C) 2012-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-os_lib.adb b/gcc/ada/libgnat/s-os_lib.adb
index 258cd64..288325c 100644
--- a/gcc/ada/libgnat/s-os_lib.adb
+++ b/gcc/ada/libgnat/s-os_lib.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1995-2019, AdaCore --
+-- Copyright (C) 1995-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -63,6 +63,11 @@ package body System.OS_Lib is
-- Mode = 1 - copy time stamps and read/write/execute attributes
-- Mode = 2 - copy read/write/execute attributes
+ function Is_Dirsep (C : Character) return Boolean;
+ pragma Inline (Is_Dirsep);
+ -- Returns True if C is a directory separator. On Windows we
+ -- accept both \ and / as a directory separator.
+
On_Windows : constant Boolean := Directory_Separator = '\';
-- An indication that we are on Windows. Used in Normalize_Pathname, to
-- deal with drive letters in the beginning of absolute paths.
@@ -336,22 +341,6 @@ package body System.OS_Lib is
----------------
function Build_Path (Dir : String; File : String) return String is
- function Is_Dirsep (C : Character) return Boolean;
- pragma Inline (Is_Dirsep);
- -- Returns True if C is a directory separator. On Windows we
- -- handle both styles of directory separator.
-
- ---------------
- -- Is_Dirsep --
- ---------------
-
- function Is_Dirsep (C : Character) return Boolean is
- begin
- return C = Directory_Separator or else C = '/';
- end Is_Dirsep;
-
- -- Local variables
-
Base_File_Ptr : Integer;
-- The base file name is File (Base_File_Ptr + 1 .. File'Last)
@@ -574,14 +563,15 @@ package body System.OS_Lib is
-- touch destination file at all.
From := Open_Read (Name, Binary);
- if From /= Invalid_FD then
+
+ if From = Invalid_FD then
+ Success := False;
+ else
To := Open_Read_Write (Pathname, Binary);
+ Lseek (To, 0, Seek_End);
+ Copy (From, To);
end if;
- Lseek (To, 0, Seek_End);
-
- Copy (From, To);
-
-- Appending to directory, not allowed
elsif Is_Directory (Pathname) then
@@ -1471,6 +1461,15 @@ package body System.OS_Lib is
return Is_Absolute_Path (Name'Address, Name'Length) /= 0;
end Is_Absolute_Path;
+ ---------------
+ -- Is_Dirsep --
+ ---------------
+
+ function Is_Dirsep (C : Character) return Boolean is
+ begin
+ return C = Directory_Separator or else C = '/';
+ end Is_Dirsep;
+
------------------
-- Is_Directory --
------------------
@@ -1999,6 +1998,8 @@ package body System.OS_Lib is
-- If the string ends with \, double it
+ pragma Annotate (CodePeer, Modified, Res (J - 1));
+
if Res (J - 1) = '\' then
Res (J) := '\';
J := J + 1;
@@ -2082,17 +2083,61 @@ package body System.OS_Lib is
Fold_To_Lower_Case : constant Boolean :=
not Case_Sensitive
- and then Get_File_Names_Case_Sensitive = 0;
+ and then Get_File_Names_Case_Sensitive = 0;
+
+ Cur_Dir_Len : Natural := 0;
+ End_Path : Natural := Name'Length;
+ Last : Positive := 1;
+ Path_Buffer : String (1 .. End_Path + 2 * Max_Path + 4);
+ -- We need to potentially store in this buffer the following elements:
+ -- the path itself, the current directory if the path is relative,
+ -- and additional fragments up to Max_Path in length in case
+ -- there are any symlinks.
function Final_Value (S : String) return String;
-- Make final adjustment to the returned string. This function strips
-- trailing directory separators, and folds returned string to lower
-- case if required.
- function Get_Directory (Dir : String) return String;
- -- If Dir is not empty, return it, adding a directory separator
- -- if not already present, otherwise return current working directory
- -- with terminating directory separator.
+ procedure Fill_Directory (Drive_Only : Boolean := False);
+ -- Fill Cur_Dir and Cur_Dir_Len with Directory and ending directory
+ -- separator or with current directory if Directory is not defined.
+ -- If Drive_Only is True takes only Drive letter with colon and
+ -- directory separator from Directory parameter or from current
+ -- directory if Directory parameter is empty.
+
+ function Is_With_Drive (Name : String) return Boolean;
+ pragma Inline (Is_With_Drive);
+ -- Returns True only if the Name is including a drive
+ -- letter at start.
+
+ function Missed_Drive_Letter (Name : String) return Boolean;
+ -- Missed drive letter at start of the normalized pathname
+
+ -------------------
+ -- Is_With_Drive --
+ -------------------
+
+ function Is_With_Drive (Name : String) return Boolean is
+ begin
+ return Name'Length > 1
+ and then Name (Name'First + 1) = ':'
+ and then (Name (Name'First) in 'a' .. 'z'
+ or else Name (Name'First) in 'A' .. 'Z');
+ end Is_With_Drive;
+
+ -------------------------
+ -- Missed_Drive_Letter --
+ -------------------------
+
+ function Missed_Drive_Letter (Name : String) return Boolean is
+ begin
+ return On_Windows
+ and then not Is_With_Drive (Name)
+ and then (Name'Length < 2 -- not \\name case
+ or else Name (Name'First .. Name'First + 1)
+ /= Directory_Separator & Directory_Separator);
+ end Missed_Drive_Letter;
-----------------
-- Final_Value --
@@ -2113,22 +2158,14 @@ package body System.OS_Lib is
Last := S1'Last;
- if Last > 1
- and then (S1 (Last) = '/'
- or else
- S1 (Last) = Directory_Separator)
- then
- -- Special case for Windows: C:\
-
- if Last = 3
+ if Last > 1 and then Is_Dirsep (S1 (Last))
+ and then not
+ (On_Windows -- Special case for Windows: C:\
+ and then Last = 3
and then S1 (1) /= Directory_Separator
- and then S1 (2) = ':'
- then
- null;
-
- else
- Last := Last - 1;
- end if;
+ and then S1 (2) = ':')
+ then
+ Last := Last - 1;
end if;
-- And ensure that there is a trailing directory separator if the
@@ -2145,90 +2182,80 @@ package body System.OS_Lib is
end if;
end Final_Value;
- -------------------
- -- Get_Directory --
- -------------------
+ --------------------
+ -- Fill_Directory --
+ --------------------
- function Get_Directory (Dir : String) return String is
+ procedure Fill_Directory (Drive_Only : Boolean := False) is
begin
- -- Directory given, add directory separator if needed
+ if Drive_Only and then Is_With_Drive (Directory) then
+ Path_Buffer (1 .. 3) :=
+ Directory (Directory'First .. Directory'First + 2);
- if Dir'Length > 0 then
- declare
- Result : String :=
- Normalize_Pathname
- (Dir, "", Resolve_Links, Case_Sensitive)
- & Directory_Separator;
- Last : Positive := Result'Last - 1;
+ elsif Directory = ""
+ or else not Is_Absolute_Path (Directory)
+ or else Missed_Drive_Letter (Directory)
+ then
+ -- Directory name not given or it is not absolute or without drive
+ -- letter on Windows, get current directory.
- begin
- -- On Windows, change all '/' to '\'
-
- if On_Windows then
- for J in Result'First .. Last - 1 loop
- if Result (J) = '/' then
- Result (J) := Directory_Separator;
- end if;
- end loop;
- end if;
+ Cur_Dir_Len := Max_Path;
- -- Include additional directory separator, if needed
+ Get_Current_Dir (Path_Buffer'Address, Cur_Dir_Len'Address);
- if Result (Last) /= Directory_Separator then
- Last := Last + 1;
- end if;
+ if Cur_Dir_Len = 0 then
+ raise Program_Error;
+ end if;
- return Result (Result'First .. Last);
- end;
+ if not Resolve_Links then
+ Last := Cur_Dir_Len;
+ end if;
- -- Directory name not given, get current directory
+ if not Drive_Only and then Directory /= "" then
+ if On_Windows and then Is_Absolute_Path (Directory) then
+ -- Drive letter taken from current directory but directory
+ -- itself taken from Directory parameter.
- else
- declare
- Buffer : String (1 .. Max_Path + 2);
- Path_Len : Natural := Max_Path;
+ Path_Buffer (3 .. Directory'Length + 2) := Directory;
+ Cur_Dir_Len := Directory'Length + 2;
+ Last := 3;
- begin
- Get_Current_Dir (Buffer'Address, Path_Len'Address);
+ else
+ -- Append relative Directory to current directory
- if Path_Len = 0 then
- raise Program_Error;
+ Path_Buffer
+ (Cur_Dir_Len + 1 .. Cur_Dir_Len + Directory'Length) :=
+ Directory;
+ Cur_Dir_Len := Cur_Dir_Len + Directory'Length;
end if;
+ end if;
- if Buffer (Path_Len) /= Directory_Separator then
- Path_Len := Path_Len + 1;
- Buffer (Path_Len) := Directory_Separator;
- end if;
+ elsif Directory'Length >= Path_Buffer'Length then
+ raise Constraint_Error with "Directory name to big";
- -- By default, the drive letter on Windows is in upper case
+ else
+ Path_Buffer (1 .. Directory'Length) := Directory;
+ Cur_Dir_Len := Directory'Length;
+ end if;
- if On_Windows
- and then Path_Len >= 2
- and then Buffer (2) = ':'
- then
- System.Case_Util.To_Upper (Buffer (1 .. 1));
- end if;
+ if Drive_Only then
+ -- When we need only drive letter from current directory on
+ -- Windows
- return Buffer (1 .. Path_Len);
- end;
+ Cur_Dir_Len := 3;
+ Last := Cur_Dir_Len;
+
+ elsif not Is_Dirsep (Path_Buffer (Cur_Dir_Len)) then
+ Cur_Dir_Len := Cur_Dir_Len + 1;
+ Path_Buffer (Cur_Dir_Len) := Directory_Separator;
end if;
- end Get_Directory;
+ end Fill_Directory;
-- Local variables
Max_Iterations : constant := 500;
- Cur_Dir : constant String := Get_Directory (Directory);
- Cur_Dir_Len : constant Natural := Cur_Dir'Length;
-
- End_Path : Natural := Name'Length;
- Last : Positive := 1;
Link_Buffer : String (1 .. Max_Path + 2);
- Path_Buffer : String (1 .. End_Path + Cur_Dir_Len + Max_Path + 2);
- -- We need to potentially store in this buffer the following elements:
- -- the path itself, the current directory if the path is relative,
- -- and additional fragments up to Max_Path in length in case
- -- there are any symlinks.
Finish : Positive;
Start : Positive;
@@ -2244,14 +2271,23 @@ package body System.OS_Lib is
end if;
if Is_Absolute_Path (Name) then
- Path_Buffer (1 .. End_Path) := Name;
+ if Missed_Drive_Letter (Name) then
+ Fill_Directory (Drive_Only => True);
+
+ -- Take only drive letter part with colon
+
+ End_Path := End_Path + 2;
+ Path_Buffer (3 .. End_Path) := Name;
+
+ else
+ Path_Buffer (1 .. End_Path) := Name;
+ end if;
else
-- If this is a relative pathname, prepend current directory
- Path_Buffer (1 .. Cur_Dir_Len) := Cur_Dir;
+ Fill_Directory;
Path_Buffer (Cur_Dir_Len + 1 .. Cur_Dir_Len + End_Path) := Name;
End_Path := Cur_Dir_Len + End_Path;
- Last := Cur_Dir_Len;
end if;
-- Special handling for Windows:
@@ -2268,30 +2304,11 @@ package body System.OS_Lib is
end if;
end loop;
- -- If we have an absolute path starting with a directory
- -- separator (but not a UNC path), we need to have the drive letter
- -- in front of the path. Get_Current_Dir returns a path starting
- -- with a drive letter. So we take this drive letter and prepend it
- -- to the current path.
+ -- Ensure drive letter is upper-case
- if Path_Buffer (1) = Directory_Separator
- and then Path_Buffer (2) /= Directory_Separator
- then
- if Cur_Dir'Length > 2
- and then Cur_Dir (Cur_Dir'First + 1) = ':'
- then
- Path_Buffer (3 .. End_Path + 2) :=
- Path_Buffer (1 .. End_Path);
- Path_Buffer (1 .. 2) :=
- Cur_Dir (Cur_Dir'First .. Cur_Dir'First + 1);
- End_Path := End_Path + 2;
- end if;
+ pragma Assert (Path_Buffer (2) = ':');
- -- We have a drive letter already, ensure it is upper-case
-
- elsif Path_Buffer (1) in 'a' .. 'z'
- and then Path_Buffer (2) = ':'
- then
+ if Path_Buffer (1) in 'a' .. 'z' then
System.Case_Util.To_Upper (Path_Buffer (1 .. 1));
end if;
diff --git a/gcc/ada/libgnat/s-os_lib.ads b/gcc/ada/libgnat/s-os_lib.ads
index 99406e9..f786cca 100644
--- a/gcc/ada/libgnat/s-os_lib.ads
+++ b/gcc/ada/libgnat/s-os_lib.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1995-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1995-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-osprim.ads b/gcc/ada/libgnat/s-osprim.ads
index 101a573..fce4203 100644
--- a/gcc/ada/libgnat/s-osprim.ads
+++ b/gcc/ada/libgnat/s-osprim.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1998-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1998-2020, Free Software Foundation, Inc. --
-- --
-- GNARL is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-osprim__darwin.adb b/gcc/ada/libgnat/s-osprim__darwin.adb
index dbd4fc7..8e85871 100644
--- a/gcc/ada/libgnat/s-osprim__darwin.adb
+++ b/gcc/ada/libgnat/s-osprim__darwin.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1998-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1998-2020, Free Software Foundation, Inc. --
-- --
-- GNARL is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-osprim__lynxos.ads b/gcc/ada/libgnat/s-osprim__lynxos.ads
index 7a717c1..e181f7e 100644
--- a/gcc/ada/libgnat/s-osprim__lynxos.ads
+++ b/gcc/ada/libgnat/s-osprim__lynxos.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1998-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1998-2020, Free Software Foundation, Inc. --
-- --
-- GNARL is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-osprim__mingw.adb b/gcc/ada/libgnat/s-osprim__mingw.adb
index 5c5c796..8e0c425 100644
--- a/gcc/ada/libgnat/s-osprim__mingw.adb
+++ b/gcc/ada/libgnat/s-osprim__mingw.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1998-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1998-2020, Free Software Foundation, Inc. --
-- --
-- GNARL is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-osprim__posix.adb b/gcc/ada/libgnat/s-osprim__posix.adb
index 55008de..4413616 100644
--- a/gcc/ada/libgnat/s-osprim__posix.adb
+++ b/gcc/ada/libgnat/s-osprim__posix.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1998-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1998-2020, Free Software Foundation, Inc. --
-- --
-- GNARL is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-osprim__posix2008.adb b/gcc/ada/libgnat/s-osprim__posix2008.adb
index 650bb2e..87bbdc1 100644
--- a/gcc/ada/libgnat/s-osprim__posix2008.adb
+++ b/gcc/ada/libgnat/s-osprim__posix2008.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1998-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1998-2020, Free Software Foundation, Inc. --
-- --
-- GNARL is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-osprim__rtems.adb b/gcc/ada/libgnat/s-osprim__rtems.adb
index 7efede8..5cdc03d 100644
--- a/gcc/ada/libgnat/s-osprim__rtems.adb
+++ b/gcc/ada/libgnat/s-osprim__rtems.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1998-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1998-2020, Free Software Foundation, Inc. --
-- --
-- GNARL is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-osprim__solaris.adb b/gcc/ada/libgnat/s-osprim__solaris.adb
index 9cc7bc1..7165bc4 100644
--- a/gcc/ada/libgnat/s-osprim__solaris.adb
+++ b/gcc/ada/libgnat/s-osprim__solaris.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1998-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1998-2020, Free Software Foundation, Inc. --
-- --
-- GNARL is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-osprim__unix.adb b/gcc/ada/libgnat/s-osprim__unix.adb
index 5a82d97..9a936c6 100644
--- a/gcc/ada/libgnat/s-osprim__unix.adb
+++ b/gcc/ada/libgnat/s-osprim__unix.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1998-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1998-2020, Free Software Foundation, Inc. --
-- --
-- GNARL is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-osprim__vxworks.adb b/gcc/ada/libgnat/s-osprim__vxworks.adb
index 6f19644..40e7d49 100644
--- a/gcc/ada/libgnat/s-osprim__vxworks.adb
+++ b/gcc/ada/libgnat/s-osprim__vxworks.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1998-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1998-2020, Free Software Foundation, Inc. --
-- --
-- GNARL is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-osprim__x32.adb b/gcc/ada/libgnat/s-osprim__x32.adb
index be86469..4a11379 100644
--- a/gcc/ada/libgnat/s-osprim__x32.adb
+++ b/gcc/ada/libgnat/s-osprim__x32.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2013-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2013-2020, Free Software Foundation, Inc. --
-- --
-- GNARL is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-osvers__vxworks-653.ads b/gcc/ada/libgnat/s-osvers__vxworks-653.ads
index bbf9ca5..48b1c2a 100644
--- a/gcc/ada/libgnat/s-osvers__vxworks-653.ads
+++ b/gcc/ada/libgnat/s-osvers__vxworks-653.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2010-2019, AdaCore --
+-- Copyright (C) 2010-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack03.adb b/gcc/ada/libgnat/s-pack03.adb
index 0d60c6c..32e7c0c 100644
--- a/gcc/ada/libgnat/s-pack03.adb
+++ b/gcc/ada/libgnat/s-pack03.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack03.ads b/gcc/ada/libgnat/s-pack03.ads
index 89bc82f..47d71f0 100644
--- a/gcc/ada/libgnat/s-pack03.ads
+++ b/gcc/ada/libgnat/s-pack03.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack05.adb b/gcc/ada/libgnat/s-pack05.adb
index 96add00..78a7005 100644
--- a/gcc/ada/libgnat/s-pack05.adb
+++ b/gcc/ada/libgnat/s-pack05.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack05.ads b/gcc/ada/libgnat/s-pack05.ads
index 529a8e3..cdcacc7 100644
--- a/gcc/ada/libgnat/s-pack05.ads
+++ b/gcc/ada/libgnat/s-pack05.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack06.adb b/gcc/ada/libgnat/s-pack06.adb
index 756f806..623b955 100644
--- a/gcc/ada/libgnat/s-pack06.adb
+++ b/gcc/ada/libgnat/s-pack06.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack06.ads b/gcc/ada/libgnat/s-pack06.ads
index 004139d..0c918a0 100644
--- a/gcc/ada/libgnat/s-pack06.ads
+++ b/gcc/ada/libgnat/s-pack06.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack07.adb b/gcc/ada/libgnat/s-pack07.adb
index 73dfab8..f0a3177 100644
--- a/gcc/ada/libgnat/s-pack07.adb
+++ b/gcc/ada/libgnat/s-pack07.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack07.ads b/gcc/ada/libgnat/s-pack07.ads
index d306f67..4fa1385 100644
--- a/gcc/ada/libgnat/s-pack07.ads
+++ b/gcc/ada/libgnat/s-pack07.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack09.adb b/gcc/ada/libgnat/s-pack09.adb
index e879064..8517f4d 100644
--- a/gcc/ada/libgnat/s-pack09.adb
+++ b/gcc/ada/libgnat/s-pack09.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack09.ads b/gcc/ada/libgnat/s-pack09.ads
index f7becca..cdf62e3 100644
--- a/gcc/ada/libgnat/s-pack09.ads
+++ b/gcc/ada/libgnat/s-pack09.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack10.adb b/gcc/ada/libgnat/s-pack10.adb
index 4289067..d08751d 100644
--- a/gcc/ada/libgnat/s-pack10.adb
+++ b/gcc/ada/libgnat/s-pack10.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack10.ads b/gcc/ada/libgnat/s-pack10.ads
index 2efffdb..33ed2dd1 100644
--- a/gcc/ada/libgnat/s-pack10.ads
+++ b/gcc/ada/libgnat/s-pack10.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack11.adb b/gcc/ada/libgnat/s-pack11.adb
index 05b2e71..ca2b3ad 100644
--- a/gcc/ada/libgnat/s-pack11.adb
+++ b/gcc/ada/libgnat/s-pack11.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack11.ads b/gcc/ada/libgnat/s-pack11.ads
index ef89843..e565d80 100644
--- a/gcc/ada/libgnat/s-pack11.ads
+++ b/gcc/ada/libgnat/s-pack11.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack12.adb b/gcc/ada/libgnat/s-pack12.adb
index 2cfc9d4..d53e9a3 100644
--- a/gcc/ada/libgnat/s-pack12.adb
+++ b/gcc/ada/libgnat/s-pack12.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack12.ads b/gcc/ada/libgnat/s-pack12.ads
index 4b8f29c..84323be 100644
--- a/gcc/ada/libgnat/s-pack12.ads
+++ b/gcc/ada/libgnat/s-pack12.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack13.adb b/gcc/ada/libgnat/s-pack13.adb
index 0fa4d89..9d9ee0e 100644
--- a/gcc/ada/libgnat/s-pack13.adb
+++ b/gcc/ada/libgnat/s-pack13.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack13.ads b/gcc/ada/libgnat/s-pack13.ads
index cc6a13d..bb56cfc 100644
--- a/gcc/ada/libgnat/s-pack13.ads
+++ b/gcc/ada/libgnat/s-pack13.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack14.adb b/gcc/ada/libgnat/s-pack14.adb
index 968e064..cceb09e 100644
--- a/gcc/ada/libgnat/s-pack14.adb
+++ b/gcc/ada/libgnat/s-pack14.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack14.ads b/gcc/ada/libgnat/s-pack14.ads
index 65fa118..3c1c8e2 100644
--- a/gcc/ada/libgnat/s-pack14.ads
+++ b/gcc/ada/libgnat/s-pack14.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack15.adb b/gcc/ada/libgnat/s-pack15.adb
index 83ed344..0e91afc 100644
--- a/gcc/ada/libgnat/s-pack15.adb
+++ b/gcc/ada/libgnat/s-pack15.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack15.ads b/gcc/ada/libgnat/s-pack15.ads
index cd5c2c1..fb73d29 100644
--- a/gcc/ada/libgnat/s-pack15.ads
+++ b/gcc/ada/libgnat/s-pack15.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack17.adb b/gcc/ada/libgnat/s-pack17.adb
index 577a8db..7ba49ca 100644
--- a/gcc/ada/libgnat/s-pack17.adb
+++ b/gcc/ada/libgnat/s-pack17.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack17.ads b/gcc/ada/libgnat/s-pack17.ads
index ff60347..f47c7bd 100644
--- a/gcc/ada/libgnat/s-pack17.ads
+++ b/gcc/ada/libgnat/s-pack17.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack18.adb b/gcc/ada/libgnat/s-pack18.adb
index 2125762..e4b7d9f 100644
--- a/gcc/ada/libgnat/s-pack18.adb
+++ b/gcc/ada/libgnat/s-pack18.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack18.ads b/gcc/ada/libgnat/s-pack18.ads
index 63f38cb..2e196bf 100644
--- a/gcc/ada/libgnat/s-pack18.ads
+++ b/gcc/ada/libgnat/s-pack18.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack19.adb b/gcc/ada/libgnat/s-pack19.adb
index 0151348..50336a9 100644
--- a/gcc/ada/libgnat/s-pack19.adb
+++ b/gcc/ada/libgnat/s-pack19.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack19.ads b/gcc/ada/libgnat/s-pack19.ads
index 56170d0..58d7837 100644
--- a/gcc/ada/libgnat/s-pack19.ads
+++ b/gcc/ada/libgnat/s-pack19.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack20.adb b/gcc/ada/libgnat/s-pack20.adb
index 573490a..a2a2fda 100644
--- a/gcc/ada/libgnat/s-pack20.adb
+++ b/gcc/ada/libgnat/s-pack20.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack20.ads b/gcc/ada/libgnat/s-pack20.ads
index ad5da50..10d75e8 100644
--- a/gcc/ada/libgnat/s-pack20.ads
+++ b/gcc/ada/libgnat/s-pack20.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack21.adb b/gcc/ada/libgnat/s-pack21.adb
index 592c870..a7011ee 100644
--- a/gcc/ada/libgnat/s-pack21.adb
+++ b/gcc/ada/libgnat/s-pack21.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack21.ads b/gcc/ada/libgnat/s-pack21.ads
index a3bad14..eee9f6d 100644
--- a/gcc/ada/libgnat/s-pack21.ads
+++ b/gcc/ada/libgnat/s-pack21.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack22.adb b/gcc/ada/libgnat/s-pack22.adb
index 980bac4..d41ed28 100644
--- a/gcc/ada/libgnat/s-pack22.adb
+++ b/gcc/ada/libgnat/s-pack22.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack22.ads b/gcc/ada/libgnat/s-pack22.ads
index 64651b0..79b92d4 100644
--- a/gcc/ada/libgnat/s-pack22.ads
+++ b/gcc/ada/libgnat/s-pack22.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack23.adb b/gcc/ada/libgnat/s-pack23.adb
index 4181c7f..b15950d 100644
--- a/gcc/ada/libgnat/s-pack23.adb
+++ b/gcc/ada/libgnat/s-pack23.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack23.ads b/gcc/ada/libgnat/s-pack23.ads
index 33fe99f..ec08bd9 100644
--- a/gcc/ada/libgnat/s-pack23.ads
+++ b/gcc/ada/libgnat/s-pack23.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack24.adb b/gcc/ada/libgnat/s-pack24.adb
index 40db7ac..c2a320d 100644
--- a/gcc/ada/libgnat/s-pack24.adb
+++ b/gcc/ada/libgnat/s-pack24.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack24.ads b/gcc/ada/libgnat/s-pack24.ads
index 24fe7a8..c26a0e6 100644
--- a/gcc/ada/libgnat/s-pack24.ads
+++ b/gcc/ada/libgnat/s-pack24.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack25.adb b/gcc/ada/libgnat/s-pack25.adb
index ad5aa8a..99f1bb1 100644
--- a/gcc/ada/libgnat/s-pack25.adb
+++ b/gcc/ada/libgnat/s-pack25.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack25.ads b/gcc/ada/libgnat/s-pack25.ads
index 3111a03..2b6c7e2 100644
--- a/gcc/ada/libgnat/s-pack25.ads
+++ b/gcc/ada/libgnat/s-pack25.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack26.adb b/gcc/ada/libgnat/s-pack26.adb
index cc6ab4b..6c80c55 100644
--- a/gcc/ada/libgnat/s-pack26.adb
+++ b/gcc/ada/libgnat/s-pack26.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack26.ads b/gcc/ada/libgnat/s-pack26.ads
index 69374d7..150e331 100644
--- a/gcc/ada/libgnat/s-pack26.ads
+++ b/gcc/ada/libgnat/s-pack26.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack27.adb b/gcc/ada/libgnat/s-pack27.adb
index 0a99810..f3c51b0 100644
--- a/gcc/ada/libgnat/s-pack27.adb
+++ b/gcc/ada/libgnat/s-pack27.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack27.ads b/gcc/ada/libgnat/s-pack27.ads
index c7283a8..8ce481b 100644
--- a/gcc/ada/libgnat/s-pack27.ads
+++ b/gcc/ada/libgnat/s-pack27.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack28.adb b/gcc/ada/libgnat/s-pack28.adb
index 4805e0a..7a11643 100644
--- a/gcc/ada/libgnat/s-pack28.adb
+++ b/gcc/ada/libgnat/s-pack28.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack28.ads b/gcc/ada/libgnat/s-pack28.ads
index b7851c1..763b1d0 100644
--- a/gcc/ada/libgnat/s-pack28.ads
+++ b/gcc/ada/libgnat/s-pack28.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack29.adb b/gcc/ada/libgnat/s-pack29.adb
index b30703b..e4209a2 100644
--- a/gcc/ada/libgnat/s-pack29.adb
+++ b/gcc/ada/libgnat/s-pack29.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack29.ads b/gcc/ada/libgnat/s-pack29.ads
index 43094fc..f977d80 100644
--- a/gcc/ada/libgnat/s-pack29.ads
+++ b/gcc/ada/libgnat/s-pack29.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack30.adb b/gcc/ada/libgnat/s-pack30.adb
index fb799f0..577012f 100644
--- a/gcc/ada/libgnat/s-pack30.adb
+++ b/gcc/ada/libgnat/s-pack30.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack30.ads b/gcc/ada/libgnat/s-pack30.ads
index def31e4..fc5965b 100644
--- a/gcc/ada/libgnat/s-pack30.ads
+++ b/gcc/ada/libgnat/s-pack30.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack31.adb b/gcc/ada/libgnat/s-pack31.adb
index 1035042..debf3db 100644
--- a/gcc/ada/libgnat/s-pack31.adb
+++ b/gcc/ada/libgnat/s-pack31.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack31.ads b/gcc/ada/libgnat/s-pack31.ads
index 91dfaad..22db441 100644
--- a/gcc/ada/libgnat/s-pack31.ads
+++ b/gcc/ada/libgnat/s-pack31.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack33.adb b/gcc/ada/libgnat/s-pack33.adb
index cde21bd..f2afef0 100644
--- a/gcc/ada/libgnat/s-pack33.adb
+++ b/gcc/ada/libgnat/s-pack33.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack33.ads b/gcc/ada/libgnat/s-pack33.ads
index ca12603..5d8cb4d 100644
--- a/gcc/ada/libgnat/s-pack33.ads
+++ b/gcc/ada/libgnat/s-pack33.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack34.adb b/gcc/ada/libgnat/s-pack34.adb
index ac12ed3..2f9580a 100644
--- a/gcc/ada/libgnat/s-pack34.adb
+++ b/gcc/ada/libgnat/s-pack34.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack34.ads b/gcc/ada/libgnat/s-pack34.ads
index 489995a..cd5d7fa 100644
--- a/gcc/ada/libgnat/s-pack34.ads
+++ b/gcc/ada/libgnat/s-pack34.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack35.adb b/gcc/ada/libgnat/s-pack35.adb
index 2e9a79e..49cad6f 100644
--- a/gcc/ada/libgnat/s-pack35.adb
+++ b/gcc/ada/libgnat/s-pack35.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack35.ads b/gcc/ada/libgnat/s-pack35.ads
index a0dd33e..21ca7d4 100644
--- a/gcc/ada/libgnat/s-pack35.ads
+++ b/gcc/ada/libgnat/s-pack35.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack36.adb b/gcc/ada/libgnat/s-pack36.adb
index 8585edc..bdb3fe3 100644
--- a/gcc/ada/libgnat/s-pack36.adb
+++ b/gcc/ada/libgnat/s-pack36.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack36.ads b/gcc/ada/libgnat/s-pack36.ads
index 6b93b89..924268f 100644
--- a/gcc/ada/libgnat/s-pack36.ads
+++ b/gcc/ada/libgnat/s-pack36.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack37.adb b/gcc/ada/libgnat/s-pack37.adb
index dcad1ef..7f1ead5 100644
--- a/gcc/ada/libgnat/s-pack37.adb
+++ b/gcc/ada/libgnat/s-pack37.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack37.ads b/gcc/ada/libgnat/s-pack37.ads
index 12246af..089434f 100644
--- a/gcc/ada/libgnat/s-pack37.ads
+++ b/gcc/ada/libgnat/s-pack37.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack38.adb b/gcc/ada/libgnat/s-pack38.adb
index caee10b..f3feac3 100644
--- a/gcc/ada/libgnat/s-pack38.adb
+++ b/gcc/ada/libgnat/s-pack38.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack38.ads b/gcc/ada/libgnat/s-pack38.ads
index 0d26b9d..bb1c504 100644
--- a/gcc/ada/libgnat/s-pack38.ads
+++ b/gcc/ada/libgnat/s-pack38.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack39.adb b/gcc/ada/libgnat/s-pack39.adb
index b41caf6..821d954 100644
--- a/gcc/ada/libgnat/s-pack39.adb
+++ b/gcc/ada/libgnat/s-pack39.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack39.ads b/gcc/ada/libgnat/s-pack39.ads
index 5ef7f3f8..bac16de 100644
--- a/gcc/ada/libgnat/s-pack39.ads
+++ b/gcc/ada/libgnat/s-pack39.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack40.adb b/gcc/ada/libgnat/s-pack40.adb
index 96a9053..b7a9e02 100644
--- a/gcc/ada/libgnat/s-pack40.adb
+++ b/gcc/ada/libgnat/s-pack40.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack40.ads b/gcc/ada/libgnat/s-pack40.ads
index 638e811..bb367d6 100644
--- a/gcc/ada/libgnat/s-pack40.ads
+++ b/gcc/ada/libgnat/s-pack40.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack41.adb b/gcc/ada/libgnat/s-pack41.adb
index 51b24cb..28a0def 100644
--- a/gcc/ada/libgnat/s-pack41.adb
+++ b/gcc/ada/libgnat/s-pack41.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack41.ads b/gcc/ada/libgnat/s-pack41.ads
index fa1f780..ce92fd9 100644
--- a/gcc/ada/libgnat/s-pack41.ads
+++ b/gcc/ada/libgnat/s-pack41.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack42.adb b/gcc/ada/libgnat/s-pack42.adb
index 713ee24..c759f94 100644
--- a/gcc/ada/libgnat/s-pack42.adb
+++ b/gcc/ada/libgnat/s-pack42.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack42.ads b/gcc/ada/libgnat/s-pack42.ads
index 6934090..a1c58ab 100644
--- a/gcc/ada/libgnat/s-pack42.ads
+++ b/gcc/ada/libgnat/s-pack42.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack43.adb b/gcc/ada/libgnat/s-pack43.adb
index 9378b4bb..137ce06 100644
--- a/gcc/ada/libgnat/s-pack43.adb
+++ b/gcc/ada/libgnat/s-pack43.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack43.ads b/gcc/ada/libgnat/s-pack43.ads
index 431d14b..c586e47 100644
--- a/gcc/ada/libgnat/s-pack43.ads
+++ b/gcc/ada/libgnat/s-pack43.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack44.adb b/gcc/ada/libgnat/s-pack44.adb
index 122dc9c..d8eaaac 100644
--- a/gcc/ada/libgnat/s-pack44.adb
+++ b/gcc/ada/libgnat/s-pack44.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack44.ads b/gcc/ada/libgnat/s-pack44.ads
index 3c38b50..e3873ee 100644
--- a/gcc/ada/libgnat/s-pack44.ads
+++ b/gcc/ada/libgnat/s-pack44.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack45.adb b/gcc/ada/libgnat/s-pack45.adb
index 67736a5..3739136 100644
--- a/gcc/ada/libgnat/s-pack45.adb
+++ b/gcc/ada/libgnat/s-pack45.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack45.ads b/gcc/ada/libgnat/s-pack45.ads
index cc4a7ab..dfdd7a9 100644
--- a/gcc/ada/libgnat/s-pack45.ads
+++ b/gcc/ada/libgnat/s-pack45.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack46.adb b/gcc/ada/libgnat/s-pack46.adb
index ba63edc..1bae1b9 100644
--- a/gcc/ada/libgnat/s-pack46.adb
+++ b/gcc/ada/libgnat/s-pack46.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack46.ads b/gcc/ada/libgnat/s-pack46.ads
index dd41cff..81c00df 100644
--- a/gcc/ada/libgnat/s-pack46.ads
+++ b/gcc/ada/libgnat/s-pack46.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack47.adb b/gcc/ada/libgnat/s-pack47.adb
index e2f38e5..e5ab870 100644
--- a/gcc/ada/libgnat/s-pack47.adb
+++ b/gcc/ada/libgnat/s-pack47.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack47.ads b/gcc/ada/libgnat/s-pack47.ads
index f15bd51..0de9bc6 100644
--- a/gcc/ada/libgnat/s-pack47.ads
+++ b/gcc/ada/libgnat/s-pack47.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack48.adb b/gcc/ada/libgnat/s-pack48.adb
index 59b188c..0ca74f5 100644
--- a/gcc/ada/libgnat/s-pack48.adb
+++ b/gcc/ada/libgnat/s-pack48.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack48.ads b/gcc/ada/libgnat/s-pack48.ads
index 7c29f61..225789a 100644
--- a/gcc/ada/libgnat/s-pack48.ads
+++ b/gcc/ada/libgnat/s-pack48.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack49.adb b/gcc/ada/libgnat/s-pack49.adb
index d2b9e24..f475e62 100644
--- a/gcc/ada/libgnat/s-pack49.adb
+++ b/gcc/ada/libgnat/s-pack49.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack49.ads b/gcc/ada/libgnat/s-pack49.ads
index 6269c0d..6ad4144 100644
--- a/gcc/ada/libgnat/s-pack49.ads
+++ b/gcc/ada/libgnat/s-pack49.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack50.adb b/gcc/ada/libgnat/s-pack50.adb
index 3cad660..2e55724 100644
--- a/gcc/ada/libgnat/s-pack50.adb
+++ b/gcc/ada/libgnat/s-pack50.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack50.ads b/gcc/ada/libgnat/s-pack50.ads
index 0c85e1b..bb3049a 100644
--- a/gcc/ada/libgnat/s-pack50.ads
+++ b/gcc/ada/libgnat/s-pack50.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack51.adb b/gcc/ada/libgnat/s-pack51.adb
index 262f003..9af3cb7 100644
--- a/gcc/ada/libgnat/s-pack51.adb
+++ b/gcc/ada/libgnat/s-pack51.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack51.ads b/gcc/ada/libgnat/s-pack51.ads
index 2d19eb1..70506d2 100644
--- a/gcc/ada/libgnat/s-pack51.ads
+++ b/gcc/ada/libgnat/s-pack51.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack52.adb b/gcc/ada/libgnat/s-pack52.adb
index 4d62e1e..1d6becb 100644
--- a/gcc/ada/libgnat/s-pack52.adb
+++ b/gcc/ada/libgnat/s-pack52.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack52.ads b/gcc/ada/libgnat/s-pack52.ads
index 0c0f14c..40d9142 100644
--- a/gcc/ada/libgnat/s-pack52.ads
+++ b/gcc/ada/libgnat/s-pack52.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack53.adb b/gcc/ada/libgnat/s-pack53.adb
index e5bb1d1..a2771a1 100644
--- a/gcc/ada/libgnat/s-pack53.adb
+++ b/gcc/ada/libgnat/s-pack53.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack53.ads b/gcc/ada/libgnat/s-pack53.ads
index b7f5de3..5512185 100644
--- a/gcc/ada/libgnat/s-pack53.ads
+++ b/gcc/ada/libgnat/s-pack53.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack54.adb b/gcc/ada/libgnat/s-pack54.adb
index cf107d9..06d3aeb 100644
--- a/gcc/ada/libgnat/s-pack54.adb
+++ b/gcc/ada/libgnat/s-pack54.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack54.ads b/gcc/ada/libgnat/s-pack54.ads
index 6db7222..52b29ae 100644
--- a/gcc/ada/libgnat/s-pack54.ads
+++ b/gcc/ada/libgnat/s-pack54.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack55.adb b/gcc/ada/libgnat/s-pack55.adb
index e23f3dc..6e2b628 100644
--- a/gcc/ada/libgnat/s-pack55.adb
+++ b/gcc/ada/libgnat/s-pack55.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack55.ads b/gcc/ada/libgnat/s-pack55.ads
index 80bbaf2..97115c6 100644
--- a/gcc/ada/libgnat/s-pack55.ads
+++ b/gcc/ada/libgnat/s-pack55.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack56.adb b/gcc/ada/libgnat/s-pack56.adb
index 1a94cd3..b8ecc0b 100644
--- a/gcc/ada/libgnat/s-pack56.adb
+++ b/gcc/ada/libgnat/s-pack56.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack56.ads b/gcc/ada/libgnat/s-pack56.ads
index 8473ef6..510fc35 100644
--- a/gcc/ada/libgnat/s-pack56.ads
+++ b/gcc/ada/libgnat/s-pack56.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack57.adb b/gcc/ada/libgnat/s-pack57.adb
index b35b707..2402e8b 100644
--- a/gcc/ada/libgnat/s-pack57.adb
+++ b/gcc/ada/libgnat/s-pack57.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack57.ads b/gcc/ada/libgnat/s-pack57.ads
index 4056a9a..8ac91c7 100644
--- a/gcc/ada/libgnat/s-pack57.ads
+++ b/gcc/ada/libgnat/s-pack57.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack58.adb b/gcc/ada/libgnat/s-pack58.adb
index d8080ba..75f00a1 100644
--- a/gcc/ada/libgnat/s-pack58.adb
+++ b/gcc/ada/libgnat/s-pack58.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack58.ads b/gcc/ada/libgnat/s-pack58.ads
index 713818d..d8d6e91 100644
--- a/gcc/ada/libgnat/s-pack58.ads
+++ b/gcc/ada/libgnat/s-pack58.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack59.adb b/gcc/ada/libgnat/s-pack59.adb
index 74cbb4a..ec001fa 100644
--- a/gcc/ada/libgnat/s-pack59.adb
+++ b/gcc/ada/libgnat/s-pack59.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack59.ads b/gcc/ada/libgnat/s-pack59.ads
index e9b1fa8..ee00f65 100644
--- a/gcc/ada/libgnat/s-pack59.ads
+++ b/gcc/ada/libgnat/s-pack59.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack60.adb b/gcc/ada/libgnat/s-pack60.adb
index f4bbec5..35b93f5 100644
--- a/gcc/ada/libgnat/s-pack60.adb
+++ b/gcc/ada/libgnat/s-pack60.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack60.ads b/gcc/ada/libgnat/s-pack60.ads
index eee3e41..95e0fd2 100644
--- a/gcc/ada/libgnat/s-pack60.ads
+++ b/gcc/ada/libgnat/s-pack60.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack61.adb b/gcc/ada/libgnat/s-pack61.adb
index dd0ec71..89b94ac 100644
--- a/gcc/ada/libgnat/s-pack61.adb
+++ b/gcc/ada/libgnat/s-pack61.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack61.ads b/gcc/ada/libgnat/s-pack61.ads
index 0e013b7..5681500 100644
--- a/gcc/ada/libgnat/s-pack61.ads
+++ b/gcc/ada/libgnat/s-pack61.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack62.adb b/gcc/ada/libgnat/s-pack62.adb
index 1505ecd..da6932a 100644
--- a/gcc/ada/libgnat/s-pack62.adb
+++ b/gcc/ada/libgnat/s-pack62.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack62.ads b/gcc/ada/libgnat/s-pack62.ads
index b82ade4..121c26f 100644
--- a/gcc/ada/libgnat/s-pack62.ads
+++ b/gcc/ada/libgnat/s-pack62.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack63.adb b/gcc/ada/libgnat/s-pack63.adb
index 8aada82..37b6767 100644
--- a/gcc/ada/libgnat/s-pack63.adb
+++ b/gcc/ada/libgnat/s-pack63.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pack63.ads b/gcc/ada/libgnat/s-pack63.ads
index 720edd3..7ca3d03 100644
--- a/gcc/ada/libgnat/s-pack63.ads
+++ b/gcc/ada/libgnat/s-pack63.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-parame.adb b/gcc/ada/libgnat/s-parame.adb
index 3526109..c555a82 100644
--- a/gcc/ada/libgnat/s-parame.adb
+++ b/gcc/ada/libgnat/s-parame.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1995-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1995-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-parame.ads b/gcc/ada/libgnat/s-parame.ads
index 92ea885..f9bc3d0 100644
--- a/gcc/ada/libgnat/s-parame.ads
+++ b/gcc/ada/libgnat/s-parame.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -94,7 +94,7 @@ package System.Parameters is
Runtime_Default_Sec_Stack_Size : constant Size_Type := 10 * 1024;
-- The run-time chosen default size for secondary stacks that may be
- -- overriden by the user with the use of binder -D switch.
+ -- overridden by the user with the use of binder -D switch.
Sec_Stack_Dynamic : constant Boolean := True;
-- Indicates if secondary stacks can grow and shrink at run-time. If False,
@@ -147,19 +147,6 @@ package System.Parameters is
-- allow some optimizations and fine tuning within the tasking run time
-- based on restrictions on the tasking features.
- ----------------------
- -- Locking Strategy --
- ----------------------
-
- Single_Lock : constant Boolean := False;
- -- Indicates whether a single lock should be used within the tasking
- -- run-time to protect internal structures. If True, a single lock
- -- will be used, meaning less locking/unlocking operations, but also
- -- more global contention. In general, Single_Lock should be set to
- -- True on single processor machines, and to False to multi-processor
- -- systems, but this can vary from application to application and also
- -- depends on the scheduling policy.
-
-------------------
-- Task Abortion --
-------------------
diff --git a/gcc/ada/libgnat/s-parame__ae653.ads b/gcc/ada/libgnat/s-parame__ae653.ads
index eac44d1..3e73f5e 100644
--- a/gcc/ada/libgnat/s-parame__ae653.ads
+++ b/gcc/ada/libgnat/s-parame__ae653.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -94,7 +94,7 @@ package System.Parameters is
Runtime_Default_Sec_Stack_Size : constant Size_Type := 10 * 1024;
-- The run-time chosen default size for secondary stacks that may be
- -- overriden by the user with the use of binder -D switch.
+ -- overridden by the user with the use of binder -D switch.
Sec_Stack_Dynamic : constant Boolean := False;
-- Indicates if secondary stacks can grow and shrink at run-time. If False,
@@ -147,19 +147,6 @@ package System.Parameters is
-- allow some optimizations and fine tuning within the tasking run time
-- based on restrictions on the tasking features.
- ----------------------
- -- Locking Strategy --
- ----------------------
-
- Single_Lock : constant Boolean := False;
- -- Indicates whether a single lock should be used within the tasking
- -- run-time to protect internal structures. If True, a single lock
- -- will be used, meaning less locking/unlocking operations, but also
- -- more global contention. In general, Single_Lock should be set to
- -- True on single processor machines, and to False to multi-processor
- -- systems, but this can vary from application to application and also
- -- depends on the scheduling policy.
-
-------------------
-- Task Abortion --
-------------------
diff --git a/gcc/ada/libgnat/s-parame__hpux.ads b/gcc/ada/libgnat/s-parame__hpux.ads
index 48ad97a..e09313f 100644
--- a/gcc/ada/libgnat/s-parame__hpux.ads
+++ b/gcc/ada/libgnat/s-parame__hpux.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -92,7 +92,7 @@ package System.Parameters is
Runtime_Default_Sec_Stack_Size : constant Size_Type := 10 * 1024;
-- The run-time chosen default size for secondary stacks that may be
- -- overriden by the user with the use of binder -D switch.
+ -- overridden by the user with the use of binder -D switch.
Sec_Stack_Dynamic : constant Boolean := True;
-- Indicates if secondary stacks can grow and shrink at run-time. If False,
@@ -145,19 +145,6 @@ package System.Parameters is
-- allow some optimizations and fine tuning within the tasking run time
-- based on restrictions on the tasking features.
- ----------------------
- -- Locking Strategy --
- ----------------------
-
- Single_Lock : constant Boolean := False;
- -- Indicates whether a single lock should be used within the tasking
- -- run-time to protect internal structures. If True, a single lock
- -- will be used, meaning less locking/unlocking operations, but also
- -- more global contention. In general, Single_Lock should be set to
- -- True on single processor machines, and to False to multi-processor
- -- systems, but this can vary from application to application and also
- -- depends on the scheduling policy.
-
-------------------
-- Task Abortion --
-------------------
diff --git a/gcc/ada/libgnat/s-parame__rtems.adb b/gcc/ada/libgnat/s-parame__rtems.adb
index d900b68..f350343 100644
--- a/gcc/ada/libgnat/s-parame__rtems.adb
+++ b/gcc/ada/libgnat/s-parame__rtems.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1997-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1997-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-parame__vxworks.adb b/gcc/ada/libgnat/s-parame__vxworks.adb
index f23ef5a..7d0a206 100644
--- a/gcc/ada/libgnat/s-parame__vxworks.adb
+++ b/gcc/ada/libgnat/s-parame__vxworks.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1995-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1995-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-parame__vxworks.ads b/gcc/ada/libgnat/s-parame__vxworks.ads
index f351ee7..c836444 100644
--- a/gcc/ada/libgnat/s-parame__vxworks.ads
+++ b/gcc/ada/libgnat/s-parame__vxworks.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -147,19 +147,6 @@ package System.Parameters is
-- allow some optimizations and fine tuning within the tasking run time
-- based on restrictions on the tasking features.
- ----------------------
- -- Locking Strategy --
- ----------------------
-
- Single_Lock : constant Boolean := False;
- -- Indicates whether a single lock should be used within the tasking
- -- run-time to protect internal structures. If True, a single lock
- -- will be used, meaning less locking/unlocking operations, but also
- -- more global contention. In general, Single_Lock should be set to
- -- True on single processor machines, and to False to multi-processor
- -- systems, but this can vary from application to application and also
- -- depends on the scheduling policy.
-
-------------------
-- Task Abortion --
-------------------
diff --git a/gcc/ada/libgnat/s-parint.adb b/gcc/ada/libgnat/s-parint.adb
index a83f82c..f984a49 100644
--- a/gcc/ada/libgnat/s-parint.adb
+++ b/gcc/ada/libgnat/s-parint.adb
@@ -7,7 +7,7 @@
-- B o d y --
-- (Dummy body for non-distributed case) --
-- --
--- Copyright (C) 1995-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1995-2020, Free Software Foundation, Inc. --
-- --
-- GNARL is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-parint.ads b/gcc/ada/libgnat/s-parint.ads
index b1debed..b037571 100644
--- a/gcc/ada/libgnat/s-parint.ads
+++ b/gcc/ada/libgnat/s-parint.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1995-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1995-2020, Free Software Foundation, Inc. --
-- --
-- GNARL is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pooglo.adb b/gcc/ada/libgnat/s-pooglo.adb
index acb4441..d1eaf53 100644
--- a/gcc/ada/libgnat/s-pooglo.adb
+++ b/gcc/ada/libgnat/s-pooglo.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pooglo.ads b/gcc/ada/libgnat/s-pooglo.ads
index f4fa930..8c19837 100644
--- a/gcc/ada/libgnat/s-pooglo.ads
+++ b/gcc/ada/libgnat/s-pooglo.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pooloc.adb b/gcc/ada/libgnat/s-pooloc.adb
index 3e76673..04a0532 100644
--- a/gcc/ada/libgnat/s-pooloc.adb
+++ b/gcc/ada/libgnat/s-pooloc.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-pooloc.ads b/gcc/ada/libgnat/s-pooloc.ads
index 9ad310f..6ba152a 100644
--- a/gcc/ada/libgnat/s-pooloc.ads
+++ b/gcc/ada/libgnat/s-pooloc.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-poosiz.adb b/gcc/ada/libgnat/s-poosiz.adb
index 3a6edea..bc6ae24 100644
--- a/gcc/ada/libgnat/s-poosiz.adb
+++ b/gcc/ada/libgnat/s-poosiz.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-poosiz.ads b/gcc/ada/libgnat/s-poosiz.ads
index 13e2d8b..3921b1c 100644
--- a/gcc/ada/libgnat/s-poosiz.ads
+++ b/gcc/ada/libgnat/s-poosiz.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-powtab.ads b/gcc/ada/libgnat/s-powtab.ads
index cc288bd..ef8d74a 100644
--- a/gcc/ada/libgnat/s-powtab.ads
+++ b/gcc/ada/libgnat/s-powtab.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-purexc.ads b/gcc/ada/libgnat/s-purexc.ads
index a101923..4c727d7 100644
--- a/gcc/ada/libgnat/s-purexc.ads
+++ b/gcc/ada/libgnat/s-purexc.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2000-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2000-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-putaim.adb b/gcc/ada/libgnat/s-putaim.adb
new file mode 100644
index 0000000..08fa7b7
--- /dev/null
+++ b/gcc/ada/libgnat/s-putaim.adb
@@ -0,0 +1,51 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT RUN-TIME COMPONENTS --
+-- --
+-- SYSTEM.PUT_TASK_IMAGES --
+-- --
+-- B o d y --
+-- --
+-- Copyright (C) 2020, Free Software Foundation, Inc. --
+-- --
+-- GNAT is free software; you can redistribute it and/or modify it under --
+-- terms of the GNU General Public License as published by the Free Soft- --
+-- ware Foundation; either version 3, or (at your option) any later ver- --
+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
+-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
+-- or FITNESS FOR A PARTICULAR PURPOSE. --
+-- --
+-- As a special exception under Section 7 of GPL version 3, you are granted --
+-- additional permissions described in the GCC Runtime Library Exception, --
+-- version 3.1, as published by the Free Software Foundation. --
+-- --
+-- You should have received a copy of the GNU General Public License and --
+-- a copy of the GCC Runtime Library Exception along with this program; --
+-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
+-- <http://www.gnu.org/licenses/>. --
+-- --
+-- GNAT was originally developed by the GNAT team at New York University. --
+-- Extensive contributions were provided by Ada Core Technologies Inc. --
+-- --
+------------------------------------------------------------------------------
+
+with Unchecked_Conversion;
+with Ada.Strings.Text_Output.Utils;
+use Ada.Strings.Text_Output;
+use Ada.Strings.Text_Output.Utils;
+
+package body System.Put_Task_Images is
+
+ procedure Put_Image_Protected (S : in out Sink'Class) is
+ begin
+ Put_UTF_8 (S, "(protected object)");
+ end Put_Image_Protected;
+
+ procedure Put_Image_Task
+ (S : in out Sink'Class; Id : Ada.Task_Identification.Task_Id)
+ is
+ begin
+ Put_UTF_8 (S, "(task " & Ada.Task_Identification.Image (Id) & ")");
+ end Put_Image_Task;
+
+end System.Put_Task_Images;
diff --git a/gcc/ada/libgnat/a-numaux__x86.ads b/gcc/ada/libgnat/s-putaim.ads
index 8494f89..b4dd8c2 100644
--- a/gcc/ada/libgnat/a-numaux__x86.ads
+++ b/gcc/ada/libgnat/s-putaim.ads
@@ -2,12 +2,11 @@
-- --
-- GNAT RUN-TIME COMPONENTS --
-- --
--- A D A . N U M E R I C S . A U X --
+-- SYSTEM.PUT_TASK_IMAGES --
-- --
-- S p e c --
--- (Machine Version for x86) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -30,47 +29,20 @@
-- --
------------------------------------------------------------------------------
--- This version is for the x86 using the 80-bit x86 long double format with
--- inline asm statements.
+with Ada.Strings.Text_Output;
+with Ada.Task_Identification;
-package Ada.Numerics.Aux is
- pragma Pure;
+package System.Put_Task_Images is
- type Double is new Long_Long_Float;
+ -- This package contains subprograms that are called by the generated code
+ -- for the 'Put_Image attribute for protected and task types. This is
+ -- separate from System.Put_Images to avoid dragging the tasking runtimes
+ -- into nontasking programs.
- function Sin (X : Double) return Double;
+ subtype Sink is Ada.Strings.Text_Output.Sink;
- function Cos (X : Double) return Double;
+ procedure Put_Image_Protected (S : in out Sink'Class);
+ procedure Put_Image_Task
+ (S : in out Sink'Class; Id : Ada.Task_Identification.Task_Id);
- function Tan (X : Double) return Double;
-
- function Exp (X : Double) return Double;
-
- function Sqrt (X : Double) return Double;
-
- function Log (X : Double) return Double;
-
- function Atan (X : Double) return Double;
-
- function Acos (X : Double) return Double;
-
- function Asin (X : Double) return Double;
-
- function Sinh (X : Double) return Double;
-
- function Cosh (X : Double) return Double;
-
- function Tanh (X : Double) return Double;
-
- function Pow (X, Y : Double) return Double;
-
-private
- pragma Inline (Atan);
- pragma Inline (Cos);
- pragma Inline (Tan);
- pragma Inline (Exp);
- pragma Inline (Log);
- pragma Inline (Sin);
- pragma Inline (Sqrt);
-
-end Ada.Numerics.Aux;
+end System.Put_Task_Images;
diff --git a/gcc/ada/libgnat/s-putima.adb b/gcc/ada/libgnat/s-putima.adb
new file mode 100644
index 0000000..4ae612d
--- /dev/null
+++ b/gcc/ada/libgnat/s-putima.adb
@@ -0,0 +1,260 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT RUN-TIME COMPONENTS --
+-- --
+-- SYSTEM.PUT_IMAGES --
+-- --
+-- B o d y --
+-- --
+-- Copyright (C) 2020, Free Software Foundation, Inc. --
+-- --
+-- GNAT is free software; you can redistribute it and/or modify it under --
+-- terms of the GNU General Public License as published by the Free Soft- --
+-- ware Foundation; either version 3, or (at your option) any later ver- --
+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
+-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
+-- or FITNESS FOR A PARTICULAR PURPOSE. --
+-- --
+-- As a special exception under Section 7 of GPL version 3, you are granted --
+-- additional permissions described in the GCC Runtime Library Exception, --
+-- version 3.1, as published by the Free Software Foundation. --
+-- --
+-- You should have received a copy of the GNU General Public License and --
+-- a copy of the GCC Runtime Library Exception along with this program; --
+-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
+-- <http://www.gnu.org/licenses/>. --
+-- --
+-- GNAT was originally developed by the GNAT team at New York University. --
+-- Extensive contributions were provided by Ada Core Technologies Inc. --
+-- --
+------------------------------------------------------------------------------
+
+with Unchecked_Conversion;
+with Ada.Strings.Text_Output.Utils;
+use Ada.Strings.Text_Output;
+use Ada.Strings.Text_Output.Utils;
+
+package body System.Put_Images is
+
+ generic
+ type Integer_Type is range <>;
+ type Unsigned_Type is mod <>;
+ Base : Unsigned_Type;
+ package Generic_Integer_Images is
+ pragma Assert (Integer_Type'Size = Unsigned_Type'Size);
+ pragma Assert (Base in 2 .. 36);
+ procedure Put_Image (S : in out Sink'Class; X : Integer_Type);
+ procedure Put_Image (S : in out Sink'Class; X : Unsigned_Type);
+ private
+ subtype Digit is Unsigned_Type range 0 .. Base - 1;
+ end Generic_Integer_Images;
+
+ package body Generic_Integer_Images is
+
+ A : constant := Character'Pos ('a');
+ Z : constant := Character'Pos ('0');
+ function Digit_To_Character (X : Digit) return Character is
+ (Character'Val (if X < 10 then X + Z else X + A - 10));
+
+ procedure Put_Digits (S : in out Sink'Class; X : Unsigned_Type);
+ -- Put just the digits of X, without any leading minus sign or space.
+
+ procedure Put_Digits (S : in out Sink'Class; X : Unsigned_Type) is
+ begin
+ if X >= Base then
+ Put_Digits (S, X / Base); -- recurse
+ Put_7bit (S, Digit_To_Character (X mod Base));
+ else
+ Put_7bit (S, Digit_To_Character (X));
+ end if;
+ end Put_Digits;
+
+ procedure Put_Image (S : in out Sink'Class; X : Integer_Type) is
+ begin
+ -- Put the space or the minus sign, then pass the absolute value to
+ -- Put_Digits.
+
+ if X >= 0 then
+ Put_7bit (S, ' ');
+ Put_Digits (S, Unsigned_Type (X));
+ else
+ Put_7bit (S, '-');
+ Put_Digits (S, -Unsigned_Type'Mod (X));
+ -- Convert to Unsigned_Type before negating, to avoid overflow
+ -- on Integer_Type'First.
+ end if;
+ end Put_Image;
+
+ procedure Put_Image (S : in out Sink'Class; X : Unsigned_Type) is
+ begin
+ Put_7bit (S, ' ');
+ Put_Digits (S, X);
+ end Put_Image;
+
+ end Generic_Integer_Images;
+
+ package Small is new Generic_Integer_Images (Integer, Unsigned, Base => 10);
+ package Large is new Generic_Integer_Images
+ (Long_Long_Integer, Long_Long_Unsigned, Base => 10);
+
+ procedure Put_Image_Integer (S : in out Sink'Class; X : Integer)
+ renames Small.Put_Image;
+ procedure Put_Image_Long_Long_Integer
+ (S : in out Sink'Class; X : Long_Long_Integer)
+ renames Large.Put_Image;
+
+ procedure Put_Image_Unsigned (S : in out Sink'Class; X : Unsigned)
+ renames Small.Put_Image;
+ procedure Put_Image_Long_Long_Unsigned
+ (S : in out Sink'Class; X : Long_Long_Unsigned)
+ renames Large.Put_Image;
+
+ type Signed_Address is range
+ -2**(Standard'Address_Size - 1) .. 2**(Standard'Address_Size - 1) - 1;
+ type Unsigned_Address is mod 2**Standard'Address_Size;
+ package Hex is new Generic_Integer_Images
+ (Signed_Address, Unsigned_Address, Base => 16);
+
+ generic
+ type Designated (<>) is private;
+ type Pointer is access all Designated;
+ procedure Put_Image_Pointer
+ (S : in out Sink'Class; X : Pointer; Type_Kind : String);
+
+ procedure Put_Image_Pointer
+ (S : in out Sink'Class; X : Pointer; Type_Kind : String)
+ is
+ function Cast is new Unchecked_Conversion
+ (System.Address, Unsigned_Address);
+ begin
+ if X = null then
+ Put_UTF_8 (S, "null");
+ else
+ Put_UTF_8 (S, "(");
+ Put_UTF_8 (S, Type_Kind);
+ Hex.Put_Image (S, Cast (X.all'Address));
+ Put_UTF_8 (S, ")");
+ end if;
+ end Put_Image_Pointer;
+
+ procedure Thin_Instance is new Put_Image_Pointer (Byte, Thin_Pointer);
+ procedure Put_Image_Thin_Pointer
+ (S : in out Sink'Class; X : Thin_Pointer)
+ is
+ begin
+ Thin_Instance (S, X, "access");
+ end Put_Image_Thin_Pointer;
+
+ procedure Fat_Instance is new Put_Image_Pointer (Byte_String, Fat_Pointer);
+ procedure Put_Image_Fat_Pointer
+ (S : in out Sink'Class; X : Fat_Pointer)
+ is
+ begin
+ Fat_Instance (S, X, "access");
+ end Put_Image_Fat_Pointer;
+
+ procedure Put_Image_Access_Subp (S : in out Sink'Class; X : Thin_Pointer) is
+ begin
+ Thin_Instance (S, X, "access subprogram");
+ end Put_Image_Access_Subp;
+
+ procedure Put_Image_Access_Prot_Subp
+ (S : in out Sink'Class; X : Thin_Pointer)
+ is
+ begin
+ Thin_Instance (S, X, "access protected subprogram");
+ end Put_Image_Access_Prot_Subp;
+
+ procedure Put_Image_String (S : in out Sink'Class; X : String) is
+ begin
+ Put_UTF_8 (S, """");
+ for C of X loop
+ if C = '"' then
+ Put_UTF_8 (S, """");
+ end if;
+ Put_Character (S, C);
+ end loop;
+ Put_UTF_8 (S, """");
+ end Put_Image_String;
+
+ procedure Put_Image_Wide_String (S : in out Sink'Class; X : Wide_String) is
+ begin
+ Put_UTF_8 (S, """");
+ for C of X loop
+ if C = '"' then
+ Put_UTF_8 (S, """");
+ end if;
+ Put_Wide_Character (S, C);
+ end loop;
+ Put_UTF_8 (S, """");
+ end Put_Image_Wide_String;
+
+ procedure Put_Image_Wide_Wide_String
+ (S : in out Sink'Class; X : Wide_Wide_String) is
+ begin
+ Put_UTF_8 (S, """");
+ for C of X loop
+ if C = '"' then
+ Put_UTF_8 (S, """");
+ end if;
+ Put_Wide_Wide_Character (S, C);
+ end loop;
+ Put_UTF_8 (S, """");
+ end Put_Image_Wide_Wide_String;
+
+ procedure Array_Before (S : in out Sink'Class) is
+ begin
+ New_Line (S);
+ Put_7bit (S, '[');
+ Indent (S, 1);
+ end Array_Before;
+
+ procedure Array_Between (S : in out Sink'Class) is
+ begin
+ Put_7bit (S, ',');
+ New_Line (S);
+ end Array_Between;
+
+ procedure Array_After (S : in out Sink'Class) is
+ begin
+ Outdent (S, 1);
+ Put_7bit (S, ']');
+ end Array_After;
+
+ procedure Simple_Array_Between (S : in out Sink'Class) is
+ begin
+ Put_7bit (S, ',');
+ if Column (S) > 60 then
+ New_Line (S);
+ else
+ Put_7bit (S, ' ');
+ end if;
+ end Simple_Array_Between;
+
+ procedure Record_Before (S : in out Sink'Class) is
+ begin
+ New_Line (S);
+ Put_7bit (S, '(');
+ Indent (S, 1);
+ end Record_Before;
+
+ procedure Record_Between (S : in out Sink'Class) is
+ begin
+ Put_7bit (S, ',');
+ New_Line (S);
+ end Record_Between;
+
+ procedure Record_After (S : in out Sink'Class) is
+ begin
+ Outdent (S, 1);
+ Put_7bit (S, ')');
+ end Record_After;
+
+ procedure Put_Image_Unknown (S : in out Sink'Class; Type_Name : String) is
+ begin
+ Put_UTF_8 (S, "{");
+ Put_String (S, Type_Name);
+ Put_UTF_8 (S, " object}");
+ end Put_Image_Unknown;
+
+end System.Put_Images;
diff --git a/gcc/ada/libgnat/s-putima.ads b/gcc/ada/libgnat/s-putima.ads
new file mode 100644
index 0000000..17e184a
--- /dev/null
+++ b/gcc/ada/libgnat/s-putima.ads
@@ -0,0 +1,102 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT RUN-TIME COMPONENTS --
+-- --
+-- SYSTEM.PUT_IMAGES --
+-- --
+-- S p e c --
+-- --
+-- Copyright (C) 2020, Free Software Foundation, Inc. --
+-- --
+-- GNAT is free software; you can redistribute it and/or modify it under --
+-- terms of the GNU General Public License as published by the Free Soft- --
+-- ware Foundation; either version 3, or (at your option) any later ver- --
+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
+-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
+-- or FITNESS FOR A PARTICULAR PURPOSE. --
+-- --
+-- As a special exception under Section 7 of GPL version 3, you are granted --
+-- additional permissions described in the GCC Runtime Library Exception, --
+-- version 3.1, as published by the Free Software Foundation. --
+-- --
+-- You should have received a copy of the GNU General Public License and --
+-- a copy of the GCC Runtime Library Exception along with this program; --
+-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
+-- <http://www.gnu.org/licenses/>. --
+-- --
+-- GNAT was originally developed by the GNAT team at New York University. --
+-- Extensive contributions were provided by Ada Core Technologies Inc. --
+-- --
+------------------------------------------------------------------------------
+
+with Ada.Strings.Text_Output;
+with System.Unsigned_Types;
+
+package System.Put_Images is
+
+ -- This package contains subprograms that are called by the generated code
+ -- for the 'Put_Image attribute.
+ --
+ -- For an integer type that fits in Integer, the actual parameter is
+ -- converted to Integer, and Put_Image_Integer is called. For larger types,
+ -- Put_Image_Long_Long_Integer is used. Other numeric types are treated
+ -- similarly. Access values are unchecked-converted to either Thin_Pointer
+ -- or Fat_Pointer, and Put_Image_Thin_Pointer or Put_Image_Fat_Pointer is
+ -- called. The Before/Between/After procedures are called before printing
+ -- the components of a composite type, between pairs of components, and
+ -- after them. See Exp_Put_Image in the compiler for details of these
+ -- calls.
+
+ pragma Preelaborate;
+
+ subtype Sink is Ada.Strings.Text_Output.Sink;
+
+ procedure Put_Image_Integer (S : in out Sink'Class; X : Integer);
+ procedure Put_Image_Long_Long_Integer
+ (S : in out Sink'Class; X : Long_Long_Integer);
+
+ subtype Unsigned is System.Unsigned_Types.Unsigned;
+ subtype Long_Long_Unsigned is System.Unsigned_Types.Long_Long_Unsigned;
+
+ procedure Put_Image_Unsigned (S : in out Sink'Class; X : Unsigned);
+ procedure Put_Image_Long_Long_Unsigned
+ (S : in out Sink'Class; X : Long_Long_Unsigned);
+
+ type Byte is new Character with Alignment => 1;
+ type Byte_String is array (Positive range <>) of Byte with Alignment => 1;
+ type Thin_Pointer is access all Byte;
+ type Fat_Pointer is access all Byte_String;
+ procedure Put_Image_Thin_Pointer (S : in out Sink'Class; X : Thin_Pointer);
+ procedure Put_Image_Fat_Pointer (S : in out Sink'Class; X : Fat_Pointer);
+ -- Print "null", or the address of the designated object as an unsigned
+ -- hexadecimal integer.
+
+ procedure Put_Image_Access_Subp (S : in out Sink'Class; X : Thin_Pointer);
+ -- For access-to-subprogram types
+
+ procedure Put_Image_Access_Prot_Subp
+ (S : in out Sink'Class; X : Thin_Pointer);
+ -- For access-to-protected-subprogram types
+
+ procedure Put_Image_String (S : in out Sink'Class; X : String);
+ procedure Put_Image_Wide_String (S : in out Sink'Class; X : Wide_String);
+ procedure Put_Image_Wide_Wide_String
+ (S : in out Sink'Class; X : Wide_Wide_String);
+
+ procedure Array_Before (S : in out Sink'Class);
+ procedure Array_Between (S : in out Sink'Class);
+ procedure Array_After (S : in out Sink'Class);
+
+ procedure Simple_Array_Between (S : in out Sink'Class);
+ -- For "simple" arrays, where we don't want a newline between every
+ -- component.
+
+ procedure Record_Before (S : in out Sink'Class);
+ procedure Record_Between (S : in out Sink'Class);
+ procedure Record_After (S : in out Sink'Class);
+
+ procedure Put_Image_Unknown (S : in out Sink'Class; Type_Name : String);
+ -- For Put_Image of types that don't have the attribute, such as type
+ -- Sink.
+
+end System.Put_Images;
diff --git a/gcc/ada/libgnat/s-rannum.adb b/gcc/ada/libgnat/s-rannum.adb
index 0590313..01a6e91 100644
--- a/gcc/ada/libgnat/s-rannum.adb
+++ b/gcc/ada/libgnat/s-rannum.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2007-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2007-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -86,6 +86,7 @@
-- --
------------------------------------------------------------------------------
+with Ada.Strings.Text_Output.Utils;
with Ada.Unchecked_Conversion;
with System.Random_Seed;
@@ -295,6 +296,7 @@ is
K : Bit_Count; -- Next decrement to exponent
begin
+ K := 0;
Mantissa := Random (Gen) / 2**Extra_Bits;
R := Unsigned_32 (Mantissa mod 2**Extra_Bits);
R_Bits := Extra_Bits;
@@ -401,12 +403,12 @@ is
elsif Max < Min then
raise Constraint_Error;
+ -- In the 64-bit case, we have to be careful since not all 64-bit
+ -- unsigned values are representable in GNAT's universal integer.
+
elsif Result_Subtype'Base'Size > 32 then
declare
- -- In the 64-bit case, we have to be careful, since not all 64-bit
- -- unsigned values are representable in GNAT's root_integer type.
- -- Ignore different-size warnings here since GNAT's handling
- -- is correct.
+ -- Ignore unequal-size warnings since GNAT's handling is correct.
pragma Warnings ("Z");
function Conv_To_Unsigned is
@@ -436,11 +438,14 @@ is
end if;
end;
- elsif Result_Subtype'Pos (Max) - Result_Subtype'Pos (Min) =
- 2 ** 32 - 1
+ -- In the 32-bit case, we need to handle both integer and enumeration
+ -- types and, therefore, rely on 'Pos and 'Val in the computation.
+
+ elsif Result_Subtype'Pos (Max) - Result_Subtype'Pos (Min) = 2 ** 32 - 1
then
return Result_Subtype'Val
(Result_Subtype'Pos (Min) + Unsigned_32'Pos (Random (Gen)));
+
else
declare
N : constant Unsigned_32 :=
@@ -635,6 +640,16 @@ is
return Result;
end Image;
+ ---------------
+ -- Put_Image --
+ ---------------
+
+ procedure Put_Image
+ (S : in out Strings.Text_Output.Sink'Class; V : State) is
+ begin
+ Strings.Text_Output.Utils.Put_String (S, Image (V));
+ end Put_Image;
+
-----------
-- Value --
-----------
diff --git a/gcc/ada/libgnat/s-rannum.ads b/gcc/ada/libgnat/s-rannum.ads
index 75fdfeb..1851b69 100644
--- a/gcc/ada/libgnat/s-rannum.ads
+++ b/gcc/ada/libgnat/s-rannum.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2007-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2007-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -57,6 +57,8 @@
with Interfaces;
+private with Ada.Strings.Text_Output;
+
package System.Random_Numbers with
SPARK_Mode => Off
is
@@ -142,7 +144,10 @@ private
-- Feedback distance from the current position
subtype State_Val is Interfaces.Unsigned_32;
- type State is array (0 .. N - 1) of State_Val;
+ type State is array (0 .. N - 1) of State_Val with Put_Image => Put_Image;
+
+ procedure Put_Image
+ (S : in out Ada.Strings.Text_Output.Sink'Class; V : State);
type Writable_Access (Self : access Generator) is limited null record;
-- Auxiliary type to make Generator a self-referential type
diff --git a/gcc/ada/libgnat/s-ransee.adb b/gcc/ada/libgnat/s-ransee.adb
index f78279f..0c168df 100644
--- a/gcc/ada/libgnat/s-ransee.adb
+++ b/gcc/ada/libgnat/s-ransee.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2011-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2011-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-ransee.ads b/gcc/ada/libgnat/s-ransee.ads
index 3fec97b..559eaa0 100644
--- a/gcc/ada/libgnat/s-ransee.ads
+++ b/gcc/ada/libgnat/s-ransee.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2011-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2011-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-regexp.adb b/gcc/ada/libgnat/s-regexp.adb
index 2417498..f8adc4a 100644
--- a/gcc/ada/libgnat/s-regexp.adb
+++ b/gcc/ada/libgnat/s-regexp.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1999-2019, AdaCore --
+-- Copyright (C) 1999-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-regexp.ads b/gcc/ada/libgnat/s-regexp.ads
index 4d9fb5b..243da67 100644
--- a/gcc/ada/libgnat/s-regexp.ads
+++ b/gcc/ada/libgnat/s-regexp.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1998-2019, AdaCore --
+-- Copyright (C) 1998-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -83,8 +83,10 @@ package System.Regexp is
-- regexp ::= term
-- term ::= elmt
- -- term ::= elmt elmt ... -- concatenation (elmt then elmt)
- -- term ::= {elmt, elmt, ...} -- alternation (matches any of elmt)
+ -- term ::= seq
+ -- term ::= {seq, seq, ...} -- alternation (matches any of seq)
+
+ -- seq ::= elmt elmt ... -- concatenation (sequence of elmts)
-- elmt ::= * -- any string of 0 or more characters
-- elmt ::= ? -- matches any character
diff --git a/gcc/ada/libgnat/s-regpat.adb b/gcc/ada/libgnat/s-regpat.adb
index ae69f47..2e60ba8 100644
--- a/gcc/ada/libgnat/s-regpat.adb
+++ b/gcc/ada/libgnat/s-regpat.adb
@@ -7,7 +7,7 @@
-- B o d y --
-- --
-- Copyright (C) 1986 by University of Toronto. --
--- Copyright (C) 1999-2019, AdaCore --
+-- Copyright (C) 1999-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -1460,19 +1460,9 @@ package body System.Regpat is
and then Expression (Parse_Pos + 1) /= ']'
then
Parse_Pos := Parse_Pos + 1;
-
- -- Do we have a range like '\d-a' and '[:space:]-a'
- -- which is not a real range
-
- if Named_Class /= ANYOF_NONE then
- Set_In_Class (Bitmap, '-');
- else
- In_Range := True;
- end if;
-
+ In_Range := True;
else
Set_In_Class (Bitmap, Value);
-
end if;
-- Else in a character range
@@ -3275,13 +3265,13 @@ package body System.Regpat is
(IP : Pointer;
Max : Natural := Natural'Last) return Natural
is
- Scan : Natural := Input_Pos;
- Last : Natural;
- Op : constant Opcode := Opcode'Val (Character'Pos (Program (IP)));
- Count : Natural;
- C : Character;
- Is_First : Boolean := True;
- Bitmap : Character_Class;
+ Scan : Natural := Input_Pos;
+ Last : Natural;
+ Op : constant Opcode :=
+ Opcode'Val (Character'Pos (Program (IP)));
+ Count : Natural;
+ C : Character;
+ Bitmap : Character_Class;
begin
if Max = Natural'Last or else Scan + Max - 1 > Last_In_Data then
@@ -3324,10 +3314,7 @@ package body System.Regpat is
end loop;
when ANYOF =>
- if Is_First then
- Bitmap_Operand (Program, IP, Bitmap);
- Is_First := False;
- end if;
+ Bitmap_Operand (Program, IP, Bitmap);
while Scan <= Last
and then Get_From_Class (Bitmap, Data (Scan))
diff --git a/gcc/ada/libgnat/s-regpat.ads b/gcc/ada/libgnat/s-regpat.ads
index 74ecdec..0a591fd 100644
--- a/gcc/ada/libgnat/s-regpat.ads
+++ b/gcc/ada/libgnat/s-regpat.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- --
-- Copyright (C) 1986 by University of Toronto. --
--- Copyright (C) 1996-2019, AdaCore --
+-- Copyright (C) 1996-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-resfil.adb b/gcc/ada/libgnat/s-resfil.adb
index dd07692..145aeb0 100644
--- a/gcc/ada/libgnat/s-resfil.adb
+++ b/gcc/ada/libgnat/s-resfil.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2007-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2007-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-resfil.ads b/gcc/ada/libgnat/s-resfil.ads
index 50bc7ff..369f2f4 100644
--- a/gcc/ada/libgnat/s-resfil.ads
+++ b/gcc/ada/libgnat/s-resfil.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2007-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2007-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-restri.adb b/gcc/ada/libgnat/s-restri.adb
index d63133d..5c91d13 100644
--- a/gcc/ada/libgnat/s-restri.adb
+++ b/gcc/ada/libgnat/s-restri.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-restri.ads b/gcc/ada/libgnat/s-restri.ads
index 604431a..221b83a 100644
--- a/gcc/ada/libgnat/s-restri.ads
+++ b/gcc/ada/libgnat/s-restri.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-rident.ads b/gcc/ada/libgnat/s-rident.ads
index 1e70a38..afec9a4 100644
--- a/gcc/ada/libgnat/s-rident.ads
+++ b/gcc/ada/libgnat/s-rident.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -62,10 +62,10 @@
-- then the binder could fail to recognize the R (restrictions line) in the
-- ali file, leading to bind errors when restrictions were added or removed.
--- The latest implementation avoids both this problem by using a named
--- scheme for recording restrictions, rather than a positional scheme which
--- fails completely if restrictions are added or subtracted. Now the worst
--- that happens at bind time in inconsistent builds is that unrecognized
+-- The latest implementation avoids this problem by using a named scheme
+-- for recording restrictions, rather than a positional scheme that fails
+-- completely if restrictions are added or subtracted. Now the worst that
+-- happens at bind time in inconsistent builds is that unrecognized
-- restrictions are ignored, and the consistency checking for restrictions
-- might be incomplete, which is no big deal.
@@ -104,6 +104,7 @@ package System.Rident is
No_Dispatch, -- (RM H.4(19))
No_Dispatching_Calls, -- GNAT
No_Dynamic_Attachment, -- Ada 2012 (RM E.7(10/3))
+ No_Dynamic_CPU_Assignment, -- Ada 202x (RM D.7(10/3))
No_Dynamic_Priorities, -- (RM D.9(9))
No_Enumeration_Maps, -- GNAT
No_Entry_Calls_In_Elaboration_Code, -- GNAT
@@ -147,6 +148,7 @@ package System.Rident is
No_Task_At_Interrupt_Priority, -- GNAT
No_Task_Hierarchy, -- (RM D.7(3), H.4(3))
No_Task_Termination, -- GNAT (Ravenscar)
+ No_Tasks_Unassigned_To_CPU, -- Ada 202x (D.7(10.10/4))
No_Tasking, -- GNAT
No_Terminate_Alternatives, -- (RM D.7(6))
No_Unchecked_Access, -- (RM H.4(18))
@@ -232,7 +234,6 @@ package System.Rident is
No_Dynamic_Interrupts : Restriction_Id renames No_Dynamic_Attachment;
No_Requeue : Restriction_Id renames No_Requeue_Statements;
No_Task_Attributes : Restriction_Id renames No_Task_Attributes_Package;
- SPARK : Restriction_Id renames SPARK_05;
subtype All_Restrictions is Restriction_Id range
Simple_Barriers .. Max_Storage_At_Blocking;
@@ -382,6 +383,7 @@ package System.Rident is
Restricted_Tasking,
Restricted,
Ravenscar,
+ Jorvik,
GNAT_Extended_Ravenscar,
GNAT_Ravenscar_EDF);
-- Names of recognized profiles. No_Profile is used to indicate that a
@@ -438,6 +440,7 @@ package System.Rident is
(No_Abort_Statements => True,
No_Asynchronous_Control => True,
No_Dynamic_Attachment => True,
+ No_Dynamic_CPU_Assignment => True,
No_Dynamic_Priorities => True,
No_Local_Protected_Objects => True,
No_Protected_Type_Allocators => True,
@@ -469,6 +472,7 @@ package System.Rident is
(No_Abort_Statements => True,
No_Asynchronous_Control => True,
No_Dynamic_Attachment => True,
+ No_Dynamic_CPU_Assignment => True,
No_Dynamic_Priorities => True,
No_Entry_Queue => True,
No_Local_Protected_Objects => True,
@@ -511,6 +515,7 @@ package System.Rident is
(No_Abort_Statements => True,
No_Asynchronous_Control => True,
No_Dynamic_Attachment => True,
+ No_Dynamic_CPU_Assignment => True,
No_Dynamic_Priorities => True,
No_Entry_Queue => True,
No_Local_Protected_Objects => True,
@@ -546,6 +551,68 @@ package System.Rident is
Max_Task_Entries => 0,
others => 0)),
+ Jorvik =>
+
+ -- Restrictions for Jorvik profile ..
+
+ -- Note: the table entries here only represent the
+ -- required restriction profile for Jorvik. The
+ -- full Jorvik profile also requires:
+
+ -- pragma Dispatching_Policy (FIFO_Within_Priorities);
+ -- pragma Locking_Policy (Ceiling_Locking);
+ -- pragma Detect_Blocking;
+
+ -- The differences between Ravenscar and Jorvik are
+ -- as follows:
+ -- 1) Ravenscar includes restriction Simple_Barriers;
+ -- Jorvik includes Pure_Barriers instead.
+ -- 2) The following 6 restrictions are included in
+ -- Ravenscar but not in Jorvik:
+ -- No_Implicit_Heap_Allocations
+ -- No_Relative_Delay
+ -- Max_Entry_Queue_Length => 1
+ -- Max_Protected_Entries => 1
+ -- No_Dependence => Ada.Calendar
+ -- No_Dependence => Ada.Synchronous_Barriers
+ --
+ -- The last of those 7 (i.e., No_Dep => Ada.Synch_Bars)
+ -- is not reflected here (see sem_prag.adb).
+
+ (Set =>
+ (No_Abort_Statements => True,
+ No_Asynchronous_Control => True,
+ No_Dynamic_Attachment => True,
+ No_Dynamic_CPU_Assignment => True,
+ No_Dynamic_Priorities => True,
+ No_Local_Protected_Objects => True,
+ No_Protected_Type_Allocators => True,
+ No_Requeue_Statements => True,
+ No_Task_Allocators => True,
+ No_Task_Attributes_Package => True,
+ No_Task_Hierarchy => True,
+ No_Terminate_Alternatives => True,
+ Max_Asynchronous_Select_Nesting => True,
+ Max_Select_Alternatives => True,
+ Max_Task_Entries => True,
+
+ -- plus these additional restrictions:
+
+ No_Local_Timing_Events => True,
+ No_Select_Statements => True,
+ No_Specific_Termination_Handlers => True,
+ No_Task_Termination => True,
+ Pure_Barriers => True,
+ others => False),
+
+ -- Value settings for Ravenscar (same as Restricted)
+
+ Value =>
+ (Max_Asynchronous_Select_Nesting => 0,
+ Max_Select_Alternatives => 0,
+ Max_Task_Entries => 0,
+ others => 0)),
+
GNAT_Extended_Ravenscar =>
-- Restrictions for GNAT_Extended_Ravenscar =
@@ -555,6 +622,7 @@ package System.Rident is
(No_Abort_Statements => True,
No_Asynchronous_Control => True,
No_Dynamic_Attachment => True,
+ No_Dynamic_CPU_Assignment => True,
No_Dynamic_Priorities => True,
No_Local_Protected_Objects => True,
No_Protected_Type_Allocators => True,
@@ -605,6 +673,7 @@ package System.Rident is
(No_Abort_Statements => True,
No_Asynchronous_Control => True,
No_Dynamic_Attachment => True,
+ No_Dynamic_CPU_Assignment => True,
No_Dynamic_Priorities => True,
No_Entry_Queue => True,
No_Local_Protected_Objects => True,
diff --git a/gcc/ada/libgnat/s-rpc.adb b/gcc/ada/libgnat/s-rpc.adb
index 36b7eb6..f4c719f 100644
--- a/gcc/ada/libgnat/s-rpc.adb
+++ b/gcc/ada/libgnat/s-rpc.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-rpc.ads b/gcc/ada/libgnat/s-rpc.ads
index 0eb12f9..7695b8f 100644
--- a/gcc/ada/libgnat/s-rpc.ads
+++ b/gcc/ada/libgnat/s-rpc.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/s-scaval.adb b/gcc/ada/libgnat/s-scaval.adb
index 2fe66cf..9815fbd 100644
--- a/gcc/ada/libgnat/s-scaval.adb
+++ b/gcc/ada/libgnat/s-scaval.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2003-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2003-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-scaval.ads b/gcc/ada/libgnat/s-scaval.ads
index 1b24f70..bd9c9c5 100644
--- a/gcc/ada/libgnat/s-scaval.ads
+++ b/gcc/ada/libgnat/s-scaval.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2001-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2001-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-secsta.adb b/gcc/ada/libgnat/s-secsta.adb
index 44f2eed..7ec8462 100644
--- a/gcc/ada/libgnat/s-secsta.adb
+++ b/gcc/ada/libgnat/s-secsta.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -564,7 +564,7 @@ package body System.Secondary_Stack is
--------------
function Round_Up (Size : Storage_Count) return Memory_Size is
- Algn_MS : constant Memory_Size := Standard'Maximum_Alignment;
+ Algn_MS : constant Memory_Size := Memory_Alignment;
Size_MS : constant Memory_Size := Memory_Size (Size);
begin
@@ -573,7 +573,7 @@ package body System.Secondary_Stack is
-- Treat this case as secondary-stack depletion.
if Memory_Size'Last - Algn_MS < Size_MS then
- raise Storage_Error with "secondary stack exhaused";
+ raise Storage_Error with "secondary stack exhausted";
end if;
return ((Size_MS + Algn_MS - 1) / Algn_MS) * Algn_MS;
diff --git a/gcc/ada/libgnat/s-secsta.ads b/gcc/ada/libgnat/s-secsta.ads
index d36ecfc..504c891 100644
--- a/gcc/ada/libgnat/s-secsta.ads
+++ b/gcc/ada/libgnat/s-secsta.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -261,10 +261,23 @@ private
subtype Memory_Index is Memory_Size;
-- Index into the memory storage of a single chunk
+ Memory_Alignment : constant := Standard'Maximum_Alignment * 2;
+ -- The memory alignment we will want to honor on every allocation.
+ --
+ -- At this stage, gigi assumes we can accommodate any alignment requirement
+ -- there might be on the data type for which the memory gets allocated (see
+ -- build_call_alloc_dealloc).
+ --
+ -- The multiplication factor is intended to account for requirements
+ -- by user code compiled with specific arch/cpu options such as -mavx
+ -- on X86[_64] targets, which Standard'Maximum_Alignment doesn't convey
+ -- without such compilation options. * 4 would actually be needed to
+ -- support -mavx512f on X86, but this would incur more annoying memory
+ -- consumption overheads.
+
type Chunk_Memory is array (Memory_Size range <>) of SSE.Storage_Element;
- for Chunk_Memory'Alignment use Standard'Maximum_Alignment;
- -- The memory storage of a single chunk. It utilizes maximum alignment in
- -- order to guarantee efficient operations.
+ for Chunk_Memory'Alignment use Memory_Alignment;
+ -- The memory storage of a single chunk
--------------
-- SS_Chunk --
diff --git a/gcc/ada/libgnat/s-sequio.adb b/gcc/ada/libgnat/s-sequio.adb
index e0b54aa..03610e3 100644
--- a/gcc/ada/libgnat/s-sequio.adb
+++ b/gcc/ada/libgnat/s-sequio.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-sequio.ads b/gcc/ada/libgnat/s-sequio.ads
index a0b75f5..17ed929 100644
--- a/gcc/ada/libgnat/s-sequio.ads
+++ b/gcc/ada/libgnat/s-sequio.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-shabig.ads b/gcc/ada/libgnat/s-shabig.ads
new file mode 100644
index 0000000..c4f6944
--- /dev/null
+++ b/gcc/ada/libgnat/s-shabig.ads
@@ -0,0 +1,80 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT COMPILER COMPONENTS --
+-- --
+-- S Y S T E M . S H A R E D _ B I G N U M S --
+-- --
+-- S p e c --
+-- --
+-- Copyright (C) 2012-2020, Free Software Foundation, Inc. --
+-- --
+-- GNAT is free software; you can redistribute it and/or modify it under --
+-- terms of the GNU General Public License as published by the Free Soft- --
+-- ware Foundation; either version 3, or (at your option) any later ver- --
+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
+-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
+-- or FITNESS FOR A PARTICULAR PURPOSE. --
+-- --
+-- As a special exception under Section 7 of GPL version 3, you are granted --
+-- additional permissions described in the GCC Runtime Library Exception, --
+-- version 3.1, as published by the Free Software Foundation. --
+-- --
+-- You should have received a copy of the GNU General Public License and --
+-- a copy of the GCC Runtime Library Exception along with this program; --
+-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
+-- <http://www.gnu.org/licenses/>. --
+-- --
+-- GNAT was originally developed by the GNAT team at New York University. --
+-- Extensive contributions were provided by Ada Core Technologies Inc. --
+-- --
+------------------------------------------------------------------------------
+
+-- This package provides declarations shared across all instantiations of
+-- System.Generic_Bignums.
+
+with Ada.Unchecked_Conversion;
+with Interfaces;
+
+package System.Shared_Bignums is
+ pragma Preelaborate;
+
+ pragma Assert (Long_Long_Integer'Size = 64);
+ -- This package assumes that Long_Long_Integer size is 64 bit (i.e. that it
+ -- has a range of -2**63 to 2**63-1). The front end ensures that the mode
+ -- ELIMINATED is not allowed for overflow checking if this is not the case.
+
+ subtype Length is Natural range 0 .. 2 ** 23 - 1;
+ -- Represent number of words in Digit_Vector
+
+ Base : constant := 2 ** 32;
+ -- Digit vectors use this base
+
+ subtype SD is Interfaces.Unsigned_32;
+ -- Single length digit
+
+ type Digit_Vector is array (Length range <>) of SD;
+ -- Represent digits of a number (most significant digit first)
+
+ type Bignum_Data (Len : Length) is record
+ Neg : Boolean;
+ -- Set if value is negative, never set for zero
+
+ D : Digit_Vector (1 .. Len);
+ -- Digits of number, most significant first, represented in base
+ -- 2**Base. No leading zeroes are stored, and the value of zero is
+ -- represented using an empty vector for D.
+ end record;
+
+ for Bignum_Data use record
+ Len at 0 range 0 .. 23;
+ Neg at 3 range 0 .. 7;
+ end record;
+
+ type Bignum is access all Bignum_Data;
+
+ function To_Bignum is new Ada.Unchecked_Conversion (System.Address, Bignum);
+
+ function To_Address is new
+ Ada.Unchecked_Conversion (Bignum, System.Address);
+
+end System.Shared_Bignums;
diff --git a/gcc/ada/libgnat/s-shasto.adb b/gcc/ada/libgnat/s-shasto.adb
index a9d0a1c..0117344 100644
--- a/gcc/ada/libgnat/s-shasto.adb
+++ b/gcc/ada/libgnat/s-shasto.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1998-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1998-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-shasto.ads b/gcc/ada/libgnat/s-shasto.ads
index fae5727..189b5e1 100644
--- a/gcc/ada/libgnat/s-shasto.ads
+++ b/gcc/ada/libgnat/s-shasto.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1998-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1998-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-soflin.adb b/gcc/ada/libgnat/s-soflin.adb
index 63f7161..7e1a557 100644
--- a/gcc/ada/libgnat/s-soflin.adb
+++ b/gcc/ada/libgnat/s-soflin.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-soflin.ads b/gcc/ada/libgnat/s-soflin.ads
index 2125d59..d0caa79 100644
--- a/gcc/ada/libgnat/s-soflin.ads
+++ b/gcc/ada/libgnat/s-soflin.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-soliin.adb b/gcc/ada/libgnat/s-soliin.adb
index dbd9e06..f5e4ba7 100644
--- a/gcc/ada/libgnat/s-soliin.adb
+++ b/gcc/ada/libgnat/s-soliin.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2017-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2017-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-soliin.ads b/gcc/ada/libgnat/s-soliin.ads
index 7e8b559..2726702 100644
--- a/gcc/ada/libgnat/s-soliin.ads
+++ b/gcc/ada/libgnat/s-soliin.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2017-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2017-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-sopco3.adb b/gcc/ada/libgnat/s-sopco3.adb
index 434e496..5953c06 100644
--- a/gcc/ada/libgnat/s-sopco3.adb
+++ b/gcc/ada/libgnat/s-sopco3.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-sopco3.ads b/gcc/ada/libgnat/s-sopco3.ads
index d0595b8..9743938 100644
--- a/gcc/ada/libgnat/s-sopco3.ads
+++ b/gcc/ada/libgnat/s-sopco3.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-sopco4.adb b/gcc/ada/libgnat/s-sopco4.adb
index 9e3332b..5dae861 100644
--- a/gcc/ada/libgnat/s-sopco4.adb
+++ b/gcc/ada/libgnat/s-sopco4.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-sopco4.ads b/gcc/ada/libgnat/s-sopco4.ads
index dcd73c1..0e0f3a3 100644
--- a/gcc/ada/libgnat/s-sopco4.ads
+++ b/gcc/ada/libgnat/s-sopco4.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-sopco5.adb b/gcc/ada/libgnat/s-sopco5.adb
index 075e84c..0acbf3b 100644
--- a/gcc/ada/libgnat/s-sopco5.adb
+++ b/gcc/ada/libgnat/s-sopco5.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-sopco5.ads b/gcc/ada/libgnat/s-sopco5.ads
index 1f7cd71..df233fc 100644
--- a/gcc/ada/libgnat/s-sopco5.ads
+++ b/gcc/ada/libgnat/s-sopco5.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-spsufi.adb b/gcc/ada/libgnat/s-spsufi.adb
index 9aaa389..6702ed1 100644
--- a/gcc/ada/libgnat/s-spsufi.adb
+++ b/gcc/ada/libgnat/s-spsufi.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2011-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2011-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-spsufi.ads b/gcc/ada/libgnat/s-spsufi.ads
index 55ee06a..d8143ef 100644
--- a/gcc/ada/libgnat/s-spsufi.ads
+++ b/gcc/ada/libgnat/s-spsufi.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2011-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2011-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-stache.adb b/gcc/ada/libgnat/s-stache.adb
index 587294d..7f55f17 100644
--- a/gcc/ada/libgnat/s-stache.adb
+++ b/gcc/ada/libgnat/s-stache.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1999-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1999-2020, Free Software Foundation, Inc. --
-- --
-- GNARL is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-stache.ads b/gcc/ada/libgnat/s-stache.ads
index 18b7bea..45d2da0 100644
--- a/gcc/ada/libgnat/s-stache.ads
+++ b/gcc/ada/libgnat/s-stache.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1999-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1999-2020, Free Software Foundation, Inc. --
-- --
-- GNARL is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-stalib.adb b/gcc/ada/libgnat/s-stalib.adb
index cee4397..61636d1 100644
--- a/gcc/ada/libgnat/s-stalib.adb
+++ b/gcc/ada/libgnat/s-stalib.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1995-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1995-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-stalib.ads b/gcc/ada/libgnat/s-stalib.ads
index d1ed160..5fbedae 100644
--- a/gcc/ada/libgnat/s-stalib.ads
+++ b/gcc/ada/libgnat/s-stalib.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -81,6 +81,7 @@ package System.Standard_Library is
-------------------------------------
type Raise_Action is access procedure;
+ pragma Favor_Top_Level (Raise_Action);
-- A pointer to a procedure used in the Raise_Hook field
type Exception_Data;
diff --git a/gcc/ada/libgnat/s-stratt__xdr.adb b/gcc/ada/libgnat/s-statxd.adb
index 98e21a1..fcefae7 100644
--- a/gcc/ada/libgnat/s-stratt__xdr.adb
+++ b/gcc/ada/libgnat/s-statxd.adb
@@ -2,11 +2,11 @@
-- --
-- GNAT RUN-TIME COMPONENTS --
-- --
--- S Y S T E M . S T R E A M _ A T T R I B U T E S --
+-- S Y S T E M . S T R E A M _ A T T R I B U T E S . X D R --
-- --
-- B o d y --
-- --
--- Copyright (C) 1996-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1996-2020, Free Software Foundation, Inc. --
-- --
-- GARLIC is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -29,20 +29,11 @@
-- --
------------------------------------------------------------------------------
--- This file is an alternate version of s-stratt.adb based on the XDR
--- standard. It is especially useful for exchanging streams between two
--- different systems with different basic type representations and endianness.
-
-pragma Warnings (Off, "*not allowed in compiler unit");
--- This body is used only when rebuilding the runtime library, not when
--- building the compiler, so it's OK to depend on features that would
--- otherwise break bootstrap (e.g. IF-expressions).
-
with Ada.IO_Exceptions;
with Ada.Streams; use Ada.Streams;
with Ada.Unchecked_Conversion;
-package body System.Stream_Attributes is
+package body System.Stream_Attributes.XDR is
pragma Suppress (Range_Check);
pragma Suppress (Overflow_Check);
@@ -68,19 +59,16 @@ package body System.Stream_Attributes is
subtype SEA is Ada.Streams.Stream_Element_Array;
subtype SEO is Ada.Streams.Stream_Element_Offset;
- generic function UC renames Ada.Unchecked_Conversion;
-
- type Field_Type is
- record
- E_Size : Integer; -- Exponent bit size
- E_Bias : Integer; -- Exponent bias
- F_Size : Integer; -- Fraction bit size
- E_Last : Integer; -- Max exponent value
- F_Mask : SE; -- Mask to apply on first fraction byte
- E_Bytes : SEO; -- N. of exponent bytes completely used
- F_Bytes : SEO; -- N. of fraction bytes completely used
- F_Bits : Integer; -- N. of bits used on first fraction word
- end record;
+ type Field_Type is record
+ E_Size : Integer; -- Exponent bit size
+ E_Bias : Integer; -- Exponent bias
+ F_Size : Integer; -- Fraction bit size
+ E_Last : Integer; -- Max exponent value
+ F_Mask : SE; -- Mask to apply on first fraction byte
+ E_Bytes : SEO; -- N. of exponent bytes completely used
+ F_Bytes : SEO; -- N. of fraction bytes completely used
+ F_Bits : Integer; -- N. of bits used on first fraction word
+ end record;
type Precision is (Single, Double, Quadruple);
@@ -139,40 +127,47 @@ package body System.Stream_Attributes is
SSI_L : constant := 1;
SI_L : constant := 2;
+ I24_L : constant := 3;
I_L : constant := 4;
LI_L : constant := 8;
LLI_L : constant := 8;
subtype XDR_S_SSI is SEA (1 .. SSI_L);
subtype XDR_S_SI is SEA (1 .. SI_L);
+ subtype XDR_S_I24 is SEA (1 .. I24_L);
subtype XDR_S_I is SEA (1 .. I_L);
subtype XDR_S_LI is SEA (1 .. LI_L);
subtype XDR_S_LLI is SEA (1 .. LLI_L);
function Short_Short_Integer_To_XDR_S_SSI is
- new Ada.Unchecked_Conversion (Short_Short_Integer, XDR_S_SSI);
+ new Ada.Unchecked_Conversion (Short_Short_Integer, XDR_S_SSI);
function XDR_S_SSI_To_Short_Short_Integer is
- new Ada.Unchecked_Conversion (XDR_S_SSI, Short_Short_Integer);
+ new Ada.Unchecked_Conversion (XDR_S_SSI, Short_Short_Integer);
function Short_Integer_To_XDR_S_SI is
- new Ada.Unchecked_Conversion (Short_Integer, XDR_S_SI);
+ new Ada.Unchecked_Conversion (Short_Integer, XDR_S_SI);
function XDR_S_SI_To_Short_Integer is
- new Ada.Unchecked_Conversion (XDR_S_SI, Short_Integer);
+ new Ada.Unchecked_Conversion (XDR_S_SI, Short_Integer);
+
+ function Integer_To_XDR_S_I24 is
+ new Ada.Unchecked_Conversion (Integer_24, XDR_S_I24);
+ function XDR_S_I24_To_Integer is
+ new Ada.Unchecked_Conversion (XDR_S_I24, Integer_24);
function Integer_To_XDR_S_I is
- new Ada.Unchecked_Conversion (Integer, XDR_S_I);
+ new Ada.Unchecked_Conversion (Integer, XDR_S_I);
function XDR_S_I_To_Integer is
new Ada.Unchecked_Conversion (XDR_S_I, Integer);
function Long_Long_Integer_To_XDR_S_LI is
- new Ada.Unchecked_Conversion (Long_Long_Integer, XDR_S_LI);
+ new Ada.Unchecked_Conversion (Long_Long_Integer, XDR_S_LI);
function XDR_S_LI_To_Long_Long_Integer is
- new Ada.Unchecked_Conversion (XDR_S_LI, Long_Long_Integer);
+ new Ada.Unchecked_Conversion (XDR_S_LI, Long_Long_Integer);
function Long_Long_Integer_To_XDR_S_LLI is
- new Ada.Unchecked_Conversion (Long_Long_Integer, XDR_S_LLI);
+ new Ada.Unchecked_Conversion (Long_Long_Integer, XDR_S_LLI);
function XDR_S_LLI_To_Long_Long_Integer is
- new Ada.Unchecked_Conversion (XDR_S_LLI, Long_Long_Integer);
+ new Ada.Unchecked_Conversion (XDR_S_LLI, Long_Long_Integer);
-- An XDR unsigned integer is a 32-bit datum that encodes a nonnegative
-- integer in the range [0,4294967295]. It is represented by an unsigned
@@ -187,12 +182,14 @@ package body System.Stream_Attributes is
SSU_L : constant := 1;
SU_L : constant := 2;
+ U24_L : constant := 3;
U_L : constant := 4;
LU_L : constant := 8;
LLU_L : constant := 8;
subtype XDR_S_SSU is SEA (1 .. SSU_L);
subtype XDR_S_SU is SEA (1 .. SU_L);
+ subtype XDR_S_U24 is SEA (1 .. U24_L);
subtype XDR_S_U is SEA (1 .. U_L);
subtype XDR_S_LU is SEA (1 .. LU_L);
subtype XDR_S_LLU is SEA (1 .. LLU_L);
@@ -200,26 +197,32 @@ package body System.Stream_Attributes is
type XDR_SSU is mod BB ** SSU_L;
type XDR_SU is mod BB ** SU_L;
type XDR_U is mod BB ** U_L;
+ type XDR_U24 is mod BB ** U24_L;
function Short_Unsigned_To_XDR_S_SU is
- new Ada.Unchecked_Conversion (Short_Unsigned, XDR_S_SU);
+ new Ada.Unchecked_Conversion (Short_Unsigned, XDR_S_SU);
function XDR_S_SU_To_Short_Unsigned is
- new Ada.Unchecked_Conversion (XDR_S_SU, Short_Unsigned);
+ new Ada.Unchecked_Conversion (XDR_S_SU, Short_Unsigned);
+
+ function Unsigned_To_XDR_S_U24 is
+ new Ada.Unchecked_Conversion (Unsigned_24, XDR_S_U24);
+ function XDR_S_U24_To_Unsigned is
+ new Ada.Unchecked_Conversion (XDR_S_U24, Unsigned_24);
function Unsigned_To_XDR_S_U is
- new Ada.Unchecked_Conversion (Unsigned, XDR_S_U);
+ new Ada.Unchecked_Conversion (Unsigned, XDR_S_U);
function XDR_S_U_To_Unsigned is
- new Ada.Unchecked_Conversion (XDR_S_U, Unsigned);
+ new Ada.Unchecked_Conversion (XDR_S_U, Unsigned);
function Long_Long_Unsigned_To_XDR_S_LU is
- new Ada.Unchecked_Conversion (Long_Long_Unsigned, XDR_S_LU);
+ new Ada.Unchecked_Conversion (Long_Long_Unsigned, XDR_S_LU);
function XDR_S_LU_To_Long_Long_Unsigned is
- new Ada.Unchecked_Conversion (XDR_S_LU, Long_Long_Unsigned);
+ new Ada.Unchecked_Conversion (XDR_S_LU, Long_Long_Unsigned);
function Long_Long_Unsigned_To_XDR_S_LLU is
- new Ada.Unchecked_Conversion (Long_Long_Unsigned, XDR_S_LLU);
+ new Ada.Unchecked_Conversion (Long_Long_Unsigned, XDR_S_LLU);
function XDR_S_LLU_To_Long_Long_Unsigned is
- new Ada.Unchecked_Conversion (XDR_S_LLU, Long_Long_Unsigned);
+ new Ada.Unchecked_Conversion (XDR_S_LLU, Long_Long_Unsigned);
-- The standard defines the floating-point data type "float" (32 bits
-- or 4 bytes). The encoding used is the IEEE standard for normalized
@@ -240,8 +243,8 @@ package body System.Stream_Attributes is
type XDR_TM is mod BB ** TM_L;
type XDR_SA is mod 2 ** Standard'Address_Size;
- function To_XDR_SA is new UC (System.Address, XDR_SA);
- function To_XDR_SA is new UC (XDR_SA, System.Address);
+ function To_XDR_SA is new Ada.Unchecked_Conversion (System.Address, XDR_SA);
+ function To_XDR_SA is new Ada.Unchecked_Conversion (XDR_SA, System.Address);
-- Enumerations have the same representation as signed integers.
-- Enumerations are handy for describing subsets of the integers.
@@ -284,19 +287,6 @@ package body System.Stream_Attributes is
Optimize_Integers : constant Boolean :=
Default_Bit_Order = High_Order_First;
- -----------------
- -- Block_IO_OK --
- -----------------
-
- -- We must inhibit Block_IO, because in XDR mode, each element is output
- -- according to XDR requirements, which is not at all the same as writing
- -- the whole array in one block.
-
- function Block_IO_OK return Boolean is
- begin
- return False;
- end Block_IO_OK;
-
----------
-- I_AD --
----------
@@ -484,6 +474,40 @@ package body System.Stream_Attributes is
end if;
end I_I;
+ -----------
+ -- I_I24 --
+ -----------
+
+ function I_I24 (Stream : not null access RST) return Integer_24 is
+ S : XDR_S_I24;
+ L : SEO;
+ U : XDR_U24 := 0;
+
+ begin
+ Ada.Streams.Read (Stream.all, S, L);
+
+ if L /= S'Last then
+ raise Data_Error;
+
+ elsif Optimize_Integers then
+ return XDR_S_I24_To_Integer (S);
+
+ else
+ for N in S'Range loop
+ U := U * BB + XDR_U24 (S (N));
+ end loop;
+
+ -- Test sign and apply two complement notation
+
+ if S (1) < BL then
+ return Integer_24 (U);
+
+ else
+ return Integer_24 (-((XDR_U24'Last xor U) + 1));
+ end if;
+ end if;
+ end I_I24;
+
----------
-- I_LF --
----------
@@ -1042,6 +1066,33 @@ package body System.Stream_Attributes is
end if;
end I_U;
+ -----------
+ -- I_U24 --
+ -----------
+
+ function I_U24 (Stream : not null access RST) return Unsigned_24 is
+ S : XDR_S_U24;
+ L : SEO;
+ U : XDR_U24 := 0;
+
+ begin
+ Ada.Streams.Read (Stream.all, S, L);
+
+ if L /= S'Last then
+ raise Data_Error;
+
+ elsif Optimize_Integers then
+ return XDR_S_U24_To_Unsigned (S);
+
+ else
+ for N in S'Range loop
+ U := U * BB + XDR_U24 (S (N));
+ end loop;
+
+ return Unsigned_24 (U);
+ end if;
+ end I_U24;
+
----------
-- I_WC --
----------
@@ -1289,6 +1340,38 @@ package body System.Stream_Attributes is
Ada.Streams.Write (Stream.all, S);
end W_I;
+ -----------
+ -- W_I24 --
+ -----------
+
+ procedure W_I24 (Stream : not null access RST; Item : Integer_24) is
+ S : XDR_S_I24;
+ U : XDR_U24;
+
+ begin
+ if Optimize_Integers then
+ S := Integer_To_XDR_S_I24 (Item);
+
+ else
+ -- Test sign and apply two complement notation
+
+ U := (if Item < 0
+ then XDR_U24'Last xor XDR_U24 (-(Item + 1))
+ else XDR_U24 (Item));
+
+ for N in reverse S'Range loop
+ S (N) := SE (U mod BB);
+ U := U / BB;
+ end loop;
+
+ if U /= 0 then
+ raise Data_Error;
+ end if;
+ end if;
+
+ Ada.Streams.Write (Stream.all, S);
+ end W_I24;
+
----------
-- W_LF --
----------
@@ -1377,7 +1460,7 @@ package body System.Stream_Attributes is
procedure W_LI (Stream : not null access RST; Item : Long_Integer) is
S : XDR_S_LI;
- U : Unsigned;
+ U : Unsigned := 0;
X : Long_Unsigned;
begin
@@ -1521,7 +1604,7 @@ package body System.Stream_Attributes is
Item : Long_Long_Integer)
is
S : XDR_S_LLI;
- U : Unsigned;
+ U : Unsigned := 0;
X : Long_Long_Unsigned;
begin
@@ -1569,7 +1652,7 @@ package body System.Stream_Attributes is
Item : Long_Long_Unsigned)
is
S : XDR_S_LLU;
- U : Unsigned;
+ U : Unsigned := 0;
X : Long_Long_Unsigned := Item;
begin
@@ -1606,7 +1689,7 @@ package body System.Stream_Attributes is
procedure W_LU (Stream : not null access RST; Item : Long_Unsigned) is
S : XDR_S_LU;
- U : Unsigned;
+ U : Unsigned := 0;
X : Long_Unsigned := Item;
begin
@@ -1846,6 +1929,32 @@ package body System.Stream_Attributes is
Ada.Streams.Write (Stream.all, S);
end W_U;
+ -----------
+ -- W_U24 --
+ -----------
+
+ procedure W_U24 (Stream : not null access RST; Item : Unsigned_24) is
+ S : XDR_S_U24;
+ U : XDR_U24 := XDR_U24 (Item);
+
+ begin
+ if Optimize_Integers then
+ S := Unsigned_To_XDR_S_U24 (Item);
+
+ else
+ for N in reverse S'Range loop
+ S (N) := SE (U mod BB);
+ U := U / BB;
+ end loop;
+
+ if U /= 0 then
+ raise Data_Error;
+ end if;
+ end if;
+
+ Ada.Streams.Write (Stream.all, S);
+ end W_U24;
+
----------
-- W_WC --
----------
@@ -1898,4 +2007,4 @@ package body System.Stream_Attributes is
end if;
end W_WWC;
-end System.Stream_Attributes;
+end System.Stream_Attributes.XDR;
diff --git a/gcc/ada/libgnat/s-statxd.ads b/gcc/ada/libgnat/s-statxd.ads
new file mode 100644
index 0000000..cca5e54
--- /dev/null
+++ b/gcc/ada/libgnat/s-statxd.ads
@@ -0,0 +1,117 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT RUN-TIME COMPONENTS --
+-- --
+-- S Y S T E M . S T R E A M _ A T T R I B U T E S . X D R --
+-- --
+-- S p e c --
+-- --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
+-- --
+-- GNAT is free software; you can redistribute it and/or modify it under --
+-- terms of the GNU General Public License as published by the Free Soft- --
+-- ware Foundation; either version 3, or (at your option) any later ver- --
+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
+-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
+-- or FITNESS FOR A PARTICULAR PURPOSE. --
+-- --
+-- As a special exception under Section 7 of GPL version 3, you are granted --
+-- additional permissions described in the GCC Runtime Library Exception, --
+-- version 3.1, as published by the Free Software Foundation. --
+-- --
+-- You should have received a copy of the GNU General Public License and --
+-- a copy of the GCC Runtime Library Exception along with this program; --
+-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
+-- <http://www.gnu.org/licenses/>. --
+-- --
+-- GNAT was originally developed by the GNAT team at New York University. --
+-- Extensive contributions were provided by Ada Core Technologies Inc. --
+-- --
+------------------------------------------------------------------------------
+
+-- This package contains alternate implementations of the stream attributes
+-- for elementary types based on the XDR standard. These are the subprograms
+-- that are directly accessed by occurrences of the stream attributes where
+-- the type is elementary.
+
+-- It is especially useful for exchanging streams between two different
+-- systems with different basic type representations and endianness.
+
+-- We only provide the subprograms for the standard base types. For user
+-- defined types, the subprogram for the corresponding root type is called
+-- with an appropriate conversion.
+
+package System.Stream_Attributes.XDR is
+ pragma Preelaborate;
+
+ pragma Suppress (Accessibility_Check, XDR);
+ -- No need to check accessibility on arguments of subprograms
+
+ ---------------------
+ -- Input Functions --
+ ---------------------
+
+ -- Functions for S'Input attribute. These functions are also used for
+ -- S'Read, with the obvious transformation, since the input operation
+ -- is the same for all elementary types (no bounds or discriminants
+ -- are involved).
+
+ function I_AD (Stream : not null access RST) return Fat_Pointer;
+ function I_AS (Stream : not null access RST) return Thin_Pointer;
+ function I_B (Stream : not null access RST) return Boolean;
+ function I_C (Stream : not null access RST) return Character;
+ function I_F (Stream : not null access RST) return Float;
+ function I_I (Stream : not null access RST) return Integer;
+ function I_I24 (Stream : not null access RST) return Integer_24;
+ function I_LF (Stream : not null access RST) return Long_Float;
+ function I_LI (Stream : not null access RST) return Long_Integer;
+ function I_LLF (Stream : not null access RST) return Long_Long_Float;
+ function I_LLI (Stream : not null access RST) return Long_Long_Integer;
+ function I_LLU (Stream : not null access RST) return UST.Long_Long_Unsigned;
+ function I_LU (Stream : not null access RST) return UST.Long_Unsigned;
+ function I_SF (Stream : not null access RST) return Short_Float;
+ function I_SI (Stream : not null access RST) return Short_Integer;
+ function I_SSI (Stream : not null access RST) return Short_Short_Integer;
+ function I_SSU (Stream : not null access RST) return
+ UST.Short_Short_Unsigned;
+ function I_SU (Stream : not null access RST) return UST.Short_Unsigned;
+ function I_U (Stream : not null access RST) return UST.Unsigned;
+ function I_U24 (Stream : not null access RST) return Unsigned_24;
+ function I_WC (Stream : not null access RST) return Wide_Character;
+ function I_WWC (Stream : not null access RST) return Wide_Wide_Character;
+
+ -----------------------
+ -- Output Procedures --
+ -----------------------
+
+ -- Procedures for S'Write attribute. These procedures are also used for
+ -- 'Output, since for elementary types there is no difference between
+ -- 'Write and 'Output because there are no discriminants or bounds to
+ -- be written.
+
+ procedure W_AD (Stream : not null access RST; Item : Fat_Pointer);
+ procedure W_AS (Stream : not null access RST; Item : Thin_Pointer);
+ procedure W_B (Stream : not null access RST; Item : Boolean);
+ procedure W_C (Stream : not null access RST; Item : Character);
+ procedure W_F (Stream : not null access RST; Item : Float);
+ procedure W_I (Stream : not null access RST; Item : Integer);
+ procedure W_I24 (Stream : not null access RST; Item : Integer_24);
+ procedure W_LF (Stream : not null access RST; Item : Long_Float);
+ procedure W_LI (Stream : not null access RST; Item : Long_Integer);
+ procedure W_LLF (Stream : not null access RST; Item : Long_Long_Float);
+ procedure W_LLI (Stream : not null access RST; Item : Long_Long_Integer);
+ procedure W_LLU (Stream : not null access RST; Item :
+ UST.Long_Long_Unsigned);
+ procedure W_LU (Stream : not null access RST; Item : UST.Long_Unsigned);
+ procedure W_SF (Stream : not null access RST; Item : Short_Float);
+ procedure W_SI (Stream : not null access RST; Item : Short_Integer);
+ procedure W_SSI (Stream : not null access RST; Item : Short_Short_Integer);
+ procedure W_SSU (Stream : not null access RST; Item :
+ UST.Short_Short_Unsigned);
+ procedure W_SU (Stream : not null access RST; Item : UST.Short_Unsigned);
+ procedure W_U (Stream : not null access RST; Item : UST.Unsigned);
+ procedure W_U24 (Stream : not null access RST; Item : Unsigned_24);
+ procedure W_WC (Stream : not null access RST; Item : Wide_Character);
+ procedure W_WWC (Stream : not null access RST; Item : Wide_Wide_Character);
+
+end System.Stream_Attributes.XDR;
diff --git a/gcc/ada/libgnat/s-stausa.adb b/gcc/ada/libgnat/s-stausa.adb
index 597634a..e96dc7a 100644
--- a/gcc/ada/libgnat/s-stausa.adb
+++ b/gcc/ada/libgnat/s-stausa.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNARL is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-stausa.ads b/gcc/ada/libgnat/s-stausa.ads
index 2dfa735..8803237 100644
--- a/gcc/ada/libgnat/s-stausa.ads
+++ b/gcc/ada/libgnat/s-stausa.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2004-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2020, Free Software Foundation, Inc. --
-- --
-- GNARL is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-stchop.adb b/gcc/ada/libgnat/s-stchop.adb
index ecfa5f1..c5c3d35 100644
--- a/gcc/ada/libgnat/s-stchop.adb
+++ b/gcc/ada/libgnat/s-stchop.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1999-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1999-2020, Free Software Foundation, Inc. --
-- --
-- GNARL is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-stchop.ads b/gcc/ada/libgnat/s-stchop.ads
index 11f0e74..d057ddb 100644
--- a/gcc/ada/libgnat/s-stchop.ads
+++ b/gcc/ada/libgnat/s-stchop.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1999-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1999-2020, Free Software Foundation, Inc. --
-- --
-- GNARL is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-stchop__limit.ads b/gcc/ada/libgnat/s-stchop__limit.ads
index 9d70a57..c904606 100644
--- a/gcc/ada/libgnat/s-stchop__limit.ads
+++ b/gcc/ada/libgnat/s-stchop__limit.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1999-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1999-2020, Free Software Foundation, Inc. --
-- --
-- GNARL is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-stchop__rtems.adb b/gcc/ada/libgnat/s-stchop__rtems.adb
index 66b175f..56b1747 100644
--- a/gcc/ada/libgnat/s-stchop__rtems.adb
+++ b/gcc/ada/libgnat/s-stchop__rtems.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1999-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1999-2020, Free Software Foundation, Inc. --
-- --
-- GNARL is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-stchop__vxworks.adb b/gcc/ada/libgnat/s-stchop__vxworks.adb
index 49f02d8..f277426 100644
--- a/gcc/ada/libgnat/s-stchop__vxworks.adb
+++ b/gcc/ada/libgnat/s-stchop__vxworks.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1999-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1999-2020, Free Software Foundation, Inc. --
-- --
-- GNARL is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-stoele.adb b/gcc/ada/libgnat/s-stoele.adb
index 8a00f7f..69cb832 100644
--- a/gcc/ada/libgnat/s-stoele.adb
+++ b/gcc/ada/libgnat/s-stoele.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-stoele.ads b/gcc/ada/libgnat/s-stoele.ads
index cf9a826..4abac8e 100644
--- a/gcc/ada/libgnat/s-stoele.ads
+++ b/gcc/ada/libgnat/s-stoele.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2002-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2002-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/s-stopoo.adb b/gcc/ada/libgnat/s-stopoo.adb
index a3eec3b..a9590d4 100644
--- a/gcc/ada/libgnat/s-stopoo.adb
+++ b/gcc/ada/libgnat/s-stopoo.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2009-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2009-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-stopoo.ads b/gcc/ada/libgnat/s-stopoo.ads
index 74dd8bb..b79a038f 100644
--- a/gcc/ada/libgnat/s-stopoo.ads
+++ b/gcc/ada/libgnat/s-stopoo.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -36,9 +36,9 @@
with Ada.Finalization;
with System.Storage_Elements;
-package System.Storage_Pools is
- pragma Preelaborate;
-
+package System.Storage_Pools
+ with Pure
+is
type Root_Storage_Pool is abstract
new Ada.Finalization.Limited_Controlled with private;
pragma Preelaborable_Initialization (Root_Storage_Pool);
diff --git a/gcc/ada/libgnat/s-stposu.adb b/gcc/ada/libgnat/s-stposu.adb
index 64d8aff..ff61cfb 100644
--- a/gcc/ada/libgnat/s-stposu.adb
+++ b/gcc/ada/libgnat/s-stposu.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2011-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2011-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -117,11 +117,12 @@ package body System.Storage_Pools.Subpools is
Is_Subpool_Allocation : constant Boolean :=
Pool in Root_Storage_Pool_With_Subpools'Class;
- Master : Finalization_Master_Ptr := null;
- N_Addr : Address;
- N_Ptr : FM_Node_Ptr;
- N_Size : Storage_Count;
- Subpool : Subpool_Handle := null;
+ Master : Finalization_Master_Ptr := null;
+ N_Addr : Address;
+ N_Ptr : FM_Node_Ptr;
+ N_Size : Storage_Count;
+ Subpool : Subpool_Handle := null;
+ Lock_Taken : Boolean := False;
Header_And_Padding : Storage_Offset;
-- This offset includes the size of a FM_Node plus any additional
@@ -205,6 +206,7 @@ package body System.Storage_Pools.Subpools is
-- Read - allocation, finalization
-- Write - finalization
+ Lock_Taken := True;
Lock_Task.all;
-- Do not allow the allocation of controlled objects while the
@@ -322,6 +324,7 @@ package body System.Storage_Pools.Subpools is
end if;
Unlock_Task.all;
+ Lock_Taken := False;
-- Non-controlled allocation
@@ -335,7 +338,7 @@ package body System.Storage_Pools.Subpools is
-- Unlock the task in case the allocation step failed and reraise the
-- exception.
- if Is_Controlled then
+ if Lock_Taken then
Unlock_Task.all;
end if;
diff --git a/gcc/ada/libgnat/s-stposu.ads b/gcc/ada/libgnat/s-stposu.ads
index ddb116c..2653f3d 100644
--- a/gcc/ada/libgnat/s-stposu.ads
+++ b/gcc/ada/libgnat/s-stposu.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2011-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2011-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -42,12 +42,14 @@ package System.Storage_Pools.Subpools is
type Root_Storage_Pool_With_Subpools is abstract
new Root_Storage_Pool with private;
+ pragma Preelaborable_Initialization (Root_Storage_Pool_With_Subpools);
-- The base for all implementations of Storage_Pool_With_Subpools. This
-- type is Limited_Controlled by derivation. To use subpools, an access
-- type must be associated with an implementation descending from type
-- Root_Storage_Pool_With_Subpools.
type Root_Subpool is abstract tagged limited private;
+ pragma Preelaborable_Initialization (Root_Subpool);
-- The base for all implementations of Subpool. Objects of this type are
-- managed by the pool_with_subpools.
diff --git a/gcc/ada/libgnat/s-stratt.adb b/gcc/ada/libgnat/s-stratt.adb
index d4a1516..366dabd 100644
--- a/gcc/ada/libgnat/s-stratt.adb
+++ b/gcc/ada/libgnat/s-stratt.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -32,9 +32,20 @@
with Ada.IO_Exceptions;
with Ada.Streams; use Ada.Streams;
with Ada.Unchecked_Conversion;
+with System.Stream_Attributes.XDR;
package body System.Stream_Attributes is
+ XDR_Flag : Integer;
+ pragma Import (C, XDR_Flag, "__gl_xdr_stream");
+ -- This imported value is used to determine whether the build had the
+ -- binder switch "-xdr" present which enables XDR streaming and sets this
+ -- flag to 1.
+
+ function XDR_Support return Boolean;
+ pragma Inline (XDR_Support);
+ -- Return True if XDR streaming should be used
+
Err : exception renames Ada.IO_Exceptions.End_Error;
-- Exception raised if insufficient data read (note that the RM implies
-- that Data_Error might be the appropriate choice, but AI95-00132
@@ -59,6 +70,7 @@ package body System.Stream_Attributes is
subtype S_C is SEA (1 .. (Character'Size + SU - 1) / SU);
subtype S_F is SEA (1 .. (Float'Size + SU - 1) / SU);
subtype S_I is SEA (1 .. (Integer'Size + SU - 1) / SU);
+ subtype S_I24 is SEA (1 .. (Integer_24'Size + SU - 1) / SU);
subtype S_LF is SEA (1 .. (Long_Float'Size + SU - 1) / SU);
subtype S_LI is SEA (1 .. (Long_Integer'Size + SU - 1) / SU);
subtype S_LLF is SEA (1 .. (Long_Long_Float'Size + SU - 1) / SU);
@@ -71,6 +83,7 @@ package body System.Stream_Attributes is
subtype S_SSU is SEA (1 .. (UST.Short_Short_Unsigned'Size + SU - 1) / SU);
subtype S_SU is SEA (1 .. (UST.Short_Unsigned'Size + SU - 1) / SU);
subtype S_U is SEA (1 .. (UST.Unsigned'Size + SU - 1) / SU);
+ subtype S_U24 is SEA (1 .. (Unsigned_24'Size + SU - 1) / SU);
subtype S_WC is SEA (1 .. (Wide_Character'Size + SU - 1) / SU);
subtype S_WWC is SEA (1 .. (Wide_Wide_Character'Size + SU - 1) / SU);
@@ -80,6 +93,7 @@ package body System.Stream_Attributes is
function From_AS is new UC (Thin_Pointer, S_AS);
function From_F is new UC (Float, S_F);
function From_I is new UC (Integer, S_I);
+ function From_I24 is new UC (Integer_24, S_I24);
function From_LF is new UC (Long_Float, S_LF);
function From_LI is new UC (Long_Integer, S_LI);
function From_LLF is new UC (Long_Long_Float, S_LLF);
@@ -92,6 +106,7 @@ package body System.Stream_Attributes is
function From_SSU is new UC (UST.Short_Short_Unsigned, S_SSU);
function From_SU is new UC (UST.Short_Unsigned, S_SU);
function From_U is new UC (UST.Unsigned, S_U);
+ function From_U24 is new UC (Unsigned_24, S_U24);
function From_WC is new UC (Wide_Character, S_WC);
function From_WWC is new UC (Wide_Wide_Character, S_WWC);
@@ -101,6 +116,7 @@ package body System.Stream_Attributes is
function To_AS is new UC (S_AS, Thin_Pointer);
function To_F is new UC (S_F, Float);
function To_I is new UC (S_I, Integer);
+ function To_I24 is new UC (S_I24, Integer_24);
function To_LF is new UC (S_LF, Long_Float);
function To_LI is new UC (S_LI, Long_Integer);
function To_LLF is new UC (S_LLF, Long_Long_Float);
@@ -113,16 +129,26 @@ package body System.Stream_Attributes is
function To_SSU is new UC (S_SSU, UST.Short_Short_Unsigned);
function To_SU is new UC (S_SU, UST.Short_Unsigned);
function To_U is new UC (S_U, UST.Unsigned);
+ function To_U24 is new UC (S_U24, Unsigned_24);
function To_WC is new UC (S_WC, Wide_Character);
function To_WWC is new UC (S_WWC, Wide_Wide_Character);
-----------------
+ -- XDR_Support --
+ -----------------
+
+ function XDR_Support return Boolean is
+ begin
+ return XDR_Flag = 1;
+ end XDR_Support;
+
+ -----------------
-- Block_IO_OK --
-----------------
function Block_IO_OK return Boolean is
begin
- return True;
+ return not XDR_Support;
end Block_IO_OK;
----------
@@ -134,6 +160,10 @@ package body System.Stream_Attributes is
L : SEO;
begin
+ if XDR_Support then
+ return XDR.I_AD (Stream);
+ end if;
+
Ada.Streams.Read (Stream.all, T, L);
if L < T'Last then
@@ -152,6 +182,10 @@ package body System.Stream_Attributes is
L : SEO;
begin
+ if XDR_Support then
+ return XDR.I_AS (Stream);
+ end if;
+
Ada.Streams.Read (Stream.all, T, L);
if L < T'Last then
@@ -170,6 +204,10 @@ package body System.Stream_Attributes is
L : SEO;
begin
+ if XDR_Support then
+ return XDR.I_B (Stream);
+ end if;
+
Ada.Streams.Read (Stream.all, T, L);
if L < T'Last then
@@ -188,6 +226,10 @@ package body System.Stream_Attributes is
L : SEO;
begin
+ if XDR_Support then
+ return XDR.I_C (Stream);
+ end if;
+
Ada.Streams.Read (Stream.all, T, L);
if L < T'Last then
@@ -206,6 +248,10 @@ package body System.Stream_Attributes is
L : SEO;
begin
+ if XDR_Support then
+ return XDR.I_F (Stream);
+ end if;
+
Ada.Streams.Read (Stream.all, T, L);
if L < T'Last then
@@ -224,6 +270,10 @@ package body System.Stream_Attributes is
L : SEO;
begin
+ if XDR_Support then
+ return XDR.I_I (Stream);
+ end if;
+
Ada.Streams.Read (Stream.all, T, L);
if L < T'Last then
@@ -233,6 +283,28 @@ package body System.Stream_Attributes is
end if;
end I_I;
+ -----------
+ -- I_I24 --
+ -----------
+
+ function I_I24 (Stream : not null access RST) return Integer_24 is
+ T : S_I24;
+ L : SEO;
+
+ begin
+ if XDR_Support then
+ return XDR.I_I24 (Stream);
+ end if;
+
+ Ada.Streams.Read (Stream.all, T, L);
+
+ if L < T'Last then
+ raise Err;
+ else
+ return To_I24 (T);
+ end if;
+ end I_I24;
+
----------
-- I_LF --
----------
@@ -242,6 +314,10 @@ package body System.Stream_Attributes is
L : SEO;
begin
+ if XDR_Support then
+ return XDR.I_LF (Stream);
+ end if;
+
Ada.Streams.Read (Stream.all, T, L);
if L < T'Last then
@@ -260,6 +336,10 @@ package body System.Stream_Attributes is
L : SEO;
begin
+ if XDR_Support then
+ return XDR.I_LI (Stream);
+ end if;
+
Ada.Streams.Read (Stream.all, T, L);
if L < T'Last then
@@ -278,6 +358,10 @@ package body System.Stream_Attributes is
L : SEO;
begin
+ if XDR_Support then
+ return XDR.I_LLF (Stream);
+ end if;
+
Ada.Streams.Read (Stream.all, T, L);
if L < T'Last then
@@ -296,6 +380,10 @@ package body System.Stream_Attributes is
L : SEO;
begin
+ if XDR_Support then
+ return XDR.I_LLI (Stream);
+ end if;
+
Ada.Streams.Read (Stream.all, T, L);
if L < T'Last then
@@ -316,6 +404,10 @@ package body System.Stream_Attributes is
L : SEO;
begin
+ if XDR_Support then
+ return XDR.I_LLU (Stream);
+ end if;
+
Ada.Streams.Read (Stream.all, T, L);
if L < T'Last then
@@ -334,6 +426,10 @@ package body System.Stream_Attributes is
L : SEO;
begin
+ if XDR_Support then
+ return XDR.I_LU (Stream);
+ end if;
+
Ada.Streams.Read (Stream.all, T, L);
if L < T'Last then
@@ -352,6 +448,10 @@ package body System.Stream_Attributes is
L : SEO;
begin
+ if XDR_Support then
+ return XDR.I_SF (Stream);
+ end if;
+
Ada.Streams.Read (Stream.all, T, L);
if L < T'Last then
@@ -370,6 +470,10 @@ package body System.Stream_Attributes is
L : SEO;
begin
+ if XDR_Support then
+ return XDR.I_SI (Stream);
+ end if;
+
Ada.Streams.Read (Stream.all, T, L);
if L < T'Last then
@@ -388,6 +492,10 @@ package body System.Stream_Attributes is
L : SEO;
begin
+ if XDR_Support then
+ return XDR.I_SSI (Stream);
+ end if;
+
Ada.Streams.Read (Stream.all, T, L);
if L < T'Last then
@@ -408,6 +516,10 @@ package body System.Stream_Attributes is
L : SEO;
begin
+ if XDR_Support then
+ return XDR.I_SSU (Stream);
+ end if;
+
Ada.Streams.Read (Stream.all, T, L);
if L < T'Last then
@@ -426,6 +538,10 @@ package body System.Stream_Attributes is
L : SEO;
begin
+ if XDR_Support then
+ return XDR.I_SU (Stream);
+ end if;
+
Ada.Streams.Read (Stream.all, T, L);
if L < T'Last then
@@ -444,6 +560,10 @@ package body System.Stream_Attributes is
L : SEO;
begin
+ if XDR_Support then
+ return XDR.I_U (Stream);
+ end if;
+
Ada.Streams.Read (Stream.all, T, L);
if L < T'Last then
@@ -453,6 +573,28 @@ package body System.Stream_Attributes is
end if;
end I_U;
+ -----------
+ -- I_U24 --
+ -----------
+
+ function I_U24 (Stream : not null access RST) return Unsigned_24 is
+ T : S_U24;
+ L : SEO;
+
+ begin
+ if XDR_Support then
+ return XDR.I_U24 (Stream);
+ end if;
+
+ Ada.Streams.Read (Stream.all, T, L);
+
+ if L < T'Last then
+ raise Err;
+ else
+ return To_U24 (T);
+ end if;
+ end I_U24;
+
----------
-- I_WC --
----------
@@ -462,6 +604,10 @@ package body System.Stream_Attributes is
L : SEO;
begin
+ if XDR_Support then
+ return XDR.I_WC (Stream);
+ end if;
+
Ada.Streams.Read (Stream.all, T, L);
if L < T'Last then
@@ -480,6 +626,10 @@ package body System.Stream_Attributes is
L : SEO;
begin
+ if XDR_Support then
+ return XDR.I_WWC (Stream);
+ end if;
+
Ada.Streams.Read (Stream.all, T, L);
if L < T'Last then
@@ -496,6 +646,11 @@ package body System.Stream_Attributes is
procedure W_AD (Stream : not null access RST; Item : Fat_Pointer) is
T : constant S_AD := From_AD (Item);
begin
+ if XDR_Support then
+ XDR.W_AD (Stream, Item);
+ return;
+ end if;
+
Ada.Streams.Write (Stream.all, T);
end W_AD;
@@ -506,6 +661,11 @@ package body System.Stream_Attributes is
procedure W_AS (Stream : not null access RST; Item : Thin_Pointer) is
T : constant S_AS := From_AS (Item);
begin
+ if XDR_Support then
+ XDR.W_AS (Stream, Item);
+ return;
+ end if;
+
Ada.Streams.Write (Stream.all, T);
end W_AS;
@@ -516,6 +676,11 @@ package body System.Stream_Attributes is
procedure W_B (Stream : not null access RST; Item : Boolean) is
T : S_B;
begin
+ if XDR_Support then
+ XDR.W_B (Stream, Item);
+ return;
+ end if;
+
T (1) := Boolean'Pos (Item);
Ada.Streams.Write (Stream.all, T);
end W_B;
@@ -527,6 +692,11 @@ package body System.Stream_Attributes is
procedure W_C (Stream : not null access RST; Item : Character) is
T : S_C;
begin
+ if XDR_Support then
+ XDR.W_C (Stream, Item);
+ return;
+ end if;
+
T (1) := Character'Pos (Item);
Ada.Streams.Write (Stream.all, T);
end W_C;
@@ -536,9 +706,13 @@ package body System.Stream_Attributes is
---------
procedure W_F (Stream : not null access RST; Item : Float) is
- T : constant S_F := From_F (Item);
begin
- Ada.Streams.Write (Stream.all, T);
+ if XDR_Support then
+ XDR.W_F (Stream, Item);
+ return;
+ end if;
+
+ Ada.Streams.Write (Stream.all, From_F (Item));
end W_F;
---------
@@ -546,19 +720,41 @@ package body System.Stream_Attributes is
---------
procedure W_I (Stream : not null access RST; Item : Integer) is
- T : constant S_I := From_I (Item);
begin
- Ada.Streams.Write (Stream.all, T);
+ if XDR_Support then
+ XDR.W_I (Stream, Item);
+ return;
+ end if;
+
+ Ada.Streams.Write (Stream.all, From_I (Item));
end W_I;
+ -----------
+ -- W_I24 --
+ -----------
+
+ procedure W_I24 (Stream : not null access RST; Item : Integer_24) is
+ begin
+ if XDR_Support then
+ XDR.W_I24 (Stream, Item);
+ return;
+ end if;
+
+ Ada.Streams.Write (Stream.all, From_I24 (Item));
+ end W_I24;
+
----------
-- W_LF --
----------
procedure W_LF (Stream : not null access RST; Item : Long_Float) is
- T : constant S_LF := From_LF (Item);
begin
- Ada.Streams.Write (Stream.all, T);
+ if XDR_Support then
+ XDR.W_LF (Stream, Item);
+ return;
+ end if;
+
+ Ada.Streams.Write (Stream.all, From_LF (Item));
end W_LF;
----------
@@ -566,9 +762,13 @@ package body System.Stream_Attributes is
----------
procedure W_LI (Stream : not null access RST; Item : Long_Integer) is
- T : constant S_LI := From_LI (Item);
begin
- Ada.Streams.Write (Stream.all, T);
+ if XDR_Support then
+ XDR.W_LI (Stream, Item);
+ return;
+ end if;
+
+ Ada.Streams.Write (Stream.all, From_LI (Item));
end W_LI;
-----------
@@ -576,21 +776,27 @@ package body System.Stream_Attributes is
-----------
procedure W_LLF (Stream : not null access RST; Item : Long_Long_Float) is
- T : constant S_LLF := From_LLF (Item);
begin
- Ada.Streams.Write (Stream.all, T);
+ if XDR_Support then
+ XDR.W_LLF (Stream, Item);
+ return;
+ end if;
+
+ Ada.Streams.Write (Stream.all, From_LLF (Item));
end W_LLF;
-----------
-- W_LLI --
-----------
- procedure W_LLI
- (Stream : not null access RST; Item : Long_Long_Integer)
- is
- T : constant S_LLI := From_LLI (Item);
+ procedure W_LLI (Stream : not null access RST; Item : Long_Long_Integer) is
begin
- Ada.Streams.Write (Stream.all, T);
+ if XDR_Support then
+ XDR.W_LLI (Stream, Item);
+ return;
+ end if;
+
+ Ada.Streams.Write (Stream.all, From_LLI (Item));
end W_LLI;
-----------
@@ -600,21 +806,27 @@ package body System.Stream_Attributes is
procedure W_LLU
(Stream : not null access RST; Item : UST.Long_Long_Unsigned)
is
- T : constant S_LLU := From_LLU (Item);
begin
- Ada.Streams.Write (Stream.all, T);
+ if XDR_Support then
+ XDR.W_LLU (Stream, Item);
+ return;
+ end if;
+
+ Ada.Streams.Write (Stream.all, From_LLU (Item));
end W_LLU;
----------
-- W_LU --
----------
- procedure W_LU
- (Stream : not null access RST; Item : UST.Long_Unsigned)
- is
- T : constant S_LU := From_LU (Item);
+ procedure W_LU (Stream : not null access RST; Item : UST.Long_Unsigned) is
begin
- Ada.Streams.Write (Stream.all, T);
+ if XDR_Support then
+ XDR.W_LU (Stream, Item);
+ return;
+ end if;
+
+ Ada.Streams.Write (Stream.all, From_LU (Item));
end W_LU;
----------
@@ -622,9 +834,13 @@ package body System.Stream_Attributes is
----------
procedure W_SF (Stream : not null access RST; Item : Short_Float) is
- T : constant S_SF := From_SF (Item);
begin
- Ada.Streams.Write (Stream.all, T);
+ if XDR_Support then
+ XDR.W_SF (Stream, Item);
+ return;
+ end if;
+
+ Ada.Streams.Write (Stream.all, From_SF (Item));
end W_SF;
----------
@@ -632,9 +848,13 @@ package body System.Stream_Attributes is
----------
procedure W_SI (Stream : not null access RST; Item : Short_Integer) is
- T : constant S_SI := From_SI (Item);
begin
- Ada.Streams.Write (Stream.all, T);
+ if XDR_Support then
+ XDR.W_SI (Stream, Item);
+ return;
+ end if;
+
+ Ada.Streams.Write (Stream.all, From_SI (Item));
end W_SI;
-----------
@@ -644,9 +864,13 @@ package body System.Stream_Attributes is
procedure W_SSI
(Stream : not null access RST; Item : Short_Short_Integer)
is
- T : constant S_SSI := From_SSI (Item);
begin
- Ada.Streams.Write (Stream.all, T);
+ if XDR_Support then
+ XDR.W_SSI (Stream, Item);
+ return;
+ end if;
+
+ Ada.Streams.Write (Stream.all, From_SSI (Item));
end W_SSI;
-----------
@@ -656,21 +880,27 @@ package body System.Stream_Attributes is
procedure W_SSU
(Stream : not null access RST; Item : UST.Short_Short_Unsigned)
is
- T : constant S_SSU := From_SSU (Item);
begin
- Ada.Streams.Write (Stream.all, T);
+ if XDR_Support then
+ XDR.W_SSU (Stream, Item);
+ return;
+ end if;
+
+ Ada.Streams.Write (Stream.all, From_SSU (Item));
end W_SSU;
----------
-- W_SU --
----------
- procedure W_SU
- (Stream : not null access RST; Item : UST.Short_Unsigned)
- is
- T : constant S_SU := From_SU (Item);
+ procedure W_SU (Stream : not null access RST; Item : UST.Short_Unsigned) is
begin
- Ada.Streams.Write (Stream.all, T);
+ if XDR_Support then
+ XDR.W_SU (Stream, Item);
+ return;
+ end if;
+
+ Ada.Streams.Write (Stream.all, From_SU (Item));
end W_SU;
---------
@@ -678,19 +908,41 @@ package body System.Stream_Attributes is
---------
procedure W_U (Stream : not null access RST; Item : UST.Unsigned) is
- T : constant S_U := From_U (Item);
begin
- Ada.Streams.Write (Stream.all, T);
+ if XDR_Support then
+ XDR.W_U (Stream, Item);
+ return;
+ end if;
+
+ Ada.Streams.Write (Stream.all, From_U (Item));
end W_U;
+ -----------
+ -- W_U24 --
+ -----------
+
+ procedure W_U24 (Stream : not null access RST; Item : Unsigned_24) is
+ begin
+ if XDR_Support then
+ XDR.W_U24 (Stream, Item);
+ return;
+ end if;
+
+ Ada.Streams.Write (Stream.all, From_U24 (Item));
+ end W_U24;
+
----------
-- W_WC --
----------
procedure W_WC (Stream : not null access RST; Item : Wide_Character) is
- T : constant S_WC := From_WC (Item);
begin
- Ada.Streams.Write (Stream.all, T);
+ if XDR_Support then
+ XDR.W_WC (Stream, Item);
+ return;
+ end if;
+
+ Ada.Streams.Write (Stream.all, From_WC (Item));
end W_WC;
-----------
@@ -700,9 +952,13 @@ package body System.Stream_Attributes is
procedure W_WWC
(Stream : not null access RST; Item : Wide_Wide_Character)
is
- T : constant S_WWC := From_WWC (Item);
begin
- Ada.Streams.Write (Stream.all, T);
+ if XDR_Support then
+ XDR.W_WWC (Stream, Item);
+ return;
+ end if;
+
+ Ada.Streams.Write (Stream.all, From_WWC (Item));
end W_WWC;
end System.Stream_Attributes;
diff --git a/gcc/ada/libgnat/s-stratt.ads b/gcc/ada/libgnat/s-stratt.ads
index e050bc1..c8c453a 100644
--- a/gcc/ada/libgnat/s-stratt.ads
+++ b/gcc/ada/libgnat/s-stratt.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -53,6 +53,12 @@ package System.Stream_Attributes is
subtype SEC is Ada.Streams.Stream_Element_Count;
+ type Integer_24 is range -2 ** 23 .. 2 ** 23 - 1;
+ for Integer_24'Size use 24;
+
+ type Unsigned_24 is mod 2 ** 24;
+ for Unsigned_24'Size use 24;
+
-- Enumeration types are usually transferred using the routine for the
-- corresponding integer. The exception is that special routines are
-- provided for Boolean and the character types, in case the protocol
@@ -104,6 +110,7 @@ package System.Stream_Attributes is
function I_C (Stream : not null access RST) return Character;
function I_F (Stream : not null access RST) return Float;
function I_I (Stream : not null access RST) return Integer;
+ function I_I24 (Stream : not null access RST) return Integer_24;
function I_LF (Stream : not null access RST) return Long_Float;
function I_LI (Stream : not null access RST) return Long_Integer;
function I_LLF (Stream : not null access RST) return Long_Long_Float;
@@ -117,6 +124,7 @@ package System.Stream_Attributes is
UST.Short_Short_Unsigned;
function I_SU (Stream : not null access RST) return UST.Short_Unsigned;
function I_U (Stream : not null access RST) return UST.Unsigned;
+ function I_U24 (Stream : not null access RST) return Unsigned_24;
function I_WC (Stream : not null access RST) return Wide_Character;
function I_WWC (Stream : not null access RST) return Wide_Wide_Character;
@@ -135,6 +143,7 @@ package System.Stream_Attributes is
procedure W_C (Stream : not null access RST; Item : Character);
procedure W_F (Stream : not null access RST; Item : Float);
procedure W_I (Stream : not null access RST; Item : Integer);
+ procedure W_I24 (Stream : not null access RST; Item : Integer_24);
procedure W_LF (Stream : not null access RST; Item : Long_Float);
procedure W_LI (Stream : not null access RST; Item : Long_Integer);
procedure W_LLF (Stream : not null access RST; Item : Long_Long_Float);
@@ -149,15 +158,13 @@ package System.Stream_Attributes is
UST.Short_Short_Unsigned);
procedure W_SU (Stream : not null access RST; Item : UST.Short_Unsigned);
procedure W_U (Stream : not null access RST; Item : UST.Unsigned);
+ procedure W_U24 (Stream : not null access RST; Item : Unsigned_24);
procedure W_WC (Stream : not null access RST; Item : Wide_Character);
procedure W_WWC (Stream : not null access RST; Item : Wide_Wide_Character);
function Block_IO_OK return Boolean;
- -- Package System.Stream_Attributes has several bodies - the default one
- -- distributed with GNAT, and s-stratt__xdr.adb, which is based on the XDR
- -- standard. Both bodies share the same spec. The role of this function is
- -- to indicate whether the current version of System.Stream_Attributes
- -- supports block IO. See System.Strings.Stream_Ops (s-ststop) for details.
+ -- Indicate whether the current setting supports block IO. See
+ -- System.Strings.Stream_Ops (s-ststop) for details on block IO.
private
pragma Inline (I_AD);
diff --git a/gcc/ada/libgnat/s-strcom.adb b/gcc/ada/libgnat/s-strcom.adb
index b39df66..e3167b4 100644
--- a/gcc/ada/libgnat/s-strcom.adb
+++ b/gcc/ada/libgnat/s-strcom.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2002-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2002-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-strcom.ads b/gcc/ada/libgnat/s-strcom.ads
index e6b6ad9..b77d442 100644
--- a/gcc/ada/libgnat/s-strcom.ads
+++ b/gcc/ada/libgnat/s-strcom.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2002-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2002-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-strhas.adb b/gcc/ada/libgnat/s-strhas.adb
index 92cdbf3..05c56ae 100644
--- a/gcc/ada/libgnat/s-strhas.adb
+++ b/gcc/ada/libgnat/s-strhas.adb
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2009-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2009-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-strhas.ads b/gcc/ada/libgnat/s-strhas.ads
index 19cddb5..07a5928 100644
--- a/gcc/ada/libgnat/s-strhas.ads
+++ b/gcc/ada/libgnat/s-strhas.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2009-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2009-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-string.adb b/gcc/ada/libgnat/s-string.adb
index 010e204..f26f8d6 100644
--- a/gcc/ada/libgnat/s-string.adb
+++ b/gcc/ada/libgnat/s-string.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1995-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1995-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-string.ads b/gcc/ada/libgnat/s-string.ads
index e70dafb..c93e4e62 100644
--- a/gcc/ada/libgnat/s-string.ads
+++ b/gcc/ada/libgnat/s-string.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1995-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1995-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-strops.adb b/gcc/ada/libgnat/s-strops.adb
index 75c655c..6458060 100644
--- a/gcc/ada/libgnat/s-strops.adb
+++ b/gcc/ada/libgnat/s-strops.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-strops.ads b/gcc/ada/libgnat/s-strops.ads
index 46970ab..9b6028a 100644
--- a/gcc/ada/libgnat/s-strops.ads
+++ b/gcc/ada/libgnat/s-strops.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-ststop.adb b/gcc/ada/libgnat/s-ststop.adb
index cf594b0..cc2a352 100644
--- a/gcc/ada/libgnat/s-ststop.adb
+++ b/gcc/ada/libgnat/s-ststop.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2008-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2008-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -216,21 +216,25 @@ package body System.Strings.Stream_Ops is
declare
-- Determine the size in BITS of the block necessary to contain
-- the whole string.
+ -- Since we are dealing with strings indexed by natural, there
+ -- is no risk of overflow when using a Long_Long_Integer.
- Block_Size : constant Natural :=
- Integer (Item'Last - Item'First + 1) * ET_Size;
+ Block_Size : constant Long_Long_Integer :=
+ Item'Length * Long_Long_Integer (ET_Size);
-- Item can be larger than what the default block can store,
- -- determine the number of whole reads necessary to read the
+ -- determine the number of whole writes necessary to output the
-- string.
- Blocks : constant Natural := Block_Size / Default_Block_Size;
+ Blocks : constant Natural :=
+ Natural (Block_Size / Long_Long_Integer (Default_Block_Size));
-- The size of Item may not be a multiple of the default block
- -- size, determine the size of the remaining chunk in BITS.
+ -- size, determine the size of the remaining chunk.
Rem_Size : constant Natural :=
- Block_Size mod Default_Block_Size;
+ Natural
+ (Block_Size mod Long_Long_Integer (Default_Block_Size));
-- String indexes
@@ -337,20 +341,25 @@ package body System.Strings.Stream_Ops is
declare
-- Determine the size in BITS of the block necessary to contain
-- the whole string.
+ -- Since we are dealing with strings indexed by natural, there
+ -- is no risk of overflow when using a Long_Long_Integer.
- Block_Size : constant Natural := Item'Length * ET_Size;
+ Block_Size : constant Long_Long_Integer :=
+ Item'Length * Long_Long_Integer (ET_Size);
-- Item can be larger than what the default block can store,
-- determine the number of whole writes necessary to output the
-- string.
- Blocks : constant Natural := Block_Size / Default_Block_Size;
+ Blocks : constant Natural :=
+ Natural (Block_Size / Long_Long_Integer (Default_Block_Size));
-- The size of Item may not be a multiple of the default block
-- size, determine the size of the remaining chunk.
Rem_Size : constant Natural :=
- Block_Size mod Default_Block_Size;
+ Natural
+ (Block_Size mod Long_Long_Integer (Default_Block_Size));
-- String indexes
diff --git a/gcc/ada/libgnat/s-ststop.ads b/gcc/ada/libgnat/s-ststop.ads
index 0e20b84..5f35fed 100644
--- a/gcc/ada/libgnat/s-ststop.ads
+++ b/gcc/ada/libgnat/s-ststop.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2009-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2009-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -53,15 +53,15 @@
-- or
-- String_Output_Blk_IO (Some_Stream, Some_String);
--- String_Output form is used if pragma Restrictions (No_String_Optimziations)
+-- String_Output form is used if pragma Restrictions (No_String_Optimizations)
-- is active, which requires element by element operations. The BLK_IO form
-- is used if this restriction is not set, allowing block optimization.
-- Note that if System.Stream_Attributes.Block_IO_OK is False, then the BLK_IO
-- form is treated as equivalent to the normal case, so that the optimization
-- is inhibited anyway, regardless of the setting of the restriction. This
--- handles versions of System.Stream_Attributes (in particular the XDR version
--- found in s-stratt-xdr) which do not permit block io optimization.
+-- handles the XDR implementation of System.Stream_Attributes in particular
+-- which does not permit block io optimization.
pragma Compiler_Unit_Warning;
diff --git a/gcc/ada/libgnat/s-tasloc.adb b/gcc/ada/libgnat/s-tasloc.adb
index 1ebb62c..17fc3ce 100644
--- a/gcc/ada/libgnat/s-tasloc.adb
+++ b/gcc/ada/libgnat/s-tasloc.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1997-2019, AdaCore --
+-- Copyright (C) 1997-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-tasloc.ads b/gcc/ada/libgnat/s-tasloc.ads
index 538c857..1820107 100644
--- a/gcc/ada/libgnat/s-tasloc.ads
+++ b/gcc/ada/libgnat/s-tasloc.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1998-2019, AdaCore --
+-- Copyright (C) 1998-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-thread.ads b/gcc/ada/libgnat/s-thread.ads
index ace45d7..a13e806 100644
--- a/gcc/ada/libgnat/s-thread.ads
+++ b/gcc/ada/libgnat/s-thread.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-thread__ae653.adb b/gcc/ada/libgnat/s-thread__ae653.adb
index 240483c..fcf1304 100644
--- a/gcc/ada/libgnat/s-thread__ae653.adb
+++ b/gcc/ada/libgnat/s-thread__ae653.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -36,6 +36,7 @@ pragma Restrictions (No_Tasking);
-- which do not use Ada tasking. This restriction ensures that this
-- will be checked by the binder.
+with System.Storage_Elements; use System.Storage_Elements;
with System.OS_Versions; use System.OS_Versions;
package body System.Threads is
@@ -44,14 +45,16 @@ package body System.Threads is
package SSL renames System.Soft_Links;
- Current_ATSD : aliased System.Address := System.Null_Address;
- pragma Export (C, Current_ATSD, "__gnat_current_atsd");
-
Main_ATSD : aliased ATSD;
-- TSD for environment task
- Stack_Limit : Address;
+ Current_ATSD : aliased System.Address := System.Null_Address;
+ pragma Thread_Local_Storage (Current_ATSD);
+ -- pragma TLS needed since TaskVarAdd no longer available
+ -- Assume guard pages for Helix APEX partitions, but leave
+ -- checking mechanism in for now, in case of surprises. ???
+ Stack_Limit : Address;
pragma Import (C, Stack_Limit, "__gnat_stack_limit");
type Set_Stack_Limit_Proc_Acc is access procedure;
@@ -62,11 +65,10 @@ package body System.Threads is
-- Procedure to be called when a task is created to set stack limit if
-- limit checking is used.
- --------------------------
- -- VxWorks specific API --
- --------------------------
+ -- VxWorks specific API
ERROR : constant STATUS := Interfaces.C.int (-1);
+ OK : constant STATUS := Interfaces.C.int (0);
function taskIdVerify (tid : t_id) return STATUS;
pragma Import (C, taskIdVerify, "taskIdVerify");
@@ -74,10 +76,6 @@ package body System.Threads is
function taskIdSelf return t_id;
pragma Import (C, taskIdSelf, "taskIdSelf");
- function taskVarAdd
- (tid : t_id; pVar : System.Address) return int;
- pragma Import (C, taskVarAdd, "taskVarAdd");
-
-----------------------
-- Local Subprograms --
-----------------------
@@ -102,21 +100,18 @@ package body System.Threads is
(Sec_Stack_Ptr : SST.SS_Stack_Ptr;
Process_ATSD_Address : System.Address)
is
- -- Current_ATSD must already be a taskVar of taskIdSelf.
- -- No assertion because taskVarGet is not available on VxWorks/CERT,
- -- which is used on VxWorks 653 3.x as a guest OS.
- TSD : constant ATSD_Access := From_Address (Process_ATSD_Address);
+ ATSD : constant ATSD_Access := From_Address (Process_ATSD_Address);
begin
- TSD.Sec_Stack_Ptr := Sec_Stack_Ptr;
- SST.SS_Init (TSD.Sec_Stack_Ptr);
+ ATSD.Sec_Stack_Ptr := Sec_Stack_Ptr;
+ SST.SS_Init (ATSD.Sec_Stack_Ptr);
Current_ATSD := Process_ATSD_Address;
-
Install_Handler;
- -- Initialize stack limit if needed
+ -- Assume guard pages for Helix/Vx7, but leave in for now ???
+ -- Initialize stack limit if needed.
if Current_ATSD /= Main_ATSD'Address
and then Set_Stack_Limit_Hook /= null
@@ -184,24 +179,16 @@ package body System.Threads is
--------------
function Register (T : Thread_Id) return STATUS is
- Result : STATUS;
-
begin
-- It cannot be assumed that the caller of this routine has a ATSD;
-- so neither this procedure nor the procedures that it calls should
-- raise or handle exceptions, or make use of a secondary stack.
- -- This routine is only necessary because taskVarAdd cannot be
- -- executed once an VxWorks 653 partition has entered normal mode
- -- (depending on configRecord.c, allocation could be disabled).
- -- Otherwise, everything could have been done in Thread_Body_Enter.
-
if taskIdVerify (T) = ERROR then
return ERROR;
end if;
- Result := taskVarAdd (T, Current_ATSD'Address);
- pragma Assert (Result /= ERROR);
+ Current_ATSD := To_Address (Integer_Address (T));
-- The same issue applies to the task variable that contains the stack
-- limit when that overflow checking mechanism is used instead of
@@ -211,17 +198,15 @@ package body System.Threads is
-- System.Stack_Check_Limits = True.
pragma Warnings (Off);
+
-- OS is a constant
- if Result /= ERROR
- and then OS /= VxWorks_653
- and then Set_Stack_Limit_Hook /= null
- then
- Result := taskVarAdd (T, Stack_Limit'Address);
- pragma Assert (Result /= ERROR);
+ if OS /= VxWorks_653 and then Set_Stack_Limit_Hook /= null then
+ -- Check that this is correct if limit checking left in. ???
+ Stack_Limit := To_Address (Integer_Address (T));
end if;
pragma Warnings (On);
- return Result;
+ return OK;
end Register;
-------------------
diff --git a/gcc/ada/libgnat/s-traceb.adb b/gcc/ada/libgnat/s-traceb.adb
index bba3494..b2cb6d8 100644
--- a/gcc/ada/libgnat/s-traceb.adb
+++ b/gcc/ada/libgnat/s-traceb.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1999-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1999-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-traceb.ads b/gcc/ada/libgnat/s-traceb.ads
index c5fe36a..1c3151c 100644
--- a/gcc/ada/libgnat/s-traceb.ads
+++ b/gcc/ada/libgnat/s-traceb.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1999-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1999-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-traceb__hpux.adb b/gcc/ada/libgnat/s-traceb__hpux.adb
index 64ac58d..2d6b715 100644
--- a/gcc/ada/libgnat/s-traceb__hpux.adb
+++ b/gcc/ada/libgnat/s-traceb__hpux.adb
@@ -7,7 +7,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2009-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2009-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-traceb__mastop.adb b/gcc/ada/libgnat/s-traceb__mastop.adb
index 82ba677..e24ec1b 100644
--- a/gcc/ada/libgnat/s-traceb__mastop.adb
+++ b/gcc/ada/libgnat/s-traceb__mastop.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1999-2019, AdaCore --
+-- Copyright (C) 1999-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-traent.adb b/gcc/ada/libgnat/s-traent.adb
index f7b468f..950b0e5 100644
--- a/gcc/ada/libgnat/s-traent.adb
+++ b/gcc/ada/libgnat/s-traent.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2003-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2003-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-traent.ads b/gcc/ada/libgnat/s-traent.ads
index 9d33be7..fa2db4e 100644
--- a/gcc/ada/libgnat/s-traent.ads
+++ b/gcc/ada/libgnat/s-traent.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2003-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2003-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/s-trasym.adb b/gcc/ada/libgnat/s-trasym.adb
index b3b1e7c..0d6639f 100644
--- a/gcc/ada/libgnat/s-trasym.adb
+++ b/gcc/ada/libgnat/s-trasym.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1999-2019, AdaCore --
+-- Copyright (C) 1999-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-trasym.ads b/gcc/ada/libgnat/s-trasym.ads
index 5839f23..f0240cd 100644
--- a/gcc/ada/libgnat/s-trasym.ads
+++ b/gcc/ada/libgnat/s-trasym.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1999-2019, AdaCore --
+-- Copyright (C) 1999-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-trasym__dwarf.adb b/gcc/ada/libgnat/s-trasym__dwarf.adb
index b116a10..d8e3956 100644
--- a/gcc/ada/libgnat/s-trasym__dwarf.adb
+++ b/gcc/ada/libgnat/s-trasym__dwarf.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1999-2019, AdaCore --
+-- Copyright (C) 1999-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -438,7 +438,7 @@ package body System.Traceback.Symbolic is
Suppress_Hex : Boolean;
Res : in out Bounded_String)
is
- Success : Boolean := False;
+ Success : Boolean;
begin
if Symbolic.Module_Name.Is_Supported then
Append (Res, '[');
diff --git a/gcc/ada/libgnat/s-tsmona.adb b/gcc/ada/libgnat/s-tsmona.adb
index d7271d3..64db59a 100644
--- a/gcc/ada/libgnat/s-tsmona.adb
+++ b/gcc/ada/libgnat/s-tsmona.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2012-2019, AdaCore --
+-- Copyright (C) 2012-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-tsmona__linux.adb b/gcc/ada/libgnat/s-tsmona__linux.adb
index bc3ee23..98c9992 100644
--- a/gcc/ada/libgnat/s-tsmona__linux.adb
+++ b/gcc/ada/libgnat/s-tsmona__linux.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2012-2019, AdaCore --
+-- Copyright (C) 2012-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-tsmona__mingw.adb b/gcc/ada/libgnat/s-tsmona__mingw.adb
index c81a01d..b79a3fc 100644
--- a/gcc/ada/libgnat/s-tsmona__mingw.adb
+++ b/gcc/ada/libgnat/s-tsmona__mingw.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2012-2019, AdaCore --
+-- Copyright (C) 2012-2020, AdaCore --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-unstyp.ads b/gcc/ada/libgnat/s-unstyp.ads
index 08480b4..0f6c73c 100644
--- a/gcc/ada/libgnat/s-unstyp.ads
+++ b/gcc/ada/libgnat/s-unstyp.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -51,8 +51,8 @@ package System.Unsigned_Types is
-- Used in the implementation of Is_Negative intrinsic (see Exp_Intr)
type Packed_Byte is mod 2 ** 8;
- pragma Universal_Aliasing (Packed_Byte);
for Packed_Byte'Size use 8;
+ pragma Universal_Aliasing (Packed_Byte);
-- Component type for Packed_Bytes1, Packed_Bytes2 and Packed_Byte4 arrays.
-- As this type is used by the compiler to implement operations on user
-- packed array, it needs to be able to alias any type.
@@ -89,6 +89,24 @@ package System.Unsigned_Types is
-- cases the clusters can be assumed to be 4-byte aligned if the array
-- is aligned (see System.Pack_12 in file s-pack12 as an example).
+ type Rev_Packed_Bytes1 is new Packed_Bytes1;
+ pragma Suppress_Initialization (Rev_Packed_Bytes1);
+ -- This is equivalent to Packed_Bytes1, but for packed arrays with reverse
+ -- scalar storage order. But the Scalar_Storage_Order attribute cannot be
+ -- set directly here, see Exp_Pakd for more details.
+
+ type Rev_Packed_Bytes2 is new Packed_Bytes2;
+ pragma Suppress_Initialization (Rev_Packed_Bytes2);
+ -- This is equivalent to Packed_Bytes2, but for packed arrays with reverse
+ -- scalar storage order. But the Scalar_Storage_Order attribute cannot be
+ -- set directly here, see Exp_Pakd for more details.
+
+ type Rev_Packed_Bytes4 is new Packed_Bytes4;
+ pragma Suppress_Initialization (Rev_Packed_Bytes4);
+ -- This is equivalent to Packed_Bytes4, but for packed arrays with reverse
+ -- scalar storage order. But the Scalar_Storage_Order attribute cannot be
+ -- set directly here, see Exp_Pakd for more details.
+
type Bits_1 is mod 2**1;
type Bits_2 is mod 2**2;
type Bits_4 is mod 2**4;
diff --git a/gcc/ada/libgnat/s-utf_32.adb b/gcc/ada/libgnat/s-utf_32.adb
index 1c412da..a1346f3 100644
--- a/gcc/ada/libgnat/s-utf_32.adb
+++ b/gcc/ada/libgnat/s-utf_32.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2005-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2005-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -49,7 +49,7 @@ package body System.UTF_32 is
----------------------
-- Note these tables are derived from those given in AI-285. For details
- -- see //www.ada-auth.org/cgi-bin/cvsweb.cgi/AIs/AI-00285.TXT?rev=1.22.
+ -- see www.ada-auth.org/cgi-bin/cvsweb.cgi/AIs/AI-00285.TXT?rev=1.22.
type UTF_32_Range is record
Lo : UTF_32;
@@ -6071,9 +6071,6 @@ package body System.UTF_32 is
40, -- DESERET CAPITAL LETTER LONG I .. DESERET CAPITAL LETTER EW
32); -- TAG LATIN CAPITAL LETTER A .. TAG LATIN CAPITAL LETTER Z
- pragma Warnings (On);
- -- Temporary until pragma Warnings at start can be activated ???
-
-- The following is a list of the 10646 names for CAPITAL LETTER entries
-- that have no matching SMALL LETTER entry and are thus not folded
@@ -6117,10 +6114,6161 @@ package body System.UTF_32 is
-- GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI
-- GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI
+ -- The following array includes all characters in the Unicode table with
+ -- the category NFKC_Quick_Check=No, taken from
+ -- www.unicode.org/Public/UCD/latest/ucd/DerivedNormalizationProps.txt
+
+ UTF_32_NFKC_QC_No : constant UTF_32_Ranges := (
+ (16#00A0#, 16#00A0#), -- NO-BREAK SPACE
+ (16#00A8#, 16#00A8#), -- DIAERESIS
+ (16#00AA#, 16#00AA#), -- FEMININE ORDINAL INDICATOR
+ (16#00AF#, 16#00AF#), -- MACRON
+ (16#00B2#, 16#00B3#), -- SUPERSCRIPT TWO..SUPERSCRIPT THREE
+ (16#00B4#, 16#00B4#), -- ACUTE ACCENT
+ (16#00B5#, 16#00B5#), -- MICRO SIGN
+ (16#00B8#, 16#00B8#), -- CEDILLA
+ (16#00B9#, 16#00B9#), -- SUPERSCRIPT ONE
+ (16#00BA#, 16#00BA#), -- MASCULINE ORDINAL INDICATOR
+ (16#00BC#, 16#00BE#), -- VULGAR FRACTION ONE QUARTER..VULGAR FRACTION THREE QUARTERS
+ (16#0132#, 16#0133#), -- LATIN CAPITAL LIGATURE IJ..LATIN SMALL LIGATURE IJ
+ (16#013F#, 16#0140#), -- LATIN CAPITAL LETTER L WITH MIDDLE DOT..LATIN SMALL LETTER L WITH MIDDLE DOT
+ (16#0149#, 16#0149#), -- LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
+ (16#017F#, 16#017F#), -- LATIN SMALL LETTER LONG S
+ (16#01C4#, 16#01CC#), -- LATIN CAPITAL LETTER DZ WITH CARON..LATIN SMALL LETTER NJ
+ (16#01F1#, 16#01F3#), -- LATIN CAPITAL LETTER DZ..LATIN SMALL LETTER DZ
+ (16#02B0#, 16#02B8#), -- MODIFIER LETTER SMALL H..MODIFIER LETTER SMALL Y
+ (16#02D8#, 16#02DD#), -- BREVE..DOUBLE ACUTE ACCENT
+ (16#02E0#, 16#02E4#), -- MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP
+ (16#0340#, 16#0341#), -- COMBINING GRAVE TONE MARK..COMBINING ACUTE TONE MARK
+ (16#0343#, 16#0344#), -- COMBINING GREEK KORONIS..COMBINING GREEK DIALYTIKA TONOS
+ (16#0374#, 16#0374#), -- GREEK NUMERAL SIGN
+ (16#037A#, 16#037A#), -- GREEK YPOGEGRAMMENI
+ (16#037E#, 16#037E#), -- GREEK QUESTION MARK
+ (16#0384#, 16#0385#), -- GREEK TONOS..GREEK DIALYTIKA TONOS
+ (16#0387#, 16#0387#), -- GREEK ANO TELEIA
+ (16#03D0#, 16#03D6#), -- GREEK BETA SYMBOL..GREEK PI SYMBOL
+ (16#03F0#, 16#03F2#), -- GREEK KAPPA SYMBOL..GREEK LUNATE SIGMA SYMBOL
+ (16#03F4#, 16#03F5#), -- GREEK CAPITAL THETA SYMBOL..GREEK LUNATE EPSILON SYMBOL
+ (16#03F9#, 16#03F9#), -- GREEK CAPITAL LUNATE SIGMA SYMBOL
+ (16#0587#, 16#0587#), -- ARMENIAN SMALL LIGATURE ECH YIWN
+ (16#0675#, 16#0678#), -- ARABIC LETTER HIGH HAMZA ALEF..ARABIC LETTER HIGH HAMZA YEH
+ (16#0958#, 16#095F#), -- DEVANAGARI LETTER QA..DEVANAGARI LETTER YYA
+ (16#09DC#, 16#09DD#), -- BENGALI LETTER RRA..BENGALI LETTER RHA
+ (16#09DF#, 16#09DF#), -- BENGALI LETTER YYA
+ (16#0A33#, 16#0A33#), -- GURMUKHI LETTER LLA
+ (16#0A36#, 16#0A36#), -- GURMUKHI LETTER SHA
+ (16#0A59#, 16#0A5B#), -- GURMUKHI LETTER KHHA..GURMUKHI LETTER ZA
+ (16#0A5E#, 16#0A5E#), -- GURMUKHI LETTER FA
+ (16#0B5C#, 16#0B5D#), -- ORIYA LETTER RRA..ORIYA LETTER RHA
+ (16#0E33#, 16#0E33#), -- THAI CHARACTER SARA AM
+ (16#0EB3#, 16#0EB3#), -- LAO VOWEL SIGN AM
+ (16#0EDC#, 16#0EDD#), -- LAO HO NO..LAO HO MO
+ (16#0F0C#, 16#0F0C#), -- TIBETAN MARK DELIMITER TSHEG BSTAR
+ (16#0F43#, 16#0F43#), -- TIBETAN LETTER GHA
+ (16#0F4D#, 16#0F4D#), -- TIBETAN LETTER DDHA
+ (16#0F52#, 16#0F52#), -- TIBETAN LETTER DHA
+ (16#0F57#, 16#0F57#), -- TIBETAN LETTER BHA
+ (16#0F5C#, 16#0F5C#), -- TIBETAN LETTER DZHA
+ (16#0F69#, 16#0F69#), -- TIBETAN LETTER KSSA
+ (16#0F73#, 16#0F73#), -- TIBETAN VOWEL SIGN II
+ (16#0F75#, 16#0F79#), -- TIBETAN VOWEL SIGN UU..TIBETAN VOWEL SIGN VOCALIC LL
+ (16#0F81#, 16#0F81#), -- TIBETAN VOWEL SIGN REVERSED II
+ (16#0F93#, 16#0F93#), -- TIBETAN SUBJOINED LETTER GHA
+ (16#0F9D#, 16#0F9D#), -- TIBETAN SUBJOINED LETTER DDHA
+ (16#0FA2#, 16#0FA2#), -- TIBETAN SUBJOINED LETTER DHA
+ (16#0FA7#, 16#0FA7#), -- TIBETAN SUBJOINED LETTER BHA
+ (16#0FAC#, 16#0FAC#), -- TIBETAN SUBJOINED LETTER DZHA
+ (16#0FB9#, 16#0FB9#), -- TIBETAN SUBJOINED LETTER KSSA
+ (16#10FC#, 16#10FC#), -- MODIFIER LETTER GEORGIAN NAR
+ (16#1D2C#, 16#1D2E#), -- MODIFIER LETTER CAPITAL A..MODIFIER LETTER CAPITAL B
+ (16#1D30#, 16#1D3A#), -- MODIFIER LETTER CAPITAL D..MODIFIER LETTER CAPITAL N
+ (16#1D3C#, 16#1D4D#), -- MODIFIER LETTER CAPITAL O..MODIFIER LETTER SMALL G
+ (16#1D4F#, 16#1D6A#), -- MODIFIER LETTER SMALL K..GREEK SUBSCRIPT SMALL LETTER CHI
+ (16#1D78#, 16#1D78#), -- MODIFIER LETTER CYRILLIC EN
+ (16#1D9B#, 16#1DBF#), -- MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA
+ (16#1E9A#, 16#1E9B#), -- LATIN SMALL LETTER A WITH RIGHT HALF RING..LATIN SMALL LETTER LONG S WITH DOT ABOVE
+ (16#1F71#, 16#1F71#), -- GREEK SMALL LETTER ALPHA WITH OXIA
+ (16#1F73#, 16#1F73#), -- GREEK SMALL LETTER EPSILON WITH OXIA
+ (16#1F75#, 16#1F75#), -- GREEK SMALL LETTER ETA WITH OXIA
+ (16#1F77#, 16#1F77#), -- GREEK SMALL LETTER IOTA WITH OXIA
+ (16#1F79#, 16#1F79#), -- GREEK SMALL LETTER OMICRON WITH OXIA
+ (16#1F7B#, 16#1F7B#), -- GREEK SMALL LETTER UPSILON WITH OXIA
+ (16#1F7D#, 16#1F7D#), -- GREEK SMALL LETTER OMEGA WITH OXIA
+ (16#1FBB#, 16#1FBB#), -- GREEK CAPITAL LETTER ALPHA WITH OXIA
+ (16#1FBD#, 16#1FBD#), -- GREEK KORONIS
+ (16#1FBE#, 16#1FBE#), -- GREEK PROSGEGRAMMENI
+ (16#1FBF#, 16#1FC1#), -- GREEK PSILI..GREEK DIALYTIKA AND PERISPOMENI
+ (16#1FC9#, 16#1FC9#), -- GREEK CAPITAL LETTER EPSILON WITH OXIA
+ (16#1FCB#, 16#1FCB#), -- GREEK CAPITAL LETTER ETA WITH OXIA
+ (16#1FCD#, 16#1FCF#), -- GREEK PSILI AND VARIA..GREEK PSILI AND PERISPOMENI
+ (16#1FD3#, 16#1FD3#), -- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
+ (16#1FDB#, 16#1FDB#), -- GREEK CAPITAL LETTER IOTA WITH OXIA
+ (16#1FDD#, 16#1FDF#), -- GREEK DASIA AND VARIA..GREEK DASIA AND PERISPOMENI
+ (16#1FE3#, 16#1FE3#), -- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA
+ (16#1FEB#, 16#1FEB#), -- GREEK CAPITAL LETTER UPSILON WITH OXIA
+ (16#1FED#, 16#1FEF#), -- GREEK DIALYTIKA AND VARIA..GREEK VARIA
+ (16#1FF9#, 16#1FF9#), -- GREEK CAPITAL LETTER OMICRON WITH OXIA
+ (16#1FFB#, 16#1FFB#), -- GREEK CAPITAL LETTER OMEGA WITH OXIA
+ (16#1FFD#, 16#1FFE#), -- GREEK OXIA..GREEK DASIA
+ (16#2000#, 16#200A#), -- EN QUAD..HAIR SPACE
+ (16#2011#, 16#2011#), -- NON-BREAKING HYPHEN
+ (16#2017#, 16#2017#), -- DOUBLE LOW LINE
+ (16#2024#, 16#2026#), -- ONE DOT LEADER..HORIZONTAL ELLIPSIS
+ (16#202F#, 16#202F#), -- NARROW NO-BREAK SPACE
+ (16#2033#, 16#2034#), -- DOUBLE PRIME..TRIPLE PRIME
+ (16#2036#, 16#2037#), -- REVERSED DOUBLE PRIME..REVERSED TRIPLE PRIME
+ (16#203C#, 16#203C#), -- DOUBLE EXCLAMATION MARK
+ (16#203E#, 16#203E#), -- OVERLINE
+ (16#2047#, 16#2049#), -- DOUBLE QUESTION MARK..EXCLAMATION QUESTION MARK
+ (16#2057#, 16#2057#), -- QUADRUPLE PRIME
+ (16#205F#, 16#205F#), -- MEDIUM MATHEMATICAL SPACE
+ (16#2070#, 16#2070#), -- SUPERSCRIPT ZERO
+ (16#2071#, 16#2071#), -- SUPERSCRIPT LATIN SMALL LETTER I
+ (16#2074#, 16#2079#), -- SUPERSCRIPT FOUR..SUPERSCRIPT NINE
+ (16#207A#, 16#207C#), -- SUPERSCRIPT PLUS SIGN..SUPERSCRIPT EQUALS SIGN
+ (16#207D#, 16#207D#), -- SUPERSCRIPT LEFT PARENTHESIS
+ (16#207E#, 16#207E#), -- SUPERSCRIPT RIGHT PARENTHESIS
+ (16#207F#, 16#207F#), -- SUPERSCRIPT LATIN SMALL LETTER N
+ (16#2080#, 16#2089#), -- SUBSCRIPT ZERO..SUBSCRIPT NINE
+ (16#208A#, 16#208C#), -- SUBSCRIPT PLUS SIGN..SUBSCRIPT EQUALS SIGN
+ (16#208D#, 16#208D#), -- SUBSCRIPT LEFT PARENTHESIS
+ (16#208E#, 16#208E#), -- SUBSCRIPT RIGHT PARENTHESIS
+ (16#2090#, 16#209C#), -- LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER T
+ (16#20A8#, 16#20A8#), -- RUPEE SIGN
+ (16#2100#, 16#2101#), -- ACCOUNT OF..ADDRESSED TO THE SUBJECT
+ (16#2102#, 16#2102#), -- DOUBLE-STRUCK CAPITAL C
+ (16#2103#, 16#2103#), -- DEGREE CELSIUS
+ (16#2105#, 16#2106#), -- CARE OF..CADA UNA
+ (16#2107#, 16#2107#), -- EULER CONSTANT
+ (16#2109#, 16#2109#), -- DEGREE FAHRENHEIT
+ (16#210A#, 16#2113#), -- SCRIPT SMALL G..SCRIPT SMALL L
+ (16#2115#, 16#2115#), -- DOUBLE-STRUCK CAPITAL N
+ (16#2116#, 16#2116#), -- NUMERO SIGN
+ (16#2119#, 16#211D#), -- DOUBLE-STRUCK CAPITAL P..DOUBLE-STRUCK CAPITAL R
+ (16#2120#, 16#2122#), -- SERVICE MARK..TRADE MARK SIGN
+ (16#2124#, 16#2124#), -- DOUBLE-STRUCK CAPITAL Z
+ (16#2126#, 16#2126#), -- OHM SIGN
+ (16#2128#, 16#2128#), -- BLACK-LETTER CAPITAL Z
+ (16#212A#, 16#212D#), -- KELVIN SIGN..BLACK-LETTER CAPITAL C
+ (16#212F#, 16#2131#), -- SCRIPT SMALL E..SCRIPT CAPITAL F
+ (16#2133#, 16#2134#), -- SCRIPT CAPITAL M..SCRIPT SMALL O
+ (16#2135#, 16#2138#), -- ALEF SYMBOL..DALET SYMBOL
+ (16#2139#, 16#2139#), -- INFORMATION SOURCE
+ (16#213B#, 16#213B#), -- FACSIMILE SIGN
+ (16#213C#, 16#213F#), -- DOUBLE-STRUCK SMALL PI..DOUBLE-STRUCK CAPITAL PI
+ (16#2140#, 16#2140#), -- DOUBLE-STRUCK N-ARY SUMMATION
+ (16#2145#, 16#2149#), -- DOUBLE-STRUCK ITALIC CAPITAL D..DOUBLE-STRUCK ITALIC SMALL J
+ (16#2150#, 16#215F#), -- VULGAR FRACTION ONE SEVENTH..FRACTION NUMERATOR ONE
+ (16#2160#, 16#217F#), -- ROMAN NUMERAL ONE..SMALL ROMAN NUMERAL ONE THOUSAND
+ (16#2189#, 16#2189#), -- VULGAR FRACTION ZERO THIRDS
+ (16#222C#, 16#222D#), -- DOUBLE INTEGRAL..TRIPLE INTEGRAL
+ (16#222F#, 16#2230#), -- SURFACE INTEGRAL..VOLUME INTEGRAL
+ (16#2329#, 16#2329#), -- LEFT-POINTING ANGLE BRACKET
+ (16#232A#, 16#232A#), -- RIGHT-POINTING ANGLE BRACKET
+ (16#2460#, 16#249B#), -- CIRCLED DIGIT ONE..NUMBER TWENTY FULL STOP
+ (16#249C#, 16#24E9#), -- PARENTHESIZED LATIN SMALL LETTER A..CIRCLED LATIN SMALL LETTER Z
+ (16#24EA#, 16#24EA#), -- CIRCLED DIGIT ZERO
+ (16#2A0C#, 16#2A0C#), -- QUADRUPLE INTEGRAL OPERATOR
+ (16#2A74#, 16#2A76#), -- DOUBLE COLON EQUAL..THREE CONSECUTIVE EQUALS SIGNS
+ (16#2ADC#, 16#2ADC#), -- FORKING
+ (16#2C7C#, 16#2C7D#), -- LATIN SUBSCRIPT SMALL LETTER J..MODIFIER LETTER CAPITAL V
+ (16#2D6F#, 16#2D6F#), -- TIFINAGH MODIFIER LETTER LABIALIZATION MARK
+ (16#2E9F#, 16#2E9F#), -- CJK RADICAL MOTHER
+ (16#2EF3#, 16#2EF3#), -- CJK RADICAL C-SIMPLIFIED TURTLE
+ (16#2F00#, 16#2FD5#), -- KANGXI RADICAL ONE..KANGXI RADICAL FLUTE
+ (16#3000#, 16#3000#), -- IDEOGRAPHIC SPACE
+ (16#3036#, 16#3036#), -- CIRCLED POSTAL MARK
+ (16#3038#, 16#303A#), -- HANGZHOU NUMERAL TEN..HANGZHOU NUMERAL THIRTY
+ (16#309B#, 16#309C#), -- KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
+ (16#309F#, 16#309F#), -- HIRAGANA DIGRAPH YORI
+ (16#30FF#, 16#30FF#), -- KATAKANA DIGRAPH KOTO
+ (16#3131#, 16#318E#), -- HANGUL LETTER KIYEOK..HANGUL LETTER ARAEAE
+ (16#3192#, 16#3195#), -- IDEOGRAPHIC ANNOTATION ONE MARK..IDEOGRAPHIC ANNOTATION FOUR MARK
+ (16#3196#, 16#319F#), -- IDEOGRAPHIC ANNOTATION TOP MARK..IDEOGRAPHIC ANNOTATION MAN MARK
+ (16#3200#, 16#321E#), -- PARENTHESIZED HANGUL KIYEOK..PARENTHESIZED KOREAN CHARACTER O HU
+ (16#3220#, 16#3229#), -- PARENTHESIZED IDEOGRAPH ONE..PARENTHESIZED IDEOGRAPH TEN
+ (16#322A#, 16#3247#), -- PARENTHESIZED IDEOGRAPH MOON..CIRCLED IDEOGRAPH KOTO
+ (16#3250#, 16#3250#), -- PARTNERSHIP SIGN
+ (16#3251#, 16#325F#), -- CIRCLED NUMBER TWENTY ONE..CIRCLED NUMBER THIRTY FIVE
+ (16#3260#, 16#327E#), -- CIRCLED HANGUL KIYEOK..CIRCLED HANGUL IEUNG U
+ (16#3280#, 16#3289#), -- CIRCLED IDEOGRAPH ONE..CIRCLED IDEOGRAPH TEN
+ (16#328A#, 16#32B0#), -- CIRCLED IDEOGRAPH MOON..CIRCLED IDEOGRAPH NIGHT
+ (16#32B1#, 16#32BF#), -- CIRCLED NUMBER THIRTY SIX..CIRCLED NUMBER FIFTY
+ (16#32C0#, 16#33FF#), -- IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY..SQUARE GAL
+ (16#A69C#, 16#A69D#), -- MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN
+ (16#A770#, 16#A770#), -- MODIFIER LETTER US
+ (16#A7F8#, 16#A7F9#), -- MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE
+ (16#AB5C#, 16#AB5F#), -- MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK
+ (16#AB69#, 16#AB69#), -- MODIFIER LETTER SMALL TURNED W
+ (16#F900#, 16#FA0D#), -- CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA0D
+ (16#FA10#, 16#FA10#), -- CJK COMPATIBILITY IDEOGRAPH-FA10
+ (16#FA12#, 16#FA12#), -- CJK COMPATIBILITY IDEOGRAPH-FA12
+ (16#FA15#, 16#FA1E#), -- CJK COMPATIBILITY IDEOGRAPH-FA15..CJK COMPATIBILITY IDEOGRAPH-FA1E
+ (16#FA20#, 16#FA20#), -- CJK COMPATIBILITY IDEOGRAPH-FA20
+ (16#FA22#, 16#FA22#), -- CJK COMPATIBILITY IDEOGRAPH-FA22
+ (16#FA25#, 16#FA26#), -- CJK COMPATIBILITY IDEOGRAPH-FA25..CJK COMPATIBILITY IDEOGRAPH-FA26
+ (16#FA2A#, 16#FA6D#), -- CJK COMPATIBILITY IDEOGRAPH-FA2A..CJK COMPATIBILITY IDEOGRAPH-FA6D
+ (16#FA70#, 16#FAD9#), -- CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9
+ (16#FB00#, 16#FB06#), -- LATIN SMALL LIGATURE FF..LATIN SMALL LIGATURE ST
+ (16#FB13#, 16#FB17#), -- ARMENIAN SMALL LIGATURE MEN NOW..ARMENIAN SMALL LIGATURE MEN XEH
+ (16#FB1D#, 16#FB1D#), -- HEBREW LETTER YOD WITH HIRIQ
+ (16#FB1F#, 16#FB28#), -- HEBREW LIGATURE YIDDISH YOD YOD PATAH..HEBREW LETTER WIDE TAV
+ (16#FB29#, 16#FB29#), -- HEBREW LETTER ALTERNATIVE PLUS SIGN
+ (16#FB2A#, 16#FB36#), -- HEBREW LETTER SHIN WITH SHIN DOT..HEBREW LETTER ZAYIN WITH DAGESH
+ (16#FB38#, 16#FB3C#), -- HEBREW LETTER TET WITH DAGESH..HEBREW LETTER LAMED WITH DAGESH
+ (16#FB3E#, 16#FB3E#), -- HEBREW LETTER MEM WITH DAGESH
+ (16#FB40#, 16#FB41#), -- HEBREW LETTER NUN WITH DAGESH..HEBREW LETTER SAMEKH WITH DAGESH
+ (16#FB43#, 16#FB44#), -- HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETTER PE WITH DAGESH
+ (16#FB46#, 16#FBB1#), -- HEBREW LETTER TSADI WITH DAGESH..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
+ (16#FBD3#, 16#FD3D#), -- ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM
+ (16#FD50#, 16#FD8F#), -- ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
+ (16#FD92#, 16#FDC7#), -- ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
+ (16#FDF0#, 16#FDFB#), -- ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE JALLAJALALOUHOU
+ (16#FDFC#, 16#FDFC#), -- RIAL SIGN
+ (16#FE10#, 16#FE16#), -- PRESENTATION FORM FOR VERTICAL COMMA..PRESENTATION FORM FOR VERTICAL QUESTION MARK
+ (16#FE17#, 16#FE17#), -- PRESENTATION FORM FOR VERTICAL LEFT WHITE LENTICULAR BRACKET
+ (16#FE18#, 16#FE18#), -- PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRAKCET
+ (16#FE19#, 16#FE19#), -- PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS
+ (16#FE30#, 16#FE30#), -- PRESENTATION FORM FOR VERTICAL TWO DOT LEADER
+ (16#FE31#, 16#FE32#), -- PRESENTATION FORM FOR VERTICAL EM DASH..PRESENTATION FORM FOR VERTICAL EN DASH
+ (16#FE33#, 16#FE34#), -- PRESENTATION FORM FOR VERTICAL LOW LINE..PRESENTATION FORM FOR VERTICAL WAVY LOW LINE
+ (16#FE35#, 16#FE35#), -- PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS
+ (16#FE36#, 16#FE36#), -- PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS
+ (16#FE37#, 16#FE37#), -- PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET
+ (16#FE38#, 16#FE38#), -- PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET
+ (16#FE39#, 16#FE39#), -- PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET
+ (16#FE3A#, 16#FE3A#), -- PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET
+ (16#FE3B#, 16#FE3B#), -- PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET
+ (16#FE3C#, 16#FE3C#), -- PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET
+ (16#FE3D#, 16#FE3D#), -- PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET
+ (16#FE3E#, 16#FE3E#), -- PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET
+ (16#FE3F#, 16#FE3F#), -- PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET
+ (16#FE40#, 16#FE40#), -- PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET
+ (16#FE41#, 16#FE41#), -- PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET
+ (16#FE42#, 16#FE42#), -- PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET
+ (16#FE43#, 16#FE43#), -- PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET
+ (16#FE44#, 16#FE44#), -- PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET
+ (16#FE47#, 16#FE47#), -- PRESENTATION FORM FOR VERTICAL LEFT SQUARE BRACKET
+ (16#FE48#, 16#FE48#), -- PRESENTATION FORM FOR VERTICAL RIGHT SQUARE BRACKET
+ (16#FE49#, 16#FE4C#), -- DASHED OVERLINE..DOUBLE WAVY OVERLINE
+ (16#FE4D#, 16#FE4F#), -- DASHED LOW LINE..WAVY LOW LINE
+ (16#FE50#, 16#FE52#), -- SMALL COMMA..SMALL FULL STOP
+ (16#FE54#, 16#FE57#), -- SMALL SEMICOLON..SMALL EXCLAMATION MARK
+ (16#FE58#, 16#FE58#), -- SMALL EM DASH
+ (16#FE59#, 16#FE59#), -- SMALL LEFT PARENTHESIS
+ (16#FE5A#, 16#FE5A#), -- SMALL RIGHT PARENTHESIS
+ (16#FE5B#, 16#FE5B#), -- SMALL LEFT CURLY BRACKET
+ (16#FE5C#, 16#FE5C#), -- SMALL RIGHT CURLY BRACKET
+ (16#FE5D#, 16#FE5D#), -- SMALL LEFT TORTOISE SHELL BRACKET
+ (16#FE5E#, 16#FE5E#), -- SMALL RIGHT TORTOISE SHELL BRACKET
+ (16#FE5F#, 16#FE61#), -- SMALL NUMBER SIGN..SMALL ASTERISK
+ (16#FE62#, 16#FE62#), -- SMALL PLUS SIGN
+ (16#FE63#, 16#FE63#), -- SMALL HYPHEN-MINUS
+ (16#FE64#, 16#FE66#), -- SMALL LESS-THAN SIGN..SMALL EQUALS SIGN
+ (16#FE68#, 16#FE68#), -- SMALL REVERSE SOLIDUS
+ (16#FE69#, 16#FE69#), -- SMALL DOLLAR SIGN
+ (16#FE6A#, 16#FE6B#), -- SMALL PERCENT SIGN..SMALL COMMERCIAL AT
+ (16#FE70#, 16#FE72#), -- ARABIC FATHATAN ISOLATED FORM..ARABIC DAMMATAN ISOLATED FORM
+ (16#FE74#, 16#FE74#), -- ARABIC KASRATAN ISOLATED FORM
+ (16#FE76#, 16#FEFC#), -- ARABIC FATHA ISOLATED FORM..ARABIC LIGATURE LAM WITH ALEF FINAL FORM
+ (16#FF01#, 16#FF03#), -- FULLWIDTH EXCLAMATION MARK..FULLWIDTH NUMBER SIGN
+ (16#FF04#, 16#FF04#), -- FULLWIDTH DOLLAR SIGN
+ (16#FF05#, 16#FF07#), -- FULLWIDTH PERCENT SIGN..FULLWIDTH APOSTROPHE
+ (16#FF08#, 16#FF08#), -- FULLWIDTH LEFT PARENTHESIS
+ (16#FF09#, 16#FF09#), -- FULLWIDTH RIGHT PARENTHESIS
+ (16#FF0A#, 16#FF0A#), -- FULLWIDTH ASTERISK
+ (16#FF0B#, 16#FF0B#), -- FULLWIDTH PLUS SIGN
+ (16#FF0C#, 16#FF0C#), -- FULLWIDTH COMMA
+ (16#FF0D#, 16#FF0D#), -- FULLWIDTH HYPHEN-MINUS
+ (16#FF0E#, 16#FF0F#), -- FULLWIDTH FULL STOP..FULLWIDTH SOLIDUS
+ (16#FF10#, 16#FF19#), -- FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE
+ (16#FF1A#, 16#FF1B#), -- FULLWIDTH COLON..FULLWIDTH SEMICOLON
+ (16#FF1C#, 16#FF1E#), -- FULLWIDTH LESS-THAN SIGN..FULLWIDTH GREATER-THAN SIGN
+ (16#FF1F#, 16#FF20#), -- FULLWIDTH QUESTION MARK..FULLWIDTH COMMERCIAL AT
+ (16#FF21#, 16#FF3A#), -- FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER Z
+ (16#FF3B#, 16#FF3B#), -- FULLWIDTH LEFT SQUARE BRACKET
+ (16#FF3C#, 16#FF3C#), -- FULLWIDTH REVERSE SOLIDUS
+ (16#FF3D#, 16#FF3D#), -- FULLWIDTH RIGHT SQUARE BRACKET
+ (16#FF3E#, 16#FF3E#), -- FULLWIDTH CIRCUMFLEX ACCENT
+ (16#FF3F#, 16#FF3F#), -- FULLWIDTH LOW LINE
+ (16#FF40#, 16#FF40#), -- FULLWIDTH GRAVE ACCENT
+ (16#FF41#, 16#FF5A#), -- FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER Z
+ (16#FF5B#, 16#FF5B#), -- FULLWIDTH LEFT CURLY BRACKET
+ (16#FF5C#, 16#FF5C#), -- FULLWIDTH VERTICAL LINE
+ (16#FF5D#, 16#FF5D#), -- FULLWIDTH RIGHT CURLY BRACKET
+ (16#FF5E#, 16#FF5E#), -- FULLWIDTH TILDE
+ (16#FF5F#, 16#FF5F#), -- FULLWIDTH LEFT WHITE PARENTHESIS
+ (16#FF60#, 16#FF60#), -- FULLWIDTH RIGHT WHITE PARENTHESIS
+ (16#FF61#, 16#FF61#), -- HALFWIDTH IDEOGRAPHIC FULL STOP
+ (16#FF62#, 16#FF62#), -- HALFWIDTH LEFT CORNER BRACKET
+ (16#FF63#, 16#FF63#), -- HALFWIDTH RIGHT CORNER BRACKET
+ (16#FF64#, 16#FF65#), -- HALFWIDTH IDEOGRAPHIC COMMA..HALFWIDTH KATAKANA MIDDLE DOT
+ (16#FF66#, 16#FF6F#), -- HALFWIDTH KATAKANA LETTER WO..HALFWIDTH KATAKANA LETTER SMALL TU
+ (16#FF70#, 16#FF70#), -- HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
+ (16#FF71#, 16#FF9D#), -- HALFWIDTH KATAKANA LETTER A..HALFWIDTH KATAKANA LETTER N
+ (16#FF9E#, 16#FF9F#), -- HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
+ (16#FFA0#, 16#FFBE#), -- HALFWIDTH HANGUL FILLER..HALFWIDTH HANGUL LETTER HIEUH
+ (16#FFC2#, 16#FFC7#), -- HALFWIDTH HANGUL LETTER A..HALFWIDTH HANGUL LETTER E
+ (16#FFCA#, 16#FFCF#), -- HALFWIDTH HANGUL LETTER YEO..HALFWIDTH HANGUL LETTER OE
+ (16#FFD2#, 16#FFD7#), -- HALFWIDTH HANGUL LETTER YO..HALFWIDTH HANGUL LETTER YU
+ (16#FFDA#, 16#FFDC#), -- HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I
+ (16#FFE0#, 16#FFE1#), -- FULLWIDTH CENT SIGN..FULLWIDTH POUND SIGN
+ (16#FFE2#, 16#FFE2#), -- FULLWIDTH NOT SIGN
+ (16#FFE3#, 16#FFE3#), -- FULLWIDTH MACRON
+ (16#FFE4#, 16#FFE4#), -- FULLWIDTH BROKEN BAR
+ (16#FFE5#, 16#FFE6#), -- FULLWIDTH YEN SIGN..FULLWIDTH WON SIGN
+ (16#FFE8#, 16#FFE8#), -- HALFWIDTH FORMS LIGHT VERTICAL
+ (16#FFE9#, 16#FFEC#), -- HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS ARROW
+ (16#FFED#, 16#FFEE#), -- HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CIRCLE
+ (16#1D15E#, 16#1D164#), -- MUSICAL SYMBOL HALF NOTE..MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE
+ (16#1D1BB#, 16#1D1C0#), -- MUSICAL SYMBOL MINIMA..MUSICAL SYMBOL FUSA BLACK
+ (16#1D400#, 16#1D454#), -- MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G
+ (16#1D456#, 16#1D49C#), -- MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A
+ (16#1D49E#, 16#1D49F#), -- MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D
+ (16#1D4A2#, 16#1D4A2#), -- MATHEMATICAL SCRIPT CAPITAL G
+ (16#1D4A5#, 16#1D4A6#), -- MATHEMATICAL SCRIPT CAPITAL J..MATHEMATICAL SCRIPT CAPITAL K
+ (16#1D4A9#, 16#1D4AC#), -- MATHEMATICAL SCRIPT CAPITAL N..MATHEMATICAL SCRIPT CAPITAL Q
+ (16#1D4AE#, 16#1D4B9#), -- MATHEMATICAL SCRIPT CAPITAL S..MATHEMATICAL SCRIPT SMALL D
+ (16#1D4BB#, 16#1D4BB#), -- MATHEMATICAL SCRIPT SMALL F
+ (16#1D4BD#, 16#1D4C3#), -- MATHEMATICAL SCRIPT SMALL H..MATHEMATICAL SCRIPT SMALL N
+ (16#1D4C5#, 16#1D505#), -- MATHEMATICAL SCRIPT SMALL P..MATHEMATICAL FRAKTUR CAPITAL B
+ (16#1D507#, 16#1D50A#), -- MATHEMATICAL FRAKTUR CAPITAL D..MATHEMATICAL FRAKTUR CAPITAL G
+ (16#1D50D#, 16#1D514#), -- MATHEMATICAL FRAKTUR CAPITAL J..MATHEMATICAL FRAKTUR CAPITAL Q
+ (16#1D516#, 16#1D51C#), -- MATHEMATICAL FRAKTUR CAPITAL S..MATHEMATICAL FRAKTUR CAPITAL Y
+ (16#1D51E#, 16#1D539#), -- MATHEMATICAL FRAKTUR SMALL A..MATHEMATICAL DOUBLE-STRUCK CAPITAL B
+ (16#1D53B#, 16#1D53E#), -- MATHEMATICAL DOUBLE-STRUCK CAPITAL D..MATHEMATICAL DOUBLE-STRUCK CAPITAL G
+ (16#1D540#, 16#1D544#), -- MATHEMATICAL DOUBLE-STRUCK CAPITAL I..MATHEMATICAL DOUBLE-STRUCK CAPITAL M
+ (16#1D546#, 16#1D546#), -- MATHEMATICAL DOUBLE-STRUCK CAPITAL O
+ (16#1D54A#, 16#1D550#), -- MATHEMATICAL DOUBLE-STRUCK CAPITAL S..MATHEMATICAL DOUBLE-STRUCK CAPITAL Y
+ (16#1D552#, 16#1D6A5#), -- MATHEMATICAL DOUBLE-STRUCK SMALL A..MATHEMATICAL ITALIC SMALL DOTLESS J
+ (16#1D6A8#, 16#1D6C0#), -- MATHEMATICAL BOLD CAPITAL ALPHA..MATHEMATICAL BOLD CAPITAL OMEGA
+ (16#1D6C1#, 16#1D6C1#), -- MATHEMATICAL BOLD NABLA
+ (16#1D6C2#, 16#1D6DA#), -- MATHEMATICAL BOLD SMALL ALPHA..MATHEMATICAL BOLD SMALL OMEGA
+ (16#1D6DB#, 16#1D6DB#), -- MATHEMATICAL BOLD PARTIAL DIFFERENTIAL
+ (16#1D6DC#, 16#1D6FA#), -- MATHEMATICAL BOLD EPSILON SYMBOL..MATHEMATICAL ITALIC CAPITAL OMEGA
+ (16#1D6FB#, 16#1D6FB#), -- MATHEMATICAL ITALIC NABLA
+ (16#1D6FC#, 16#1D714#), -- MATHEMATICAL ITALIC SMALL ALPHA..MATHEMATICAL ITALIC SMALL OMEGA
+ (16#1D715#, 16#1D715#), -- MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL
+ (16#1D716#, 16#1D734#), -- MATHEMATICAL ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD ITALIC CAPITAL OMEGA
+ (16#1D735#, 16#1D735#), -- MATHEMATICAL BOLD ITALIC NABLA
+ (16#1D736#, 16#1D74E#), -- MATHEMATICAL BOLD ITALIC SMALL ALPHA..MATHEMATICAL BOLD ITALIC SMALL OMEGA
+ (16#1D74F#, 16#1D74F#), -- MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL
+ (16#1D750#, 16#1D76E#), -- MATHEMATICAL BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA
+ (16#1D76F#, 16#1D76F#), -- MATHEMATICAL SANS-SERIF BOLD NABLA
+ (16#1D770#, 16#1D788#), -- MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA
+ (16#1D789#, 16#1D789#), -- MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL
+ (16#1D78A#, 16#1D7A8#), -- MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA
+ (16#1D7A9#, 16#1D7A9#), -- MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA
+ (16#1D7AA#, 16#1D7C2#), -- MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA
+ (16#1D7C3#, 16#1D7C3#), -- MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL
+ (16#1D7C4#, 16#1D7CB#), -- MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA
+ (16#1D7CE#, 16#1D7FF#), -- MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE
+ (16#1EE00#, 16#1EE03#), -- ARABIC MATHEMATICAL ALEF..ARABIC MATHEMATICAL DAL
+ (16#1EE05#, 16#1EE1F#), -- ARABIC MATHEMATICAL WAW..ARABIC MATHEMATICAL DOTLESS QAF
+ (16#1EE21#, 16#1EE22#), -- ARABIC MATHEMATICAL INITIAL BEH..ARABIC MATHEMATICAL INITIAL JEEM
+ (16#1EE24#, 16#1EE24#), -- ARABIC MATHEMATICAL INITIAL HEH
+ (16#1EE27#, 16#1EE27#), -- ARABIC MATHEMATICAL INITIAL HAH
+ (16#1EE29#, 16#1EE32#), -- ARABIC MATHEMATICAL INITIAL YEH..ARABIC MATHEMATICAL INITIAL QAF
+ (16#1EE34#, 16#1EE37#), -- ARABIC MATHEMATICAL INITIAL SHEEN..ARABIC MATHEMATICAL INITIAL KHAH
+ (16#1EE39#, 16#1EE39#), -- ARABIC MATHEMATICAL INITIAL DAD
+ (16#1EE3B#, 16#1EE3B#), -- ARABIC MATHEMATICAL INITIAL GHAIN
+ (16#1EE42#, 16#1EE42#), -- ARABIC MATHEMATICAL TAILED JEEM
+ (16#1EE47#, 16#1EE47#), -- ARABIC MATHEMATICAL TAILED HAH
+ (16#1EE49#, 16#1EE49#), -- ARABIC MATHEMATICAL TAILED YEH
+ (16#1EE4B#, 16#1EE4B#), -- ARABIC MATHEMATICAL TAILED LAM
+ (16#1EE4D#, 16#1EE4F#), -- ARABIC MATHEMATICAL TAILED NOON..ARABIC MATHEMATICAL TAILED AIN
+ (16#1EE51#, 16#1EE52#), -- ARABIC MATHEMATICAL TAILED SAD..ARABIC MATHEMATICAL TAILED QAF
+ (16#1EE54#, 16#1EE54#), -- ARABIC MATHEMATICAL TAILED SHEEN
+ (16#1EE57#, 16#1EE57#), -- ARABIC MATHEMATICAL TAILED KHAH
+ (16#1EE59#, 16#1EE59#), -- ARABIC MATHEMATICAL TAILED DAD
+ (16#1EE5B#, 16#1EE5B#), -- ARABIC MATHEMATICAL TAILED GHAIN
+ (16#1EE5D#, 16#1EE5D#), -- ARABIC MATHEMATICAL TAILED DOTLESS NOON
+ (16#1EE5F#, 16#1EE5F#), -- ARABIC MATHEMATICAL TAILED DOTLESS QAF
+ (16#1EE61#, 16#1EE62#), -- ARABIC MATHEMATICAL STRETCHED BEH..ARABIC MATHEMATICAL STRETCHED JEEM
+ (16#1EE64#, 16#1EE64#), -- ARABIC MATHEMATICAL STRETCHED HEH
+ (16#1EE67#, 16#1EE6A#), -- ARABIC MATHEMATICAL STRETCHED HAH..ARABIC MATHEMATICAL STRETCHED KAF
+ (16#1EE6C#, 16#1EE72#), -- ARABIC MATHEMATICAL STRETCHED MEEM..ARABIC MATHEMATICAL STRETCHED QAF
+ (16#1EE74#, 16#1EE77#), -- ARABIC MATHEMATICAL STRETCHED SHEEN..ARABIC MATHEMATICAL STRETCHED KHAH
+ (16#1EE79#, 16#1EE7C#), -- ARABIC MATHEMATICAL STRETCHED DAD..ARABIC MATHEMATICAL STRETCHED DOTLESS BEH
+ (16#1EE7E#, 16#1EE7E#), -- ARABIC MATHEMATICAL STRETCHED DOTLESS FEH
+ (16#1EE80#, 16#1EE89#), -- ARABIC MATHEMATICAL LOOPED ALEF..ARABIC MATHEMATICAL LOOPED YEH
+ (16#1EE8B#, 16#1EE9B#), -- ARABIC MATHEMATICAL LOOPED LAM..ARABIC MATHEMATICAL LOOPED GHAIN
+ (16#1EEA1#, 16#1EEA3#), -- ARABIC MATHEMATICAL DOUBLE-STRUCK BEH..ARABIC MATHEMATICAL DOUBLE-STRUCK DAL
+ (16#1EEA5#, 16#1EEA9#), -- ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH
+ (16#1EEAB#, 16#1EEBB#), -- ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN
+ (16#1F100#, 16#1F10A#), -- DIGIT ZERO FULL STOP..DIGIT NINE COMMA
+ (16#1F110#, 16#1F12E#), -- PARENTHESIZED LATIN CAPITAL LETTER A..CIRCLED WZ
+ (16#1F130#, 16#1F14F#), -- SQUARED LATIN CAPITAL LETTER A..SQUARED WC
+ (16#1F16A#, 16#1F16C#), -- RAISED MC SIGN..RAISED MR SIGN
+ (16#1F190#, 16#1F190#), -- SQUARE DJ
+ (16#1F200#, 16#1F202#), -- SQUARE HIRAGANA HOKA..SQUARED KATAKANA SA
+ (16#1F210#, 16#1F23B#), -- SQUARED CJK UNIFIED IDEOGRAPH-624B..SQUARED CJK UNIFIED IDEOGRAPH-914D
+ (16#1F240#, 16#1F248#), -- TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C..TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
+ (16#1F250#, 16#1F251#), -- CIRCLED IDEOGRAPH ADVANTAGE..CIRCLED IDEOGRAPH ACCEPT
+ (16#1FBF0#, 16#1FBF9#), -- SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE
+ (16#2F800#, 16#2FA1D#)); -- CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D
+
+ pragma Warnings (On);
+ -- Temporary until pragma Warnings at start can be activated ???
+
+ type Decomposition_Mapping is record
+ Item : UTF_32;
+ First_Char_Mapping : UTF_32;
+ end record;
+ -- Item is a UTF_32 character with a decomposition mapping.
+ -- First_Char_Mapping is the first UTF_32 character of the decomposition
+ -- mapping of Item.
+
+ type Unicode_Decomposition_Array is
+ array (Positive range <>) of Decomposition_Mapping;
+
+ Unicode_Decomposition : constant Unicode_Decomposition_Array := (
+ (16#00A0#, 16#0020#),
+ (16#00A8#, 16#0020#),
+ (16#00AA#, 16#0061#),
+ (16#00AF#, 16#0020#),
+ (16#00B2#, 16#0032#),
+ (16#00B3#, 16#0033#),
+ (16#00B4#, 16#0020#),
+ (16#00B5#, 16#03BC#),
+ (16#00B8#, 16#0020#),
+ (16#00B9#, 16#0031#),
+ (16#00BA#, 16#006F#),
+ (16#00BC#, 16#0031#),
+ (16#00BD#, 16#0031#),
+ (16#00BE#, 16#0033#),
+ (16#00C0#, 16#0041#),
+ (16#00C1#, 16#0041#),
+ (16#00C2#, 16#0041#),
+ (16#00C3#, 16#0041#),
+ (16#00C4#, 16#0041#),
+ (16#00C5#, 16#0041#),
+ (16#00C7#, 16#0043#),
+ (16#00C8#, 16#0045#),
+ (16#00C9#, 16#0045#),
+ (16#00CA#, 16#0045#),
+ (16#00CB#, 16#0045#),
+ (16#00CC#, 16#0049#),
+ (16#00CD#, 16#0049#),
+ (16#00CE#, 16#0049#),
+ (16#00CF#, 16#0049#),
+ (16#00D1#, 16#004E#),
+ (16#00D2#, 16#004F#),
+ (16#00D3#, 16#004F#),
+ (16#00D4#, 16#004F#),
+ (16#00D5#, 16#004F#),
+ (16#00D6#, 16#004F#),
+ (16#00D9#, 16#0055#),
+ (16#00DA#, 16#0055#),
+ (16#00DB#, 16#0055#),
+ (16#00DC#, 16#0055#),
+ (16#00DD#, 16#0059#),
+ (16#00E0#, 16#0061#),
+ (16#00E1#, 16#0061#),
+ (16#00E2#, 16#0061#),
+ (16#00E3#, 16#0061#),
+ (16#00E4#, 16#0061#),
+ (16#00E5#, 16#0061#),
+ (16#00E7#, 16#0063#),
+ (16#00E8#, 16#0065#),
+ (16#00E9#, 16#0065#),
+ (16#00EA#, 16#0065#),
+ (16#00EB#, 16#0065#),
+ (16#00EC#, 16#0069#),
+ (16#00ED#, 16#0069#),
+ (16#00EE#, 16#0069#),
+ (16#00EF#, 16#0069#),
+ (16#00F1#, 16#006E#),
+ (16#00F2#, 16#006F#),
+ (16#00F3#, 16#006F#),
+ (16#00F4#, 16#006F#),
+ (16#00F5#, 16#006F#),
+ (16#00F6#, 16#006F#),
+ (16#00F9#, 16#0075#),
+ (16#00FA#, 16#0075#),
+ (16#00FB#, 16#0075#),
+ (16#00FC#, 16#0075#),
+ (16#00FD#, 16#0079#),
+ (16#00FF#, 16#0079#),
+ (16#0100#, 16#0041#),
+ (16#0101#, 16#0061#),
+ (16#0102#, 16#0041#),
+ (16#0103#, 16#0061#),
+ (16#0104#, 16#0041#),
+ (16#0105#, 16#0061#),
+ (16#0106#, 16#0043#),
+ (16#0107#, 16#0063#),
+ (16#0108#, 16#0043#),
+ (16#0109#, 16#0063#),
+ (16#010A#, 16#0043#),
+ (16#010B#, 16#0063#),
+ (16#010C#, 16#0043#),
+ (16#010D#, 16#0063#),
+ (16#010E#, 16#0044#),
+ (16#010F#, 16#0064#),
+ (16#0112#, 16#0045#),
+ (16#0113#, 16#0065#),
+ (16#0114#, 16#0045#),
+ (16#0115#, 16#0065#),
+ (16#0116#, 16#0045#),
+ (16#0117#, 16#0065#),
+ (16#0118#, 16#0045#),
+ (16#0119#, 16#0065#),
+ (16#011A#, 16#0045#),
+ (16#011B#, 16#0065#),
+ (16#011C#, 16#0047#),
+ (16#011D#, 16#0067#),
+ (16#011E#, 16#0047#),
+ (16#011F#, 16#0067#),
+ (16#0120#, 16#0047#),
+ (16#0121#, 16#0067#),
+ (16#0122#, 16#0047#),
+ (16#0123#, 16#0067#),
+ (16#0124#, 16#0048#),
+ (16#0125#, 16#0068#),
+ (16#0128#, 16#0049#),
+ (16#0129#, 16#0069#),
+ (16#012A#, 16#0049#),
+ (16#012B#, 16#0069#),
+ (16#012C#, 16#0049#),
+ (16#012D#, 16#0069#),
+ (16#012E#, 16#0049#),
+ (16#012F#, 16#0069#),
+ (16#0130#, 16#0049#),
+ (16#0132#, 16#0049#),
+ (16#0133#, 16#0069#),
+ (16#0134#, 16#004A#),
+ (16#0135#, 16#006A#),
+ (16#0136#, 16#004B#),
+ (16#0137#, 16#006B#),
+ (16#0139#, 16#004C#),
+ (16#013A#, 16#006C#),
+ (16#013B#, 16#004C#),
+ (16#013C#, 16#006C#),
+ (16#013D#, 16#004C#),
+ (16#013E#, 16#006C#),
+ (16#013F#, 16#004C#),
+ (16#0140#, 16#006C#),
+ (16#0143#, 16#004E#),
+ (16#0144#, 16#006E#),
+ (16#0145#, 16#004E#),
+ (16#0146#, 16#006E#),
+ (16#0147#, 16#004E#),
+ (16#0148#, 16#006E#),
+ (16#0149#, 16#02BC#),
+ (16#014C#, 16#004F#),
+ (16#014D#, 16#006F#),
+ (16#014E#, 16#004F#),
+ (16#014F#, 16#006F#),
+ (16#0150#, 16#004F#),
+ (16#0151#, 16#006F#),
+ (16#0154#, 16#0052#),
+ (16#0155#, 16#0072#),
+ (16#0156#, 16#0052#),
+ (16#0157#, 16#0072#),
+ (16#0158#, 16#0052#),
+ (16#0159#, 16#0072#),
+ (16#015A#, 16#0053#),
+ (16#015B#, 16#0073#),
+ (16#015C#, 16#0053#),
+ (16#015D#, 16#0073#),
+ (16#015E#, 16#0053#),
+ (16#015F#, 16#0073#),
+ (16#0160#, 16#0053#),
+ (16#0161#, 16#0073#),
+ (16#0162#, 16#0054#),
+ (16#0163#, 16#0074#),
+ (16#0164#, 16#0054#),
+ (16#0165#, 16#0074#),
+ (16#0168#, 16#0055#),
+ (16#0169#, 16#0075#),
+ (16#016A#, 16#0055#),
+ (16#016B#, 16#0075#),
+ (16#016C#, 16#0055#),
+ (16#016D#, 16#0075#),
+ (16#016E#, 16#0055#),
+ (16#016F#, 16#0075#),
+ (16#0170#, 16#0055#),
+ (16#0171#, 16#0075#),
+ (16#0172#, 16#0055#),
+ (16#0173#, 16#0075#),
+ (16#0174#, 16#0057#),
+ (16#0175#, 16#0077#),
+ (16#0176#, 16#0059#),
+ (16#0177#, 16#0079#),
+ (16#0178#, 16#0059#),
+ (16#0179#, 16#005A#),
+ (16#017A#, 16#007A#),
+ (16#017B#, 16#005A#),
+ (16#017C#, 16#007A#),
+ (16#017D#, 16#005A#),
+ (16#017E#, 16#007A#),
+ (16#017F#, 16#0073#),
+ (16#01A0#, 16#004F#),
+ (16#01A1#, 16#006F#),
+ (16#01AF#, 16#0055#),
+ (16#01B0#, 16#0075#),
+ (16#01C4#, 16#0044#),
+ (16#01C5#, 16#0044#),
+ (16#01C6#, 16#0064#),
+ (16#01C7#, 16#004C#),
+ (16#01C8#, 16#004C#),
+ (16#01C9#, 16#006C#),
+ (16#01CA#, 16#004E#),
+ (16#01CB#, 16#004E#),
+ (16#01CC#, 16#006E#),
+ (16#01CD#, 16#0041#),
+ (16#01CE#, 16#0061#),
+ (16#01CF#, 16#0049#),
+ (16#01D0#, 16#0069#),
+ (16#01D1#, 16#004F#),
+ (16#01D2#, 16#006F#),
+ (16#01D3#, 16#0055#),
+ (16#01D4#, 16#0075#),
+ (16#01D5#, 16#00DC#),
+ (16#01D6#, 16#00FC#),
+ (16#01D7#, 16#00DC#),
+ (16#01D8#, 16#00FC#),
+ (16#01D9#, 16#00DC#),
+ (16#01DA#, 16#00FC#),
+ (16#01DB#, 16#00DC#),
+ (16#01DC#, 16#00FC#),
+ (16#01DE#, 16#00C4#),
+ (16#01DF#, 16#00E4#),
+ (16#01E0#, 16#0226#),
+ (16#01E1#, 16#0227#),
+ (16#01E2#, 16#00C6#),
+ (16#01E3#, 16#00E6#),
+ (16#01E6#, 16#0047#),
+ (16#01E7#, 16#0067#),
+ (16#01E8#, 16#004B#),
+ (16#01E9#, 16#006B#),
+ (16#01EA#, 16#004F#),
+ (16#01EB#, 16#006F#),
+ (16#01EC#, 16#01EA#),
+ (16#01ED#, 16#01EB#),
+ (16#01EE#, 16#01B7#),
+ (16#01EF#, 16#0292#),
+ (16#01F0#, 16#006A#),
+ (16#01F1#, 16#0044#),
+ (16#01F2#, 16#0044#),
+ (16#01F3#, 16#0064#),
+ (16#01F4#, 16#0047#),
+ (16#01F5#, 16#0067#),
+ (16#01F8#, 16#004E#),
+ (16#01F9#, 16#006E#),
+ (16#01FA#, 16#00C5#),
+ (16#01FB#, 16#00E5#),
+ (16#01FC#, 16#00C6#),
+ (16#01FD#, 16#00E6#),
+ (16#01FE#, 16#00D8#),
+ (16#01FF#, 16#00F8#),
+ (16#0200#, 16#0041#),
+ (16#0201#, 16#0061#),
+ (16#0202#, 16#0041#),
+ (16#0203#, 16#0061#),
+ (16#0204#, 16#0045#),
+ (16#0205#, 16#0065#),
+ (16#0206#, 16#0045#),
+ (16#0207#, 16#0065#),
+ (16#0208#, 16#0049#),
+ (16#0209#, 16#0069#),
+ (16#020A#, 16#0049#),
+ (16#020B#, 16#0069#),
+ (16#020C#, 16#004F#),
+ (16#020D#, 16#006F#),
+ (16#020E#, 16#004F#),
+ (16#020F#, 16#006F#),
+ (16#0210#, 16#0052#),
+ (16#0211#, 16#0072#),
+ (16#0212#, 16#0052#),
+ (16#0213#, 16#0072#),
+ (16#0214#, 16#0055#),
+ (16#0215#, 16#0075#),
+ (16#0216#, 16#0055#),
+ (16#0217#, 16#0075#),
+ (16#0218#, 16#0053#),
+ (16#0219#, 16#0073#),
+ (16#021A#, 16#0054#),
+ (16#021B#, 16#0074#),
+ (16#021E#, 16#0048#),
+ (16#021F#, 16#0068#),
+ (16#0226#, 16#0041#),
+ (16#0227#, 16#0061#),
+ (16#0228#, 16#0045#),
+ (16#0229#, 16#0065#),
+ (16#022A#, 16#00D6#),
+ (16#022B#, 16#00F6#),
+ (16#022C#, 16#00D5#),
+ (16#022D#, 16#00F5#),
+ (16#022E#, 16#004F#),
+ (16#022F#, 16#006F#),
+ (16#0230#, 16#022E#),
+ (16#0231#, 16#022F#),
+ (16#0232#, 16#0059#),
+ (16#0233#, 16#0079#),
+ (16#02B0#, 16#0068#),
+ (16#02B1#, 16#0266#),
+ (16#02B2#, 16#006A#),
+ (16#02B3#, 16#0072#),
+ (16#02B4#, 16#0279#),
+ (16#02B5#, 16#027B#),
+ (16#02B6#, 16#0281#),
+ (16#02B7#, 16#0077#),
+ (16#02B8#, 16#0079#),
+ (16#02D8#, 16#0020#),
+ (16#02D9#, 16#0020#),
+ (16#02DA#, 16#0020#),
+ (16#02DB#, 16#0020#),
+ (16#02DC#, 16#0020#),
+ (16#02DD#, 16#0020#),
+ (16#02E0#, 16#0263#),
+ (16#02E1#, 16#006C#),
+ (16#02E2#, 16#0073#),
+ (16#02E3#, 16#0078#),
+ (16#02E4#, 16#0295#),
+ (16#0340#, 16#0300#),
+ (16#0341#, 16#0301#),
+ (16#0343#, 16#0313#),
+ (16#0344#, 16#0308#),
+ (16#0374#, 16#02B9#),
+ (16#037A#, 16#0020#),
+ (16#037E#, 16#003B#),
+ (16#0384#, 16#0020#),
+ (16#0385#, 16#00A8#),
+ (16#0386#, 16#0391#),
+ (16#0387#, 16#00B7#),
+ (16#0388#, 16#0395#),
+ (16#0389#, 16#0397#),
+ (16#038A#, 16#0399#),
+ (16#038C#, 16#039F#),
+ (16#038E#, 16#03A5#),
+ (16#038F#, 16#03A9#),
+ (16#0390#, 16#03CA#),
+ (16#03AA#, 16#0399#),
+ (16#03AB#, 16#03A5#),
+ (16#03AC#, 16#03B1#),
+ (16#03AD#, 16#03B5#),
+ (16#03AE#, 16#03B7#),
+ (16#03AF#, 16#03B9#),
+ (16#03B0#, 16#03CB#),
+ (16#03CA#, 16#03B9#),
+ (16#03CB#, 16#03C5#),
+ (16#03CC#, 16#03BF#),
+ (16#03CD#, 16#03C5#),
+ (16#03CE#, 16#03C9#),
+ (16#03D0#, 16#03B2#),
+ (16#03D1#, 16#03B8#),
+ (16#03D2#, 16#03A5#),
+ (16#03D3#, 16#03D2#),
+ (16#03D4#, 16#03D2#),
+ (16#03D5#, 16#03C6#),
+ (16#03D6#, 16#03C0#),
+ (16#03F0#, 16#03BA#),
+ (16#03F1#, 16#03C1#),
+ (16#03F2#, 16#03C2#),
+ (16#03F4#, 16#0398#),
+ (16#03F5#, 16#03B5#),
+ (16#03F9#, 16#03A3#),
+ (16#0400#, 16#0415#),
+ (16#0401#, 16#0415#),
+ (16#0403#, 16#0413#),
+ (16#0407#, 16#0406#),
+ (16#040C#, 16#041A#),
+ (16#040D#, 16#0418#),
+ (16#040E#, 16#0423#),
+ (16#0419#, 16#0418#),
+ (16#0439#, 16#0438#),
+ (16#0450#, 16#0435#),
+ (16#0451#, 16#0435#),
+ (16#0453#, 16#0433#),
+ (16#0457#, 16#0456#),
+ (16#045C#, 16#043A#),
+ (16#045D#, 16#0438#),
+ (16#045E#, 16#0443#),
+ (16#0476#, 16#0474#),
+ (16#0477#, 16#0475#),
+ (16#04C1#, 16#0416#),
+ (16#04C2#, 16#0436#),
+ (16#04D0#, 16#0410#),
+ (16#04D1#, 16#0430#),
+ (16#04D2#, 16#0410#),
+ (16#04D3#, 16#0430#),
+ (16#04D6#, 16#0415#),
+ (16#04D7#, 16#0435#),
+ (16#04DA#, 16#04D8#),
+ (16#04DB#, 16#04D9#),
+ (16#04DC#, 16#0416#),
+ (16#04DD#, 16#0436#),
+ (16#04DE#, 16#0417#),
+ (16#04DF#, 16#0437#),
+ (16#04E2#, 16#0418#),
+ (16#04E3#, 16#0438#),
+ (16#04E4#, 16#0418#),
+ (16#04E5#, 16#0438#),
+ (16#04E6#, 16#041E#),
+ (16#04E7#, 16#043E#),
+ (16#04EA#, 16#04E8#),
+ (16#04EB#, 16#04E9#),
+ (16#04EC#, 16#042D#),
+ (16#04ED#, 16#044D#),
+ (16#04EE#, 16#0423#),
+ (16#04EF#, 16#0443#),
+ (16#04F0#, 16#0423#),
+ (16#04F1#, 16#0443#),
+ (16#04F2#, 16#0423#),
+ (16#04F3#, 16#0443#),
+ (16#04F4#, 16#0427#),
+ (16#04F5#, 16#0447#),
+ (16#04F8#, 16#042B#),
+ (16#04F9#, 16#044B#),
+ (16#0587#, 16#0565#),
+ (16#0622#, 16#0627#),
+ (16#0623#, 16#0627#),
+ (16#0624#, 16#0648#),
+ (16#0625#, 16#0627#),
+ (16#0626#, 16#064A#),
+ (16#0675#, 16#0627#),
+ (16#0676#, 16#0648#),
+ (16#0677#, 16#06C7#),
+ (16#0678#, 16#064A#),
+ (16#06C0#, 16#06D5#),
+ (16#06C2#, 16#06C1#),
+ (16#06D3#, 16#06D2#),
+ (16#0929#, 16#0928#),
+ (16#0931#, 16#0930#),
+ (16#0934#, 16#0933#),
+ (16#0958#, 16#0915#),
+ (16#0959#, 16#0916#),
+ (16#095A#, 16#0917#),
+ (16#095B#, 16#091C#),
+ (16#095C#, 16#0921#),
+ (16#095D#, 16#0922#),
+ (16#095E#, 16#092B#),
+ (16#095F#, 16#092F#),
+ (16#09CB#, 16#09C7#),
+ (16#09CC#, 16#09C7#),
+ (16#09DC#, 16#09A1#),
+ (16#09DD#, 16#09A2#),
+ (16#09DF#, 16#09AF#),
+ (16#0A33#, 16#0A32#),
+ (16#0A36#, 16#0A38#),
+ (16#0A59#, 16#0A16#),
+ (16#0A5A#, 16#0A17#),
+ (16#0A5B#, 16#0A1C#),
+ (16#0A5E#, 16#0A2B#),
+ (16#0B48#, 16#0B47#),
+ (16#0B4B#, 16#0B47#),
+ (16#0B4C#, 16#0B47#),
+ (16#0B5C#, 16#0B21#),
+ (16#0B5D#, 16#0B22#),
+ (16#0B94#, 16#0B92#),
+ (16#0BCA#, 16#0BC6#),
+ (16#0BCB#, 16#0BC7#),
+ (16#0BCC#, 16#0BC6#),
+ (16#0C48#, 16#0C46#),
+ (16#0CC0#, 16#0CBF#),
+ (16#0CC7#, 16#0CC6#),
+ (16#0CC8#, 16#0CC6#),
+ (16#0CCA#, 16#0CC6#),
+ (16#0CCB#, 16#0CCA#),
+ (16#0D4A#, 16#0D46#),
+ (16#0D4B#, 16#0D47#),
+ (16#0D4C#, 16#0D46#),
+ (16#0DDA#, 16#0DD9#),
+ (16#0DDC#, 16#0DD9#),
+ (16#0DDD#, 16#0DDC#),
+ (16#0DDE#, 16#0DD9#),
+ (16#0E33#, 16#0E4D#),
+ (16#0EB3#, 16#0ECD#),
+ (16#0EDC#, 16#0EAB#),
+ (16#0EDD#, 16#0EAB#),
+ (16#0F0C#, 16#0F0B#),
+ (16#0F43#, 16#0F42#),
+ (16#0F4D#, 16#0F4C#),
+ (16#0F52#, 16#0F51#),
+ (16#0F57#, 16#0F56#),
+ (16#0F5C#, 16#0F5B#),
+ (16#0F69#, 16#0F40#),
+ (16#0F73#, 16#0F71#),
+ (16#0F75#, 16#0F71#),
+ (16#0F76#, 16#0FB2#),
+ (16#0F77#, 16#0FB2#),
+ (16#0F78#, 16#0FB3#),
+ (16#0F79#, 16#0FB3#),
+ (16#0F81#, 16#0F71#),
+ (16#0F93#, 16#0F92#),
+ (16#0F9D#, 16#0F9C#),
+ (16#0FA2#, 16#0FA1#),
+ (16#0FA7#, 16#0FA6#),
+ (16#0FAC#, 16#0FAB#),
+ (16#0FB9#, 16#0F90#),
+ (16#1026#, 16#1025#),
+ (16#10FC#, 16#10DC#),
+ (16#1B06#, 16#1B05#),
+ (16#1B08#, 16#1B07#),
+ (16#1B0A#, 16#1B09#),
+ (16#1B0C#, 16#1B0B#),
+ (16#1B0E#, 16#1B0D#),
+ (16#1B12#, 16#1B11#),
+ (16#1B3B#, 16#1B3A#),
+ (16#1B3D#, 16#1B3C#),
+ (16#1B40#, 16#1B3E#),
+ (16#1B41#, 16#1B3F#),
+ (16#1B43#, 16#1B42#),
+ (16#1D2C#, 16#0041#),
+ (16#1D2D#, 16#00C6#),
+ (16#1D2E#, 16#0042#),
+ (16#1D30#, 16#0044#),
+ (16#1D31#, 16#0045#),
+ (16#1D32#, 16#018E#),
+ (16#1D33#, 16#0047#),
+ (16#1D34#, 16#0048#),
+ (16#1D35#, 16#0049#),
+ (16#1D36#, 16#004A#),
+ (16#1D37#, 16#004B#),
+ (16#1D38#, 16#004C#),
+ (16#1D39#, 16#004D#),
+ (16#1D3A#, 16#004E#),
+ (16#1D3C#, 16#004F#),
+ (16#1D3D#, 16#0222#),
+ (16#1D3E#, 16#0050#),
+ (16#1D3F#, 16#0052#),
+ (16#1D40#, 16#0054#),
+ (16#1D41#, 16#0055#),
+ (16#1D42#, 16#0057#),
+ (16#1D43#, 16#0061#),
+ (16#1D44#, 16#0250#),
+ (16#1D45#, 16#0251#),
+ (16#1D46#, 16#1D02#),
+ (16#1D47#, 16#0062#),
+ (16#1D48#, 16#0064#),
+ (16#1D49#, 16#0065#),
+ (16#1D4A#, 16#0259#),
+ (16#1D4B#, 16#025B#),
+ (16#1D4C#, 16#025C#),
+ (16#1D4D#, 16#0067#),
+ (16#1D4F#, 16#006B#),
+ (16#1D50#, 16#006D#),
+ (16#1D51#, 16#014B#),
+ (16#1D52#, 16#006F#),
+ (16#1D53#, 16#0254#),
+ (16#1D54#, 16#1D16#),
+ (16#1D55#, 16#1D17#),
+ (16#1D56#, 16#0070#),
+ (16#1D57#, 16#0074#),
+ (16#1D58#, 16#0075#),
+ (16#1D59#, 16#1D1D#),
+ (16#1D5A#, 16#026F#),
+ (16#1D5B#, 16#0076#),
+ (16#1D5C#, 16#1D25#),
+ (16#1D5D#, 16#03B2#),
+ (16#1D5E#, 16#03B3#),
+ (16#1D5F#, 16#03B4#),
+ (16#1D60#, 16#03C6#),
+ (16#1D61#, 16#03C7#),
+ (16#1D62#, 16#0069#),
+ (16#1D63#, 16#0072#),
+ (16#1D64#, 16#0075#),
+ (16#1D65#, 16#0076#),
+ (16#1D66#, 16#03B2#),
+ (16#1D67#, 16#03B3#),
+ (16#1D68#, 16#03C1#),
+ (16#1D69#, 16#03C6#),
+ (16#1D6A#, 16#03C7#),
+ (16#1D78#, 16#043D#),
+ (16#1D9B#, 16#0252#),
+ (16#1D9C#, 16#0063#),
+ (16#1D9D#, 16#0255#),
+ (16#1D9E#, 16#00F0#),
+ (16#1D9F#, 16#025C#),
+ (16#1DA0#, 16#0066#),
+ (16#1DA1#, 16#025F#),
+ (16#1DA2#, 16#0261#),
+ (16#1DA3#, 16#0265#),
+ (16#1DA4#, 16#0268#),
+ (16#1DA5#, 16#0269#),
+ (16#1DA6#, 16#026A#),
+ (16#1DA7#, 16#1D7B#),
+ (16#1DA8#, 16#029D#),
+ (16#1DA9#, 16#026D#),
+ (16#1DAA#, 16#1D85#),
+ (16#1DAB#, 16#029F#),
+ (16#1DAC#, 16#0271#),
+ (16#1DAD#, 16#0270#),
+ (16#1DAE#, 16#0272#),
+ (16#1DAF#, 16#0273#),
+ (16#1DB0#, 16#0274#),
+ (16#1DB1#, 16#0275#),
+ (16#1DB2#, 16#0278#),
+ (16#1DB3#, 16#0282#),
+ (16#1DB4#, 16#0283#),
+ (16#1DB5#, 16#01AB#),
+ (16#1DB6#, 16#0289#),
+ (16#1DB7#, 16#028A#),
+ (16#1DB8#, 16#1D1C#),
+ (16#1DB9#, 16#028B#),
+ (16#1DBA#, 16#028C#),
+ (16#1DBB#, 16#007A#),
+ (16#1DBC#, 16#0290#),
+ (16#1DBD#, 16#0291#),
+ (16#1DBE#, 16#0292#),
+ (16#1DBF#, 16#03B8#),
+ (16#1E00#, 16#0041#),
+ (16#1E01#, 16#0061#),
+ (16#1E02#, 16#0042#),
+ (16#1E03#, 16#0062#),
+ (16#1E04#, 16#0042#),
+ (16#1E05#, 16#0062#),
+ (16#1E06#, 16#0042#),
+ (16#1E07#, 16#0062#),
+ (16#1E08#, 16#00C7#),
+ (16#1E09#, 16#00E7#),
+ (16#1E0A#, 16#0044#),
+ (16#1E0B#, 16#0064#),
+ (16#1E0C#, 16#0044#),
+ (16#1E0D#, 16#0064#),
+ (16#1E0E#, 16#0044#),
+ (16#1E0F#, 16#0064#),
+ (16#1E10#, 16#0044#),
+ (16#1E11#, 16#0064#),
+ (16#1E12#, 16#0044#),
+ (16#1E13#, 16#0064#),
+ (16#1E14#, 16#0112#),
+ (16#1E15#, 16#0113#),
+ (16#1E16#, 16#0112#),
+ (16#1E17#, 16#0113#),
+ (16#1E18#, 16#0045#),
+ (16#1E19#, 16#0065#),
+ (16#1E1A#, 16#0045#),
+ (16#1E1B#, 16#0065#),
+ (16#1E1C#, 16#0228#),
+ (16#1E1D#, 16#0229#),
+ (16#1E1E#, 16#0046#),
+ (16#1E1F#, 16#0066#),
+ (16#1E20#, 16#0047#),
+ (16#1E21#, 16#0067#),
+ (16#1E22#, 16#0048#),
+ (16#1E23#, 16#0068#),
+ (16#1E24#, 16#0048#),
+ (16#1E25#, 16#0068#),
+ (16#1E26#, 16#0048#),
+ (16#1E27#, 16#0068#),
+ (16#1E28#, 16#0048#),
+ (16#1E29#, 16#0068#),
+ (16#1E2A#, 16#0048#),
+ (16#1E2B#, 16#0068#),
+ (16#1E2C#, 16#0049#),
+ (16#1E2D#, 16#0069#),
+ (16#1E2E#, 16#00CF#),
+ (16#1E2F#, 16#00EF#),
+ (16#1E30#, 16#004B#),
+ (16#1E31#, 16#006B#),
+ (16#1E32#, 16#004B#),
+ (16#1E33#, 16#006B#),
+ (16#1E34#, 16#004B#),
+ (16#1E35#, 16#006B#),
+ (16#1E36#, 16#004C#),
+ (16#1E37#, 16#006C#),
+ (16#1E38#, 16#1E36#),
+ (16#1E39#, 16#1E37#),
+ (16#1E3A#, 16#004C#),
+ (16#1E3B#, 16#006C#),
+ (16#1E3C#, 16#004C#),
+ (16#1E3D#, 16#006C#),
+ (16#1E3E#, 16#004D#),
+ (16#1E3F#, 16#006D#),
+ (16#1E40#, 16#004D#),
+ (16#1E41#, 16#006D#),
+ (16#1E42#, 16#004D#),
+ (16#1E43#, 16#006D#),
+ (16#1E44#, 16#004E#),
+ (16#1E45#, 16#006E#),
+ (16#1E46#, 16#004E#),
+ (16#1E47#, 16#006E#),
+ (16#1E48#, 16#004E#),
+ (16#1E49#, 16#006E#),
+ (16#1E4A#, 16#004E#),
+ (16#1E4B#, 16#006E#),
+ (16#1E4C#, 16#00D5#),
+ (16#1E4D#, 16#00F5#),
+ (16#1E4E#, 16#00D5#),
+ (16#1E4F#, 16#00F5#),
+ (16#1E50#, 16#014C#),
+ (16#1E51#, 16#014D#),
+ (16#1E52#, 16#014C#),
+ (16#1E53#, 16#014D#),
+ (16#1E54#, 16#0050#),
+ (16#1E55#, 16#0070#),
+ (16#1E56#, 16#0050#),
+ (16#1E57#, 16#0070#),
+ (16#1E58#, 16#0052#),
+ (16#1E59#, 16#0072#),
+ (16#1E5A#, 16#0052#),
+ (16#1E5B#, 16#0072#),
+ (16#1E5C#, 16#1E5A#),
+ (16#1E5D#, 16#1E5B#),
+ (16#1E5E#, 16#0052#),
+ (16#1E5F#, 16#0072#),
+ (16#1E60#, 16#0053#),
+ (16#1E61#, 16#0073#),
+ (16#1E62#, 16#0053#),
+ (16#1E63#, 16#0073#),
+ (16#1E64#, 16#015A#),
+ (16#1E65#, 16#015B#),
+ (16#1E66#, 16#0160#),
+ (16#1E67#, 16#0161#),
+ (16#1E68#, 16#1E62#),
+ (16#1E69#, 16#1E63#),
+ (16#1E6A#, 16#0054#),
+ (16#1E6B#, 16#0074#),
+ (16#1E6C#, 16#0054#),
+ (16#1E6D#, 16#0074#),
+ (16#1E6E#, 16#0054#),
+ (16#1E6F#, 16#0074#),
+ (16#1E70#, 16#0054#),
+ (16#1E71#, 16#0074#),
+ (16#1E72#, 16#0055#),
+ (16#1E73#, 16#0075#),
+ (16#1E74#, 16#0055#),
+ (16#1E75#, 16#0075#),
+ (16#1E76#, 16#0055#),
+ (16#1E77#, 16#0075#),
+ (16#1E78#, 16#0168#),
+ (16#1E79#, 16#0169#),
+ (16#1E7A#, 16#016A#),
+ (16#1E7B#, 16#016B#),
+ (16#1E7C#, 16#0056#),
+ (16#1E7D#, 16#0076#),
+ (16#1E7E#, 16#0056#),
+ (16#1E7F#, 16#0076#),
+ (16#1E80#, 16#0057#),
+ (16#1E81#, 16#0077#),
+ (16#1E82#, 16#0057#),
+ (16#1E83#, 16#0077#),
+ (16#1E84#, 16#0057#),
+ (16#1E85#, 16#0077#),
+ (16#1E86#, 16#0057#),
+ (16#1E87#, 16#0077#),
+ (16#1E88#, 16#0057#),
+ (16#1E89#, 16#0077#),
+ (16#1E8A#, 16#0058#),
+ (16#1E8B#, 16#0078#),
+ (16#1E8C#, 16#0058#),
+ (16#1E8D#, 16#0078#),
+ (16#1E8E#, 16#0059#),
+ (16#1E8F#, 16#0079#),
+ (16#1E90#, 16#005A#),
+ (16#1E91#, 16#007A#),
+ (16#1E92#, 16#005A#),
+ (16#1E93#, 16#007A#),
+ (16#1E94#, 16#005A#),
+ (16#1E95#, 16#007A#),
+ (16#1E96#, 16#0068#),
+ (16#1E97#, 16#0074#),
+ (16#1E98#, 16#0077#),
+ (16#1E99#, 16#0079#),
+ (16#1E9A#, 16#0061#),
+ (16#1E9B#, 16#017F#),
+ (16#1EA0#, 16#0041#),
+ (16#1EA1#, 16#0061#),
+ (16#1EA2#, 16#0041#),
+ (16#1EA3#, 16#0061#),
+ (16#1EA4#, 16#00C2#),
+ (16#1EA5#, 16#00E2#),
+ (16#1EA6#, 16#00C2#),
+ (16#1EA7#, 16#00E2#),
+ (16#1EA8#, 16#00C2#),
+ (16#1EA9#, 16#00E2#),
+ (16#1EAA#, 16#00C2#),
+ (16#1EAB#, 16#00E2#),
+ (16#1EAC#, 16#1EA0#),
+ (16#1EAD#, 16#1EA1#),
+ (16#1EAE#, 16#0102#),
+ (16#1EAF#, 16#0103#),
+ (16#1EB0#, 16#0102#),
+ (16#1EB1#, 16#0103#),
+ (16#1EB2#, 16#0102#),
+ (16#1EB3#, 16#0103#),
+ (16#1EB4#, 16#0102#),
+ (16#1EB5#, 16#0103#),
+ (16#1EB6#, 16#1EA0#),
+ (16#1EB7#, 16#1EA1#),
+ (16#1EB8#, 16#0045#),
+ (16#1EB9#, 16#0065#),
+ (16#1EBA#, 16#0045#),
+ (16#1EBB#, 16#0065#),
+ (16#1EBC#, 16#0045#),
+ (16#1EBD#, 16#0065#),
+ (16#1EBE#, 16#00CA#),
+ (16#1EBF#, 16#00EA#),
+ (16#1EC0#, 16#00CA#),
+ (16#1EC1#, 16#00EA#),
+ (16#1EC2#, 16#00CA#),
+ (16#1EC3#, 16#00EA#),
+ (16#1EC4#, 16#00CA#),
+ (16#1EC5#, 16#00EA#),
+ (16#1EC6#, 16#1EB8#),
+ (16#1EC7#, 16#1EB9#),
+ (16#1EC8#, 16#0049#),
+ (16#1EC9#, 16#0069#),
+ (16#1ECA#, 16#0049#),
+ (16#1ECB#, 16#0069#),
+ (16#1ECC#, 16#004F#),
+ (16#1ECD#, 16#006F#),
+ (16#1ECE#, 16#004F#),
+ (16#1ECF#, 16#006F#),
+ (16#1ED0#, 16#00D4#),
+ (16#1ED1#, 16#00F4#),
+ (16#1ED2#, 16#00D4#),
+ (16#1ED3#, 16#00F4#),
+ (16#1ED4#, 16#00D4#),
+ (16#1ED5#, 16#00F4#),
+ (16#1ED6#, 16#00D4#),
+ (16#1ED7#, 16#00F4#),
+ (16#1ED8#, 16#1ECC#),
+ (16#1ED9#, 16#1ECD#),
+ (16#1EDA#, 16#01A0#),
+ (16#1EDB#, 16#01A1#),
+ (16#1EDC#, 16#01A0#),
+ (16#1EDD#, 16#01A1#),
+ (16#1EDE#, 16#01A0#),
+ (16#1EDF#, 16#01A1#),
+ (16#1EE0#, 16#01A0#),
+ (16#1EE1#, 16#01A1#),
+ (16#1EE2#, 16#01A0#),
+ (16#1EE3#, 16#01A1#),
+ (16#1EE4#, 16#0055#),
+ (16#1EE5#, 16#0075#),
+ (16#1EE6#, 16#0055#),
+ (16#1EE7#, 16#0075#),
+ (16#1EE8#, 16#01AF#),
+ (16#1EE9#, 16#01B0#),
+ (16#1EEA#, 16#01AF#),
+ (16#1EEB#, 16#01B0#),
+ (16#1EEC#, 16#01AF#),
+ (16#1EED#, 16#01B0#),
+ (16#1EEE#, 16#01AF#),
+ (16#1EEF#, 16#01B0#),
+ (16#1EF0#, 16#01AF#),
+ (16#1EF1#, 16#01B0#),
+ (16#1EF2#, 16#0059#),
+ (16#1EF3#, 16#0079#),
+ (16#1EF4#, 16#0059#),
+ (16#1EF5#, 16#0079#),
+ (16#1EF6#, 16#0059#),
+ (16#1EF7#, 16#0079#),
+ (16#1EF8#, 16#0059#),
+ (16#1EF9#, 16#0079#),
+ (16#1F00#, 16#03B1#),
+ (16#1F01#, 16#03B1#),
+ (16#1F02#, 16#1F00#),
+ (16#1F03#, 16#1F01#),
+ (16#1F04#, 16#1F00#),
+ (16#1F05#, 16#1F01#),
+ (16#1F06#, 16#1F00#),
+ (16#1F07#, 16#1F01#),
+ (16#1F08#, 16#0391#),
+ (16#1F09#, 16#0391#),
+ (16#1F0A#, 16#1F08#),
+ (16#1F0B#, 16#1F09#),
+ (16#1F0C#, 16#1F08#),
+ (16#1F0D#, 16#1F09#),
+ (16#1F0E#, 16#1F08#),
+ (16#1F0F#, 16#1F09#),
+ (16#1F10#, 16#03B5#),
+ (16#1F11#, 16#03B5#),
+ (16#1F12#, 16#1F10#),
+ (16#1F13#, 16#1F11#),
+ (16#1F14#, 16#1F10#),
+ (16#1F15#, 16#1F11#),
+ (16#1F18#, 16#0395#),
+ (16#1F19#, 16#0395#),
+ (16#1F1A#, 16#1F18#),
+ (16#1F1B#, 16#1F19#),
+ (16#1F1C#, 16#1F18#),
+ (16#1F1D#, 16#1F19#),
+ (16#1F20#, 16#03B7#),
+ (16#1F21#, 16#03B7#),
+ (16#1F22#, 16#1F20#),
+ (16#1F23#, 16#1F21#),
+ (16#1F24#, 16#1F20#),
+ (16#1F25#, 16#1F21#),
+ (16#1F26#, 16#1F20#),
+ (16#1F27#, 16#1F21#),
+ (16#1F28#, 16#0397#),
+ (16#1F29#, 16#0397#),
+ (16#1F2A#, 16#1F28#),
+ (16#1F2B#, 16#1F29#),
+ (16#1F2C#, 16#1F28#),
+ (16#1F2D#, 16#1F29#),
+ (16#1F2E#, 16#1F28#),
+ (16#1F2F#, 16#1F29#),
+ (16#1F30#, 16#03B9#),
+ (16#1F31#, 16#03B9#),
+ (16#1F32#, 16#1F30#),
+ (16#1F33#, 16#1F31#),
+ (16#1F34#, 16#1F30#),
+ (16#1F35#, 16#1F31#),
+ (16#1F36#, 16#1F30#),
+ (16#1F37#, 16#1F31#),
+ (16#1F38#, 16#0399#),
+ (16#1F39#, 16#0399#),
+ (16#1F3A#, 16#1F38#),
+ (16#1F3B#, 16#1F39#),
+ (16#1F3C#, 16#1F38#),
+ (16#1F3D#, 16#1F39#),
+ (16#1F3E#, 16#1F38#),
+ (16#1F3F#, 16#1F39#),
+ (16#1F40#, 16#03BF#),
+ (16#1F41#, 16#03BF#),
+ (16#1F42#, 16#1F40#),
+ (16#1F43#, 16#1F41#),
+ (16#1F44#, 16#1F40#),
+ (16#1F45#, 16#1F41#),
+ (16#1F48#, 16#039F#),
+ (16#1F49#, 16#039F#),
+ (16#1F4A#, 16#1F48#),
+ (16#1F4B#, 16#1F49#),
+ (16#1F4C#, 16#1F48#),
+ (16#1F4D#, 16#1F49#),
+ (16#1F50#, 16#03C5#),
+ (16#1F51#, 16#03C5#),
+ (16#1F52#, 16#1F50#),
+ (16#1F53#, 16#1F51#),
+ (16#1F54#, 16#1F50#),
+ (16#1F55#, 16#1F51#),
+ (16#1F56#, 16#1F50#),
+ (16#1F57#, 16#1F51#),
+ (16#1F59#, 16#03A5#),
+ (16#1F5B#, 16#1F59#),
+ (16#1F5D#, 16#1F59#),
+ (16#1F5F#, 16#1F59#),
+ (16#1F60#, 16#03C9#),
+ (16#1F61#, 16#03C9#),
+ (16#1F62#, 16#1F60#),
+ (16#1F63#, 16#1F61#),
+ (16#1F64#, 16#1F60#),
+ (16#1F65#, 16#1F61#),
+ (16#1F66#, 16#1F60#),
+ (16#1F67#, 16#1F61#),
+ (16#1F68#, 16#03A9#),
+ (16#1F69#, 16#03A9#),
+ (16#1F6A#, 16#1F68#),
+ (16#1F6B#, 16#1F69#),
+ (16#1F6C#, 16#1F68#),
+ (16#1F6D#, 16#1F69#),
+ (16#1F6E#, 16#1F68#),
+ (16#1F6F#, 16#1F69#),
+ (16#1F70#, 16#03B1#),
+ (16#1F71#, 16#03AC#),
+ (16#1F72#, 16#03B5#),
+ (16#1F73#, 16#03AD#),
+ (16#1F74#, 16#03B7#),
+ (16#1F75#, 16#03AE#),
+ (16#1F76#, 16#03B9#),
+ (16#1F77#, 16#03AF#),
+ (16#1F78#, 16#03BF#),
+ (16#1F79#, 16#03CC#),
+ (16#1F7A#, 16#03C5#),
+ (16#1F7B#, 16#03CD#),
+ (16#1F7C#, 16#03C9#),
+ (16#1F7D#, 16#03CE#),
+ (16#1F80#, 16#1F00#),
+ (16#1F81#, 16#1F01#),
+ (16#1F82#, 16#1F02#),
+ (16#1F83#, 16#1F03#),
+ (16#1F84#, 16#1F04#),
+ (16#1F85#, 16#1F05#),
+ (16#1F86#, 16#1F06#),
+ (16#1F87#, 16#1F07#),
+ (16#1F88#, 16#1F08#),
+ (16#1F89#, 16#1F09#),
+ (16#1F8A#, 16#1F0A#),
+ (16#1F8B#, 16#1F0B#),
+ (16#1F8C#, 16#1F0C#),
+ (16#1F8D#, 16#1F0D#),
+ (16#1F8E#, 16#1F0E#),
+ (16#1F8F#, 16#1F0F#),
+ (16#1F90#, 16#1F20#),
+ (16#1F91#, 16#1F21#),
+ (16#1F92#, 16#1F22#),
+ (16#1F93#, 16#1F23#),
+ (16#1F94#, 16#1F24#),
+ (16#1F95#, 16#1F25#),
+ (16#1F96#, 16#1F26#),
+ (16#1F97#, 16#1F27#),
+ (16#1F98#, 16#1F28#),
+ (16#1F99#, 16#1F29#),
+ (16#1F9A#, 16#1F2A#),
+ (16#1F9B#, 16#1F2B#),
+ (16#1F9C#, 16#1F2C#),
+ (16#1F9D#, 16#1F2D#),
+ (16#1F9E#, 16#1F2E#),
+ (16#1F9F#, 16#1F2F#),
+ (16#1FA0#, 16#1F60#),
+ (16#1FA1#, 16#1F61#),
+ (16#1FA2#, 16#1F62#),
+ (16#1FA3#, 16#1F63#),
+ (16#1FA4#, 16#1F64#),
+ (16#1FA5#, 16#1F65#),
+ (16#1FA6#, 16#1F66#),
+ (16#1FA7#, 16#1F67#),
+ (16#1FA8#, 16#1F68#),
+ (16#1FA9#, 16#1F69#),
+ (16#1FAA#, 16#1F6A#),
+ (16#1FAB#, 16#1F6B#),
+ (16#1FAC#, 16#1F6C#),
+ (16#1FAD#, 16#1F6D#),
+ (16#1FAE#, 16#1F6E#),
+ (16#1FAF#, 16#1F6F#),
+ (16#1FB0#, 16#03B1#),
+ (16#1FB1#, 16#03B1#),
+ (16#1FB2#, 16#1F70#),
+ (16#1FB3#, 16#03B1#),
+ (16#1FB4#, 16#03AC#),
+ (16#1FB6#, 16#03B1#),
+ (16#1FB7#, 16#1FB6#),
+ (16#1FB8#, 16#0391#),
+ (16#1FB9#, 16#0391#),
+ (16#1FBA#, 16#0391#),
+ (16#1FBB#, 16#0386#),
+ (16#1FBC#, 16#0391#),
+ (16#1FBD#, 16#0020#),
+ (16#1FBE#, 16#03B9#),
+ (16#1FBF#, 16#0020#),
+ (16#1FC0#, 16#0020#),
+ (16#1FC1#, 16#00A8#),
+ (16#1FC2#, 16#1F74#),
+ (16#1FC3#, 16#03B7#),
+ (16#1FC4#, 16#03AE#),
+ (16#1FC6#, 16#03B7#),
+ (16#1FC7#, 16#1FC6#),
+ (16#1FC8#, 16#0395#),
+ (16#1FC9#, 16#0388#),
+ (16#1FCA#, 16#0397#),
+ (16#1FCB#, 16#0389#),
+ (16#1FCC#, 16#0397#),
+ (16#1FCD#, 16#1FBF#),
+ (16#1FCE#, 16#1FBF#),
+ (16#1FCF#, 16#1FBF#),
+ (16#1FD0#, 16#03B9#),
+ (16#1FD1#, 16#03B9#),
+ (16#1FD2#, 16#03CA#),
+ (16#1FD3#, 16#0390#),
+ (16#1FD6#, 16#03B9#),
+ (16#1FD7#, 16#03CA#),
+ (16#1FD8#, 16#0399#),
+ (16#1FD9#, 16#0399#),
+ (16#1FDA#, 16#0399#),
+ (16#1FDB#, 16#038A#),
+ (16#1FDD#, 16#1FFE#),
+ (16#1FDE#, 16#1FFE#),
+ (16#1FDF#, 16#1FFE#),
+ (16#1FE0#, 16#03C5#),
+ (16#1FE1#, 16#03C5#),
+ (16#1FE2#, 16#03CB#),
+ (16#1FE3#, 16#03B0#),
+ (16#1FE4#, 16#03C1#),
+ (16#1FE5#, 16#03C1#),
+ (16#1FE6#, 16#03C5#),
+ (16#1FE7#, 16#03CB#),
+ (16#1FE8#, 16#03A5#),
+ (16#1FE9#, 16#03A5#),
+ (16#1FEA#, 16#03A5#),
+ (16#1FEB#, 16#038E#),
+ (16#1FEC#, 16#03A1#),
+ (16#1FED#, 16#00A8#),
+ (16#1FEE#, 16#0385#),
+ (16#1FEF#, 16#0060#),
+ (16#1FF2#, 16#1F7C#),
+ (16#1FF3#, 16#03C9#),
+ (16#1FF4#, 16#03CE#),
+ (16#1FF6#, 16#03C9#),
+ (16#1FF7#, 16#1FF6#),
+ (16#1FF8#, 16#039F#),
+ (16#1FF9#, 16#038C#),
+ (16#1FFA#, 16#03A9#),
+ (16#1FFB#, 16#038F#),
+ (16#1FFC#, 16#03A9#),
+ (16#1FFD#, 16#00B4#),
+ (16#1FFE#, 16#0020#),
+ (16#2000#, 16#2002#),
+ (16#2001#, 16#2003#),
+ (16#2002#, 16#0020#),
+ (16#2003#, 16#0020#),
+ (16#2004#, 16#0020#),
+ (16#2005#, 16#0020#),
+ (16#2006#, 16#0020#),
+ (16#2007#, 16#0020#),
+ (16#2008#, 16#0020#),
+ (16#2009#, 16#0020#),
+ (16#200A#, 16#0020#),
+ (16#2011#, 16#2010#),
+ (16#2017#, 16#0020#),
+ (16#2024#, 16#002E#),
+ (16#2025#, 16#002E#),
+ (16#2026#, 16#002E#),
+ (16#202F#, 16#0020#),
+ (16#2033#, 16#2032#),
+ (16#2034#, 16#2032#),
+ (16#2036#, 16#2035#),
+ (16#2037#, 16#2035#),
+ (16#203C#, 16#0021#),
+ (16#203E#, 16#0020#),
+ (16#2047#, 16#003F#),
+ (16#2048#, 16#003F#),
+ (16#2049#, 16#0021#),
+ (16#2057#, 16#2032#),
+ (16#205F#, 16#0020#),
+ (16#2070#, 16#0030#),
+ (16#2071#, 16#0069#),
+ (16#2074#, 16#0034#),
+ (16#2075#, 16#0035#),
+ (16#2076#, 16#0036#),
+ (16#2077#, 16#0037#),
+ (16#2078#, 16#0038#),
+ (16#2079#, 16#0039#),
+ (16#207A#, 16#002B#),
+ (16#207B#, 16#2212#),
+ (16#207C#, 16#003D#),
+ (16#207D#, 16#0028#),
+ (16#207E#, 16#0029#),
+ (16#207F#, 16#006E#),
+ (16#2080#, 16#0030#),
+ (16#2081#, 16#0031#),
+ (16#2082#, 16#0032#),
+ (16#2083#, 16#0033#),
+ (16#2084#, 16#0034#),
+ (16#2085#, 16#0035#),
+ (16#2086#, 16#0036#),
+ (16#2087#, 16#0037#),
+ (16#2088#, 16#0038#),
+ (16#2089#, 16#0039#),
+ (16#208A#, 16#002B#),
+ (16#208B#, 16#2212#),
+ (16#208C#, 16#003D#),
+ (16#208D#, 16#0028#),
+ (16#208E#, 16#0029#),
+ (16#2090#, 16#0061#),
+ (16#2091#, 16#0065#),
+ (16#2092#, 16#006F#),
+ (16#2093#, 16#0078#),
+ (16#2094#, 16#0259#),
+ (16#2095#, 16#0068#),
+ (16#2096#, 16#006B#),
+ (16#2097#, 16#006C#),
+ (16#2098#, 16#006D#),
+ (16#2099#, 16#006E#),
+ (16#209A#, 16#0070#),
+ (16#209B#, 16#0073#),
+ (16#209C#, 16#0074#),
+ (16#20A8#, 16#0052#),
+ (16#2100#, 16#0061#),
+ (16#2101#, 16#0061#),
+ (16#2102#, 16#0043#),
+ (16#2103#, 16#00B0#),
+ (16#2105#, 16#0063#),
+ (16#2106#, 16#0063#),
+ (16#2107#, 16#0190#),
+ (16#2109#, 16#00B0#),
+ (16#210A#, 16#0067#),
+ (16#210B#, 16#0048#),
+ (16#210C#, 16#0048#),
+ (16#210D#, 16#0048#),
+ (16#210E#, 16#0068#),
+ (16#210F#, 16#0127#),
+ (16#2110#, 16#0049#),
+ (16#2111#, 16#0049#),
+ (16#2112#, 16#004C#),
+ (16#2113#, 16#006C#),
+ (16#2115#, 16#004E#),
+ (16#2116#, 16#004E#),
+ (16#2119#, 16#0050#),
+ (16#211A#, 16#0051#),
+ (16#211B#, 16#0052#),
+ (16#211C#, 16#0052#),
+ (16#211D#, 16#0052#),
+ (16#2120#, 16#0053#),
+ (16#2121#, 16#0054#),
+ (16#2122#, 16#0054#),
+ (16#2124#, 16#005A#),
+ (16#2126#, 16#03A9#),
+ (16#2128#, 16#005A#),
+ (16#212A#, 16#004B#),
+ (16#212B#, 16#00C5#),
+ (16#212C#, 16#0042#),
+ (16#212D#, 16#0043#),
+ (16#212F#, 16#0065#),
+ (16#2130#, 16#0045#),
+ (16#2131#, 16#0046#),
+ (16#2133#, 16#004D#),
+ (16#2134#, 16#006F#),
+ (16#2135#, 16#05D0#),
+ (16#2136#, 16#05D1#),
+ (16#2137#, 16#05D2#),
+ (16#2138#, 16#05D3#),
+ (16#2139#, 16#0069#),
+ (16#213B#, 16#0046#),
+ (16#213C#, 16#03C0#),
+ (16#213D#, 16#03B3#),
+ (16#213E#, 16#0393#),
+ (16#213F#, 16#03A0#),
+ (16#2140#, 16#2211#),
+ (16#2145#, 16#0044#),
+ (16#2146#, 16#0064#),
+ (16#2147#, 16#0065#),
+ (16#2148#, 16#0069#),
+ (16#2149#, 16#006A#),
+ (16#2150#, 16#0031#),
+ (16#2151#, 16#0031#),
+ (16#2152#, 16#0031#),
+ (16#2153#, 16#0031#),
+ (16#2154#, 16#0032#),
+ (16#2155#, 16#0031#),
+ (16#2156#, 16#0032#),
+ (16#2157#, 16#0033#),
+ (16#2158#, 16#0034#),
+ (16#2159#, 16#0031#),
+ (16#215A#, 16#0035#),
+ (16#215B#, 16#0031#),
+ (16#215C#, 16#0033#),
+ (16#215D#, 16#0035#),
+ (16#215E#, 16#0037#),
+ (16#215F#, 16#0031#),
+ (16#2160#, 16#0049#),
+ (16#2161#, 16#0049#),
+ (16#2162#, 16#0049#),
+ (16#2163#, 16#0049#),
+ (16#2164#, 16#0056#),
+ (16#2165#, 16#0056#),
+ (16#2166#, 16#0056#),
+ (16#2167#, 16#0056#),
+ (16#2168#, 16#0049#),
+ (16#2169#, 16#0058#),
+ (16#216A#, 16#0058#),
+ (16#216B#, 16#0058#),
+ (16#216C#, 16#004C#),
+ (16#216D#, 16#0043#),
+ (16#216E#, 16#0044#),
+ (16#216F#, 16#004D#),
+ (16#2170#, 16#0069#),
+ (16#2171#, 16#0069#),
+ (16#2172#, 16#0069#),
+ (16#2173#, 16#0069#),
+ (16#2174#, 16#0076#),
+ (16#2175#, 16#0076#),
+ (16#2176#, 16#0076#),
+ (16#2177#, 16#0076#),
+ (16#2178#, 16#0069#),
+ (16#2179#, 16#0078#),
+ (16#217A#, 16#0078#),
+ (16#217B#, 16#0078#),
+ (16#217C#, 16#006C#),
+ (16#217D#, 16#0063#),
+ (16#217E#, 16#0064#),
+ (16#217F#, 16#006D#),
+ (16#2189#, 16#0030#),
+ (16#219A#, 16#2190#),
+ (16#219B#, 16#2192#),
+ (16#21AE#, 16#2194#),
+ (16#21CD#, 16#21D0#),
+ (16#21CE#, 16#21D4#),
+ (16#21CF#, 16#21D2#),
+ (16#2204#, 16#2203#),
+ (16#2209#, 16#2208#),
+ (16#220C#, 16#220B#),
+ (16#2224#, 16#2223#),
+ (16#2226#, 16#2225#),
+ (16#222C#, 16#222B#),
+ (16#222D#, 16#222B#),
+ (16#222F#, 16#222E#),
+ (16#2230#, 16#222E#),
+ (16#2241#, 16#223C#),
+ (16#2244#, 16#2243#),
+ (16#2247#, 16#2245#),
+ (16#2249#, 16#2248#),
+ (16#2260#, 16#003D#),
+ (16#2262#, 16#2261#),
+ (16#226D#, 16#224D#),
+ (16#226E#, 16#003C#),
+ (16#226F#, 16#003E#),
+ (16#2270#, 16#2264#),
+ (16#2271#, 16#2265#),
+ (16#2274#, 16#2272#),
+ (16#2275#, 16#2273#),
+ (16#2278#, 16#2276#),
+ (16#2279#, 16#2277#),
+ (16#2280#, 16#227A#),
+ (16#2281#, 16#227B#),
+ (16#2284#, 16#2282#),
+ (16#2285#, 16#2283#),
+ (16#2288#, 16#2286#),
+ (16#2289#, 16#2287#),
+ (16#22AC#, 16#22A2#),
+ (16#22AD#, 16#22A8#),
+ (16#22AE#, 16#22A9#),
+ (16#22AF#, 16#22AB#),
+ (16#22E0#, 16#227C#),
+ (16#22E1#, 16#227D#),
+ (16#22E2#, 16#2291#),
+ (16#22E3#, 16#2292#),
+ (16#22EA#, 16#22B2#),
+ (16#22EB#, 16#22B3#),
+ (16#22EC#, 16#22B4#),
+ (16#22ED#, 16#22B5#),
+ (16#2329#, 16#3008#),
+ (16#232A#, 16#3009#),
+ (16#2460#, 16#0031#),
+ (16#2461#, 16#0032#),
+ (16#2462#, 16#0033#),
+ (16#2463#, 16#0034#),
+ (16#2464#, 16#0035#),
+ (16#2465#, 16#0036#),
+ (16#2466#, 16#0037#),
+ (16#2467#, 16#0038#),
+ (16#2468#, 16#0039#),
+ (16#2469#, 16#0031#),
+ (16#246A#, 16#0031#),
+ (16#246B#, 16#0031#),
+ (16#246C#, 16#0031#),
+ (16#246D#, 16#0031#),
+ (16#246E#, 16#0031#),
+ (16#246F#, 16#0031#),
+ (16#2470#, 16#0031#),
+ (16#2471#, 16#0031#),
+ (16#2472#, 16#0031#),
+ (16#2473#, 16#0032#),
+ (16#2474#, 16#0028#),
+ (16#2475#, 16#0028#),
+ (16#2476#, 16#0028#),
+ (16#2477#, 16#0028#),
+ (16#2478#, 16#0028#),
+ (16#2479#, 16#0028#),
+ (16#247A#, 16#0028#),
+ (16#247B#, 16#0028#),
+ (16#247C#, 16#0028#),
+ (16#247D#, 16#0028#),
+ (16#247E#, 16#0028#),
+ (16#247F#, 16#0028#),
+ (16#2480#, 16#0028#),
+ (16#2481#, 16#0028#),
+ (16#2482#, 16#0028#),
+ (16#2483#, 16#0028#),
+ (16#2484#, 16#0028#),
+ (16#2485#, 16#0028#),
+ (16#2486#, 16#0028#),
+ (16#2487#, 16#0028#),
+ (16#2488#, 16#0031#),
+ (16#2489#, 16#0032#),
+ (16#248A#, 16#0033#),
+ (16#248B#, 16#0034#),
+ (16#248C#, 16#0035#),
+ (16#248D#, 16#0036#),
+ (16#248E#, 16#0037#),
+ (16#248F#, 16#0038#),
+ (16#2490#, 16#0039#),
+ (16#2491#, 16#0031#),
+ (16#2492#, 16#0031#),
+ (16#2493#, 16#0031#),
+ (16#2494#, 16#0031#),
+ (16#2495#, 16#0031#),
+ (16#2496#, 16#0031#),
+ (16#2497#, 16#0031#),
+ (16#2498#, 16#0031#),
+ (16#2499#, 16#0031#),
+ (16#249A#, 16#0031#),
+ (16#249B#, 16#0032#),
+ (16#249C#, 16#0028#),
+ (16#249D#, 16#0028#),
+ (16#249E#, 16#0028#),
+ (16#249F#, 16#0028#),
+ (16#24A0#, 16#0028#),
+ (16#24A1#, 16#0028#),
+ (16#24A2#, 16#0028#),
+ (16#24A3#, 16#0028#),
+ (16#24A4#, 16#0028#),
+ (16#24A5#, 16#0028#),
+ (16#24A6#, 16#0028#),
+ (16#24A7#, 16#0028#),
+ (16#24A8#, 16#0028#),
+ (16#24A9#, 16#0028#),
+ (16#24AA#, 16#0028#),
+ (16#24AB#, 16#0028#),
+ (16#24AC#, 16#0028#),
+ (16#24AD#, 16#0028#),
+ (16#24AE#, 16#0028#),
+ (16#24AF#, 16#0028#),
+ (16#24B0#, 16#0028#),
+ (16#24B1#, 16#0028#),
+ (16#24B2#, 16#0028#),
+ (16#24B3#, 16#0028#),
+ (16#24B4#, 16#0028#),
+ (16#24B5#, 16#0028#),
+ (16#24B6#, 16#0041#),
+ (16#24B7#, 16#0042#),
+ (16#24B8#, 16#0043#),
+ (16#24B9#, 16#0044#),
+ (16#24BA#, 16#0045#),
+ (16#24BB#, 16#0046#),
+ (16#24BC#, 16#0047#),
+ (16#24BD#, 16#0048#),
+ (16#24BE#, 16#0049#),
+ (16#24BF#, 16#004A#),
+ (16#24C0#, 16#004B#),
+ (16#24C1#, 16#004C#),
+ (16#24C2#, 16#004D#),
+ (16#24C3#, 16#004E#),
+ (16#24C4#, 16#004F#),
+ (16#24C5#, 16#0050#),
+ (16#24C6#, 16#0051#),
+ (16#24C7#, 16#0052#),
+ (16#24C8#, 16#0053#),
+ (16#24C9#, 16#0054#),
+ (16#24CA#, 16#0055#),
+ (16#24CB#, 16#0056#),
+ (16#24CC#, 16#0057#),
+ (16#24CD#, 16#0058#),
+ (16#24CE#, 16#0059#),
+ (16#24CF#, 16#005A#),
+ (16#24D0#, 16#0061#),
+ (16#24D1#, 16#0062#),
+ (16#24D2#, 16#0063#),
+ (16#24D3#, 16#0064#),
+ (16#24D4#, 16#0065#),
+ (16#24D5#, 16#0066#),
+ (16#24D6#, 16#0067#),
+ (16#24D7#, 16#0068#),
+ (16#24D8#, 16#0069#),
+ (16#24D9#, 16#006A#),
+ (16#24DA#, 16#006B#),
+ (16#24DB#, 16#006C#),
+ (16#24DC#, 16#006D#),
+ (16#24DD#, 16#006E#),
+ (16#24DE#, 16#006F#),
+ (16#24DF#, 16#0070#),
+ (16#24E0#, 16#0071#),
+ (16#24E1#, 16#0072#),
+ (16#24E2#, 16#0073#),
+ (16#24E3#, 16#0074#),
+ (16#24E4#, 16#0075#),
+ (16#24E5#, 16#0076#),
+ (16#24E6#, 16#0077#),
+ (16#24E7#, 16#0078#),
+ (16#24E8#, 16#0079#),
+ (16#24E9#, 16#007A#),
+ (16#24EA#, 16#0030#),
+ (16#2A0C#, 16#222B#),
+ (16#2A74#, 16#003A#),
+ (16#2A75#, 16#003D#),
+ (16#2A76#, 16#003D#),
+ (16#2ADC#, 16#2ADD#),
+ (16#2C7C#, 16#006A#),
+ (16#2C7D#, 16#0056#),
+ (16#2D6F#, 16#2D61#),
+ (16#2E9F#, 16#6BCD#),
+ (16#2EF3#, 16#9F9F#),
+ (16#2F00#, 16#4E00#),
+ (16#2F01#, 16#4E28#),
+ (16#2F02#, 16#4E36#),
+ (16#2F03#, 16#4E3F#),
+ (16#2F04#, 16#4E59#),
+ (16#2F05#, 16#4E85#),
+ (16#2F06#, 16#4E8C#),
+ (16#2F07#, 16#4EA0#),
+ (16#2F08#, 16#4EBA#),
+ (16#2F09#, 16#513F#),
+ (16#2F0A#, 16#5165#),
+ (16#2F0B#, 16#516B#),
+ (16#2F0C#, 16#5182#),
+ (16#2F0D#, 16#5196#),
+ (16#2F0E#, 16#51AB#),
+ (16#2F0F#, 16#51E0#),
+ (16#2F10#, 16#51F5#),
+ (16#2F11#, 16#5200#),
+ (16#2F12#, 16#529B#),
+ (16#2F13#, 16#52F9#),
+ (16#2F14#, 16#5315#),
+ (16#2F15#, 16#531A#),
+ (16#2F16#, 16#5338#),
+ (16#2F17#, 16#5341#),
+ (16#2F18#, 16#535C#),
+ (16#2F19#, 16#5369#),
+ (16#2F1A#, 16#5382#),
+ (16#2F1B#, 16#53B6#),
+ (16#2F1C#, 16#53C8#),
+ (16#2F1D#, 16#53E3#),
+ (16#2F1E#, 16#56D7#),
+ (16#2F1F#, 16#571F#),
+ (16#2F20#, 16#58EB#),
+ (16#2F21#, 16#5902#),
+ (16#2F22#, 16#590A#),
+ (16#2F23#, 16#5915#),
+ (16#2F24#, 16#5927#),
+ (16#2F25#, 16#5973#),
+ (16#2F26#, 16#5B50#),
+ (16#2F27#, 16#5B80#),
+ (16#2F28#, 16#5BF8#),
+ (16#2F29#, 16#5C0F#),
+ (16#2F2A#, 16#5C22#),
+ (16#2F2B#, 16#5C38#),
+ (16#2F2C#, 16#5C6E#),
+ (16#2F2D#, 16#5C71#),
+ (16#2F2E#, 16#5DDB#),
+ (16#2F2F#, 16#5DE5#),
+ (16#2F30#, 16#5DF1#),
+ (16#2F31#, 16#5DFE#),
+ (16#2F32#, 16#5E72#),
+ (16#2F33#, 16#5E7A#),
+ (16#2F34#, 16#5E7F#),
+ (16#2F35#, 16#5EF4#),
+ (16#2F36#, 16#5EFE#),
+ (16#2F37#, 16#5F0B#),
+ (16#2F38#, 16#5F13#),
+ (16#2F39#, 16#5F50#),
+ (16#2F3A#, 16#5F61#),
+ (16#2F3B#, 16#5F73#),
+ (16#2F3C#, 16#5FC3#),
+ (16#2F3D#, 16#6208#),
+ (16#2F3E#, 16#6236#),
+ (16#2F3F#, 16#624B#),
+ (16#2F40#, 16#652F#),
+ (16#2F41#, 16#6534#),
+ (16#2F42#, 16#6587#),
+ (16#2F43#, 16#6597#),
+ (16#2F44#, 16#65A4#),
+ (16#2F45#, 16#65B9#),
+ (16#2F46#, 16#65E0#),
+ (16#2F47#, 16#65E5#),
+ (16#2F48#, 16#66F0#),
+ (16#2F49#, 16#6708#),
+ (16#2F4A#, 16#6728#),
+ (16#2F4B#, 16#6B20#),
+ (16#2F4C#, 16#6B62#),
+ (16#2F4D#, 16#6B79#),
+ (16#2F4E#, 16#6BB3#),
+ (16#2F4F#, 16#6BCB#),
+ (16#2F50#, 16#6BD4#),
+ (16#2F51#, 16#6BDB#),
+ (16#2F52#, 16#6C0F#),
+ (16#2F53#, 16#6C14#),
+ (16#2F54#, 16#6C34#),
+ (16#2F55#, 16#706B#),
+ (16#2F56#, 16#722A#),
+ (16#2F57#, 16#7236#),
+ (16#2F58#, 16#723B#),
+ (16#2F59#, 16#723F#),
+ (16#2F5A#, 16#7247#),
+ (16#2F5B#, 16#7259#),
+ (16#2F5C#, 16#725B#),
+ (16#2F5D#, 16#72AC#),
+ (16#2F5E#, 16#7384#),
+ (16#2F5F#, 16#7389#),
+ (16#2F60#, 16#74DC#),
+ (16#2F61#, 16#74E6#),
+ (16#2F62#, 16#7518#),
+ (16#2F63#, 16#751F#),
+ (16#2F64#, 16#7528#),
+ (16#2F65#, 16#7530#),
+ (16#2F66#, 16#758B#),
+ (16#2F67#, 16#7592#),
+ (16#2F68#, 16#7676#),
+ (16#2F69#, 16#767D#),
+ (16#2F6A#, 16#76AE#),
+ (16#2F6B#, 16#76BF#),
+ (16#2F6C#, 16#76EE#),
+ (16#2F6D#, 16#77DB#),
+ (16#2F6E#, 16#77E2#),
+ (16#2F6F#, 16#77F3#),
+ (16#2F70#, 16#793A#),
+ (16#2F71#, 16#79B8#),
+ (16#2F72#, 16#79BE#),
+ (16#2F73#, 16#7A74#),
+ (16#2F74#, 16#7ACB#),
+ (16#2F75#, 16#7AF9#),
+ (16#2F76#, 16#7C73#),
+ (16#2F77#, 16#7CF8#),
+ (16#2F78#, 16#7F36#),
+ (16#2F79#, 16#7F51#),
+ (16#2F7A#, 16#7F8A#),
+ (16#2F7B#, 16#7FBD#),
+ (16#2F7C#, 16#8001#),
+ (16#2F7D#, 16#800C#),
+ (16#2F7E#, 16#8012#),
+ (16#2F7F#, 16#8033#),
+ (16#2F80#, 16#807F#),
+ (16#2F81#, 16#8089#),
+ (16#2F82#, 16#81E3#),
+ (16#2F83#, 16#81EA#),
+ (16#2F84#, 16#81F3#),
+ (16#2F85#, 16#81FC#),
+ (16#2F86#, 16#820C#),
+ (16#2F87#, 16#821B#),
+ (16#2F88#, 16#821F#),
+ (16#2F89#, 16#826E#),
+ (16#2F8A#, 16#8272#),
+ (16#2F8B#, 16#8278#),
+ (16#2F8C#, 16#864D#),
+ (16#2F8D#, 16#866B#),
+ (16#2F8E#, 16#8840#),
+ (16#2F8F#, 16#884C#),
+ (16#2F90#, 16#8863#),
+ (16#2F91#, 16#897E#),
+ (16#2F92#, 16#898B#),
+ (16#2F93#, 16#89D2#),
+ (16#2F94#, 16#8A00#),
+ (16#2F95#, 16#8C37#),
+ (16#2F96#, 16#8C46#),
+ (16#2F97#, 16#8C55#),
+ (16#2F98#, 16#8C78#),
+ (16#2F99#, 16#8C9D#),
+ (16#2F9A#, 16#8D64#),
+ (16#2F9B#, 16#8D70#),
+ (16#2F9C#, 16#8DB3#),
+ (16#2F9D#, 16#8EAB#),
+ (16#2F9E#, 16#8ECA#),
+ (16#2F9F#, 16#8F9B#),
+ (16#2FA0#, 16#8FB0#),
+ (16#2FA1#, 16#8FB5#),
+ (16#2FA2#, 16#9091#),
+ (16#2FA3#, 16#9149#),
+ (16#2FA4#, 16#91C6#),
+ (16#2FA5#, 16#91CC#),
+ (16#2FA6#, 16#91D1#),
+ (16#2FA7#, 16#9577#),
+ (16#2FA8#, 16#9580#),
+ (16#2FA9#, 16#961C#),
+ (16#2FAA#, 16#96B6#),
+ (16#2FAB#, 16#96B9#),
+ (16#2FAC#, 16#96E8#),
+ (16#2FAD#, 16#9751#),
+ (16#2FAE#, 16#975E#),
+ (16#2FAF#, 16#9762#),
+ (16#2FB0#, 16#9769#),
+ (16#2FB1#, 16#97CB#),
+ (16#2FB2#, 16#97ED#),
+ (16#2FB3#, 16#97F3#),
+ (16#2FB4#, 16#9801#),
+ (16#2FB5#, 16#98A8#),
+ (16#2FB6#, 16#98DB#),
+ (16#2FB7#, 16#98DF#),
+ (16#2FB8#, 16#9996#),
+ (16#2FB9#, 16#9999#),
+ (16#2FBA#, 16#99AC#),
+ (16#2FBB#, 16#9AA8#),
+ (16#2FBC#, 16#9AD8#),
+ (16#2FBD#, 16#9ADF#),
+ (16#2FBE#, 16#9B25#),
+ (16#2FBF#, 16#9B2F#),
+ (16#2FC0#, 16#9B32#),
+ (16#2FC1#, 16#9B3C#),
+ (16#2FC2#, 16#9B5A#),
+ (16#2FC3#, 16#9CE5#),
+ (16#2FC4#, 16#9E75#),
+ (16#2FC5#, 16#9E7F#),
+ (16#2FC6#, 16#9EA5#),
+ (16#2FC7#, 16#9EBB#),
+ (16#2FC8#, 16#9EC3#),
+ (16#2FC9#, 16#9ECD#),
+ (16#2FCA#, 16#9ED1#),
+ (16#2FCB#, 16#9EF9#),
+ (16#2FCC#, 16#9EFD#),
+ (16#2FCD#, 16#9F0E#),
+ (16#2FCE#, 16#9F13#),
+ (16#2FCF#, 16#9F20#),
+ (16#2FD0#, 16#9F3B#),
+ (16#2FD1#, 16#9F4A#),
+ (16#2FD2#, 16#9F52#),
+ (16#2FD3#, 16#9F8D#),
+ (16#2FD4#, 16#9F9C#),
+ (16#2FD5#, 16#9FA0#),
+ (16#3000#, 16#0020#),
+ (16#3036#, 16#3012#),
+ (16#3038#, 16#5341#),
+ (16#3039#, 16#5344#),
+ (16#303A#, 16#5345#),
+ (16#304C#, 16#304B#),
+ (16#304E#, 16#304D#),
+ (16#3050#, 16#304F#),
+ (16#3052#, 16#3051#),
+ (16#3054#, 16#3053#),
+ (16#3056#, 16#3055#),
+ (16#3058#, 16#3057#),
+ (16#305A#, 16#3059#),
+ (16#305C#, 16#305B#),
+ (16#305E#, 16#305D#),
+ (16#3060#, 16#305F#),
+ (16#3062#, 16#3061#),
+ (16#3065#, 16#3064#),
+ (16#3067#, 16#3066#),
+ (16#3069#, 16#3068#),
+ (16#3070#, 16#306F#),
+ (16#3071#, 16#306F#),
+ (16#3073#, 16#3072#),
+ (16#3074#, 16#3072#),
+ (16#3076#, 16#3075#),
+ (16#3077#, 16#3075#),
+ (16#3079#, 16#3078#),
+ (16#307A#, 16#3078#),
+ (16#307C#, 16#307B#),
+ (16#307D#, 16#307B#),
+ (16#3094#, 16#3046#),
+ (16#309B#, 16#0020#),
+ (16#309C#, 16#0020#),
+ (16#309E#, 16#309D#),
+ (16#309F#, 16#3088#),
+ (16#30AC#, 16#30AB#),
+ (16#30AE#, 16#30AD#),
+ (16#30B0#, 16#30AF#),
+ (16#30B2#, 16#30B1#),
+ (16#30B4#, 16#30B3#),
+ (16#30B6#, 16#30B5#),
+ (16#30B8#, 16#30B7#),
+ (16#30BA#, 16#30B9#),
+ (16#30BC#, 16#30BB#),
+ (16#30BE#, 16#30BD#),
+ (16#30C0#, 16#30BF#),
+ (16#30C2#, 16#30C1#),
+ (16#30C5#, 16#30C4#),
+ (16#30C7#, 16#30C6#),
+ (16#30C9#, 16#30C8#),
+ (16#30D0#, 16#30CF#),
+ (16#30D1#, 16#30CF#),
+ (16#30D3#, 16#30D2#),
+ (16#30D4#, 16#30D2#),
+ (16#30D6#, 16#30D5#),
+ (16#30D7#, 16#30D5#),
+ (16#30D9#, 16#30D8#),
+ (16#30DA#, 16#30D8#),
+ (16#30DC#, 16#30DB#),
+ (16#30DD#, 16#30DB#),
+ (16#30F4#, 16#30A6#),
+ (16#30F7#, 16#30EF#),
+ (16#30F8#, 16#30F0#),
+ (16#30F9#, 16#30F1#),
+ (16#30FA#, 16#30F2#),
+ (16#30FE#, 16#30FD#),
+ (16#30FF#, 16#30B3#),
+ (16#3131#, 16#1100#),
+ (16#3132#, 16#1101#),
+ (16#3133#, 16#11AA#),
+ (16#3134#, 16#1102#),
+ (16#3135#, 16#11AC#),
+ (16#3136#, 16#11AD#),
+ (16#3137#, 16#1103#),
+ (16#3138#, 16#1104#),
+ (16#3139#, 16#1105#),
+ (16#313A#, 16#11B0#),
+ (16#313B#, 16#11B1#),
+ (16#313C#, 16#11B2#),
+ (16#313D#, 16#11B3#),
+ (16#313E#, 16#11B4#),
+ (16#313F#, 16#11B5#),
+ (16#3140#, 16#111A#),
+ (16#3141#, 16#1106#),
+ (16#3142#, 16#1107#),
+ (16#3143#, 16#1108#),
+ (16#3144#, 16#1121#),
+ (16#3145#, 16#1109#),
+ (16#3146#, 16#110A#),
+ (16#3147#, 16#110B#),
+ (16#3148#, 16#110C#),
+ (16#3149#, 16#110D#),
+ (16#314A#, 16#110E#),
+ (16#314B#, 16#110F#),
+ (16#314C#, 16#1110#),
+ (16#314D#, 16#1111#),
+ (16#314E#, 16#1112#),
+ (16#314F#, 16#1161#),
+ (16#3150#, 16#1162#),
+ (16#3151#, 16#1163#),
+ (16#3152#, 16#1164#),
+ (16#3153#, 16#1165#),
+ (16#3154#, 16#1166#),
+ (16#3155#, 16#1167#),
+ (16#3156#, 16#1168#),
+ (16#3157#, 16#1169#),
+ (16#3158#, 16#116A#),
+ (16#3159#, 16#116B#),
+ (16#315A#, 16#116C#),
+ (16#315B#, 16#116D#),
+ (16#315C#, 16#116E#),
+ (16#315D#, 16#116F#),
+ (16#315E#, 16#1170#),
+ (16#315F#, 16#1171#),
+ (16#3160#, 16#1172#),
+ (16#3161#, 16#1173#),
+ (16#3162#, 16#1174#),
+ (16#3163#, 16#1175#),
+ (16#3164#, 16#1160#),
+ (16#3165#, 16#1114#),
+ (16#3166#, 16#1115#),
+ (16#3167#, 16#11C7#),
+ (16#3168#, 16#11C8#),
+ (16#3169#, 16#11CC#),
+ (16#316A#, 16#11CE#),
+ (16#316B#, 16#11D3#),
+ (16#316C#, 16#11D7#),
+ (16#316D#, 16#11D9#),
+ (16#316E#, 16#111C#),
+ (16#316F#, 16#11DD#),
+ (16#3170#, 16#11DF#),
+ (16#3171#, 16#111D#),
+ (16#3172#, 16#111E#),
+ (16#3173#, 16#1120#),
+ (16#3174#, 16#1122#),
+ (16#3175#, 16#1123#),
+ (16#3176#, 16#1127#),
+ (16#3177#, 16#1129#),
+ (16#3178#, 16#112B#),
+ (16#3179#, 16#112C#),
+ (16#317A#, 16#112D#),
+ (16#317B#, 16#112E#),
+ (16#317C#, 16#112F#),
+ (16#317D#, 16#1132#),
+ (16#317E#, 16#1136#),
+ (16#317F#, 16#1140#),
+ (16#3180#, 16#1147#),
+ (16#3181#, 16#114C#),
+ (16#3182#, 16#11F1#),
+ (16#3183#, 16#11F2#),
+ (16#3184#, 16#1157#),
+ (16#3185#, 16#1158#),
+ (16#3186#, 16#1159#),
+ (16#3187#, 16#1184#),
+ (16#3188#, 16#1185#),
+ (16#3189#, 16#1188#),
+ (16#318A#, 16#1191#),
+ (16#318B#, 16#1192#),
+ (16#318C#, 16#1194#),
+ (16#318D#, 16#119E#),
+ (16#318E#, 16#11A1#),
+ (16#3192#, 16#4E00#),
+ (16#3193#, 16#4E8C#),
+ (16#3194#, 16#4E09#),
+ (16#3195#, 16#56DB#),
+ (16#3196#, 16#4E0A#),
+ (16#3197#, 16#4E2D#),
+ (16#3198#, 16#4E0B#),
+ (16#3199#, 16#7532#),
+ (16#319A#, 16#4E59#),
+ (16#319B#, 16#4E19#),
+ (16#319C#, 16#4E01#),
+ (16#319D#, 16#5929#),
+ (16#319E#, 16#5730#),
+ (16#319F#, 16#4EBA#),
+ (16#3200#, 16#0028#),
+ (16#3201#, 16#0028#),
+ (16#3202#, 16#0028#),
+ (16#3203#, 16#0028#),
+ (16#3204#, 16#0028#),
+ (16#3205#, 16#0028#),
+ (16#3206#, 16#0028#),
+ (16#3207#, 16#0028#),
+ (16#3208#, 16#0028#),
+ (16#3209#, 16#0028#),
+ (16#320A#, 16#0028#),
+ (16#320B#, 16#0028#),
+ (16#320C#, 16#0028#),
+ (16#320D#, 16#0028#),
+ (16#320E#, 16#0028#),
+ (16#320F#, 16#0028#),
+ (16#3210#, 16#0028#),
+ (16#3211#, 16#0028#),
+ (16#3212#, 16#0028#),
+ (16#3213#, 16#0028#),
+ (16#3214#, 16#0028#),
+ (16#3215#, 16#0028#),
+ (16#3216#, 16#0028#),
+ (16#3217#, 16#0028#),
+ (16#3218#, 16#0028#),
+ (16#3219#, 16#0028#),
+ (16#321A#, 16#0028#),
+ (16#321B#, 16#0028#),
+ (16#321C#, 16#0028#),
+ (16#321D#, 16#0028#),
+ (16#321E#, 16#0028#),
+ (16#3220#, 16#0028#),
+ (16#3221#, 16#0028#),
+ (16#3222#, 16#0028#),
+ (16#3223#, 16#0028#),
+ (16#3224#, 16#0028#),
+ (16#3225#, 16#0028#),
+ (16#3226#, 16#0028#),
+ (16#3227#, 16#0028#),
+ (16#3228#, 16#0028#),
+ (16#3229#, 16#0028#),
+ (16#322A#, 16#0028#),
+ (16#322B#, 16#0028#),
+ (16#322C#, 16#0028#),
+ (16#322D#, 16#0028#),
+ (16#322E#, 16#0028#),
+ (16#322F#, 16#0028#),
+ (16#3230#, 16#0028#),
+ (16#3231#, 16#0028#),
+ (16#3232#, 16#0028#),
+ (16#3233#, 16#0028#),
+ (16#3234#, 16#0028#),
+ (16#3235#, 16#0028#),
+ (16#3236#, 16#0028#),
+ (16#3237#, 16#0028#),
+ (16#3238#, 16#0028#),
+ (16#3239#, 16#0028#),
+ (16#323A#, 16#0028#),
+ (16#323B#, 16#0028#),
+ (16#323C#, 16#0028#),
+ (16#323D#, 16#0028#),
+ (16#323E#, 16#0028#),
+ (16#323F#, 16#0028#),
+ (16#3240#, 16#0028#),
+ (16#3241#, 16#0028#),
+ (16#3242#, 16#0028#),
+ (16#3243#, 16#0028#),
+ (16#3244#, 16#554F#),
+ (16#3245#, 16#5E7C#),
+ (16#3246#, 16#6587#),
+ (16#3247#, 16#7B8F#),
+ (16#3250#, 16#0050#),
+ (16#3251#, 16#0032#),
+ (16#3252#, 16#0032#),
+ (16#3253#, 16#0032#),
+ (16#3254#, 16#0032#),
+ (16#3255#, 16#0032#),
+ (16#3256#, 16#0032#),
+ (16#3257#, 16#0032#),
+ (16#3258#, 16#0032#),
+ (16#3259#, 16#0032#),
+ (16#325A#, 16#0033#),
+ (16#325B#, 16#0033#),
+ (16#325C#, 16#0033#),
+ (16#325D#, 16#0033#),
+ (16#325E#, 16#0033#),
+ (16#325F#, 16#0033#),
+ (16#3260#, 16#1100#),
+ (16#3261#, 16#1102#),
+ (16#3262#, 16#1103#),
+ (16#3263#, 16#1105#),
+ (16#3264#, 16#1106#),
+ (16#3265#, 16#1107#),
+ (16#3266#, 16#1109#),
+ (16#3267#, 16#110B#),
+ (16#3268#, 16#110C#),
+ (16#3269#, 16#110E#),
+ (16#326A#, 16#110F#),
+ (16#326B#, 16#1110#),
+ (16#326C#, 16#1111#),
+ (16#326D#, 16#1112#),
+ (16#326E#, 16#1100#),
+ (16#326F#, 16#1102#),
+ (16#3270#, 16#1103#),
+ (16#3271#, 16#1105#),
+ (16#3272#, 16#1106#),
+ (16#3273#, 16#1107#),
+ (16#3274#, 16#1109#),
+ (16#3275#, 16#110B#),
+ (16#3276#, 16#110C#),
+ (16#3277#, 16#110E#),
+ (16#3278#, 16#110F#),
+ (16#3279#, 16#1110#),
+ (16#327A#, 16#1111#),
+ (16#327B#, 16#1112#),
+ (16#327C#, 16#110E#),
+ (16#327D#, 16#110C#),
+ (16#327E#, 16#110B#),
+ (16#3280#, 16#4E00#),
+ (16#3281#, 16#4E8C#),
+ (16#3282#, 16#4E09#),
+ (16#3283#, 16#56DB#),
+ (16#3284#, 16#4E94#),
+ (16#3285#, 16#516D#),
+ (16#3286#, 16#4E03#),
+ (16#3287#, 16#516B#),
+ (16#3288#, 16#4E5D#),
+ (16#3289#, 16#5341#),
+ (16#328A#, 16#6708#),
+ (16#328B#, 16#706B#),
+ (16#328C#, 16#6C34#),
+ (16#328D#, 16#6728#),
+ (16#328E#, 16#91D1#),
+ (16#328F#, 16#571F#),
+ (16#3290#, 16#65E5#),
+ (16#3291#, 16#682A#),
+ (16#3292#, 16#6709#),
+ (16#3293#, 16#793E#),
+ (16#3294#, 16#540D#),
+ (16#3295#, 16#7279#),
+ (16#3296#, 16#8CA1#),
+ (16#3297#, 16#795D#),
+ (16#3298#, 16#52B4#),
+ (16#3299#, 16#79D8#),
+ (16#329A#, 16#7537#),
+ (16#329B#, 16#5973#),
+ (16#329C#, 16#9069#),
+ (16#329D#, 16#512A#),
+ (16#329E#, 16#5370#),
+ (16#329F#, 16#6CE8#),
+ (16#32A0#, 16#9805#),
+ (16#32A1#, 16#4F11#),
+ (16#32A2#, 16#5199#),
+ (16#32A3#, 16#6B63#),
+ (16#32A4#, 16#4E0A#),
+ (16#32A5#, 16#4E2D#),
+ (16#32A6#, 16#4E0B#),
+ (16#32A7#, 16#5DE6#),
+ (16#32A8#, 16#53F3#),
+ (16#32A9#, 16#533B#),
+ (16#32AA#, 16#5B97#),
+ (16#32AB#, 16#5B66#),
+ (16#32AC#, 16#76E3#),
+ (16#32AD#, 16#4F01#),
+ (16#32AE#, 16#8CC7#),
+ (16#32AF#, 16#5354#),
+ (16#32B0#, 16#591C#),
+ (16#32B1#, 16#0033#),
+ (16#32B2#, 16#0033#),
+ (16#32B3#, 16#0033#),
+ (16#32B4#, 16#0033#),
+ (16#32B5#, 16#0034#),
+ (16#32B6#, 16#0034#),
+ (16#32B7#, 16#0034#),
+ (16#32B8#, 16#0034#),
+ (16#32B9#, 16#0034#),
+ (16#32BA#, 16#0034#),
+ (16#32BB#, 16#0034#),
+ (16#32BC#, 16#0034#),
+ (16#32BD#, 16#0034#),
+ (16#32BE#, 16#0034#),
+ (16#32BF#, 16#0035#),
+ (16#32C0#, 16#0031#),
+ (16#32C1#, 16#0032#),
+ (16#32C2#, 16#0033#),
+ (16#32C3#, 16#0034#),
+ (16#32C4#, 16#0035#),
+ (16#32C5#, 16#0036#),
+ (16#32C6#, 16#0037#),
+ (16#32C7#, 16#0038#),
+ (16#32C8#, 16#0039#),
+ (16#32C9#, 16#0031#),
+ (16#32CA#, 16#0031#),
+ (16#32CB#, 16#0031#),
+ (16#32CC#, 16#0048#),
+ (16#32CD#, 16#0065#),
+ (16#32CE#, 16#0065#),
+ (16#32CF#, 16#004C#),
+ (16#32D0#, 16#30A2#),
+ (16#32D1#, 16#30A4#),
+ (16#32D2#, 16#30A6#),
+ (16#32D3#, 16#30A8#),
+ (16#32D4#, 16#30AA#),
+ (16#32D5#, 16#30AB#),
+ (16#32D6#, 16#30AD#),
+ (16#32D7#, 16#30AF#),
+ (16#32D8#, 16#30B1#),
+ (16#32D9#, 16#30B3#),
+ (16#32DA#, 16#30B5#),
+ (16#32DB#, 16#30B7#),
+ (16#32DC#, 16#30B9#),
+ (16#32DD#, 16#30BB#),
+ (16#32DE#, 16#30BD#),
+ (16#32DF#, 16#30BF#),
+ (16#32E0#, 16#30C1#),
+ (16#32E1#, 16#30C4#),
+ (16#32E2#, 16#30C6#),
+ (16#32E3#, 16#30C8#),
+ (16#32E4#, 16#30CA#),
+ (16#32E5#, 16#30CB#),
+ (16#32E6#, 16#30CC#),
+ (16#32E7#, 16#30CD#),
+ (16#32E8#, 16#30CE#),
+ (16#32E9#, 16#30CF#),
+ (16#32EA#, 16#30D2#),
+ (16#32EB#, 16#30D5#),
+ (16#32EC#, 16#30D8#),
+ (16#32ED#, 16#30DB#),
+ (16#32EE#, 16#30DE#),
+ (16#32EF#, 16#30DF#),
+ (16#32F0#, 16#30E0#),
+ (16#32F1#, 16#30E1#),
+ (16#32F2#, 16#30E2#),
+ (16#32F3#, 16#30E4#),
+ (16#32F4#, 16#30E6#),
+ (16#32F5#, 16#30E8#),
+ (16#32F6#, 16#30E9#),
+ (16#32F7#, 16#30EA#),
+ (16#32F8#, 16#30EB#),
+ (16#32F9#, 16#30EC#),
+ (16#32FA#, 16#30ED#),
+ (16#32FB#, 16#30EF#),
+ (16#32FC#, 16#30F0#),
+ (16#32FD#, 16#30F1#),
+ (16#32FE#, 16#30F2#),
+ (16#32FF#, 16#4EE4#),
+ (16#3300#, 16#30A2#),
+ (16#3301#, 16#30A2#),
+ (16#3302#, 16#30A2#),
+ (16#3303#, 16#30A2#),
+ (16#3304#, 16#30A4#),
+ (16#3305#, 16#30A4#),
+ (16#3306#, 16#30A6#),
+ (16#3307#, 16#30A8#),
+ (16#3308#, 16#30A8#),
+ (16#3309#, 16#30AA#),
+ (16#330A#, 16#30AA#),
+ (16#330B#, 16#30AB#),
+ (16#330C#, 16#30AB#),
+ (16#330D#, 16#30AB#),
+ (16#330E#, 16#30AC#),
+ (16#330F#, 16#30AC#),
+ (16#3310#, 16#30AE#),
+ (16#3311#, 16#30AE#),
+ (16#3312#, 16#30AD#),
+ (16#3313#, 16#30AE#),
+ (16#3314#, 16#30AD#),
+ (16#3315#, 16#30AD#),
+ (16#3316#, 16#30AD#),
+ (16#3317#, 16#30AD#),
+ (16#3318#, 16#30B0#),
+ (16#3319#, 16#30B0#),
+ (16#331A#, 16#30AF#),
+ (16#331B#, 16#30AF#),
+ (16#331C#, 16#30B1#),
+ (16#331D#, 16#30B3#),
+ (16#331E#, 16#30B3#),
+ (16#331F#, 16#30B5#),
+ (16#3320#, 16#30B5#),
+ (16#3321#, 16#30B7#),
+ (16#3322#, 16#30BB#),
+ (16#3323#, 16#30BB#),
+ (16#3324#, 16#30C0#),
+ (16#3325#, 16#30C7#),
+ (16#3326#, 16#30C9#),
+ (16#3327#, 16#30C8#),
+ (16#3328#, 16#30CA#),
+ (16#3329#, 16#30CE#),
+ (16#332A#, 16#30CF#),
+ (16#332B#, 16#30D1#),
+ (16#332C#, 16#30D1#),
+ (16#332D#, 16#30D0#),
+ (16#332E#, 16#30D4#),
+ (16#332F#, 16#30D4#),
+ (16#3330#, 16#30D4#),
+ (16#3331#, 16#30D3#),
+ (16#3332#, 16#30D5#),
+ (16#3333#, 16#30D5#),
+ (16#3334#, 16#30D6#),
+ (16#3335#, 16#30D5#),
+ (16#3336#, 16#30D8#),
+ (16#3337#, 16#30DA#),
+ (16#3338#, 16#30DA#),
+ (16#3339#, 16#30D8#),
+ (16#333A#, 16#30DA#),
+ (16#333B#, 16#30DA#),
+ (16#333C#, 16#30D9#),
+ (16#333D#, 16#30DD#),
+ (16#333E#, 16#30DC#),
+ (16#333F#, 16#30DB#),
+ (16#3340#, 16#30DD#),
+ (16#3341#, 16#30DB#),
+ (16#3342#, 16#30DB#),
+ (16#3343#, 16#30DE#),
+ (16#3344#, 16#30DE#),
+ (16#3345#, 16#30DE#),
+ (16#3346#, 16#30DE#),
+ (16#3347#, 16#30DE#),
+ (16#3348#, 16#30DF#),
+ (16#3349#, 16#30DF#),
+ (16#334A#, 16#30DF#),
+ (16#334B#, 16#30E1#),
+ (16#334C#, 16#30E1#),
+ (16#334D#, 16#30E1#),
+ (16#334E#, 16#30E4#),
+ (16#334F#, 16#30E4#),
+ (16#3350#, 16#30E6#),
+ (16#3351#, 16#30EA#),
+ (16#3352#, 16#30EA#),
+ (16#3353#, 16#30EB#),
+ (16#3354#, 16#30EB#),
+ (16#3355#, 16#30EC#),
+ (16#3356#, 16#30EC#),
+ (16#3357#, 16#30EF#),
+ (16#3358#, 16#0030#),
+ (16#3359#, 16#0031#),
+ (16#335A#, 16#0032#),
+ (16#335B#, 16#0033#),
+ (16#335C#, 16#0034#),
+ (16#335D#, 16#0035#),
+ (16#335E#, 16#0036#),
+ (16#335F#, 16#0037#),
+ (16#3360#, 16#0038#),
+ (16#3361#, 16#0039#),
+ (16#3362#, 16#0031#),
+ (16#3363#, 16#0031#),
+ (16#3364#, 16#0031#),
+ (16#3365#, 16#0031#),
+ (16#3366#, 16#0031#),
+ (16#3367#, 16#0031#),
+ (16#3368#, 16#0031#),
+ (16#3369#, 16#0031#),
+ (16#336A#, 16#0031#),
+ (16#336B#, 16#0031#),
+ (16#336C#, 16#0032#),
+ (16#336D#, 16#0032#),
+ (16#336E#, 16#0032#),
+ (16#336F#, 16#0032#),
+ (16#3370#, 16#0032#),
+ (16#3371#, 16#0068#),
+ (16#3372#, 16#0064#),
+ (16#3373#, 16#0041#),
+ (16#3374#, 16#0062#),
+ (16#3375#, 16#006F#),
+ (16#3376#, 16#0070#),
+ (16#3377#, 16#0064#),
+ (16#3378#, 16#0064#),
+ (16#3379#, 16#0064#),
+ (16#337A#, 16#0049#),
+ (16#337B#, 16#5E73#),
+ (16#337C#, 16#662D#),
+ (16#337D#, 16#5927#),
+ (16#337E#, 16#660E#),
+ (16#337F#, 16#682A#),
+ (16#3380#, 16#0070#),
+ (16#3381#, 16#006E#),
+ (16#3382#, 16#03BC#),
+ (16#3383#, 16#006D#),
+ (16#3384#, 16#006B#),
+ (16#3385#, 16#004B#),
+ (16#3386#, 16#004D#),
+ (16#3387#, 16#0047#),
+ (16#3388#, 16#0063#),
+ (16#3389#, 16#006B#),
+ (16#338A#, 16#0070#),
+ (16#338B#, 16#006E#),
+ (16#338C#, 16#03BC#),
+ (16#338D#, 16#03BC#),
+ (16#338E#, 16#006D#),
+ (16#338F#, 16#006B#),
+ (16#3390#, 16#0048#),
+ (16#3391#, 16#006B#),
+ (16#3392#, 16#004D#),
+ (16#3393#, 16#0047#),
+ (16#3394#, 16#0054#),
+ (16#3395#, 16#03BC#),
+ (16#3396#, 16#006D#),
+ (16#3397#, 16#0064#),
+ (16#3398#, 16#006B#),
+ (16#3399#, 16#0066#),
+ (16#339A#, 16#006E#),
+ (16#339B#, 16#03BC#),
+ (16#339C#, 16#006D#),
+ (16#339D#, 16#0063#),
+ (16#339E#, 16#006B#),
+ (16#339F#, 16#006D#),
+ (16#33A0#, 16#0063#),
+ (16#33A1#, 16#006D#),
+ (16#33A2#, 16#006B#),
+ (16#33A3#, 16#006D#),
+ (16#33A4#, 16#0063#),
+ (16#33A5#, 16#006D#),
+ (16#33A6#, 16#006B#),
+ (16#33A7#, 16#006D#),
+ (16#33A8#, 16#006D#),
+ (16#33A9#, 16#0050#),
+ (16#33AA#, 16#006B#),
+ (16#33AB#, 16#004D#),
+ (16#33AC#, 16#0047#),
+ (16#33AD#, 16#0072#),
+ (16#33AE#, 16#0072#),
+ (16#33AF#, 16#0072#),
+ (16#33B0#, 16#0070#),
+ (16#33B1#, 16#006E#),
+ (16#33B2#, 16#03BC#),
+ (16#33B3#, 16#006D#),
+ (16#33B4#, 16#0070#),
+ (16#33B5#, 16#006E#),
+ (16#33B6#, 16#03BC#),
+ (16#33B7#, 16#006D#),
+ (16#33B8#, 16#006B#),
+ (16#33B9#, 16#004D#),
+ (16#33BA#, 16#0070#),
+ (16#33BB#, 16#006E#),
+ (16#33BC#, 16#03BC#),
+ (16#33BD#, 16#006D#),
+ (16#33BE#, 16#006B#),
+ (16#33BF#, 16#004D#),
+ (16#33C0#, 16#006B#),
+ (16#33C1#, 16#004D#),
+ (16#33C2#, 16#0061#),
+ (16#33C3#, 16#0042#),
+ (16#33C4#, 16#0063#),
+ (16#33C5#, 16#0063#),
+ (16#33C6#, 16#0043#),
+ (16#33C7#, 16#0043#),
+ (16#33C8#, 16#0064#),
+ (16#33C9#, 16#0047#),
+ (16#33CA#, 16#0068#),
+ (16#33CB#, 16#0048#),
+ (16#33CC#, 16#0069#),
+ (16#33CD#, 16#004B#),
+ (16#33CE#, 16#004B#),
+ (16#33CF#, 16#006B#),
+ (16#33D0#, 16#006C#),
+ (16#33D1#, 16#006C#),
+ (16#33D2#, 16#006C#),
+ (16#33D3#, 16#006C#),
+ (16#33D4#, 16#006D#),
+ (16#33D5#, 16#006D#),
+ (16#33D6#, 16#006D#),
+ (16#33D7#, 16#0050#),
+ (16#33D8#, 16#0070#),
+ (16#33D9#, 16#0050#),
+ (16#33DA#, 16#0050#),
+ (16#33DB#, 16#0073#),
+ (16#33DC#, 16#0053#),
+ (16#33DD#, 16#0057#),
+ (16#33DE#, 16#0056#),
+ (16#33DF#, 16#0041#),
+ (16#33E0#, 16#0031#),
+ (16#33E1#, 16#0032#),
+ (16#33E2#, 16#0033#),
+ (16#33E3#, 16#0034#),
+ (16#33E4#, 16#0035#),
+ (16#33E5#, 16#0036#),
+ (16#33E6#, 16#0037#),
+ (16#33E7#, 16#0038#),
+ (16#33E8#, 16#0039#),
+ (16#33E9#, 16#0031#),
+ (16#33EA#, 16#0031#),
+ (16#33EB#, 16#0031#),
+ (16#33EC#, 16#0031#),
+ (16#33ED#, 16#0031#),
+ (16#33EE#, 16#0031#),
+ (16#33EF#, 16#0031#),
+ (16#33F0#, 16#0031#),
+ (16#33F1#, 16#0031#),
+ (16#33F2#, 16#0031#),
+ (16#33F3#, 16#0032#),
+ (16#33F4#, 16#0032#),
+ (16#33F5#, 16#0032#),
+ (16#33F6#, 16#0032#),
+ (16#33F7#, 16#0032#),
+ (16#33F8#, 16#0032#),
+ (16#33F9#, 16#0032#),
+ (16#33FA#, 16#0032#),
+ (16#33FB#, 16#0032#),
+ (16#33FC#, 16#0032#),
+ (16#33FD#, 16#0033#),
+ (16#33FE#, 16#0033#),
+ (16#33FF#, 16#0067#),
+ (16#A69C#, 16#044A#),
+ (16#A69D#, 16#044C#),
+ (16#A770#, 16#A76F#),
+ (16#A7F8#, 16#0126#),
+ (16#A7F9#, 16#0153#),
+ (16#AB5C#, 16#A727#),
+ (16#AB5D#, 16#AB37#),
+ (16#AB5E#, 16#026B#),
+ (16#AB5F#, 16#AB52#),
+ (16#AB69#, 16#028D#),
+ (16#F900#, 16#8C48#),
+ (16#F901#, 16#66F4#),
+ (16#F902#, 16#8ECA#),
+ (16#F903#, 16#8CC8#),
+ (16#F904#, 16#6ED1#),
+ (16#F905#, 16#4E32#),
+ (16#F906#, 16#53E5#),
+ (16#F907#, 16#9F9C#),
+ (16#F908#, 16#9F9C#),
+ (16#F909#, 16#5951#),
+ (16#F90A#, 16#91D1#),
+ (16#F90B#, 16#5587#),
+ (16#F90C#, 16#5948#),
+ (16#F90D#, 16#61F6#),
+ (16#F90E#, 16#7669#),
+ (16#F90F#, 16#7F85#),
+ (16#F910#, 16#863F#),
+ (16#F911#, 16#87BA#),
+ (16#F912#, 16#88F8#),
+ (16#F913#, 16#908F#),
+ (16#F914#, 16#6A02#),
+ (16#F915#, 16#6D1B#),
+ (16#F916#, 16#70D9#),
+ (16#F917#, 16#73DE#),
+ (16#F918#, 16#843D#),
+ (16#F919#, 16#916A#),
+ (16#F91A#, 16#99F1#),
+ (16#F91B#, 16#4E82#),
+ (16#F91C#, 16#5375#),
+ (16#F91D#, 16#6B04#),
+ (16#F91E#, 16#721B#),
+ (16#F91F#, 16#862D#),
+ (16#F920#, 16#9E1E#),
+ (16#F921#, 16#5D50#),
+ (16#F922#, 16#6FEB#),
+ (16#F923#, 16#85CD#),
+ (16#F924#, 16#8964#),
+ (16#F925#, 16#62C9#),
+ (16#F926#, 16#81D8#),
+ (16#F927#, 16#881F#),
+ (16#F928#, 16#5ECA#),
+ (16#F929#, 16#6717#),
+ (16#F92A#, 16#6D6A#),
+ (16#F92B#, 16#72FC#),
+ (16#F92C#, 16#90CE#),
+ (16#F92D#, 16#4F86#),
+ (16#F92E#, 16#51B7#),
+ (16#F92F#, 16#52DE#),
+ (16#F930#, 16#64C4#),
+ (16#F931#, 16#6AD3#),
+ (16#F932#, 16#7210#),
+ (16#F933#, 16#76E7#),
+ (16#F934#, 16#8001#),
+ (16#F935#, 16#8606#),
+ (16#F936#, 16#865C#),
+ (16#F937#, 16#8DEF#),
+ (16#F938#, 16#9732#),
+ (16#F939#, 16#9B6F#),
+ (16#F93A#, 16#9DFA#),
+ (16#F93B#, 16#788C#),
+ (16#F93C#, 16#797F#),
+ (16#F93D#, 16#7DA0#),
+ (16#F93E#, 16#83C9#),
+ (16#F93F#, 16#9304#),
+ (16#F940#, 16#9E7F#),
+ (16#F941#, 16#8AD6#),
+ (16#F942#, 16#58DF#),
+ (16#F943#, 16#5F04#),
+ (16#F944#, 16#7C60#),
+ (16#F945#, 16#807E#),
+ (16#F946#, 16#7262#),
+ (16#F947#, 16#78CA#),
+ (16#F948#, 16#8CC2#),
+ (16#F949#, 16#96F7#),
+ (16#F94A#, 16#58D8#),
+ (16#F94B#, 16#5C62#),
+ (16#F94C#, 16#6A13#),
+ (16#F94D#, 16#6DDA#),
+ (16#F94E#, 16#6F0F#),
+ (16#F94F#, 16#7D2F#),
+ (16#F950#, 16#7E37#),
+ (16#F951#, 16#964B#),
+ (16#F952#, 16#52D2#),
+ (16#F953#, 16#808B#),
+ (16#F954#, 16#51DC#),
+ (16#F955#, 16#51CC#),
+ (16#F956#, 16#7A1C#),
+ (16#F957#, 16#7DBE#),
+ (16#F958#, 16#83F1#),
+ (16#F959#, 16#9675#),
+ (16#F95A#, 16#8B80#),
+ (16#F95B#, 16#62CF#),
+ (16#F95C#, 16#6A02#),
+ (16#F95D#, 16#8AFE#),
+ (16#F95E#, 16#4E39#),
+ (16#F95F#, 16#5BE7#),
+ (16#F960#, 16#6012#),
+ (16#F961#, 16#7387#),
+ (16#F962#, 16#7570#),
+ (16#F963#, 16#5317#),
+ (16#F964#, 16#78FB#),
+ (16#F965#, 16#4FBF#),
+ (16#F966#, 16#5FA9#),
+ (16#F967#, 16#4E0D#),
+ (16#F968#, 16#6CCC#),
+ (16#F969#, 16#6578#),
+ (16#F96A#, 16#7D22#),
+ (16#F96B#, 16#53C3#),
+ (16#F96C#, 16#585E#),
+ (16#F96D#, 16#7701#),
+ (16#F96E#, 16#8449#),
+ (16#F96F#, 16#8AAA#),
+ (16#F970#, 16#6BBA#),
+ (16#F971#, 16#8FB0#),
+ (16#F972#, 16#6C88#),
+ (16#F973#, 16#62FE#),
+ (16#F974#, 16#82E5#),
+ (16#F975#, 16#63A0#),
+ (16#F976#, 16#7565#),
+ (16#F977#, 16#4EAE#),
+ (16#F978#, 16#5169#),
+ (16#F979#, 16#51C9#),
+ (16#F97A#, 16#6881#),
+ (16#F97B#, 16#7CE7#),
+ (16#F97C#, 16#826F#),
+ (16#F97D#, 16#8AD2#),
+ (16#F97E#, 16#91CF#),
+ (16#F97F#, 16#52F5#),
+ (16#F980#, 16#5442#),
+ (16#F981#, 16#5973#),
+ (16#F982#, 16#5EEC#),
+ (16#F983#, 16#65C5#),
+ (16#F984#, 16#6FFE#),
+ (16#F985#, 16#792A#),
+ (16#F986#, 16#95AD#),
+ (16#F987#, 16#9A6A#),
+ (16#F988#, 16#9E97#),
+ (16#F989#, 16#9ECE#),
+ (16#F98A#, 16#529B#),
+ (16#F98B#, 16#66C6#),
+ (16#F98C#, 16#6B77#),
+ (16#F98D#, 16#8F62#),
+ (16#F98E#, 16#5E74#),
+ (16#F98F#, 16#6190#),
+ (16#F990#, 16#6200#),
+ (16#F991#, 16#649A#),
+ (16#F992#, 16#6F23#),
+ (16#F993#, 16#7149#),
+ (16#F994#, 16#7489#),
+ (16#F995#, 16#79CA#),
+ (16#F996#, 16#7DF4#),
+ (16#F997#, 16#806F#),
+ (16#F998#, 16#8F26#),
+ (16#F999#, 16#84EE#),
+ (16#F99A#, 16#9023#),
+ (16#F99B#, 16#934A#),
+ (16#F99C#, 16#5217#),
+ (16#F99D#, 16#52A3#),
+ (16#F99E#, 16#54BD#),
+ (16#F99F#, 16#70C8#),
+ (16#F9A0#, 16#88C2#),
+ (16#F9A1#, 16#8AAA#),
+ (16#F9A2#, 16#5EC9#),
+ (16#F9A3#, 16#5FF5#),
+ (16#F9A4#, 16#637B#),
+ (16#F9A5#, 16#6BAE#),
+ (16#F9A6#, 16#7C3E#),
+ (16#F9A7#, 16#7375#),
+ (16#F9A8#, 16#4EE4#),
+ (16#F9A9#, 16#56F9#),
+ (16#F9AA#, 16#5BE7#),
+ (16#F9AB#, 16#5DBA#),
+ (16#F9AC#, 16#601C#),
+ (16#F9AD#, 16#73B2#),
+ (16#F9AE#, 16#7469#),
+ (16#F9AF#, 16#7F9A#),
+ (16#F9B0#, 16#8046#),
+ (16#F9B1#, 16#9234#),
+ (16#F9B2#, 16#96F6#),
+ (16#F9B3#, 16#9748#),
+ (16#F9B4#, 16#9818#),
+ (16#F9B5#, 16#4F8B#),
+ (16#F9B6#, 16#79AE#),
+ (16#F9B7#, 16#91B4#),
+ (16#F9B8#, 16#96B8#),
+ (16#F9B9#, 16#60E1#),
+ (16#F9BA#, 16#4E86#),
+ (16#F9BB#, 16#50DA#),
+ (16#F9BC#, 16#5BEE#),
+ (16#F9BD#, 16#5C3F#),
+ (16#F9BE#, 16#6599#),
+ (16#F9BF#, 16#6A02#),
+ (16#F9C0#, 16#71CE#),
+ (16#F9C1#, 16#7642#),
+ (16#F9C2#, 16#84FC#),
+ (16#F9C3#, 16#907C#),
+ (16#F9C4#, 16#9F8D#),
+ (16#F9C5#, 16#6688#),
+ (16#F9C6#, 16#962E#),
+ (16#F9C7#, 16#5289#),
+ (16#F9C8#, 16#677B#),
+ (16#F9C9#, 16#67F3#),
+ (16#F9CA#, 16#6D41#),
+ (16#F9CB#, 16#6E9C#),
+ (16#F9CC#, 16#7409#),
+ (16#F9CD#, 16#7559#),
+ (16#F9CE#, 16#786B#),
+ (16#F9CF#, 16#7D10#),
+ (16#F9D0#, 16#985E#),
+ (16#F9D1#, 16#516D#),
+ (16#F9D2#, 16#622E#),
+ (16#F9D3#, 16#9678#),
+ (16#F9D4#, 16#502B#),
+ (16#F9D5#, 16#5D19#),
+ (16#F9D6#, 16#6DEA#),
+ (16#F9D7#, 16#8F2A#),
+ (16#F9D8#, 16#5F8B#),
+ (16#F9D9#, 16#6144#),
+ (16#F9DA#, 16#6817#),
+ (16#F9DB#, 16#7387#),
+ (16#F9DC#, 16#9686#),
+ (16#F9DD#, 16#5229#),
+ (16#F9DE#, 16#540F#),
+ (16#F9DF#, 16#5C65#),
+ (16#F9E0#, 16#6613#),
+ (16#F9E1#, 16#674E#),
+ (16#F9E2#, 16#68A8#),
+ (16#F9E3#, 16#6CE5#),
+ (16#F9E4#, 16#7406#),
+ (16#F9E5#, 16#75E2#),
+ (16#F9E6#, 16#7F79#),
+ (16#F9E7#, 16#88CF#),
+ (16#F9E8#, 16#88E1#),
+ (16#F9E9#, 16#91CC#),
+ (16#F9EA#, 16#96E2#),
+ (16#F9EB#, 16#533F#),
+ (16#F9EC#, 16#6EBA#),
+ (16#F9ED#, 16#541D#),
+ (16#F9EE#, 16#71D0#),
+ (16#F9EF#, 16#7498#),
+ (16#F9F0#, 16#85FA#),
+ (16#F9F1#, 16#96A3#),
+ (16#F9F2#, 16#9C57#),
+ (16#F9F3#, 16#9E9F#),
+ (16#F9F4#, 16#6797#),
+ (16#F9F5#, 16#6DCB#),
+ (16#F9F6#, 16#81E8#),
+ (16#F9F7#, 16#7ACB#),
+ (16#F9F8#, 16#7B20#),
+ (16#F9F9#, 16#7C92#),
+ (16#F9FA#, 16#72C0#),
+ (16#F9FB#, 16#7099#),
+ (16#F9FC#, 16#8B58#),
+ (16#F9FD#, 16#4EC0#),
+ (16#F9FE#, 16#8336#),
+ (16#F9FF#, 16#523A#),
+ (16#FA00#, 16#5207#),
+ (16#FA01#, 16#5EA6#),
+ (16#FA02#, 16#62D3#),
+ (16#FA03#, 16#7CD6#),
+ (16#FA04#, 16#5B85#),
+ (16#FA05#, 16#6D1E#),
+ (16#FA06#, 16#66B4#),
+ (16#FA07#, 16#8F3B#),
+ (16#FA08#, 16#884C#),
+ (16#FA09#, 16#964D#),
+ (16#FA0A#, 16#898B#),
+ (16#FA0B#, 16#5ED3#),
+ (16#FA0C#, 16#5140#),
+ (16#FA0D#, 16#55C0#),
+ (16#FA10#, 16#585A#),
+ (16#FA12#, 16#6674#),
+ (16#FA15#, 16#51DE#),
+ (16#FA16#, 16#732A#),
+ (16#FA17#, 16#76CA#),
+ (16#FA18#, 16#793C#),
+ (16#FA19#, 16#795E#),
+ (16#FA1A#, 16#7965#),
+ (16#FA1B#, 16#798F#),
+ (16#FA1C#, 16#9756#),
+ (16#FA1D#, 16#7CBE#),
+ (16#FA1E#, 16#7FBD#),
+ (16#FA20#, 16#8612#),
+ (16#FA22#, 16#8AF8#),
+ (16#FA25#, 16#9038#),
+ (16#FA26#, 16#90FD#),
+ (16#FA2A#, 16#98EF#),
+ (16#FA2B#, 16#98FC#),
+ (16#FA2C#, 16#9928#),
+ (16#FA2D#, 16#9DB4#),
+ (16#FA2E#, 16#90DE#),
+ (16#FA2F#, 16#96B7#),
+ (16#FA30#, 16#4FAE#),
+ (16#FA31#, 16#50E7#),
+ (16#FA32#, 16#514D#),
+ (16#FA33#, 16#52C9#),
+ (16#FA34#, 16#52E4#),
+ (16#FA35#, 16#5351#),
+ (16#FA36#, 16#559D#),
+ (16#FA37#, 16#5606#),
+ (16#FA38#, 16#5668#),
+ (16#FA39#, 16#5840#),
+ (16#FA3A#, 16#58A8#),
+ (16#FA3B#, 16#5C64#),
+ (16#FA3C#, 16#5C6E#),
+ (16#FA3D#, 16#6094#),
+ (16#FA3E#, 16#6168#),
+ (16#FA3F#, 16#618E#),
+ (16#FA40#, 16#61F2#),
+ (16#FA41#, 16#654F#),
+ (16#FA42#, 16#65E2#),
+ (16#FA43#, 16#6691#),
+ (16#FA44#, 16#6885#),
+ (16#FA45#, 16#6D77#),
+ (16#FA46#, 16#6E1A#),
+ (16#FA47#, 16#6F22#),
+ (16#FA48#, 16#716E#),
+ (16#FA49#, 16#722B#),
+ (16#FA4A#, 16#7422#),
+ (16#FA4B#, 16#7891#),
+ (16#FA4C#, 16#793E#),
+ (16#FA4D#, 16#7949#),
+ (16#FA4E#, 16#7948#),
+ (16#FA4F#, 16#7950#),
+ (16#FA50#, 16#7956#),
+ (16#FA51#, 16#795D#),
+ (16#FA52#, 16#798D#),
+ (16#FA53#, 16#798E#),
+ (16#FA54#, 16#7A40#),
+ (16#FA55#, 16#7A81#),
+ (16#FA56#, 16#7BC0#),
+ (16#FA57#, 16#7DF4#),
+ (16#FA58#, 16#7E09#),
+ (16#FA59#, 16#7E41#),
+ (16#FA5A#, 16#7F72#),
+ (16#FA5B#, 16#8005#),
+ (16#FA5C#, 16#81ED#),
+ (16#FA5D#, 16#8279#),
+ (16#FA5E#, 16#8279#),
+ (16#FA5F#, 16#8457#),
+ (16#FA60#, 16#8910#),
+ (16#FA61#, 16#8996#),
+ (16#FA62#, 16#8B01#),
+ (16#FA63#, 16#8B39#),
+ (16#FA64#, 16#8CD3#),
+ (16#FA65#, 16#8D08#),
+ (16#FA66#, 16#8FB6#),
+ (16#FA67#, 16#9038#),
+ (16#FA68#, 16#96E3#),
+ (16#FA69#, 16#97FF#),
+ (16#FA6A#, 16#983B#),
+ (16#FA6B#, 16#6075#),
+ (16#FA6C#, 16#242EE#),
+ (16#FA6D#, 16#8218#),
+ (16#FA70#, 16#4E26#),
+ (16#FA71#, 16#51B5#),
+ (16#FA72#, 16#5168#),
+ (16#FA73#, 16#4F80#),
+ (16#FA74#, 16#5145#),
+ (16#FA75#, 16#5180#),
+ (16#FA76#, 16#52C7#),
+ (16#FA77#, 16#52FA#),
+ (16#FA78#, 16#559D#),
+ (16#FA79#, 16#5555#),
+ (16#FA7A#, 16#5599#),
+ (16#FA7B#, 16#55E2#),
+ (16#FA7C#, 16#585A#),
+ (16#FA7D#, 16#58B3#),
+ (16#FA7E#, 16#5944#),
+ (16#FA7F#, 16#5954#),
+ (16#FA80#, 16#5A62#),
+ (16#FA81#, 16#5B28#),
+ (16#FA82#, 16#5ED2#),
+ (16#FA83#, 16#5ED9#),
+ (16#FA84#, 16#5F69#),
+ (16#FA85#, 16#5FAD#),
+ (16#FA86#, 16#60D8#),
+ (16#FA87#, 16#614E#),
+ (16#FA88#, 16#6108#),
+ (16#FA89#, 16#618E#),
+ (16#FA8A#, 16#6160#),
+ (16#FA8B#, 16#61F2#),
+ (16#FA8C#, 16#6234#),
+ (16#FA8D#, 16#63C4#),
+ (16#FA8E#, 16#641C#),
+ (16#FA8F#, 16#6452#),
+ (16#FA90#, 16#6556#),
+ (16#FA91#, 16#6674#),
+ (16#FA92#, 16#6717#),
+ (16#FA93#, 16#671B#),
+ (16#FA94#, 16#6756#),
+ (16#FA95#, 16#6B79#),
+ (16#FA96#, 16#6BBA#),
+ (16#FA97#, 16#6D41#),
+ (16#FA98#, 16#6EDB#),
+ (16#FA99#, 16#6ECB#),
+ (16#FA9A#, 16#6F22#),
+ (16#FA9B#, 16#701E#),
+ (16#FA9C#, 16#716E#),
+ (16#FA9D#, 16#77A7#),
+ (16#FA9E#, 16#7235#),
+ (16#FA9F#, 16#72AF#),
+ (16#FAA0#, 16#732A#),
+ (16#FAA1#, 16#7471#),
+ (16#FAA2#, 16#7506#),
+ (16#FAA3#, 16#753B#),
+ (16#FAA4#, 16#761D#),
+ (16#FAA5#, 16#761F#),
+ (16#FAA6#, 16#76CA#),
+ (16#FAA7#, 16#76DB#),
+ (16#FAA8#, 16#76F4#),
+ (16#FAA9#, 16#774A#),
+ (16#FAAA#, 16#7740#),
+ (16#FAAB#, 16#78CC#),
+ (16#FAAC#, 16#7AB1#),
+ (16#FAAD#, 16#7BC0#),
+ (16#FAAE#, 16#7C7B#),
+ (16#FAAF#, 16#7D5B#),
+ (16#FAB0#, 16#7DF4#),
+ (16#FAB1#, 16#7F3E#),
+ (16#FAB2#, 16#8005#),
+ (16#FAB3#, 16#8352#),
+ (16#FAB4#, 16#83EF#),
+ (16#FAB5#, 16#8779#),
+ (16#FAB6#, 16#8941#),
+ (16#FAB7#, 16#8986#),
+ (16#FAB8#, 16#8996#),
+ (16#FAB9#, 16#8ABF#),
+ (16#FABA#, 16#8AF8#),
+ (16#FABB#, 16#8ACB#),
+ (16#FABC#, 16#8B01#),
+ (16#FABD#, 16#8AFE#),
+ (16#FABE#, 16#8AED#),
+ (16#FABF#, 16#8B39#),
+ (16#FAC0#, 16#8B8A#),
+ (16#FAC1#, 16#8D08#),
+ (16#FAC2#, 16#8F38#),
+ (16#FAC3#, 16#9072#),
+ (16#FAC4#, 16#9199#),
+ (16#FAC5#, 16#9276#),
+ (16#FAC6#, 16#967C#),
+ (16#FAC7#, 16#96E3#),
+ (16#FAC8#, 16#9756#),
+ (16#FAC9#, 16#97DB#),
+ (16#FACA#, 16#97FF#),
+ (16#FACB#, 16#980B#),
+ (16#FACC#, 16#983B#),
+ (16#FACD#, 16#9B12#),
+ (16#FACE#, 16#9F9C#),
+ (16#FACF#, 16#2284A#),
+ (16#FAD0#, 16#22844#),
+ (16#FAD1#, 16#233D5#),
+ (16#FAD2#, 16#3B9D#),
+ (16#FAD3#, 16#4018#),
+ (16#FAD4#, 16#4039#),
+ (16#FAD5#, 16#25249#),
+ (16#FAD6#, 16#25CD0#),
+ (16#FAD7#, 16#27ED3#),
+ (16#FAD8#, 16#9F43#),
+ (16#FAD9#, 16#9F8E#),
+ (16#FB00#, 16#0066#),
+ (16#FB01#, 16#0066#),
+ (16#FB02#, 16#0066#),
+ (16#FB03#, 16#0066#),
+ (16#FB04#, 16#0066#),
+ (16#FB05#, 16#017F#),
+ (16#FB06#, 16#0073#),
+ (16#FB13#, 16#0574#),
+ (16#FB14#, 16#0574#),
+ (16#FB15#, 16#0574#),
+ (16#FB16#, 16#057E#),
+ (16#FB17#, 16#0574#),
+ (16#FB1D#, 16#05D9#),
+ (16#FB1F#, 16#05F2#),
+ (16#FB20#, 16#05E2#),
+ (16#FB21#, 16#05D0#),
+ (16#FB22#, 16#05D3#),
+ (16#FB23#, 16#05D4#),
+ (16#FB24#, 16#05DB#),
+ (16#FB25#, 16#05DC#),
+ (16#FB26#, 16#05DD#),
+ (16#FB27#, 16#05E8#),
+ (16#FB28#, 16#05EA#),
+ (16#FB29#, 16#002B#),
+ (16#FB2A#, 16#05E9#),
+ (16#FB2B#, 16#05E9#),
+ (16#FB2C#, 16#FB49#),
+ (16#FB2D#, 16#FB49#),
+ (16#FB2E#, 16#05D0#),
+ (16#FB2F#, 16#05D0#),
+ (16#FB30#, 16#05D0#),
+ (16#FB31#, 16#05D1#),
+ (16#FB32#, 16#05D2#),
+ (16#FB33#, 16#05D3#),
+ (16#FB34#, 16#05D4#),
+ (16#FB35#, 16#05D5#),
+ (16#FB36#, 16#05D6#),
+ (16#FB38#, 16#05D8#),
+ (16#FB39#, 16#05D9#),
+ (16#FB3A#, 16#05DA#),
+ (16#FB3B#, 16#05DB#),
+ (16#FB3C#, 16#05DC#),
+ (16#FB3E#, 16#05DE#),
+ (16#FB40#, 16#05E0#),
+ (16#FB41#, 16#05E1#),
+ (16#FB43#, 16#05E3#),
+ (16#FB44#, 16#05E4#),
+ (16#FB46#, 16#05E6#),
+ (16#FB47#, 16#05E7#),
+ (16#FB48#, 16#05E8#),
+ (16#FB49#, 16#05E9#),
+ (16#FB4A#, 16#05EA#),
+ (16#FB4B#, 16#05D5#),
+ (16#FB4C#, 16#05D1#),
+ (16#FB4D#, 16#05DB#),
+ (16#FB4E#, 16#05E4#),
+ (16#FB4F#, 16#05D0#),
+ (16#FB50#, 16#0671#),
+ (16#FB51#, 16#0671#),
+ (16#FB52#, 16#067B#),
+ (16#FB53#, 16#067B#),
+ (16#FB54#, 16#067B#),
+ (16#FB55#, 16#067B#),
+ (16#FB56#, 16#067E#),
+ (16#FB57#, 16#067E#),
+ (16#FB58#, 16#067E#),
+ (16#FB59#, 16#067E#),
+ (16#FB5A#, 16#0680#),
+ (16#FB5B#, 16#0680#),
+ (16#FB5C#, 16#0680#),
+ (16#FB5D#, 16#0680#),
+ (16#FB5E#, 16#067A#),
+ (16#FB5F#, 16#067A#),
+ (16#FB60#, 16#067A#),
+ (16#FB61#, 16#067A#),
+ (16#FB62#, 16#067F#),
+ (16#FB63#, 16#067F#),
+ (16#FB64#, 16#067F#),
+ (16#FB65#, 16#067F#),
+ (16#FB66#, 16#0679#),
+ (16#FB67#, 16#0679#),
+ (16#FB68#, 16#0679#),
+ (16#FB69#, 16#0679#),
+ (16#FB6A#, 16#06A4#),
+ (16#FB6B#, 16#06A4#),
+ (16#FB6C#, 16#06A4#),
+ (16#FB6D#, 16#06A4#),
+ (16#FB6E#, 16#06A6#),
+ (16#FB6F#, 16#06A6#),
+ (16#FB70#, 16#06A6#),
+ (16#FB71#, 16#06A6#),
+ (16#FB72#, 16#0684#),
+ (16#FB73#, 16#0684#),
+ (16#FB74#, 16#0684#),
+ (16#FB75#, 16#0684#),
+ (16#FB76#, 16#0683#),
+ (16#FB77#, 16#0683#),
+ (16#FB78#, 16#0683#),
+ (16#FB79#, 16#0683#),
+ (16#FB7A#, 16#0686#),
+ (16#FB7B#, 16#0686#),
+ (16#FB7C#, 16#0686#),
+ (16#FB7D#, 16#0686#),
+ (16#FB7E#, 16#0687#),
+ (16#FB7F#, 16#0687#),
+ (16#FB80#, 16#0687#),
+ (16#FB81#, 16#0687#),
+ (16#FB82#, 16#068D#),
+ (16#FB83#, 16#068D#),
+ (16#FB84#, 16#068C#),
+ (16#FB85#, 16#068C#),
+ (16#FB86#, 16#068E#),
+ (16#FB87#, 16#068E#),
+ (16#FB88#, 16#0688#),
+ (16#FB89#, 16#0688#),
+ (16#FB8A#, 16#0698#),
+ (16#FB8B#, 16#0698#),
+ (16#FB8C#, 16#0691#),
+ (16#FB8D#, 16#0691#),
+ (16#FB8E#, 16#06A9#),
+ (16#FB8F#, 16#06A9#),
+ (16#FB90#, 16#06A9#),
+ (16#FB91#, 16#06A9#),
+ (16#FB92#, 16#06AF#),
+ (16#FB93#, 16#06AF#),
+ (16#FB94#, 16#06AF#),
+ (16#FB95#, 16#06AF#),
+ (16#FB96#, 16#06B3#),
+ (16#FB97#, 16#06B3#),
+ (16#FB98#, 16#06B3#),
+ (16#FB99#, 16#06B3#),
+ (16#FB9A#, 16#06B1#),
+ (16#FB9B#, 16#06B1#),
+ (16#FB9C#, 16#06B1#),
+ (16#FB9D#, 16#06B1#),
+ (16#FB9E#, 16#06BA#),
+ (16#FB9F#, 16#06BA#),
+ (16#FBA0#, 16#06BB#),
+ (16#FBA1#, 16#06BB#),
+ (16#FBA2#, 16#06BB#),
+ (16#FBA3#, 16#06BB#),
+ (16#FBA4#, 16#06C0#),
+ (16#FBA5#, 16#06C0#),
+ (16#FBA6#, 16#06C1#),
+ (16#FBA7#, 16#06C1#),
+ (16#FBA8#, 16#06C1#),
+ (16#FBA9#, 16#06C1#),
+ (16#FBAA#, 16#06BE#),
+ (16#FBAB#, 16#06BE#),
+ (16#FBAC#, 16#06BE#),
+ (16#FBAD#, 16#06BE#),
+ (16#FBAE#, 16#06D2#),
+ (16#FBAF#, 16#06D2#),
+ (16#FBB0#, 16#06D3#),
+ (16#FBB1#, 16#06D3#),
+ (16#FBD3#, 16#06AD#),
+ (16#FBD4#, 16#06AD#),
+ (16#FBD5#, 16#06AD#),
+ (16#FBD6#, 16#06AD#),
+ (16#FBD7#, 16#06C7#),
+ (16#FBD8#, 16#06C7#),
+ (16#FBD9#, 16#06C6#),
+ (16#FBDA#, 16#06C6#),
+ (16#FBDB#, 16#06C8#),
+ (16#FBDC#, 16#06C8#),
+ (16#FBDD#, 16#0677#),
+ (16#FBDE#, 16#06CB#),
+ (16#FBDF#, 16#06CB#),
+ (16#FBE0#, 16#06C5#),
+ (16#FBE1#, 16#06C5#),
+ (16#FBE2#, 16#06C9#),
+ (16#FBE3#, 16#06C9#),
+ (16#FBE4#, 16#06D0#),
+ (16#FBE5#, 16#06D0#),
+ (16#FBE6#, 16#06D0#),
+ (16#FBE7#, 16#06D0#),
+ (16#FBE8#, 16#0649#),
+ (16#FBE9#, 16#0649#),
+ (16#FBEA#, 16#0626#),
+ (16#FBEB#, 16#0626#),
+ (16#FBEC#, 16#0626#),
+ (16#FBED#, 16#0626#),
+ (16#FBEE#, 16#0626#),
+ (16#FBEF#, 16#0626#),
+ (16#FBF0#, 16#0626#),
+ (16#FBF1#, 16#0626#),
+ (16#FBF2#, 16#0626#),
+ (16#FBF3#, 16#0626#),
+ (16#FBF4#, 16#0626#),
+ (16#FBF5#, 16#0626#),
+ (16#FBF6#, 16#0626#),
+ (16#FBF7#, 16#0626#),
+ (16#FBF8#, 16#0626#),
+ (16#FBF9#, 16#0626#),
+ (16#FBFA#, 16#0626#),
+ (16#FBFB#, 16#0626#),
+ (16#FBFC#, 16#06CC#),
+ (16#FBFD#, 16#06CC#),
+ (16#FBFE#, 16#06CC#),
+ (16#FBFF#, 16#06CC#),
+ (16#FC00#, 16#0626#),
+ (16#FC01#, 16#0626#),
+ (16#FC02#, 16#0626#),
+ (16#FC03#, 16#0626#),
+ (16#FC04#, 16#0626#),
+ (16#FC05#, 16#0628#),
+ (16#FC06#, 16#0628#),
+ (16#FC07#, 16#0628#),
+ (16#FC08#, 16#0628#),
+ (16#FC09#, 16#0628#),
+ (16#FC0A#, 16#0628#),
+ (16#FC0B#, 16#062A#),
+ (16#FC0C#, 16#062A#),
+ (16#FC0D#, 16#062A#),
+ (16#FC0E#, 16#062A#),
+ (16#FC0F#, 16#062A#),
+ (16#FC10#, 16#062A#),
+ (16#FC11#, 16#062B#),
+ (16#FC12#, 16#062B#),
+ (16#FC13#, 16#062B#),
+ (16#FC14#, 16#062B#),
+ (16#FC15#, 16#062C#),
+ (16#FC16#, 16#062C#),
+ (16#FC17#, 16#062D#),
+ (16#FC18#, 16#062D#),
+ (16#FC19#, 16#062E#),
+ (16#FC1A#, 16#062E#),
+ (16#FC1B#, 16#062E#),
+ (16#FC1C#, 16#0633#),
+ (16#FC1D#, 16#0633#),
+ (16#FC1E#, 16#0633#),
+ (16#FC1F#, 16#0633#),
+ (16#FC20#, 16#0635#),
+ (16#FC21#, 16#0635#),
+ (16#FC22#, 16#0636#),
+ (16#FC23#, 16#0636#),
+ (16#FC24#, 16#0636#),
+ (16#FC25#, 16#0636#),
+ (16#FC26#, 16#0637#),
+ (16#FC27#, 16#0637#),
+ (16#FC28#, 16#0638#),
+ (16#FC29#, 16#0639#),
+ (16#FC2A#, 16#0639#),
+ (16#FC2B#, 16#063A#),
+ (16#FC2C#, 16#063A#),
+ (16#FC2D#, 16#0641#),
+ (16#FC2E#, 16#0641#),
+ (16#FC2F#, 16#0641#),
+ (16#FC30#, 16#0641#),
+ (16#FC31#, 16#0641#),
+ (16#FC32#, 16#0641#),
+ (16#FC33#, 16#0642#),
+ (16#FC34#, 16#0642#),
+ (16#FC35#, 16#0642#),
+ (16#FC36#, 16#0642#),
+ (16#FC37#, 16#0643#),
+ (16#FC38#, 16#0643#),
+ (16#FC39#, 16#0643#),
+ (16#FC3A#, 16#0643#),
+ (16#FC3B#, 16#0643#),
+ (16#FC3C#, 16#0643#),
+ (16#FC3D#, 16#0643#),
+ (16#FC3E#, 16#0643#),
+ (16#FC3F#, 16#0644#),
+ (16#FC40#, 16#0644#),
+ (16#FC41#, 16#0644#),
+ (16#FC42#, 16#0644#),
+ (16#FC43#, 16#0644#),
+ (16#FC44#, 16#0644#),
+ (16#FC45#, 16#0645#),
+ (16#FC46#, 16#0645#),
+ (16#FC47#, 16#0645#),
+ (16#FC48#, 16#0645#),
+ (16#FC49#, 16#0645#),
+ (16#FC4A#, 16#0645#),
+ (16#FC4B#, 16#0646#),
+ (16#FC4C#, 16#0646#),
+ (16#FC4D#, 16#0646#),
+ (16#FC4E#, 16#0646#),
+ (16#FC4F#, 16#0646#),
+ (16#FC50#, 16#0646#),
+ (16#FC51#, 16#0647#),
+ (16#FC52#, 16#0647#),
+ (16#FC53#, 16#0647#),
+ (16#FC54#, 16#0647#),
+ (16#FC55#, 16#064A#),
+ (16#FC56#, 16#064A#),
+ (16#FC57#, 16#064A#),
+ (16#FC58#, 16#064A#),
+ (16#FC59#, 16#064A#),
+ (16#FC5A#, 16#064A#),
+ (16#FC5B#, 16#0630#),
+ (16#FC5C#, 16#0631#),
+ (16#FC5D#, 16#0649#),
+ (16#FC5E#, 16#0020#),
+ (16#FC5F#, 16#0020#),
+ (16#FC60#, 16#0020#),
+ (16#FC61#, 16#0020#),
+ (16#FC62#, 16#0020#),
+ (16#FC63#, 16#0020#),
+ (16#FC64#, 16#0626#),
+ (16#FC65#, 16#0626#),
+ (16#FC66#, 16#0626#),
+ (16#FC67#, 16#0626#),
+ (16#FC68#, 16#0626#),
+ (16#FC69#, 16#0626#),
+ (16#FC6A#, 16#0628#),
+ (16#FC6B#, 16#0628#),
+ (16#FC6C#, 16#0628#),
+ (16#FC6D#, 16#0628#),
+ (16#FC6E#, 16#0628#),
+ (16#FC6F#, 16#0628#),
+ (16#FC70#, 16#062A#),
+ (16#FC71#, 16#062A#),
+ (16#FC72#, 16#062A#),
+ (16#FC73#, 16#062A#),
+ (16#FC74#, 16#062A#),
+ (16#FC75#, 16#062A#),
+ (16#FC76#, 16#062B#),
+ (16#FC77#, 16#062B#),
+ (16#FC78#, 16#062B#),
+ (16#FC79#, 16#062B#),
+ (16#FC7A#, 16#062B#),
+ (16#FC7B#, 16#062B#),
+ (16#FC7C#, 16#0641#),
+ (16#FC7D#, 16#0641#),
+ (16#FC7E#, 16#0642#),
+ (16#FC7F#, 16#0642#),
+ (16#FC80#, 16#0643#),
+ (16#FC81#, 16#0643#),
+ (16#FC82#, 16#0643#),
+ (16#FC83#, 16#0643#),
+ (16#FC84#, 16#0643#),
+ (16#FC85#, 16#0644#),
+ (16#FC86#, 16#0644#),
+ (16#FC87#, 16#0644#),
+ (16#FC88#, 16#0645#),
+ (16#FC89#, 16#0645#),
+ (16#FC8A#, 16#0646#),
+ (16#FC8B#, 16#0646#),
+ (16#FC8C#, 16#0646#),
+ (16#FC8D#, 16#0646#),
+ (16#FC8E#, 16#0646#),
+ (16#FC8F#, 16#0646#),
+ (16#FC90#, 16#0649#),
+ (16#FC91#, 16#064A#),
+ (16#FC92#, 16#064A#),
+ (16#FC93#, 16#064A#),
+ (16#FC94#, 16#064A#),
+ (16#FC95#, 16#064A#),
+ (16#FC96#, 16#064A#),
+ (16#FC97#, 16#0626#),
+ (16#FC98#, 16#0626#),
+ (16#FC99#, 16#0626#),
+ (16#FC9A#, 16#0626#),
+ (16#FC9B#, 16#0626#),
+ (16#FC9C#, 16#0628#),
+ (16#FC9D#, 16#0628#),
+ (16#FC9E#, 16#0628#),
+ (16#FC9F#, 16#0628#),
+ (16#FCA0#, 16#0628#),
+ (16#FCA1#, 16#062A#),
+ (16#FCA2#, 16#062A#),
+ (16#FCA3#, 16#062A#),
+ (16#FCA4#, 16#062A#),
+ (16#FCA5#, 16#062A#),
+ (16#FCA6#, 16#062B#),
+ (16#FCA7#, 16#062C#),
+ (16#FCA8#, 16#062C#),
+ (16#FCA9#, 16#062D#),
+ (16#FCAA#, 16#062D#),
+ (16#FCAB#, 16#062E#),
+ (16#FCAC#, 16#062E#),
+ (16#FCAD#, 16#0633#),
+ (16#FCAE#, 16#0633#),
+ (16#FCAF#, 16#0633#),
+ (16#FCB0#, 16#0633#),
+ (16#FCB1#, 16#0635#),
+ (16#FCB2#, 16#0635#),
+ (16#FCB3#, 16#0635#),
+ (16#FCB4#, 16#0636#),
+ (16#FCB5#, 16#0636#),
+ (16#FCB6#, 16#0636#),
+ (16#FCB7#, 16#0636#),
+ (16#FCB8#, 16#0637#),
+ (16#FCB9#, 16#0638#),
+ (16#FCBA#, 16#0639#),
+ (16#FCBB#, 16#0639#),
+ (16#FCBC#, 16#063A#),
+ (16#FCBD#, 16#063A#),
+ (16#FCBE#, 16#0641#),
+ (16#FCBF#, 16#0641#),
+ (16#FCC0#, 16#0641#),
+ (16#FCC1#, 16#0641#),
+ (16#FCC2#, 16#0642#),
+ (16#FCC3#, 16#0642#),
+ (16#FCC4#, 16#0643#),
+ (16#FCC5#, 16#0643#),
+ (16#FCC6#, 16#0643#),
+ (16#FCC7#, 16#0643#),
+ (16#FCC8#, 16#0643#),
+ (16#FCC9#, 16#0644#),
+ (16#FCCA#, 16#0644#),
+ (16#FCCB#, 16#0644#),
+ (16#FCCC#, 16#0644#),
+ (16#FCCD#, 16#0644#),
+ (16#FCCE#, 16#0645#),
+ (16#FCCF#, 16#0645#),
+ (16#FCD0#, 16#0645#),
+ (16#FCD1#, 16#0645#),
+ (16#FCD2#, 16#0646#),
+ (16#FCD3#, 16#0646#),
+ (16#FCD4#, 16#0646#),
+ (16#FCD5#, 16#0646#),
+ (16#FCD6#, 16#0646#),
+ (16#FCD7#, 16#0647#),
+ (16#FCD8#, 16#0647#),
+ (16#FCD9#, 16#0647#),
+ (16#FCDA#, 16#064A#),
+ (16#FCDB#, 16#064A#),
+ (16#FCDC#, 16#064A#),
+ (16#FCDD#, 16#064A#),
+ (16#FCDE#, 16#064A#),
+ (16#FCDF#, 16#0626#),
+ (16#FCE0#, 16#0626#),
+ (16#FCE1#, 16#0628#),
+ (16#FCE2#, 16#0628#),
+ (16#FCE3#, 16#062A#),
+ (16#FCE4#, 16#062A#),
+ (16#FCE5#, 16#062B#),
+ (16#FCE6#, 16#062B#),
+ (16#FCE7#, 16#0633#),
+ (16#FCE8#, 16#0633#),
+ (16#FCE9#, 16#0634#),
+ (16#FCEA#, 16#0634#),
+ (16#FCEB#, 16#0643#),
+ (16#FCEC#, 16#0643#),
+ (16#FCED#, 16#0644#),
+ (16#FCEE#, 16#0646#),
+ (16#FCEF#, 16#0646#),
+ (16#FCF0#, 16#064A#),
+ (16#FCF1#, 16#064A#),
+ (16#FCF2#, 16#0640#),
+ (16#FCF3#, 16#0640#),
+ (16#FCF4#, 16#0640#),
+ (16#FCF5#, 16#0637#),
+ (16#FCF6#, 16#0637#),
+ (16#FCF7#, 16#0639#),
+ (16#FCF8#, 16#0639#),
+ (16#FCF9#, 16#063A#),
+ (16#FCFA#, 16#063A#),
+ (16#FCFB#, 16#0633#),
+ (16#FCFC#, 16#0633#),
+ (16#FCFD#, 16#0634#),
+ (16#FCFE#, 16#0634#),
+ (16#FCFF#, 16#062D#),
+ (16#FD00#, 16#062D#),
+ (16#FD01#, 16#062C#),
+ (16#FD02#, 16#062C#),
+ (16#FD03#, 16#062E#),
+ (16#FD04#, 16#062E#),
+ (16#FD05#, 16#0635#),
+ (16#FD06#, 16#0635#),
+ (16#FD07#, 16#0636#),
+ (16#FD08#, 16#0636#),
+ (16#FD09#, 16#0634#),
+ (16#FD0A#, 16#0634#),
+ (16#FD0B#, 16#0634#),
+ (16#FD0C#, 16#0634#),
+ (16#FD0D#, 16#0634#),
+ (16#FD0E#, 16#0633#),
+ (16#FD0F#, 16#0635#),
+ (16#FD10#, 16#0636#),
+ (16#FD11#, 16#0637#),
+ (16#FD12#, 16#0637#),
+ (16#FD13#, 16#0639#),
+ (16#FD14#, 16#0639#),
+ (16#FD15#, 16#063A#),
+ (16#FD16#, 16#063A#),
+ (16#FD17#, 16#0633#),
+ (16#FD18#, 16#0633#),
+ (16#FD19#, 16#0634#),
+ (16#FD1A#, 16#0634#),
+ (16#FD1B#, 16#062D#),
+ (16#FD1C#, 16#062D#),
+ (16#FD1D#, 16#062C#),
+ (16#FD1E#, 16#062C#),
+ (16#FD1F#, 16#062E#),
+ (16#FD20#, 16#062E#),
+ (16#FD21#, 16#0635#),
+ (16#FD22#, 16#0635#),
+ (16#FD23#, 16#0636#),
+ (16#FD24#, 16#0636#),
+ (16#FD25#, 16#0634#),
+ (16#FD26#, 16#0634#),
+ (16#FD27#, 16#0634#),
+ (16#FD28#, 16#0634#),
+ (16#FD29#, 16#0634#),
+ (16#FD2A#, 16#0633#),
+ (16#FD2B#, 16#0635#),
+ (16#FD2C#, 16#0636#),
+ (16#FD2D#, 16#0634#),
+ (16#FD2E#, 16#0634#),
+ (16#FD2F#, 16#0634#),
+ (16#FD30#, 16#0634#),
+ (16#FD31#, 16#0633#),
+ (16#FD32#, 16#0634#),
+ (16#FD33#, 16#0637#),
+ (16#FD34#, 16#0633#),
+ (16#FD35#, 16#0633#),
+ (16#FD36#, 16#0633#),
+ (16#FD37#, 16#0634#),
+ (16#FD38#, 16#0634#),
+ (16#FD39#, 16#0634#),
+ (16#FD3A#, 16#0637#),
+ (16#FD3B#, 16#0638#),
+ (16#FD3C#, 16#0627#),
+ (16#FD3D#, 16#0627#),
+ (16#FD50#, 16#062A#),
+ (16#FD51#, 16#062A#),
+ (16#FD52#, 16#062A#),
+ (16#FD53#, 16#062A#),
+ (16#FD54#, 16#062A#),
+ (16#FD55#, 16#062A#),
+ (16#FD56#, 16#062A#),
+ (16#FD57#, 16#062A#),
+ (16#FD58#, 16#062C#),
+ (16#FD59#, 16#062C#),
+ (16#FD5A#, 16#062D#),
+ (16#FD5B#, 16#062D#),
+ (16#FD5C#, 16#0633#),
+ (16#FD5D#, 16#0633#),
+ (16#FD5E#, 16#0633#),
+ (16#FD5F#, 16#0633#),
+ (16#FD60#, 16#0633#),
+ (16#FD61#, 16#0633#),
+ (16#FD62#, 16#0633#),
+ (16#FD63#, 16#0633#),
+ (16#FD64#, 16#0635#),
+ (16#FD65#, 16#0635#),
+ (16#FD66#, 16#0635#),
+ (16#FD67#, 16#0634#),
+ (16#FD68#, 16#0634#),
+ (16#FD69#, 16#0634#),
+ (16#FD6A#, 16#0634#),
+ (16#FD6B#, 16#0634#),
+ (16#FD6C#, 16#0634#),
+ (16#FD6D#, 16#0634#),
+ (16#FD6E#, 16#0636#),
+ (16#FD6F#, 16#0636#),
+ (16#FD70#, 16#0636#),
+ (16#FD71#, 16#0637#),
+ (16#FD72#, 16#0637#),
+ (16#FD73#, 16#0637#),
+ (16#FD74#, 16#0637#),
+ (16#FD75#, 16#0639#),
+ (16#FD76#, 16#0639#),
+ (16#FD77#, 16#0639#),
+ (16#FD78#, 16#0639#),
+ (16#FD79#, 16#063A#),
+ (16#FD7A#, 16#063A#),
+ (16#FD7B#, 16#063A#),
+ (16#FD7C#, 16#0641#),
+ (16#FD7D#, 16#0641#),
+ (16#FD7E#, 16#0642#),
+ (16#FD7F#, 16#0642#),
+ (16#FD80#, 16#0644#),
+ (16#FD81#, 16#0644#),
+ (16#FD82#, 16#0644#),
+ (16#FD83#, 16#0644#),
+ (16#FD84#, 16#0644#),
+ (16#FD85#, 16#0644#),
+ (16#FD86#, 16#0644#),
+ (16#FD87#, 16#0644#),
+ (16#FD88#, 16#0644#),
+ (16#FD89#, 16#0645#),
+ (16#FD8A#, 16#0645#),
+ (16#FD8B#, 16#0645#),
+ (16#FD8C#, 16#0645#),
+ (16#FD8D#, 16#0645#),
+ (16#FD8E#, 16#0645#),
+ (16#FD8F#, 16#0645#),
+ (16#FD92#, 16#0645#),
+ (16#FD93#, 16#0647#),
+ (16#FD94#, 16#0647#),
+ (16#FD95#, 16#0646#),
+ (16#FD96#, 16#0646#),
+ (16#FD97#, 16#0646#),
+ (16#FD98#, 16#0646#),
+ (16#FD99#, 16#0646#),
+ (16#FD9A#, 16#0646#),
+ (16#FD9B#, 16#0646#),
+ (16#FD9C#, 16#064A#),
+ (16#FD9D#, 16#064A#),
+ (16#FD9E#, 16#0628#),
+ (16#FD9F#, 16#062A#),
+ (16#FDA0#, 16#062A#),
+ (16#FDA1#, 16#062A#),
+ (16#FDA2#, 16#062A#),
+ (16#FDA3#, 16#062A#),
+ (16#FDA4#, 16#062A#),
+ (16#FDA5#, 16#062C#),
+ (16#FDA6#, 16#062C#),
+ (16#FDA7#, 16#062C#),
+ (16#FDA8#, 16#0633#),
+ (16#FDA9#, 16#0635#),
+ (16#FDAA#, 16#0634#),
+ (16#FDAB#, 16#0636#),
+ (16#FDAC#, 16#0644#),
+ (16#FDAD#, 16#0644#),
+ (16#FDAE#, 16#064A#),
+ (16#FDAF#, 16#064A#),
+ (16#FDB0#, 16#064A#),
+ (16#FDB1#, 16#0645#),
+ (16#FDB2#, 16#0642#),
+ (16#FDB3#, 16#0646#),
+ (16#FDB4#, 16#0642#),
+ (16#FDB5#, 16#0644#),
+ (16#FDB6#, 16#0639#),
+ (16#FDB7#, 16#0643#),
+ (16#FDB8#, 16#0646#),
+ (16#FDB9#, 16#0645#),
+ (16#FDBA#, 16#0644#),
+ (16#FDBB#, 16#0643#),
+ (16#FDBC#, 16#0644#),
+ (16#FDBD#, 16#0646#),
+ (16#FDBE#, 16#062C#),
+ (16#FDBF#, 16#062D#),
+ (16#FDC0#, 16#0645#),
+ (16#FDC1#, 16#0641#),
+ (16#FDC2#, 16#0628#),
+ (16#FDC3#, 16#0643#),
+ (16#FDC4#, 16#0639#),
+ (16#FDC5#, 16#0635#),
+ (16#FDC6#, 16#0633#),
+ (16#FDC7#, 16#0646#),
+ (16#FDF0#, 16#0635#),
+ (16#FDF1#, 16#0642#),
+ (16#FDF2#, 16#0627#),
+ (16#FDF3#, 16#0627#),
+ (16#FDF4#, 16#0645#),
+ (16#FDF5#, 16#0635#),
+ (16#FDF6#, 16#0631#),
+ (16#FDF7#, 16#0639#),
+ (16#FDF8#, 16#0648#),
+ (16#FDF9#, 16#0635#),
+ (16#FDFA#, 16#0635#),
+ (16#FDFB#, 16#062C#),
+ (16#FDFC#, 16#0631#),
+ (16#FE10#, 16#002C#),
+ (16#FE11#, 16#3001#),
+ (16#FE12#, 16#3002#),
+ (16#FE13#, 16#003A#),
+ (16#FE14#, 16#003B#),
+ (16#FE15#, 16#0021#),
+ (16#FE16#, 16#003F#),
+ (16#FE17#, 16#3016#),
+ (16#FE18#, 16#3017#),
+ (16#FE19#, 16#2026#),
+ (16#FE30#, 16#2025#),
+ (16#FE31#, 16#2014#),
+ (16#FE32#, 16#2013#),
+ (16#FE33#, 16#005F#),
+ (16#FE34#, 16#005F#),
+ (16#FE35#, 16#0028#),
+ (16#FE36#, 16#0029#),
+ (16#FE37#, 16#007B#),
+ (16#FE38#, 16#007D#),
+ (16#FE39#, 16#3014#),
+ (16#FE3A#, 16#3015#),
+ (16#FE3B#, 16#3010#),
+ (16#FE3C#, 16#3011#),
+ (16#FE3D#, 16#300A#),
+ (16#FE3E#, 16#300B#),
+ (16#FE3F#, 16#3008#),
+ (16#FE40#, 16#3009#),
+ (16#FE41#, 16#300C#),
+ (16#FE42#, 16#300D#),
+ (16#FE43#, 16#300E#),
+ (16#FE44#, 16#300F#),
+ (16#FE47#, 16#005B#),
+ (16#FE48#, 16#005D#),
+ (16#FE49#, 16#203E#),
+ (16#FE4A#, 16#203E#),
+ (16#FE4B#, 16#203E#),
+ (16#FE4C#, 16#203E#),
+ (16#FE4D#, 16#005F#),
+ (16#FE4E#, 16#005F#),
+ (16#FE4F#, 16#005F#),
+ (16#FE50#, 16#002C#),
+ (16#FE51#, 16#3001#),
+ (16#FE52#, 16#002E#),
+ (16#FE54#, 16#003B#),
+ (16#FE55#, 16#003A#),
+ (16#FE56#, 16#003F#),
+ (16#FE57#, 16#0021#),
+ (16#FE58#, 16#2014#),
+ (16#FE59#, 16#0028#),
+ (16#FE5A#, 16#0029#),
+ (16#FE5B#, 16#007B#),
+ (16#FE5C#, 16#007D#),
+ (16#FE5D#, 16#3014#),
+ (16#FE5E#, 16#3015#),
+ (16#FE5F#, 16#0023#),
+ (16#FE60#, 16#0026#),
+ (16#FE61#, 16#002A#),
+ (16#FE62#, 16#002B#),
+ (16#FE63#, 16#002D#),
+ (16#FE64#, 16#003C#),
+ (16#FE65#, 16#003E#),
+ (16#FE66#, 16#003D#),
+ (16#FE68#, 16#005C#),
+ (16#FE69#, 16#0024#),
+ (16#FE6A#, 16#0025#),
+ (16#FE6B#, 16#0040#),
+ (16#FE70#, 16#0020#),
+ (16#FE71#, 16#0640#),
+ (16#FE72#, 16#0020#),
+ (16#FE74#, 16#0020#),
+ (16#FE76#, 16#0020#),
+ (16#FE77#, 16#0640#),
+ (16#FE78#, 16#0020#),
+ (16#FE79#, 16#0640#),
+ (16#FE7A#, 16#0020#),
+ (16#FE7B#, 16#0640#),
+ (16#FE7C#, 16#0020#),
+ (16#FE7D#, 16#0640#),
+ (16#FE7E#, 16#0020#),
+ (16#FE7F#, 16#0640#),
+ (16#FE80#, 16#0621#),
+ (16#FE81#, 16#0622#),
+ (16#FE82#, 16#0622#),
+ (16#FE83#, 16#0623#),
+ (16#FE84#, 16#0623#),
+ (16#FE85#, 16#0624#),
+ (16#FE86#, 16#0624#),
+ (16#FE87#, 16#0625#),
+ (16#FE88#, 16#0625#),
+ (16#FE89#, 16#0626#),
+ (16#FE8A#, 16#0626#),
+ (16#FE8B#, 16#0626#),
+ (16#FE8C#, 16#0626#),
+ (16#FE8D#, 16#0627#),
+ (16#FE8E#, 16#0627#),
+ (16#FE8F#, 16#0628#),
+ (16#FE90#, 16#0628#),
+ (16#FE91#, 16#0628#),
+ (16#FE92#, 16#0628#),
+ (16#FE93#, 16#0629#),
+ (16#FE94#, 16#0629#),
+ (16#FE95#, 16#062A#),
+ (16#FE96#, 16#062A#),
+ (16#FE97#, 16#062A#),
+ (16#FE98#, 16#062A#),
+ (16#FE99#, 16#062B#),
+ (16#FE9A#, 16#062B#),
+ (16#FE9B#, 16#062B#),
+ (16#FE9C#, 16#062B#),
+ (16#FE9D#, 16#062C#),
+ (16#FE9E#, 16#062C#),
+ (16#FE9F#, 16#062C#),
+ (16#FEA0#, 16#062C#),
+ (16#FEA1#, 16#062D#),
+ (16#FEA2#, 16#062D#),
+ (16#FEA3#, 16#062D#),
+ (16#FEA4#, 16#062D#),
+ (16#FEA5#, 16#062E#),
+ (16#FEA6#, 16#062E#),
+ (16#FEA7#, 16#062E#),
+ (16#FEA8#, 16#062E#),
+ (16#FEA9#, 16#062F#),
+ (16#FEAA#, 16#062F#),
+ (16#FEAB#, 16#0630#),
+ (16#FEAC#, 16#0630#),
+ (16#FEAD#, 16#0631#),
+ (16#FEAE#, 16#0631#),
+ (16#FEAF#, 16#0632#),
+ (16#FEB0#, 16#0632#),
+ (16#FEB1#, 16#0633#),
+ (16#FEB2#, 16#0633#),
+ (16#FEB3#, 16#0633#),
+ (16#FEB4#, 16#0633#),
+ (16#FEB5#, 16#0634#),
+ (16#FEB6#, 16#0634#),
+ (16#FEB7#, 16#0634#),
+ (16#FEB8#, 16#0634#),
+ (16#FEB9#, 16#0635#),
+ (16#FEBA#, 16#0635#),
+ (16#FEBB#, 16#0635#),
+ (16#FEBC#, 16#0635#),
+ (16#FEBD#, 16#0636#),
+ (16#FEBE#, 16#0636#),
+ (16#FEBF#, 16#0636#),
+ (16#FEC0#, 16#0636#),
+ (16#FEC1#, 16#0637#),
+ (16#FEC2#, 16#0637#),
+ (16#FEC3#, 16#0637#),
+ (16#FEC4#, 16#0637#),
+ (16#FEC5#, 16#0638#),
+ (16#FEC6#, 16#0638#),
+ (16#FEC7#, 16#0638#),
+ (16#FEC8#, 16#0638#),
+ (16#FEC9#, 16#0639#),
+ (16#FECA#, 16#0639#),
+ (16#FECB#, 16#0639#),
+ (16#FECC#, 16#0639#),
+ (16#FECD#, 16#063A#),
+ (16#FECE#, 16#063A#),
+ (16#FECF#, 16#063A#),
+ (16#FED0#, 16#063A#),
+ (16#FED1#, 16#0641#),
+ (16#FED2#, 16#0641#),
+ (16#FED3#, 16#0641#),
+ (16#FED4#, 16#0641#),
+ (16#FED5#, 16#0642#),
+ (16#FED6#, 16#0642#),
+ (16#FED7#, 16#0642#),
+ (16#FED8#, 16#0642#),
+ (16#FED9#, 16#0643#),
+ (16#FEDA#, 16#0643#),
+ (16#FEDB#, 16#0643#),
+ (16#FEDC#, 16#0643#),
+ (16#FEDD#, 16#0644#),
+ (16#FEDE#, 16#0644#),
+ (16#FEDF#, 16#0644#),
+ (16#FEE0#, 16#0644#),
+ (16#FEE1#, 16#0645#),
+ (16#FEE2#, 16#0645#),
+ (16#FEE3#, 16#0645#),
+ (16#FEE4#, 16#0645#),
+ (16#FEE5#, 16#0646#),
+ (16#FEE6#, 16#0646#),
+ (16#FEE7#, 16#0646#),
+ (16#FEE8#, 16#0646#),
+ (16#FEE9#, 16#0647#),
+ (16#FEEA#, 16#0647#),
+ (16#FEEB#, 16#0647#),
+ (16#FEEC#, 16#0647#),
+ (16#FEED#, 16#0648#),
+ (16#FEEE#, 16#0648#),
+ (16#FEEF#, 16#0649#),
+ (16#FEF0#, 16#0649#),
+ (16#FEF1#, 16#064A#),
+ (16#FEF2#, 16#064A#),
+ (16#FEF3#, 16#064A#),
+ (16#FEF4#, 16#064A#),
+ (16#FEF5#, 16#0644#),
+ (16#FEF6#, 16#0644#),
+ (16#FEF7#, 16#0644#),
+ (16#FEF8#, 16#0644#),
+ (16#FEF9#, 16#0644#),
+ (16#FEFA#, 16#0644#),
+ (16#FEFB#, 16#0644#),
+ (16#FEFC#, 16#0644#),
+ (16#FF01#, 16#0021#),
+ (16#FF02#, 16#0022#),
+ (16#FF03#, 16#0023#),
+ (16#FF04#, 16#0024#),
+ (16#FF05#, 16#0025#),
+ (16#FF06#, 16#0026#),
+ (16#FF07#, 16#0027#),
+ (16#FF08#, 16#0028#),
+ (16#FF09#, 16#0029#),
+ (16#FF0A#, 16#002A#),
+ (16#FF0B#, 16#002B#),
+ (16#FF0C#, 16#002C#),
+ (16#FF0D#, 16#002D#),
+ (16#FF0E#, 16#002E#),
+ (16#FF0F#, 16#002F#),
+ (16#FF10#, 16#0030#),
+ (16#FF11#, 16#0031#),
+ (16#FF12#, 16#0032#),
+ (16#FF13#, 16#0033#),
+ (16#FF14#, 16#0034#),
+ (16#FF15#, 16#0035#),
+ (16#FF16#, 16#0036#),
+ (16#FF17#, 16#0037#),
+ (16#FF18#, 16#0038#),
+ (16#FF19#, 16#0039#),
+ (16#FF1A#, 16#003A#),
+ (16#FF1B#, 16#003B#),
+ (16#FF1C#, 16#003C#),
+ (16#FF1D#, 16#003D#),
+ (16#FF1E#, 16#003E#),
+ (16#FF1F#, 16#003F#),
+ (16#FF20#, 16#0040#),
+ (16#FF21#, 16#0041#),
+ (16#FF22#, 16#0042#),
+ (16#FF23#, 16#0043#),
+ (16#FF24#, 16#0044#),
+ (16#FF25#, 16#0045#),
+ (16#FF26#, 16#0046#),
+ (16#FF27#, 16#0047#),
+ (16#FF28#, 16#0048#),
+ (16#FF29#, 16#0049#),
+ (16#FF2A#, 16#004A#),
+ (16#FF2B#, 16#004B#),
+ (16#FF2C#, 16#004C#),
+ (16#FF2D#, 16#004D#),
+ (16#FF2E#, 16#004E#),
+ (16#FF2F#, 16#004F#),
+ (16#FF30#, 16#0050#),
+ (16#FF31#, 16#0051#),
+ (16#FF32#, 16#0052#),
+ (16#FF33#, 16#0053#),
+ (16#FF34#, 16#0054#),
+ (16#FF35#, 16#0055#),
+ (16#FF36#, 16#0056#),
+ (16#FF37#, 16#0057#),
+ (16#FF38#, 16#0058#),
+ (16#FF39#, 16#0059#),
+ (16#FF3A#, 16#005A#),
+ (16#FF3B#, 16#005B#),
+ (16#FF3C#, 16#005C#),
+ (16#FF3D#, 16#005D#),
+ (16#FF3E#, 16#005E#),
+ (16#FF3F#, 16#005F#),
+ (16#FF40#, 16#0060#),
+ (16#FF41#, 16#0061#),
+ (16#FF42#, 16#0062#),
+ (16#FF43#, 16#0063#),
+ (16#FF44#, 16#0064#),
+ (16#FF45#, 16#0065#),
+ (16#FF46#, 16#0066#),
+ (16#FF47#, 16#0067#),
+ (16#FF48#, 16#0068#),
+ (16#FF49#, 16#0069#),
+ (16#FF4A#, 16#006A#),
+ (16#FF4B#, 16#006B#),
+ (16#FF4C#, 16#006C#),
+ (16#FF4D#, 16#006D#),
+ (16#FF4E#, 16#006E#),
+ (16#FF4F#, 16#006F#),
+ (16#FF50#, 16#0070#),
+ (16#FF51#, 16#0071#),
+ (16#FF52#, 16#0072#),
+ (16#FF53#, 16#0073#),
+ (16#FF54#, 16#0074#),
+ (16#FF55#, 16#0075#),
+ (16#FF56#, 16#0076#),
+ (16#FF57#, 16#0077#),
+ (16#FF58#, 16#0078#),
+ (16#FF59#, 16#0079#),
+ (16#FF5A#, 16#007A#),
+ (16#FF5B#, 16#007B#),
+ (16#FF5C#, 16#007C#),
+ (16#FF5D#, 16#007D#),
+ (16#FF5E#, 16#007E#),
+ (16#FF5F#, 16#2985#),
+ (16#FF60#, 16#2986#),
+ (16#FF61#, 16#3002#),
+ (16#FF62#, 16#300C#),
+ (16#FF63#, 16#300D#),
+ (16#FF64#, 16#3001#),
+ (16#FF65#, 16#30FB#),
+ (16#FF66#, 16#30F2#),
+ (16#FF67#, 16#30A1#),
+ (16#FF68#, 16#30A3#),
+ (16#FF69#, 16#30A5#),
+ (16#FF6A#, 16#30A7#),
+ (16#FF6B#, 16#30A9#),
+ (16#FF6C#, 16#30E3#),
+ (16#FF6D#, 16#30E5#),
+ (16#FF6E#, 16#30E7#),
+ (16#FF6F#, 16#30C3#),
+ (16#FF70#, 16#30FC#),
+ (16#FF71#, 16#30A2#),
+ (16#FF72#, 16#30A4#),
+ (16#FF73#, 16#30A6#),
+ (16#FF74#, 16#30A8#),
+ (16#FF75#, 16#30AA#),
+ (16#FF76#, 16#30AB#),
+ (16#FF77#, 16#30AD#),
+ (16#FF78#, 16#30AF#),
+ (16#FF79#, 16#30B1#),
+ (16#FF7A#, 16#30B3#),
+ (16#FF7B#, 16#30B5#),
+ (16#FF7C#, 16#30B7#),
+ (16#FF7D#, 16#30B9#),
+ (16#FF7E#, 16#30BB#),
+ (16#FF7F#, 16#30BD#),
+ (16#FF80#, 16#30BF#),
+ (16#FF81#, 16#30C1#),
+ (16#FF82#, 16#30C4#),
+ (16#FF83#, 16#30C6#),
+ (16#FF84#, 16#30C8#),
+ (16#FF85#, 16#30CA#),
+ (16#FF86#, 16#30CB#),
+ (16#FF87#, 16#30CC#),
+ (16#FF88#, 16#30CD#),
+ (16#FF89#, 16#30CE#),
+ (16#FF8A#, 16#30CF#),
+ (16#FF8B#, 16#30D2#),
+ (16#FF8C#, 16#30D5#),
+ (16#FF8D#, 16#30D8#),
+ (16#FF8E#, 16#30DB#),
+ (16#FF8F#, 16#30DE#),
+ (16#FF90#, 16#30DF#),
+ (16#FF91#, 16#30E0#),
+ (16#FF92#, 16#30E1#),
+ (16#FF93#, 16#30E2#),
+ (16#FF94#, 16#30E4#),
+ (16#FF95#, 16#30E6#),
+ (16#FF96#, 16#30E8#),
+ (16#FF97#, 16#30E9#),
+ (16#FF98#, 16#30EA#),
+ (16#FF99#, 16#30EB#),
+ (16#FF9A#, 16#30EC#),
+ (16#FF9B#, 16#30ED#),
+ (16#FF9C#, 16#30EF#),
+ (16#FF9D#, 16#30F3#),
+ (16#FF9E#, 16#3099#),
+ (16#FF9F#, 16#309A#),
+ (16#FFA0#, 16#3164#),
+ (16#FFA1#, 16#3131#),
+ (16#FFA2#, 16#3132#),
+ (16#FFA3#, 16#3133#),
+ (16#FFA4#, 16#3134#),
+ (16#FFA5#, 16#3135#),
+ (16#FFA6#, 16#3136#),
+ (16#FFA7#, 16#3137#),
+ (16#FFA8#, 16#3138#),
+ (16#FFA9#, 16#3139#),
+ (16#FFAA#, 16#313A#),
+ (16#FFAB#, 16#313B#),
+ (16#FFAC#, 16#313C#),
+ (16#FFAD#, 16#313D#),
+ (16#FFAE#, 16#313E#),
+ (16#FFAF#, 16#313F#),
+ (16#FFB0#, 16#3140#),
+ (16#FFB1#, 16#3141#),
+ (16#FFB2#, 16#3142#),
+ (16#FFB3#, 16#3143#),
+ (16#FFB4#, 16#3144#),
+ (16#FFB5#, 16#3145#),
+ (16#FFB6#, 16#3146#),
+ (16#FFB7#, 16#3147#),
+ (16#FFB8#, 16#3148#),
+ (16#FFB9#, 16#3149#),
+ (16#FFBA#, 16#314A#),
+ (16#FFBB#, 16#314B#),
+ (16#FFBC#, 16#314C#),
+ (16#FFBD#, 16#314D#),
+ (16#FFBE#, 16#314E#),
+ (16#FFC2#, 16#314F#),
+ (16#FFC3#, 16#3150#),
+ (16#FFC4#, 16#3151#),
+ (16#FFC5#, 16#3152#),
+ (16#FFC6#, 16#3153#),
+ (16#FFC7#, 16#3154#),
+ (16#FFCA#, 16#3155#),
+ (16#FFCB#, 16#3156#),
+ (16#FFCC#, 16#3157#),
+ (16#FFCD#, 16#3158#),
+ (16#FFCE#, 16#3159#),
+ (16#FFCF#, 16#315A#),
+ (16#FFD2#, 16#315B#),
+ (16#FFD3#, 16#315C#),
+ (16#FFD4#, 16#315D#),
+ (16#FFD5#, 16#315E#),
+ (16#FFD6#, 16#315F#),
+ (16#FFD7#, 16#3160#),
+ (16#FFDA#, 16#3161#),
+ (16#FFDB#, 16#3162#),
+ (16#FFDC#, 16#3163#),
+ (16#FFE0#, 16#00A2#),
+ (16#FFE1#, 16#00A3#),
+ (16#FFE2#, 16#00AC#),
+ (16#FFE3#, 16#00AF#),
+ (16#FFE4#, 16#00A6#),
+ (16#FFE5#, 16#00A5#),
+ (16#FFE6#, 16#20A9#),
+ (16#FFE8#, 16#2502#),
+ (16#FFE9#, 16#2190#),
+ (16#FFEA#, 16#2191#),
+ (16#FFEB#, 16#2192#),
+ (16#FFEC#, 16#2193#),
+ (16#FFED#, 16#25A0#),
+ (16#FFEE#, 16#25CB#),
+ (16#1109A#, 16#11099#),
+ (16#1109C#, 16#1109B#),
+ (16#110AB#, 16#110A5#),
+ (16#1112E#, 16#11131#),
+ (16#1112F#, 16#11132#),
+ (16#1134B#, 16#11347#),
+ (16#1134C#, 16#11347#),
+ (16#114BB#, 16#114B9#),
+ (16#114BC#, 16#114B9#),
+ (16#114BE#, 16#114B9#),
+ (16#115BA#, 16#115B8#),
+ (16#115BB#, 16#115B9#),
+ (16#11938#, 16#11935#),
+ (16#1D15E#, 16#1D157#),
+ (16#1D15F#, 16#1D158#),
+ (16#1D160#, 16#1D15F#),
+ (16#1D161#, 16#1D15F#),
+ (16#1D162#, 16#1D15F#),
+ (16#1D163#, 16#1D15F#),
+ (16#1D164#, 16#1D15F#),
+ (16#1D1BB#, 16#1D1B9#),
+ (16#1D1BC#, 16#1D1BA#),
+ (16#1D1BD#, 16#1D1BB#),
+ (16#1D1BE#, 16#1D1BC#),
+ (16#1D1BF#, 16#1D1BB#),
+ (16#1D1C0#, 16#1D1BC#),
+ (16#1D400#, 16#0041#),
+ (16#1D401#, 16#0042#),
+ (16#1D402#, 16#0043#),
+ (16#1D403#, 16#0044#),
+ (16#1D404#, 16#0045#),
+ (16#1D405#, 16#0046#),
+ (16#1D406#, 16#0047#),
+ (16#1D407#, 16#0048#),
+ (16#1D408#, 16#0049#),
+ (16#1D409#, 16#004A#),
+ (16#1D40A#, 16#004B#),
+ (16#1D40B#, 16#004C#),
+ (16#1D40C#, 16#004D#),
+ (16#1D40D#, 16#004E#),
+ (16#1D40E#, 16#004F#),
+ (16#1D40F#, 16#0050#),
+ (16#1D410#, 16#0051#),
+ (16#1D411#, 16#0052#),
+ (16#1D412#, 16#0053#),
+ (16#1D413#, 16#0054#),
+ (16#1D414#, 16#0055#),
+ (16#1D415#, 16#0056#),
+ (16#1D416#, 16#0057#),
+ (16#1D417#, 16#0058#),
+ (16#1D418#, 16#0059#),
+ (16#1D419#, 16#005A#),
+ (16#1D41A#, 16#0061#),
+ (16#1D41B#, 16#0062#),
+ (16#1D41C#, 16#0063#),
+ (16#1D41D#, 16#0064#),
+ (16#1D41E#, 16#0065#),
+ (16#1D41F#, 16#0066#),
+ (16#1D420#, 16#0067#),
+ (16#1D421#, 16#0068#),
+ (16#1D422#, 16#0069#),
+ (16#1D423#, 16#006A#),
+ (16#1D424#, 16#006B#),
+ (16#1D425#, 16#006C#),
+ (16#1D426#, 16#006D#),
+ (16#1D427#, 16#006E#),
+ (16#1D428#, 16#006F#),
+ (16#1D429#, 16#0070#),
+ (16#1D42A#, 16#0071#),
+ (16#1D42B#, 16#0072#),
+ (16#1D42C#, 16#0073#),
+ (16#1D42D#, 16#0074#),
+ (16#1D42E#, 16#0075#),
+ (16#1D42F#, 16#0076#),
+ (16#1D430#, 16#0077#),
+ (16#1D431#, 16#0078#),
+ (16#1D432#, 16#0079#),
+ (16#1D433#, 16#007A#),
+ (16#1D434#, 16#0041#),
+ (16#1D435#, 16#0042#),
+ (16#1D436#, 16#0043#),
+ (16#1D437#, 16#0044#),
+ (16#1D438#, 16#0045#),
+ (16#1D439#, 16#0046#),
+ (16#1D43A#, 16#0047#),
+ (16#1D43B#, 16#0048#),
+ (16#1D43C#, 16#0049#),
+ (16#1D43D#, 16#004A#),
+ (16#1D43E#, 16#004B#),
+ (16#1D43F#, 16#004C#),
+ (16#1D440#, 16#004D#),
+ (16#1D441#, 16#004E#),
+ (16#1D442#, 16#004F#),
+ (16#1D443#, 16#0050#),
+ (16#1D444#, 16#0051#),
+ (16#1D445#, 16#0052#),
+ (16#1D446#, 16#0053#),
+ (16#1D447#, 16#0054#),
+ (16#1D448#, 16#0055#),
+ (16#1D449#, 16#0056#),
+ (16#1D44A#, 16#0057#),
+ (16#1D44B#, 16#0058#),
+ (16#1D44C#, 16#0059#),
+ (16#1D44D#, 16#005A#),
+ (16#1D44E#, 16#0061#),
+ (16#1D44F#, 16#0062#),
+ (16#1D450#, 16#0063#),
+ (16#1D451#, 16#0064#),
+ (16#1D452#, 16#0065#),
+ (16#1D453#, 16#0066#),
+ (16#1D454#, 16#0067#),
+ (16#1D456#, 16#0069#),
+ (16#1D457#, 16#006A#),
+ (16#1D458#, 16#006B#),
+ (16#1D459#, 16#006C#),
+ (16#1D45A#, 16#006D#),
+ (16#1D45B#, 16#006E#),
+ (16#1D45C#, 16#006F#),
+ (16#1D45D#, 16#0070#),
+ (16#1D45E#, 16#0071#),
+ (16#1D45F#, 16#0072#),
+ (16#1D460#, 16#0073#),
+ (16#1D461#, 16#0074#),
+ (16#1D462#, 16#0075#),
+ (16#1D463#, 16#0076#),
+ (16#1D464#, 16#0077#),
+ (16#1D465#, 16#0078#),
+ (16#1D466#, 16#0079#),
+ (16#1D467#, 16#007A#),
+ (16#1D468#, 16#0041#),
+ (16#1D469#, 16#0042#),
+ (16#1D46A#, 16#0043#),
+ (16#1D46B#, 16#0044#),
+ (16#1D46C#, 16#0045#),
+ (16#1D46D#, 16#0046#),
+ (16#1D46E#, 16#0047#),
+ (16#1D46F#, 16#0048#),
+ (16#1D470#, 16#0049#),
+ (16#1D471#, 16#004A#),
+ (16#1D472#, 16#004B#),
+ (16#1D473#, 16#004C#),
+ (16#1D474#, 16#004D#),
+ (16#1D475#, 16#004E#),
+ (16#1D476#, 16#004F#),
+ (16#1D477#, 16#0050#),
+ (16#1D478#, 16#0051#),
+ (16#1D479#, 16#0052#),
+ (16#1D47A#, 16#0053#),
+ (16#1D47B#, 16#0054#),
+ (16#1D47C#, 16#0055#),
+ (16#1D47D#, 16#0056#),
+ (16#1D47E#, 16#0057#),
+ (16#1D47F#, 16#0058#),
+ (16#1D480#, 16#0059#),
+ (16#1D481#, 16#005A#),
+ (16#1D482#, 16#0061#),
+ (16#1D483#, 16#0062#),
+ (16#1D484#, 16#0063#),
+ (16#1D485#, 16#0064#),
+ (16#1D486#, 16#0065#),
+ (16#1D487#, 16#0066#),
+ (16#1D488#, 16#0067#),
+ (16#1D489#, 16#0068#),
+ (16#1D48A#, 16#0069#),
+ (16#1D48B#, 16#006A#),
+ (16#1D48C#, 16#006B#),
+ (16#1D48D#, 16#006C#),
+ (16#1D48E#, 16#006D#),
+ (16#1D48F#, 16#006E#),
+ (16#1D490#, 16#006F#),
+ (16#1D491#, 16#0070#),
+ (16#1D492#, 16#0071#),
+ (16#1D493#, 16#0072#),
+ (16#1D494#, 16#0073#),
+ (16#1D495#, 16#0074#),
+ (16#1D496#, 16#0075#),
+ (16#1D497#, 16#0076#),
+ (16#1D498#, 16#0077#),
+ (16#1D499#, 16#0078#),
+ (16#1D49A#, 16#0079#),
+ (16#1D49B#, 16#007A#),
+ (16#1D49C#, 16#0041#),
+ (16#1D49E#, 16#0043#),
+ (16#1D49F#, 16#0044#),
+ (16#1D4A2#, 16#0047#),
+ (16#1D4A5#, 16#004A#),
+ (16#1D4A6#, 16#004B#),
+ (16#1D4A9#, 16#004E#),
+ (16#1D4AA#, 16#004F#),
+ (16#1D4AB#, 16#0050#),
+ (16#1D4AC#, 16#0051#),
+ (16#1D4AE#, 16#0053#),
+ (16#1D4AF#, 16#0054#),
+ (16#1D4B0#, 16#0055#),
+ (16#1D4B1#, 16#0056#),
+ (16#1D4B2#, 16#0057#),
+ (16#1D4B3#, 16#0058#),
+ (16#1D4B4#, 16#0059#),
+ (16#1D4B5#, 16#005A#),
+ (16#1D4B6#, 16#0061#),
+ (16#1D4B7#, 16#0062#),
+ (16#1D4B8#, 16#0063#),
+ (16#1D4B9#, 16#0064#),
+ (16#1D4BB#, 16#0066#),
+ (16#1D4BD#, 16#0068#),
+ (16#1D4BE#, 16#0069#),
+ (16#1D4BF#, 16#006A#),
+ (16#1D4C0#, 16#006B#),
+ (16#1D4C1#, 16#006C#),
+ (16#1D4C2#, 16#006D#),
+ (16#1D4C3#, 16#006E#),
+ (16#1D4C5#, 16#0070#),
+ (16#1D4C6#, 16#0071#),
+ (16#1D4C7#, 16#0072#),
+ (16#1D4C8#, 16#0073#),
+ (16#1D4C9#, 16#0074#),
+ (16#1D4CA#, 16#0075#),
+ (16#1D4CB#, 16#0076#),
+ (16#1D4CC#, 16#0077#),
+ (16#1D4CD#, 16#0078#),
+ (16#1D4CE#, 16#0079#),
+ (16#1D4CF#, 16#007A#),
+ (16#1D4D0#, 16#0041#),
+ (16#1D4D1#, 16#0042#),
+ (16#1D4D2#, 16#0043#),
+ (16#1D4D3#, 16#0044#),
+ (16#1D4D4#, 16#0045#),
+ (16#1D4D5#, 16#0046#),
+ (16#1D4D6#, 16#0047#),
+ (16#1D4D7#, 16#0048#),
+ (16#1D4D8#, 16#0049#),
+ (16#1D4D9#, 16#004A#),
+ (16#1D4DA#, 16#004B#),
+ (16#1D4DB#, 16#004C#),
+ (16#1D4DC#, 16#004D#),
+ (16#1D4DD#, 16#004E#),
+ (16#1D4DE#, 16#004F#),
+ (16#1D4DF#, 16#0050#),
+ (16#1D4E0#, 16#0051#),
+ (16#1D4E1#, 16#0052#),
+ (16#1D4E2#, 16#0053#),
+ (16#1D4E3#, 16#0054#),
+ (16#1D4E4#, 16#0055#),
+ (16#1D4E5#, 16#0056#),
+ (16#1D4E6#, 16#0057#),
+ (16#1D4E7#, 16#0058#),
+ (16#1D4E8#, 16#0059#),
+ (16#1D4E9#, 16#005A#),
+ (16#1D4EA#, 16#0061#),
+ (16#1D4EB#, 16#0062#),
+ (16#1D4EC#, 16#0063#),
+ (16#1D4ED#, 16#0064#),
+ (16#1D4EE#, 16#0065#),
+ (16#1D4EF#, 16#0066#),
+ (16#1D4F0#, 16#0067#),
+ (16#1D4F1#, 16#0068#),
+ (16#1D4F2#, 16#0069#),
+ (16#1D4F3#, 16#006A#),
+ (16#1D4F4#, 16#006B#),
+ (16#1D4F5#, 16#006C#),
+ (16#1D4F6#, 16#006D#),
+ (16#1D4F7#, 16#006E#),
+ (16#1D4F8#, 16#006F#),
+ (16#1D4F9#, 16#0070#),
+ (16#1D4FA#, 16#0071#),
+ (16#1D4FB#, 16#0072#),
+ (16#1D4FC#, 16#0073#),
+ (16#1D4FD#, 16#0074#),
+ (16#1D4FE#, 16#0075#),
+ (16#1D4FF#, 16#0076#),
+ (16#1D500#, 16#0077#),
+ (16#1D501#, 16#0078#),
+ (16#1D502#, 16#0079#),
+ (16#1D503#, 16#007A#),
+ (16#1D504#, 16#0041#),
+ (16#1D505#, 16#0042#),
+ (16#1D507#, 16#0044#),
+ (16#1D508#, 16#0045#),
+ (16#1D509#, 16#0046#),
+ (16#1D50A#, 16#0047#),
+ (16#1D50D#, 16#004A#),
+ (16#1D50E#, 16#004B#),
+ (16#1D50F#, 16#004C#),
+ (16#1D510#, 16#004D#),
+ (16#1D511#, 16#004E#),
+ (16#1D512#, 16#004F#),
+ (16#1D513#, 16#0050#),
+ (16#1D514#, 16#0051#),
+ (16#1D516#, 16#0053#),
+ (16#1D517#, 16#0054#),
+ (16#1D518#, 16#0055#),
+ (16#1D519#, 16#0056#),
+ (16#1D51A#, 16#0057#),
+ (16#1D51B#, 16#0058#),
+ (16#1D51C#, 16#0059#),
+ (16#1D51E#, 16#0061#),
+ (16#1D51F#, 16#0062#),
+ (16#1D520#, 16#0063#),
+ (16#1D521#, 16#0064#),
+ (16#1D522#, 16#0065#),
+ (16#1D523#, 16#0066#),
+ (16#1D524#, 16#0067#),
+ (16#1D525#, 16#0068#),
+ (16#1D526#, 16#0069#),
+ (16#1D527#, 16#006A#),
+ (16#1D528#, 16#006B#),
+ (16#1D529#, 16#006C#),
+ (16#1D52A#, 16#006D#),
+ (16#1D52B#, 16#006E#),
+ (16#1D52C#, 16#006F#),
+ (16#1D52D#, 16#0070#),
+ (16#1D52E#, 16#0071#),
+ (16#1D52F#, 16#0072#),
+ (16#1D530#, 16#0073#),
+ (16#1D531#, 16#0074#),
+ (16#1D532#, 16#0075#),
+ (16#1D533#, 16#0076#),
+ (16#1D534#, 16#0077#),
+ (16#1D535#, 16#0078#),
+ (16#1D536#, 16#0079#),
+ (16#1D537#, 16#007A#),
+ (16#1D538#, 16#0041#),
+ (16#1D539#, 16#0042#),
+ (16#1D53B#, 16#0044#),
+ (16#1D53C#, 16#0045#),
+ (16#1D53D#, 16#0046#),
+ (16#1D53E#, 16#0047#),
+ (16#1D540#, 16#0049#),
+ (16#1D541#, 16#004A#),
+ (16#1D542#, 16#004B#),
+ (16#1D543#, 16#004C#),
+ (16#1D544#, 16#004D#),
+ (16#1D546#, 16#004F#),
+ (16#1D54A#, 16#0053#),
+ (16#1D54B#, 16#0054#),
+ (16#1D54C#, 16#0055#),
+ (16#1D54D#, 16#0056#),
+ (16#1D54E#, 16#0057#),
+ (16#1D54F#, 16#0058#),
+ (16#1D550#, 16#0059#),
+ (16#1D552#, 16#0061#),
+ (16#1D553#, 16#0062#),
+ (16#1D554#, 16#0063#),
+ (16#1D555#, 16#0064#),
+ (16#1D556#, 16#0065#),
+ (16#1D557#, 16#0066#),
+ (16#1D558#, 16#0067#),
+ (16#1D559#, 16#0068#),
+ (16#1D55A#, 16#0069#),
+ (16#1D55B#, 16#006A#),
+ (16#1D55C#, 16#006B#),
+ (16#1D55D#, 16#006C#),
+ (16#1D55E#, 16#006D#),
+ (16#1D55F#, 16#006E#),
+ (16#1D560#, 16#006F#),
+ (16#1D561#, 16#0070#),
+ (16#1D562#, 16#0071#),
+ (16#1D563#, 16#0072#),
+ (16#1D564#, 16#0073#),
+ (16#1D565#, 16#0074#),
+ (16#1D566#, 16#0075#),
+ (16#1D567#, 16#0076#),
+ (16#1D568#, 16#0077#),
+ (16#1D569#, 16#0078#),
+ (16#1D56A#, 16#0079#),
+ (16#1D56B#, 16#007A#),
+ (16#1D56C#, 16#0041#),
+ (16#1D56D#, 16#0042#),
+ (16#1D56E#, 16#0043#),
+ (16#1D56F#, 16#0044#),
+ (16#1D570#, 16#0045#),
+ (16#1D571#, 16#0046#),
+ (16#1D572#, 16#0047#),
+ (16#1D573#, 16#0048#),
+ (16#1D574#, 16#0049#),
+ (16#1D575#, 16#004A#),
+ (16#1D576#, 16#004B#),
+ (16#1D577#, 16#004C#),
+ (16#1D578#, 16#004D#),
+ (16#1D579#, 16#004E#),
+ (16#1D57A#, 16#004F#),
+ (16#1D57B#, 16#0050#),
+ (16#1D57C#, 16#0051#),
+ (16#1D57D#, 16#0052#),
+ (16#1D57E#, 16#0053#),
+ (16#1D57F#, 16#0054#),
+ (16#1D580#, 16#0055#),
+ (16#1D581#, 16#0056#),
+ (16#1D582#, 16#0057#),
+ (16#1D583#, 16#0058#),
+ (16#1D584#, 16#0059#),
+ (16#1D585#, 16#005A#),
+ (16#1D586#, 16#0061#),
+ (16#1D587#, 16#0062#),
+ (16#1D588#, 16#0063#),
+ (16#1D589#, 16#0064#),
+ (16#1D58A#, 16#0065#),
+ (16#1D58B#, 16#0066#),
+ (16#1D58C#, 16#0067#),
+ (16#1D58D#, 16#0068#),
+ (16#1D58E#, 16#0069#),
+ (16#1D58F#, 16#006A#),
+ (16#1D590#, 16#006B#),
+ (16#1D591#, 16#006C#),
+ (16#1D592#, 16#006D#),
+ (16#1D593#, 16#006E#),
+ (16#1D594#, 16#006F#),
+ (16#1D595#, 16#0070#),
+ (16#1D596#, 16#0071#),
+ (16#1D597#, 16#0072#),
+ (16#1D598#, 16#0073#),
+ (16#1D599#, 16#0074#),
+ (16#1D59A#, 16#0075#),
+ (16#1D59B#, 16#0076#),
+ (16#1D59C#, 16#0077#),
+ (16#1D59D#, 16#0078#),
+ (16#1D59E#, 16#0079#),
+ (16#1D59F#, 16#007A#),
+ (16#1D5A0#, 16#0041#),
+ (16#1D5A1#, 16#0042#),
+ (16#1D5A2#, 16#0043#),
+ (16#1D5A3#, 16#0044#),
+ (16#1D5A4#, 16#0045#),
+ (16#1D5A5#, 16#0046#),
+ (16#1D5A6#, 16#0047#),
+ (16#1D5A7#, 16#0048#),
+ (16#1D5A8#, 16#0049#),
+ (16#1D5A9#, 16#004A#),
+ (16#1D5AA#, 16#004B#),
+ (16#1D5AB#, 16#004C#),
+ (16#1D5AC#, 16#004D#),
+ (16#1D5AD#, 16#004E#),
+ (16#1D5AE#, 16#004F#),
+ (16#1D5AF#, 16#0050#),
+ (16#1D5B0#, 16#0051#),
+ (16#1D5B1#, 16#0052#),
+ (16#1D5B2#, 16#0053#),
+ (16#1D5B3#, 16#0054#),
+ (16#1D5B4#, 16#0055#),
+ (16#1D5B5#, 16#0056#),
+ (16#1D5B6#, 16#0057#),
+ (16#1D5B7#, 16#0058#),
+ (16#1D5B8#, 16#0059#),
+ (16#1D5B9#, 16#005A#),
+ (16#1D5BA#, 16#0061#),
+ (16#1D5BB#, 16#0062#),
+ (16#1D5BC#, 16#0063#),
+ (16#1D5BD#, 16#0064#),
+ (16#1D5BE#, 16#0065#),
+ (16#1D5BF#, 16#0066#),
+ (16#1D5C0#, 16#0067#),
+ (16#1D5C1#, 16#0068#),
+ (16#1D5C2#, 16#0069#),
+ (16#1D5C3#, 16#006A#),
+ (16#1D5C4#, 16#006B#),
+ (16#1D5C5#, 16#006C#),
+ (16#1D5C6#, 16#006D#),
+ (16#1D5C7#, 16#006E#),
+ (16#1D5C8#, 16#006F#),
+ (16#1D5C9#, 16#0070#),
+ (16#1D5CA#, 16#0071#),
+ (16#1D5CB#, 16#0072#),
+ (16#1D5CC#, 16#0073#),
+ (16#1D5CD#, 16#0074#),
+ (16#1D5CE#, 16#0075#),
+ (16#1D5CF#, 16#0076#),
+ (16#1D5D0#, 16#0077#),
+ (16#1D5D1#, 16#0078#),
+ (16#1D5D2#, 16#0079#),
+ (16#1D5D3#, 16#007A#),
+ (16#1D5D4#, 16#0041#),
+ (16#1D5D5#, 16#0042#),
+ (16#1D5D6#, 16#0043#),
+ (16#1D5D7#, 16#0044#),
+ (16#1D5D8#, 16#0045#),
+ (16#1D5D9#, 16#0046#),
+ (16#1D5DA#, 16#0047#),
+ (16#1D5DB#, 16#0048#),
+ (16#1D5DC#, 16#0049#),
+ (16#1D5DD#, 16#004A#),
+ (16#1D5DE#, 16#004B#),
+ (16#1D5DF#, 16#004C#),
+ (16#1D5E0#, 16#004D#),
+ (16#1D5E1#, 16#004E#),
+ (16#1D5E2#, 16#004F#),
+ (16#1D5E3#, 16#0050#),
+ (16#1D5E4#, 16#0051#),
+ (16#1D5E5#, 16#0052#),
+ (16#1D5E6#, 16#0053#),
+ (16#1D5E7#, 16#0054#),
+ (16#1D5E8#, 16#0055#),
+ (16#1D5E9#, 16#0056#),
+ (16#1D5EA#, 16#0057#),
+ (16#1D5EB#, 16#0058#),
+ (16#1D5EC#, 16#0059#),
+ (16#1D5ED#, 16#005A#),
+ (16#1D5EE#, 16#0061#),
+ (16#1D5EF#, 16#0062#),
+ (16#1D5F0#, 16#0063#),
+ (16#1D5F1#, 16#0064#),
+ (16#1D5F2#, 16#0065#),
+ (16#1D5F3#, 16#0066#),
+ (16#1D5F4#, 16#0067#),
+ (16#1D5F5#, 16#0068#),
+ (16#1D5F6#, 16#0069#),
+ (16#1D5F7#, 16#006A#),
+ (16#1D5F8#, 16#006B#),
+ (16#1D5F9#, 16#006C#),
+ (16#1D5FA#, 16#006D#),
+ (16#1D5FB#, 16#006E#),
+ (16#1D5FC#, 16#006F#),
+ (16#1D5FD#, 16#0070#),
+ (16#1D5FE#, 16#0071#),
+ (16#1D5FF#, 16#0072#),
+ (16#1D600#, 16#0073#),
+ (16#1D601#, 16#0074#),
+ (16#1D602#, 16#0075#),
+ (16#1D603#, 16#0076#),
+ (16#1D604#, 16#0077#),
+ (16#1D605#, 16#0078#),
+ (16#1D606#, 16#0079#),
+ (16#1D607#, 16#007A#),
+ (16#1D608#, 16#0041#),
+ (16#1D609#, 16#0042#),
+ (16#1D60A#, 16#0043#),
+ (16#1D60B#, 16#0044#),
+ (16#1D60C#, 16#0045#),
+ (16#1D60D#, 16#0046#),
+ (16#1D60E#, 16#0047#),
+ (16#1D60F#, 16#0048#),
+ (16#1D610#, 16#0049#),
+ (16#1D611#, 16#004A#),
+ (16#1D612#, 16#004B#),
+ (16#1D613#, 16#004C#),
+ (16#1D614#, 16#004D#),
+ (16#1D615#, 16#004E#),
+ (16#1D616#, 16#004F#),
+ (16#1D617#, 16#0050#),
+ (16#1D618#, 16#0051#),
+ (16#1D619#, 16#0052#),
+ (16#1D61A#, 16#0053#),
+ (16#1D61B#, 16#0054#),
+ (16#1D61C#, 16#0055#),
+ (16#1D61D#, 16#0056#),
+ (16#1D61E#, 16#0057#),
+ (16#1D61F#, 16#0058#),
+ (16#1D620#, 16#0059#),
+ (16#1D621#, 16#005A#),
+ (16#1D622#, 16#0061#),
+ (16#1D623#, 16#0062#),
+ (16#1D624#, 16#0063#),
+ (16#1D625#, 16#0064#),
+ (16#1D626#, 16#0065#),
+ (16#1D627#, 16#0066#),
+ (16#1D628#, 16#0067#),
+ (16#1D629#, 16#0068#),
+ (16#1D62A#, 16#0069#),
+ (16#1D62B#, 16#006A#),
+ (16#1D62C#, 16#006B#),
+ (16#1D62D#, 16#006C#),
+ (16#1D62E#, 16#006D#),
+ (16#1D62F#, 16#006E#),
+ (16#1D630#, 16#006F#),
+ (16#1D631#, 16#0070#),
+ (16#1D632#, 16#0071#),
+ (16#1D633#, 16#0072#),
+ (16#1D634#, 16#0073#),
+ (16#1D635#, 16#0074#),
+ (16#1D636#, 16#0075#),
+ (16#1D637#, 16#0076#),
+ (16#1D638#, 16#0077#),
+ (16#1D639#, 16#0078#),
+ (16#1D63A#, 16#0079#),
+ (16#1D63B#, 16#007A#),
+ (16#1D63C#, 16#0041#),
+ (16#1D63D#, 16#0042#),
+ (16#1D63E#, 16#0043#),
+ (16#1D63F#, 16#0044#),
+ (16#1D640#, 16#0045#),
+ (16#1D641#, 16#0046#),
+ (16#1D642#, 16#0047#),
+ (16#1D643#, 16#0048#),
+ (16#1D644#, 16#0049#),
+ (16#1D645#, 16#004A#),
+ (16#1D646#, 16#004B#),
+ (16#1D647#, 16#004C#),
+ (16#1D648#, 16#004D#),
+ (16#1D649#, 16#004E#),
+ (16#1D64A#, 16#004F#),
+ (16#1D64B#, 16#0050#),
+ (16#1D64C#, 16#0051#),
+ (16#1D64D#, 16#0052#),
+ (16#1D64E#, 16#0053#),
+ (16#1D64F#, 16#0054#),
+ (16#1D650#, 16#0055#),
+ (16#1D651#, 16#0056#),
+ (16#1D652#, 16#0057#),
+ (16#1D653#, 16#0058#),
+ (16#1D654#, 16#0059#),
+ (16#1D655#, 16#005A#),
+ (16#1D656#, 16#0061#),
+ (16#1D657#, 16#0062#),
+ (16#1D658#, 16#0063#),
+ (16#1D659#, 16#0064#),
+ (16#1D65A#, 16#0065#),
+ (16#1D65B#, 16#0066#),
+ (16#1D65C#, 16#0067#),
+ (16#1D65D#, 16#0068#),
+ (16#1D65E#, 16#0069#),
+ (16#1D65F#, 16#006A#),
+ (16#1D660#, 16#006B#),
+ (16#1D661#, 16#006C#),
+ (16#1D662#, 16#006D#),
+ (16#1D663#, 16#006E#),
+ (16#1D664#, 16#006F#),
+ (16#1D665#, 16#0070#),
+ (16#1D666#, 16#0071#),
+ (16#1D667#, 16#0072#),
+ (16#1D668#, 16#0073#),
+ (16#1D669#, 16#0074#),
+ (16#1D66A#, 16#0075#),
+ (16#1D66B#, 16#0076#),
+ (16#1D66C#, 16#0077#),
+ (16#1D66D#, 16#0078#),
+ (16#1D66E#, 16#0079#),
+ (16#1D66F#, 16#007A#),
+ (16#1D670#, 16#0041#),
+ (16#1D671#, 16#0042#),
+ (16#1D672#, 16#0043#),
+ (16#1D673#, 16#0044#),
+ (16#1D674#, 16#0045#),
+ (16#1D675#, 16#0046#),
+ (16#1D676#, 16#0047#),
+ (16#1D677#, 16#0048#),
+ (16#1D678#, 16#0049#),
+ (16#1D679#, 16#004A#),
+ (16#1D67A#, 16#004B#),
+ (16#1D67B#, 16#004C#),
+ (16#1D67C#, 16#004D#),
+ (16#1D67D#, 16#004E#),
+ (16#1D67E#, 16#004F#),
+ (16#1D67F#, 16#0050#),
+ (16#1D680#, 16#0051#),
+ (16#1D681#, 16#0052#),
+ (16#1D682#, 16#0053#),
+ (16#1D683#, 16#0054#),
+ (16#1D684#, 16#0055#),
+ (16#1D685#, 16#0056#),
+ (16#1D686#, 16#0057#),
+ (16#1D687#, 16#0058#),
+ (16#1D688#, 16#0059#),
+ (16#1D689#, 16#005A#),
+ (16#1D68A#, 16#0061#),
+ (16#1D68B#, 16#0062#),
+ (16#1D68C#, 16#0063#),
+ (16#1D68D#, 16#0064#),
+ (16#1D68E#, 16#0065#),
+ (16#1D68F#, 16#0066#),
+ (16#1D690#, 16#0067#),
+ (16#1D691#, 16#0068#),
+ (16#1D692#, 16#0069#),
+ (16#1D693#, 16#006A#),
+ (16#1D694#, 16#006B#),
+ (16#1D695#, 16#006C#),
+ (16#1D696#, 16#006D#),
+ (16#1D697#, 16#006E#),
+ (16#1D698#, 16#006F#),
+ (16#1D699#, 16#0070#),
+ (16#1D69A#, 16#0071#),
+ (16#1D69B#, 16#0072#),
+ (16#1D69C#, 16#0073#),
+ (16#1D69D#, 16#0074#),
+ (16#1D69E#, 16#0075#),
+ (16#1D69F#, 16#0076#),
+ (16#1D6A0#, 16#0077#),
+ (16#1D6A1#, 16#0078#),
+ (16#1D6A2#, 16#0079#),
+ (16#1D6A3#, 16#007A#),
+ (16#1D6A4#, 16#0131#),
+ (16#1D6A5#, 16#0237#),
+ (16#1D6A8#, 16#0391#),
+ (16#1D6A9#, 16#0392#),
+ (16#1D6AA#, 16#0393#),
+ (16#1D6AB#, 16#0394#),
+ (16#1D6AC#, 16#0395#),
+ (16#1D6AD#, 16#0396#),
+ (16#1D6AE#, 16#0397#),
+ (16#1D6AF#, 16#0398#),
+ (16#1D6B0#, 16#0399#),
+ (16#1D6B1#, 16#039A#),
+ (16#1D6B2#, 16#039B#),
+ (16#1D6B3#, 16#039C#),
+ (16#1D6B4#, 16#039D#),
+ (16#1D6B5#, 16#039E#),
+ (16#1D6B6#, 16#039F#),
+ (16#1D6B7#, 16#03A0#),
+ (16#1D6B8#, 16#03A1#),
+ (16#1D6B9#, 16#03F4#),
+ (16#1D6BA#, 16#03A3#),
+ (16#1D6BB#, 16#03A4#),
+ (16#1D6BC#, 16#03A5#),
+ (16#1D6BD#, 16#03A6#),
+ (16#1D6BE#, 16#03A7#),
+ (16#1D6BF#, 16#03A8#),
+ (16#1D6C0#, 16#03A9#),
+ (16#1D6C1#, 16#2207#),
+ (16#1D6C2#, 16#03B1#),
+ (16#1D6C3#, 16#03B2#),
+ (16#1D6C4#, 16#03B3#),
+ (16#1D6C5#, 16#03B4#),
+ (16#1D6C6#, 16#03B5#),
+ (16#1D6C7#, 16#03B6#),
+ (16#1D6C8#, 16#03B7#),
+ (16#1D6C9#, 16#03B8#),
+ (16#1D6CA#, 16#03B9#),
+ (16#1D6CB#, 16#03BA#),
+ (16#1D6CC#, 16#03BB#),
+ (16#1D6CD#, 16#03BC#),
+ (16#1D6CE#, 16#03BD#),
+ (16#1D6CF#, 16#03BE#),
+ (16#1D6D0#, 16#03BF#),
+ (16#1D6D1#, 16#03C0#),
+ (16#1D6D2#, 16#03C1#),
+ (16#1D6D3#, 16#03C2#),
+ (16#1D6D4#, 16#03C3#),
+ (16#1D6D5#, 16#03C4#),
+ (16#1D6D6#, 16#03C5#),
+ (16#1D6D7#, 16#03C6#),
+ (16#1D6D8#, 16#03C7#),
+ (16#1D6D9#, 16#03C8#),
+ (16#1D6DA#, 16#03C9#),
+ (16#1D6DB#, 16#2202#),
+ (16#1D6DC#, 16#03F5#),
+ (16#1D6DD#, 16#03D1#),
+ (16#1D6DE#, 16#03F0#),
+ (16#1D6DF#, 16#03D5#),
+ (16#1D6E0#, 16#03F1#),
+ (16#1D6E1#, 16#03D6#),
+ (16#1D6E2#, 16#0391#),
+ (16#1D6E3#, 16#0392#),
+ (16#1D6E4#, 16#0393#),
+ (16#1D6E5#, 16#0394#),
+ (16#1D6E6#, 16#0395#),
+ (16#1D6E7#, 16#0396#),
+ (16#1D6E8#, 16#0397#),
+ (16#1D6E9#, 16#0398#),
+ (16#1D6EA#, 16#0399#),
+ (16#1D6EB#, 16#039A#),
+ (16#1D6EC#, 16#039B#),
+ (16#1D6ED#, 16#039C#),
+ (16#1D6EE#, 16#039D#),
+ (16#1D6EF#, 16#039E#),
+ (16#1D6F0#, 16#039F#),
+ (16#1D6F1#, 16#03A0#),
+ (16#1D6F2#, 16#03A1#),
+ (16#1D6F3#, 16#03F4#),
+ (16#1D6F4#, 16#03A3#),
+ (16#1D6F5#, 16#03A4#),
+ (16#1D6F6#, 16#03A5#),
+ (16#1D6F7#, 16#03A6#),
+ (16#1D6F8#, 16#03A7#),
+ (16#1D6F9#, 16#03A8#),
+ (16#1D6FA#, 16#03A9#),
+ (16#1D6FB#, 16#2207#),
+ (16#1D6FC#, 16#03B1#),
+ (16#1D6FD#, 16#03B2#),
+ (16#1D6FE#, 16#03B3#),
+ (16#1D6FF#, 16#03B4#),
+ (16#1D700#, 16#03B5#),
+ (16#1D701#, 16#03B6#),
+ (16#1D702#, 16#03B7#),
+ (16#1D703#, 16#03B8#),
+ (16#1D704#, 16#03B9#),
+ (16#1D705#, 16#03BA#),
+ (16#1D706#, 16#03BB#),
+ (16#1D707#, 16#03BC#),
+ (16#1D708#, 16#03BD#),
+ (16#1D709#, 16#03BE#),
+ (16#1D70A#, 16#03BF#),
+ (16#1D70B#, 16#03C0#),
+ (16#1D70C#, 16#03C1#),
+ (16#1D70D#, 16#03C2#),
+ (16#1D70E#, 16#03C3#),
+ (16#1D70F#, 16#03C4#),
+ (16#1D710#, 16#03C5#),
+ (16#1D711#, 16#03C6#),
+ (16#1D712#, 16#03C7#),
+ (16#1D713#, 16#03C8#),
+ (16#1D714#, 16#03C9#),
+ (16#1D715#, 16#2202#),
+ (16#1D716#, 16#03F5#),
+ (16#1D717#, 16#03D1#),
+ (16#1D718#, 16#03F0#),
+ (16#1D719#, 16#03D5#),
+ (16#1D71A#, 16#03F1#),
+ (16#1D71B#, 16#03D6#),
+ (16#1D71C#, 16#0391#),
+ (16#1D71D#, 16#0392#),
+ (16#1D71E#, 16#0393#),
+ (16#1D71F#, 16#0394#),
+ (16#1D720#, 16#0395#),
+ (16#1D721#, 16#0396#),
+ (16#1D722#, 16#0397#),
+ (16#1D723#, 16#0398#),
+ (16#1D724#, 16#0399#),
+ (16#1D725#, 16#039A#),
+ (16#1D726#, 16#039B#),
+ (16#1D727#, 16#039C#),
+ (16#1D728#, 16#039D#),
+ (16#1D729#, 16#039E#),
+ (16#1D72A#, 16#039F#),
+ (16#1D72B#, 16#03A0#),
+ (16#1D72C#, 16#03A1#),
+ (16#1D72D#, 16#03F4#),
+ (16#1D72E#, 16#03A3#),
+ (16#1D72F#, 16#03A4#),
+ (16#1D730#, 16#03A5#),
+ (16#1D731#, 16#03A6#),
+ (16#1D732#, 16#03A7#),
+ (16#1D733#, 16#03A8#),
+ (16#1D734#, 16#03A9#),
+ (16#1D735#, 16#2207#),
+ (16#1D736#, 16#03B1#),
+ (16#1D737#, 16#03B2#),
+ (16#1D738#, 16#03B3#),
+ (16#1D739#, 16#03B4#),
+ (16#1D73A#, 16#03B5#),
+ (16#1D73B#, 16#03B6#),
+ (16#1D73C#, 16#03B7#),
+ (16#1D73D#, 16#03B8#),
+ (16#1D73E#, 16#03B9#),
+ (16#1D73F#, 16#03BA#),
+ (16#1D740#, 16#03BB#),
+ (16#1D741#, 16#03BC#),
+ (16#1D742#, 16#03BD#),
+ (16#1D743#, 16#03BE#),
+ (16#1D744#, 16#03BF#),
+ (16#1D745#, 16#03C0#),
+ (16#1D746#, 16#03C1#),
+ (16#1D747#, 16#03C2#),
+ (16#1D748#, 16#03C3#),
+ (16#1D749#, 16#03C4#),
+ (16#1D74A#, 16#03C5#),
+ (16#1D74B#, 16#03C6#),
+ (16#1D74C#, 16#03C7#),
+ (16#1D74D#, 16#03C8#),
+ (16#1D74E#, 16#03C9#),
+ (16#1D74F#, 16#2202#),
+ (16#1D750#, 16#03F5#),
+ (16#1D751#, 16#03D1#),
+ (16#1D752#, 16#03F0#),
+ (16#1D753#, 16#03D5#),
+ (16#1D754#, 16#03F1#),
+ (16#1D755#, 16#03D6#),
+ (16#1D756#, 16#0391#),
+ (16#1D757#, 16#0392#),
+ (16#1D758#, 16#0393#),
+ (16#1D759#, 16#0394#),
+ (16#1D75A#, 16#0395#),
+ (16#1D75B#, 16#0396#),
+ (16#1D75C#, 16#0397#),
+ (16#1D75D#, 16#0398#),
+ (16#1D75E#, 16#0399#),
+ (16#1D75F#, 16#039A#),
+ (16#1D760#, 16#039B#),
+ (16#1D761#, 16#039C#),
+ (16#1D762#, 16#039D#),
+ (16#1D763#, 16#039E#),
+ (16#1D764#, 16#039F#),
+ (16#1D765#, 16#03A0#),
+ (16#1D766#, 16#03A1#),
+ (16#1D767#, 16#03F4#),
+ (16#1D768#, 16#03A3#),
+ (16#1D769#, 16#03A4#),
+ (16#1D76A#, 16#03A5#),
+ (16#1D76B#, 16#03A6#),
+ (16#1D76C#, 16#03A7#),
+ (16#1D76D#, 16#03A8#),
+ (16#1D76E#, 16#03A9#),
+ (16#1D76F#, 16#2207#),
+ (16#1D770#, 16#03B1#),
+ (16#1D771#, 16#03B2#),
+ (16#1D772#, 16#03B3#),
+ (16#1D773#, 16#03B4#),
+ (16#1D774#, 16#03B5#),
+ (16#1D775#, 16#03B6#),
+ (16#1D776#, 16#03B7#),
+ (16#1D777#, 16#03B8#),
+ (16#1D778#, 16#03B9#),
+ (16#1D779#, 16#03BA#),
+ (16#1D77A#, 16#03BB#),
+ (16#1D77B#, 16#03BC#),
+ (16#1D77C#, 16#03BD#),
+ (16#1D77D#, 16#03BE#),
+ (16#1D77E#, 16#03BF#),
+ (16#1D77F#, 16#03C0#),
+ (16#1D780#, 16#03C1#),
+ (16#1D781#, 16#03C2#),
+ (16#1D782#, 16#03C3#),
+ (16#1D783#, 16#03C4#),
+ (16#1D784#, 16#03C5#),
+ (16#1D785#, 16#03C6#),
+ (16#1D786#, 16#03C7#),
+ (16#1D787#, 16#03C8#),
+ (16#1D788#, 16#03C9#),
+ (16#1D789#, 16#2202#),
+ (16#1D78A#, 16#03F5#),
+ (16#1D78B#, 16#03D1#),
+ (16#1D78C#, 16#03F0#),
+ (16#1D78D#, 16#03D5#),
+ (16#1D78E#, 16#03F1#),
+ (16#1D78F#, 16#03D6#),
+ (16#1D790#, 16#0391#),
+ (16#1D791#, 16#0392#),
+ (16#1D792#, 16#0393#),
+ (16#1D793#, 16#0394#),
+ (16#1D794#, 16#0395#),
+ (16#1D795#, 16#0396#),
+ (16#1D796#, 16#0397#),
+ (16#1D797#, 16#0398#),
+ (16#1D798#, 16#0399#),
+ (16#1D799#, 16#039A#),
+ (16#1D79A#, 16#039B#),
+ (16#1D79B#, 16#039C#),
+ (16#1D79C#, 16#039D#),
+ (16#1D79D#, 16#039E#),
+ (16#1D79E#, 16#039F#),
+ (16#1D79F#, 16#03A0#),
+ (16#1D7A0#, 16#03A1#),
+ (16#1D7A1#, 16#03F4#),
+ (16#1D7A2#, 16#03A3#),
+ (16#1D7A3#, 16#03A4#),
+ (16#1D7A4#, 16#03A5#),
+ (16#1D7A5#, 16#03A6#),
+ (16#1D7A6#, 16#03A7#),
+ (16#1D7A7#, 16#03A8#),
+ (16#1D7A8#, 16#03A9#),
+ (16#1D7A9#, 16#2207#),
+ (16#1D7AA#, 16#03B1#),
+ (16#1D7AB#, 16#03B2#),
+ (16#1D7AC#, 16#03B3#),
+ (16#1D7AD#, 16#03B4#),
+ (16#1D7AE#, 16#03B5#),
+ (16#1D7AF#, 16#03B6#),
+ (16#1D7B0#, 16#03B7#),
+ (16#1D7B1#, 16#03B8#),
+ (16#1D7B2#, 16#03B9#),
+ (16#1D7B3#, 16#03BA#),
+ (16#1D7B4#, 16#03BB#),
+ (16#1D7B5#, 16#03BC#),
+ (16#1D7B6#, 16#03BD#),
+ (16#1D7B7#, 16#03BE#),
+ (16#1D7B8#, 16#03BF#),
+ (16#1D7B9#, 16#03C0#),
+ (16#1D7BA#, 16#03C1#),
+ (16#1D7BB#, 16#03C2#),
+ (16#1D7BC#, 16#03C3#),
+ (16#1D7BD#, 16#03C4#),
+ (16#1D7BE#, 16#03C5#),
+ (16#1D7BF#, 16#03C6#),
+ (16#1D7C0#, 16#03C7#),
+ (16#1D7C1#, 16#03C8#),
+ (16#1D7C2#, 16#03C9#),
+ (16#1D7C3#, 16#2202#),
+ (16#1D7C4#, 16#03F5#),
+ (16#1D7C5#, 16#03D1#),
+ (16#1D7C6#, 16#03F0#),
+ (16#1D7C7#, 16#03D5#),
+ (16#1D7C8#, 16#03F1#),
+ (16#1D7C9#, 16#03D6#),
+ (16#1D7CA#, 16#03DC#),
+ (16#1D7CB#, 16#03DD#),
+ (16#1D7CE#, 16#0030#),
+ (16#1D7CF#, 16#0031#),
+ (16#1D7D0#, 16#0032#),
+ (16#1D7D1#, 16#0033#),
+ (16#1D7D2#, 16#0034#),
+ (16#1D7D3#, 16#0035#),
+ (16#1D7D4#, 16#0036#),
+ (16#1D7D5#, 16#0037#),
+ (16#1D7D6#, 16#0038#),
+ (16#1D7D7#, 16#0039#),
+ (16#1D7D8#, 16#0030#),
+ (16#1D7D9#, 16#0031#),
+ (16#1D7DA#, 16#0032#),
+ (16#1D7DB#, 16#0033#),
+ (16#1D7DC#, 16#0034#),
+ (16#1D7DD#, 16#0035#),
+ (16#1D7DE#, 16#0036#),
+ (16#1D7DF#, 16#0037#),
+ (16#1D7E0#, 16#0038#),
+ (16#1D7E1#, 16#0039#),
+ (16#1D7E2#, 16#0030#),
+ (16#1D7E3#, 16#0031#),
+ (16#1D7E4#, 16#0032#),
+ (16#1D7E5#, 16#0033#),
+ (16#1D7E6#, 16#0034#),
+ (16#1D7E7#, 16#0035#),
+ (16#1D7E8#, 16#0036#),
+ (16#1D7E9#, 16#0037#),
+ (16#1D7EA#, 16#0038#),
+ (16#1D7EB#, 16#0039#),
+ (16#1D7EC#, 16#0030#),
+ (16#1D7ED#, 16#0031#),
+ (16#1D7EE#, 16#0032#),
+ (16#1D7EF#, 16#0033#),
+ (16#1D7F0#, 16#0034#),
+ (16#1D7F1#, 16#0035#),
+ (16#1D7F2#, 16#0036#),
+ (16#1D7F3#, 16#0037#),
+ (16#1D7F4#, 16#0038#),
+ (16#1D7F5#, 16#0039#),
+ (16#1D7F6#, 16#0030#),
+ (16#1D7F7#, 16#0031#),
+ (16#1D7F8#, 16#0032#),
+ (16#1D7F9#, 16#0033#),
+ (16#1D7FA#, 16#0034#),
+ (16#1D7FB#, 16#0035#),
+ (16#1D7FC#, 16#0036#),
+ (16#1D7FD#, 16#0037#),
+ (16#1D7FE#, 16#0038#),
+ (16#1D7FF#, 16#0039#),
+ (16#1EE00#, 16#0627#),
+ (16#1EE01#, 16#0628#),
+ (16#1EE02#, 16#062C#),
+ (16#1EE03#, 16#062F#),
+ (16#1EE05#, 16#0648#),
+ (16#1EE06#, 16#0632#),
+ (16#1EE07#, 16#062D#),
+ (16#1EE08#, 16#0637#),
+ (16#1EE09#, 16#064A#),
+ (16#1EE0A#, 16#0643#),
+ (16#1EE0B#, 16#0644#),
+ (16#1EE0C#, 16#0645#),
+ (16#1EE0D#, 16#0646#),
+ (16#1EE0E#, 16#0633#),
+ (16#1EE0F#, 16#0639#),
+ (16#1EE10#, 16#0641#),
+ (16#1EE11#, 16#0635#),
+ (16#1EE12#, 16#0642#),
+ (16#1EE13#, 16#0631#),
+ (16#1EE14#, 16#0634#),
+ (16#1EE15#, 16#062A#),
+ (16#1EE16#, 16#062B#),
+ (16#1EE17#, 16#062E#),
+ (16#1EE18#, 16#0630#),
+ (16#1EE19#, 16#0636#),
+ (16#1EE1A#, 16#0638#),
+ (16#1EE1B#, 16#063A#),
+ (16#1EE1C#, 16#066E#),
+ (16#1EE1D#, 16#06BA#),
+ (16#1EE1E#, 16#06A1#),
+ (16#1EE1F#, 16#066F#),
+ (16#1EE21#, 16#0628#),
+ (16#1EE22#, 16#062C#),
+ (16#1EE24#, 16#0647#),
+ (16#1EE27#, 16#062D#),
+ (16#1EE29#, 16#064A#),
+ (16#1EE2A#, 16#0643#),
+ (16#1EE2B#, 16#0644#),
+ (16#1EE2C#, 16#0645#),
+ (16#1EE2D#, 16#0646#),
+ (16#1EE2E#, 16#0633#),
+ (16#1EE2F#, 16#0639#),
+ (16#1EE30#, 16#0641#),
+ (16#1EE31#, 16#0635#),
+ (16#1EE32#, 16#0642#),
+ (16#1EE34#, 16#0634#),
+ (16#1EE35#, 16#062A#),
+ (16#1EE36#, 16#062B#),
+ (16#1EE37#, 16#062E#),
+ (16#1EE39#, 16#0636#),
+ (16#1EE3B#, 16#063A#),
+ (16#1EE42#, 16#062C#),
+ (16#1EE47#, 16#062D#),
+ (16#1EE49#, 16#064A#),
+ (16#1EE4B#, 16#0644#),
+ (16#1EE4D#, 16#0646#),
+ (16#1EE4E#, 16#0633#),
+ (16#1EE4F#, 16#0639#),
+ (16#1EE51#, 16#0635#),
+ (16#1EE52#, 16#0642#),
+ (16#1EE54#, 16#0634#),
+ (16#1EE57#, 16#062E#),
+ (16#1EE59#, 16#0636#),
+ (16#1EE5B#, 16#063A#),
+ (16#1EE5D#, 16#06BA#),
+ (16#1EE5F#, 16#066F#),
+ (16#1EE61#, 16#0628#),
+ (16#1EE62#, 16#062C#),
+ (16#1EE64#, 16#0647#),
+ (16#1EE67#, 16#062D#),
+ (16#1EE68#, 16#0637#),
+ (16#1EE69#, 16#064A#),
+ (16#1EE6A#, 16#0643#),
+ (16#1EE6C#, 16#0645#),
+ (16#1EE6D#, 16#0646#),
+ (16#1EE6E#, 16#0633#),
+ (16#1EE6F#, 16#0639#),
+ (16#1EE70#, 16#0641#),
+ (16#1EE71#, 16#0635#),
+ (16#1EE72#, 16#0642#),
+ (16#1EE74#, 16#0634#),
+ (16#1EE75#, 16#062A#),
+ (16#1EE76#, 16#062B#),
+ (16#1EE77#, 16#062E#),
+ (16#1EE79#, 16#0636#),
+ (16#1EE7A#, 16#0638#),
+ (16#1EE7B#, 16#063A#),
+ (16#1EE7C#, 16#066E#),
+ (16#1EE7E#, 16#06A1#),
+ (16#1EE80#, 16#0627#),
+ (16#1EE81#, 16#0628#),
+ (16#1EE82#, 16#062C#),
+ (16#1EE83#, 16#062F#),
+ (16#1EE84#, 16#0647#),
+ (16#1EE85#, 16#0648#),
+ (16#1EE86#, 16#0632#),
+ (16#1EE87#, 16#062D#),
+ (16#1EE88#, 16#0637#),
+ (16#1EE89#, 16#064A#),
+ (16#1EE8B#, 16#0644#),
+ (16#1EE8C#, 16#0645#),
+ (16#1EE8D#, 16#0646#),
+ (16#1EE8E#, 16#0633#),
+ (16#1EE8F#, 16#0639#),
+ (16#1EE90#, 16#0641#),
+ (16#1EE91#, 16#0635#),
+ (16#1EE92#, 16#0642#),
+ (16#1EE93#, 16#0631#),
+ (16#1EE94#, 16#0634#),
+ (16#1EE95#, 16#062A#),
+ (16#1EE96#, 16#062B#),
+ (16#1EE97#, 16#062E#),
+ (16#1EE98#, 16#0630#),
+ (16#1EE99#, 16#0636#),
+ (16#1EE9A#, 16#0638#),
+ (16#1EE9B#, 16#063A#),
+ (16#1EEA1#, 16#0628#),
+ (16#1EEA2#, 16#062C#),
+ (16#1EEA3#, 16#062F#),
+ (16#1EEA5#, 16#0648#),
+ (16#1EEA6#, 16#0632#),
+ (16#1EEA7#, 16#062D#),
+ (16#1EEA8#, 16#0637#),
+ (16#1EEA9#, 16#064A#),
+ (16#1EEAB#, 16#0644#),
+ (16#1EEAC#, 16#0645#),
+ (16#1EEAD#, 16#0646#),
+ (16#1EEAE#, 16#0633#),
+ (16#1EEAF#, 16#0639#),
+ (16#1EEB0#, 16#0641#),
+ (16#1EEB1#, 16#0635#),
+ (16#1EEB2#, 16#0642#),
+ (16#1EEB3#, 16#0631#),
+ (16#1EEB4#, 16#0634#),
+ (16#1EEB5#, 16#062A#),
+ (16#1EEB6#, 16#062B#),
+ (16#1EEB7#, 16#062E#),
+ (16#1EEB8#, 16#0630#),
+ (16#1EEB9#, 16#0636#),
+ (16#1EEBA#, 16#0638#),
+ (16#1EEBB#, 16#063A#),
+ (16#1F100#, 16#0030#),
+ (16#1F101#, 16#0030#),
+ (16#1F102#, 16#0031#),
+ (16#1F103#, 16#0032#),
+ (16#1F104#, 16#0033#),
+ (16#1F105#, 16#0034#),
+ (16#1F106#, 16#0035#),
+ (16#1F107#, 16#0036#),
+ (16#1F108#, 16#0037#),
+ (16#1F109#, 16#0038#),
+ (16#1F10A#, 16#0039#),
+ (16#1F110#, 16#0028#),
+ (16#1F111#, 16#0028#),
+ (16#1F112#, 16#0028#),
+ (16#1F113#, 16#0028#),
+ (16#1F114#, 16#0028#),
+ (16#1F115#, 16#0028#),
+ (16#1F116#, 16#0028#),
+ (16#1F117#, 16#0028#),
+ (16#1F118#, 16#0028#),
+ (16#1F119#, 16#0028#),
+ (16#1F11A#, 16#0028#),
+ (16#1F11B#, 16#0028#),
+ (16#1F11C#, 16#0028#),
+ (16#1F11D#, 16#0028#),
+ (16#1F11E#, 16#0028#),
+ (16#1F11F#, 16#0028#),
+ (16#1F120#, 16#0028#),
+ (16#1F121#, 16#0028#),
+ (16#1F122#, 16#0028#),
+ (16#1F123#, 16#0028#),
+ (16#1F124#, 16#0028#),
+ (16#1F125#, 16#0028#),
+ (16#1F126#, 16#0028#),
+ (16#1F127#, 16#0028#),
+ (16#1F128#, 16#0028#),
+ (16#1F129#, 16#0028#),
+ (16#1F12A#, 16#3014#),
+ (16#1F12B#, 16#0043#),
+ (16#1F12C#, 16#0052#),
+ (16#1F12D#, 16#0043#),
+ (16#1F12E#, 16#0057#),
+ (16#1F130#, 16#0041#),
+ (16#1F131#, 16#0042#),
+ (16#1F132#, 16#0043#),
+ (16#1F133#, 16#0044#),
+ (16#1F134#, 16#0045#),
+ (16#1F135#, 16#0046#),
+ (16#1F136#, 16#0047#),
+ (16#1F137#, 16#0048#),
+ (16#1F138#, 16#0049#),
+ (16#1F139#, 16#004A#),
+ (16#1F13A#, 16#004B#),
+ (16#1F13B#, 16#004C#),
+ (16#1F13C#, 16#004D#),
+ (16#1F13D#, 16#004E#),
+ (16#1F13E#, 16#004F#),
+ (16#1F13F#, 16#0050#),
+ (16#1F140#, 16#0051#),
+ (16#1F141#, 16#0052#),
+ (16#1F142#, 16#0053#),
+ (16#1F143#, 16#0054#),
+ (16#1F144#, 16#0055#),
+ (16#1F145#, 16#0056#),
+ (16#1F146#, 16#0057#),
+ (16#1F147#, 16#0058#),
+ (16#1F148#, 16#0059#),
+ (16#1F149#, 16#005A#),
+ (16#1F14A#, 16#0048#),
+ (16#1F14B#, 16#004D#),
+ (16#1F14C#, 16#0053#),
+ (16#1F14D#, 16#0053#),
+ (16#1F14E#, 16#0050#),
+ (16#1F14F#, 16#0057#),
+ (16#1F16A#, 16#004D#),
+ (16#1F16B#, 16#004D#),
+ (16#1F16C#, 16#004D#),
+ (16#1F190#, 16#0044#),
+ (16#1F200#, 16#307B#),
+ (16#1F201#, 16#30B3#),
+ (16#1F202#, 16#30B5#),
+ (16#1F210#, 16#624B#),
+ (16#1F211#, 16#5B57#),
+ (16#1F212#, 16#53CC#),
+ (16#1F213#, 16#30C7#),
+ (16#1F214#, 16#4E8C#),
+ (16#1F215#, 16#591A#),
+ (16#1F216#, 16#89E3#),
+ (16#1F217#, 16#5929#),
+ (16#1F218#, 16#4EA4#),
+ (16#1F219#, 16#6620#),
+ (16#1F21A#, 16#7121#),
+ (16#1F21B#, 16#6599#),
+ (16#1F21C#, 16#524D#),
+ (16#1F21D#, 16#5F8C#),
+ (16#1F21E#, 16#518D#),
+ (16#1F21F#, 16#65B0#),
+ (16#1F220#, 16#521D#),
+ (16#1F221#, 16#7D42#),
+ (16#1F222#, 16#751F#),
+ (16#1F223#, 16#8CA9#),
+ (16#1F224#, 16#58F0#),
+ (16#1F225#, 16#5439#),
+ (16#1F226#, 16#6F14#),
+ (16#1F227#, 16#6295#),
+ (16#1F228#, 16#6355#),
+ (16#1F229#, 16#4E00#),
+ (16#1F22A#, 16#4E09#),
+ (16#1F22B#, 16#904A#),
+ (16#1F22C#, 16#5DE6#),
+ (16#1F22D#, 16#4E2D#),
+ (16#1F22E#, 16#53F3#),
+ (16#1F22F#, 16#6307#),
+ (16#1F230#, 16#8D70#),
+ (16#1F231#, 16#6253#),
+ (16#1F232#, 16#7981#),
+ (16#1F233#, 16#7A7A#),
+ (16#1F234#, 16#5408#),
+ (16#1F235#, 16#6E80#),
+ (16#1F236#, 16#6709#),
+ (16#1F237#, 16#6708#),
+ (16#1F238#, 16#7533#),
+ (16#1F239#, 16#5272#),
+ (16#1F23A#, 16#55B6#),
+ (16#1F23B#, 16#914D#),
+ (16#1F240#, 16#3014#),
+ (16#1F241#, 16#3014#),
+ (16#1F242#, 16#3014#),
+ (16#1F243#, 16#3014#),
+ (16#1F244#, 16#3014#),
+ (16#1F245#, 16#3014#),
+ (16#1F246#, 16#3014#),
+ (16#1F247#, 16#3014#),
+ (16#1F248#, 16#3014#),
+ (16#1F250#, 16#5F97#),
+ (16#1F251#, 16#53EF#),
+ (16#1FBF0#, 16#0030#),
+ (16#1FBF1#, 16#0031#),
+ (16#1FBF2#, 16#0032#),
+ (16#1FBF3#, 16#0033#),
+ (16#1FBF4#, 16#0034#),
+ (16#1FBF5#, 16#0035#),
+ (16#1FBF6#, 16#0036#),
+ (16#1FBF7#, 16#0037#),
+ (16#1FBF8#, 16#0038#),
+ (16#1FBF9#, 16#0039#),
+ (16#2F800#, 16#4E3D#),
+ (16#2F801#, 16#4E38#),
+ (16#2F802#, 16#4E41#),
+ (16#2F803#, 16#20122#),
+ (16#2F804#, 16#4F60#),
+ (16#2F805#, 16#4FAE#),
+ (16#2F806#, 16#4FBB#),
+ (16#2F807#, 16#5002#),
+ (16#2F808#, 16#507A#),
+ (16#2F809#, 16#5099#),
+ (16#2F80A#, 16#50E7#),
+ (16#2F80B#, 16#50CF#),
+ (16#2F80C#, 16#349E#),
+ (16#2F80D#, 16#2063A#),
+ (16#2F80E#, 16#514D#),
+ (16#2F80F#, 16#5154#),
+ (16#2F810#, 16#5164#),
+ (16#2F811#, 16#5177#),
+ (16#2F812#, 16#2051C#),
+ (16#2F813#, 16#34B9#),
+ (16#2F814#, 16#5167#),
+ (16#2F815#, 16#518D#),
+ (16#2F816#, 16#2054B#),
+ (16#2F817#, 16#5197#),
+ (16#2F818#, 16#51A4#),
+ (16#2F819#, 16#4ECC#),
+ (16#2F81A#, 16#51AC#),
+ (16#2F81B#, 16#51B5#),
+ (16#2F81C#, 16#291DF#),
+ (16#2F81D#, 16#51F5#),
+ (16#2F81E#, 16#5203#),
+ (16#2F81F#, 16#34DF#),
+ (16#2F820#, 16#523B#),
+ (16#2F821#, 16#5246#),
+ (16#2F822#, 16#5272#),
+ (16#2F823#, 16#5277#),
+ (16#2F824#, 16#3515#),
+ (16#2F825#, 16#52C7#),
+ (16#2F826#, 16#52C9#),
+ (16#2F827#, 16#52E4#),
+ (16#2F828#, 16#52FA#),
+ (16#2F829#, 16#5305#),
+ (16#2F82A#, 16#5306#),
+ (16#2F82B#, 16#5317#),
+ (16#2F82C#, 16#5349#),
+ (16#2F82D#, 16#5351#),
+ (16#2F82E#, 16#535A#),
+ (16#2F82F#, 16#5373#),
+ (16#2F830#, 16#537D#),
+ (16#2F831#, 16#537F#),
+ (16#2F832#, 16#537F#),
+ (16#2F833#, 16#537F#),
+ (16#2F834#, 16#20A2C#),
+ (16#2F835#, 16#7070#),
+ (16#2F836#, 16#53CA#),
+ (16#2F837#, 16#53DF#),
+ (16#2F838#, 16#20B63#),
+ (16#2F839#, 16#53EB#),
+ (16#2F83A#, 16#53F1#),
+ (16#2F83B#, 16#5406#),
+ (16#2F83C#, 16#549E#),
+ (16#2F83D#, 16#5438#),
+ (16#2F83E#, 16#5448#),
+ (16#2F83F#, 16#5468#),
+ (16#2F840#, 16#54A2#),
+ (16#2F841#, 16#54F6#),
+ (16#2F842#, 16#5510#),
+ (16#2F843#, 16#5553#),
+ (16#2F844#, 16#5563#),
+ (16#2F845#, 16#5584#),
+ (16#2F846#, 16#5584#),
+ (16#2F847#, 16#5599#),
+ (16#2F848#, 16#55AB#),
+ (16#2F849#, 16#55B3#),
+ (16#2F84A#, 16#55C2#),
+ (16#2F84B#, 16#5716#),
+ (16#2F84C#, 16#5606#),
+ (16#2F84D#, 16#5717#),
+ (16#2F84E#, 16#5651#),
+ (16#2F84F#, 16#5674#),
+ (16#2F850#, 16#5207#),
+ (16#2F851#, 16#58EE#),
+ (16#2F852#, 16#57CE#),
+ (16#2F853#, 16#57F4#),
+ (16#2F854#, 16#580D#),
+ (16#2F855#, 16#578B#),
+ (16#2F856#, 16#5832#),
+ (16#2F857#, 16#5831#),
+ (16#2F858#, 16#58AC#),
+ (16#2F859#, 16#214E4#),
+ (16#2F85A#, 16#58F2#),
+ (16#2F85B#, 16#58F7#),
+ (16#2F85C#, 16#5906#),
+ (16#2F85D#, 16#591A#),
+ (16#2F85E#, 16#5922#),
+ (16#2F85F#, 16#5962#),
+ (16#2F860#, 16#216A8#),
+ (16#2F861#, 16#216EA#),
+ (16#2F862#, 16#59EC#),
+ (16#2F863#, 16#5A1B#),
+ (16#2F864#, 16#5A27#),
+ (16#2F865#, 16#59D8#),
+ (16#2F866#, 16#5A66#),
+ (16#2F867#, 16#36EE#),
+ (16#2F868#, 16#36FC#),
+ (16#2F869#, 16#5B08#),
+ (16#2F86A#, 16#5B3E#),
+ (16#2F86B#, 16#5B3E#),
+ (16#2F86C#, 16#219C8#),
+ (16#2F86D#, 16#5BC3#),
+ (16#2F86E#, 16#5BD8#),
+ (16#2F86F#, 16#5BE7#),
+ (16#2F870#, 16#5BF3#),
+ (16#2F871#, 16#21B18#),
+ (16#2F872#, 16#5BFF#),
+ (16#2F873#, 16#5C06#),
+ (16#2F874#, 16#5F53#),
+ (16#2F875#, 16#5C22#),
+ (16#2F876#, 16#3781#),
+ (16#2F877#, 16#5C60#),
+ (16#2F878#, 16#5C6E#),
+ (16#2F879#, 16#5CC0#),
+ (16#2F87A#, 16#5C8D#),
+ (16#2F87B#, 16#21DE4#),
+ (16#2F87C#, 16#5D43#),
+ (16#2F87D#, 16#21DE6#),
+ (16#2F87E#, 16#5D6E#),
+ (16#2F87F#, 16#5D6B#),
+ (16#2F880#, 16#5D7C#),
+ (16#2F881#, 16#5DE1#),
+ (16#2F882#, 16#5DE2#),
+ (16#2F883#, 16#382F#),
+ (16#2F884#, 16#5DFD#),
+ (16#2F885#, 16#5E28#),
+ (16#2F886#, 16#5E3D#),
+ (16#2F887#, 16#5E69#),
+ (16#2F888#, 16#3862#),
+ (16#2F889#, 16#22183#),
+ (16#2F88A#, 16#387C#),
+ (16#2F88B#, 16#5EB0#),
+ (16#2F88C#, 16#5EB3#),
+ (16#2F88D#, 16#5EB6#),
+ (16#2F88E#, 16#5ECA#),
+ (16#2F88F#, 16#2A392#),
+ (16#2F890#, 16#5EFE#),
+ (16#2F891#, 16#22331#),
+ (16#2F892#, 16#22331#),
+ (16#2F893#, 16#8201#),
+ (16#2F894#, 16#5F22#),
+ (16#2F895#, 16#5F22#),
+ (16#2F896#, 16#38C7#),
+ (16#2F897#, 16#232B8#),
+ (16#2F898#, 16#261DA#),
+ (16#2F899#, 16#5F62#),
+ (16#2F89A#, 16#5F6B#),
+ (16#2F89B#, 16#38E3#),
+ (16#2F89C#, 16#5F9A#),
+ (16#2F89D#, 16#5FCD#),
+ (16#2F89E#, 16#5FD7#),
+ (16#2F89F#, 16#5FF9#),
+ (16#2F8A0#, 16#6081#),
+ (16#2F8A1#, 16#393A#),
+ (16#2F8A2#, 16#391C#),
+ (16#2F8A3#, 16#6094#),
+ (16#2F8A4#, 16#226D4#),
+ (16#2F8A5#, 16#60C7#),
+ (16#2F8A6#, 16#6148#),
+ (16#2F8A7#, 16#614C#),
+ (16#2F8A8#, 16#614E#),
+ (16#2F8A9#, 16#614C#),
+ (16#2F8AA#, 16#617A#),
+ (16#2F8AB#, 16#618E#),
+ (16#2F8AC#, 16#61B2#),
+ (16#2F8AD#, 16#61A4#),
+ (16#2F8AE#, 16#61AF#),
+ (16#2F8AF#, 16#61DE#),
+ (16#2F8B0#, 16#61F2#),
+ (16#2F8B1#, 16#61F6#),
+ (16#2F8B2#, 16#6210#),
+ (16#2F8B3#, 16#621B#),
+ (16#2F8B4#, 16#625D#),
+ (16#2F8B5#, 16#62B1#),
+ (16#2F8B6#, 16#62D4#),
+ (16#2F8B7#, 16#6350#),
+ (16#2F8B8#, 16#22B0C#),
+ (16#2F8B9#, 16#633D#),
+ (16#2F8BA#, 16#62FC#),
+ (16#2F8BB#, 16#6368#),
+ (16#2F8BC#, 16#6383#),
+ (16#2F8BD#, 16#63E4#),
+ (16#2F8BE#, 16#22BF1#),
+ (16#2F8BF#, 16#6422#),
+ (16#2F8C0#, 16#63C5#),
+ (16#2F8C1#, 16#63A9#),
+ (16#2F8C2#, 16#3A2E#),
+ (16#2F8C3#, 16#6469#),
+ (16#2F8C4#, 16#647E#),
+ (16#2F8C5#, 16#649D#),
+ (16#2F8C6#, 16#6477#),
+ (16#2F8C7#, 16#3A6C#),
+ (16#2F8C8#, 16#654F#),
+ (16#2F8C9#, 16#656C#),
+ (16#2F8CA#, 16#2300A#),
+ (16#2F8CB#, 16#65E3#),
+ (16#2F8CC#, 16#66F8#),
+ (16#2F8CD#, 16#6649#),
+ (16#2F8CE#, 16#3B19#),
+ (16#2F8CF#, 16#6691#),
+ (16#2F8D0#, 16#3B08#),
+ (16#2F8D1#, 16#3AE4#),
+ (16#2F8D2#, 16#5192#),
+ (16#2F8D3#, 16#5195#),
+ (16#2F8D4#, 16#6700#),
+ (16#2F8D5#, 16#669C#),
+ (16#2F8D6#, 16#80AD#),
+ (16#2F8D7#, 16#43D9#),
+ (16#2F8D8#, 16#6717#),
+ (16#2F8D9#, 16#671B#),
+ (16#2F8DA#, 16#6721#),
+ (16#2F8DB#, 16#675E#),
+ (16#2F8DC#, 16#6753#),
+ (16#2F8DD#, 16#233C3#),
+ (16#2F8DE#, 16#3B49#),
+ (16#2F8DF#, 16#67FA#),
+ (16#2F8E0#, 16#6785#),
+ (16#2F8E1#, 16#6852#),
+ (16#2F8E2#, 16#6885#),
+ (16#2F8E3#, 16#2346D#),
+ (16#2F8E4#, 16#688E#),
+ (16#2F8E5#, 16#681F#),
+ (16#2F8E6#, 16#6914#),
+ (16#2F8E7#, 16#3B9D#),
+ (16#2F8E8#, 16#6942#),
+ (16#2F8E9#, 16#69A3#),
+ (16#2F8EA#, 16#69EA#),
+ (16#2F8EB#, 16#6AA8#),
+ (16#2F8EC#, 16#236A3#),
+ (16#2F8ED#, 16#6ADB#),
+ (16#2F8EE#, 16#3C18#),
+ (16#2F8EF#, 16#6B21#),
+ (16#2F8F0#, 16#238A7#),
+ (16#2F8F1#, 16#6B54#),
+ (16#2F8F2#, 16#3C4E#),
+ (16#2F8F3#, 16#6B72#),
+ (16#2F8F4#, 16#6B9F#),
+ (16#2F8F5#, 16#6BBA#),
+ (16#2F8F6#, 16#6BBB#),
+ (16#2F8F7#, 16#23A8D#),
+ (16#2F8F8#, 16#21D0B#),
+ (16#2F8F9#, 16#23AFA#),
+ (16#2F8FA#, 16#6C4E#),
+ (16#2F8FB#, 16#23CBC#),
+ (16#2F8FC#, 16#6CBF#),
+ (16#2F8FD#, 16#6CCD#),
+ (16#2F8FE#, 16#6C67#),
+ (16#2F8FF#, 16#6D16#),
+ (16#2F900#, 16#6D3E#),
+ (16#2F901#, 16#6D77#),
+ (16#2F902#, 16#6D41#),
+ (16#2F903#, 16#6D69#),
+ (16#2F904#, 16#6D78#),
+ (16#2F905#, 16#6D85#),
+ (16#2F906#, 16#23D1E#),
+ (16#2F907#, 16#6D34#),
+ (16#2F908#, 16#6E2F#),
+ (16#2F909#, 16#6E6E#),
+ (16#2F90A#, 16#3D33#),
+ (16#2F90B#, 16#6ECB#),
+ (16#2F90C#, 16#6EC7#),
+ (16#2F90D#, 16#23ED1#),
+ (16#2F90E#, 16#6DF9#),
+ (16#2F90F#, 16#6F6E#),
+ (16#2F910#, 16#23F5E#),
+ (16#2F911#, 16#23F8E#),
+ (16#2F912#, 16#6FC6#),
+ (16#2F913#, 16#7039#),
+ (16#2F914#, 16#701E#),
+ (16#2F915#, 16#701B#),
+ (16#2F916#, 16#3D96#),
+ (16#2F917#, 16#704A#),
+ (16#2F918#, 16#707D#),
+ (16#2F919#, 16#7077#),
+ (16#2F91A#, 16#70AD#),
+ (16#2F91B#, 16#20525#),
+ (16#2F91C#, 16#7145#),
+ (16#2F91D#, 16#24263#),
+ (16#2F91E#, 16#719C#),
+ (16#2F91F#, 16#243AB#),
+ (16#2F920#, 16#7228#),
+ (16#2F921#, 16#7235#),
+ (16#2F922#, 16#7250#),
+ (16#2F923#, 16#24608#),
+ (16#2F924#, 16#7280#),
+ (16#2F925#, 16#7295#),
+ (16#2F926#, 16#24735#),
+ (16#2F927#, 16#24814#),
+ (16#2F928#, 16#737A#),
+ (16#2F929#, 16#738B#),
+ (16#2F92A#, 16#3EAC#),
+ (16#2F92B#, 16#73A5#),
+ (16#2F92C#, 16#3EB8#),
+ (16#2F92D#, 16#3EB8#),
+ (16#2F92E#, 16#7447#),
+ (16#2F92F#, 16#745C#),
+ (16#2F930#, 16#7471#),
+ (16#2F931#, 16#7485#),
+ (16#2F932#, 16#74CA#),
+ (16#2F933#, 16#3F1B#),
+ (16#2F934#, 16#7524#),
+ (16#2F935#, 16#24C36#),
+ (16#2F936#, 16#753E#),
+ (16#2F937#, 16#24C92#),
+ (16#2F938#, 16#7570#),
+ (16#2F939#, 16#2219F#),
+ (16#2F93A#, 16#7610#),
+ (16#2F93B#, 16#24FA1#),
+ (16#2F93C#, 16#24FB8#),
+ (16#2F93D#, 16#25044#),
+ (16#2F93E#, 16#3FFC#),
+ (16#2F93F#, 16#4008#),
+ (16#2F940#, 16#76F4#),
+ (16#2F941#, 16#250F3#),
+ (16#2F942#, 16#250F2#),
+ (16#2F943#, 16#25119#),
+ (16#2F944#, 16#25133#),
+ (16#2F945#, 16#771E#),
+ (16#2F946#, 16#771F#),
+ (16#2F947#, 16#771F#),
+ (16#2F948#, 16#774A#),
+ (16#2F949#, 16#4039#),
+ (16#2F94A#, 16#778B#),
+ (16#2F94B#, 16#4046#),
+ (16#2F94C#, 16#4096#),
+ (16#2F94D#, 16#2541D#),
+ (16#2F94E#, 16#784E#),
+ (16#2F94F#, 16#788C#),
+ (16#2F950#, 16#78CC#),
+ (16#2F951#, 16#40E3#),
+ (16#2F952#, 16#25626#),
+ (16#2F953#, 16#7956#),
+ (16#2F954#, 16#2569A#),
+ (16#2F955#, 16#256C5#),
+ (16#2F956#, 16#798F#),
+ (16#2F957#, 16#79EB#),
+ (16#2F958#, 16#412F#),
+ (16#2F959#, 16#7A40#),
+ (16#2F95A#, 16#7A4A#),
+ (16#2F95B#, 16#7A4F#),
+ (16#2F95C#, 16#2597C#),
+ (16#2F95D#, 16#25AA7#),
+ (16#2F95E#, 16#25AA7#),
+ (16#2F95F#, 16#7AEE#),
+ (16#2F960#, 16#4202#),
+ (16#2F961#, 16#25BAB#),
+ (16#2F962#, 16#7BC6#),
+ (16#2F963#, 16#7BC9#),
+ (16#2F964#, 16#4227#),
+ (16#2F965#, 16#25C80#),
+ (16#2F966#, 16#7CD2#),
+ (16#2F967#, 16#42A0#),
+ (16#2F968#, 16#7CE8#),
+ (16#2F969#, 16#7CE3#),
+ (16#2F96A#, 16#7D00#),
+ (16#2F96B#, 16#25F86#),
+ (16#2F96C#, 16#7D63#),
+ (16#2F96D#, 16#4301#),
+ (16#2F96E#, 16#7DC7#),
+ (16#2F96F#, 16#7E02#),
+ (16#2F970#, 16#7E45#),
+ (16#2F971#, 16#4334#),
+ (16#2F972#, 16#26228#),
+ (16#2F973#, 16#26247#),
+ (16#2F974#, 16#4359#),
+ (16#2F975#, 16#262D9#),
+ (16#2F976#, 16#7F7A#),
+ (16#2F977#, 16#2633E#),
+ (16#2F978#, 16#7F95#),
+ (16#2F979#, 16#7FFA#),
+ (16#2F97A#, 16#8005#),
+ (16#2F97B#, 16#264DA#),
+ (16#2F97C#, 16#26523#),
+ (16#2F97D#, 16#8060#),
+ (16#2F97E#, 16#265A8#),
+ (16#2F97F#, 16#8070#),
+ (16#2F980#, 16#2335F#),
+ (16#2F981#, 16#43D5#),
+ (16#2F982#, 16#80B2#),
+ (16#2F983#, 16#8103#),
+ (16#2F984#, 16#440B#),
+ (16#2F985#, 16#813E#),
+ (16#2F986#, 16#5AB5#),
+ (16#2F987#, 16#267A7#),
+ (16#2F988#, 16#267B5#),
+ (16#2F989#, 16#23393#),
+ (16#2F98A#, 16#2339C#),
+ (16#2F98B#, 16#8201#),
+ (16#2F98C#, 16#8204#),
+ (16#2F98D#, 16#8F9E#),
+ (16#2F98E#, 16#446B#),
+ (16#2F98F#, 16#8291#),
+ (16#2F990#, 16#828B#),
+ (16#2F991#, 16#829D#),
+ (16#2F992#, 16#52B3#),
+ (16#2F993#, 16#82B1#),
+ (16#2F994#, 16#82B3#),
+ (16#2F995#, 16#82BD#),
+ (16#2F996#, 16#82E6#),
+ (16#2F997#, 16#26B3C#),
+ (16#2F998#, 16#82E5#),
+ (16#2F999#, 16#831D#),
+ (16#2F99A#, 16#8363#),
+ (16#2F99B#, 16#83AD#),
+ (16#2F99C#, 16#8323#),
+ (16#2F99D#, 16#83BD#),
+ (16#2F99E#, 16#83E7#),
+ (16#2F99F#, 16#8457#),
+ (16#2F9A0#, 16#8353#),
+ (16#2F9A1#, 16#83CA#),
+ (16#2F9A2#, 16#83CC#),
+ (16#2F9A3#, 16#83DC#),
+ (16#2F9A4#, 16#26C36#),
+ (16#2F9A5#, 16#26D6B#),
+ (16#2F9A6#, 16#26CD5#),
+ (16#2F9A7#, 16#452B#),
+ (16#2F9A8#, 16#84F1#),
+ (16#2F9A9#, 16#84F3#),
+ (16#2F9AA#, 16#8516#),
+ (16#2F9AB#, 16#273CA#),
+ (16#2F9AC#, 16#8564#),
+ (16#2F9AD#, 16#26F2C#),
+ (16#2F9AE#, 16#455D#),
+ (16#2F9AF#, 16#4561#),
+ (16#2F9B0#, 16#26FB1#),
+ (16#2F9B1#, 16#270D2#),
+ (16#2F9B2#, 16#456B#),
+ (16#2F9B3#, 16#8650#),
+ (16#2F9B4#, 16#865C#),
+ (16#2F9B5#, 16#8667#),
+ (16#2F9B6#, 16#8669#),
+ (16#2F9B7#, 16#86A9#),
+ (16#2F9B8#, 16#8688#),
+ (16#2F9B9#, 16#870E#),
+ (16#2F9BA#, 16#86E2#),
+ (16#2F9BB#, 16#8779#),
+ (16#2F9BC#, 16#8728#),
+ (16#2F9BD#, 16#876B#),
+ (16#2F9BE#, 16#8786#),
+ (16#2F9BF#, 16#45D7#),
+ (16#2F9C0#, 16#87E1#),
+ (16#2F9C1#, 16#8801#),
+ (16#2F9C2#, 16#45F9#),
+ (16#2F9C3#, 16#8860#),
+ (16#2F9C4#, 16#8863#),
+ (16#2F9C5#, 16#27667#),
+ (16#2F9C6#, 16#88D7#),
+ (16#2F9C7#, 16#88DE#),
+ (16#2F9C8#, 16#4635#),
+ (16#2F9C9#, 16#88FA#),
+ (16#2F9CA#, 16#34BB#),
+ (16#2F9CB#, 16#278AE#),
+ (16#2F9CC#, 16#27966#),
+ (16#2F9CD#, 16#46BE#),
+ (16#2F9CE#, 16#46C7#),
+ (16#2F9CF#, 16#8AA0#),
+ (16#2F9D0#, 16#8AED#),
+ (16#2F9D1#, 16#8B8A#),
+ (16#2F9D2#, 16#8C55#),
+ (16#2F9D3#, 16#27CA8#),
+ (16#2F9D4#, 16#8CAB#),
+ (16#2F9D5#, 16#8CC1#),
+ (16#2F9D6#, 16#8D1B#),
+ (16#2F9D7#, 16#8D77#),
+ (16#2F9D8#, 16#27F2F#),
+ (16#2F9D9#, 16#20804#),
+ (16#2F9DA#, 16#8DCB#),
+ (16#2F9DB#, 16#8DBC#),
+ (16#2F9DC#, 16#8DF0#),
+ (16#2F9DD#, 16#208DE#),
+ (16#2F9DE#, 16#8ED4#),
+ (16#2F9DF#, 16#8F38#),
+ (16#2F9E0#, 16#285D2#),
+ (16#2F9E1#, 16#285ED#),
+ (16#2F9E2#, 16#9094#),
+ (16#2F9E3#, 16#90F1#),
+ (16#2F9E4#, 16#9111#),
+ (16#2F9E5#, 16#2872E#),
+ (16#2F9E6#, 16#911B#),
+ (16#2F9E7#, 16#9238#),
+ (16#2F9E8#, 16#92D7#),
+ (16#2F9E9#, 16#92D8#),
+ (16#2F9EA#, 16#927C#),
+ (16#2F9EB#, 16#93F9#),
+ (16#2F9EC#, 16#9415#),
+ (16#2F9ED#, 16#28BFA#),
+ (16#2F9EE#, 16#958B#),
+ (16#2F9EF#, 16#4995#),
+ (16#2F9F0#, 16#95B7#),
+ (16#2F9F1#, 16#28D77#),
+ (16#2F9F2#, 16#49E6#),
+ (16#2F9F3#, 16#96C3#),
+ (16#2F9F4#, 16#5DB2#),
+ (16#2F9F5#, 16#9723#),
+ (16#2F9F6#, 16#29145#),
+ (16#2F9F7#, 16#2921A#),
+ (16#2F9F8#, 16#4A6E#),
+ (16#2F9F9#, 16#4A76#),
+ (16#2F9FA#, 16#97E0#),
+ (16#2F9FB#, 16#2940A#),
+ (16#2F9FC#, 16#4AB2#),
+ (16#2F9FD#, 16#29496#),
+ (16#2F9FE#, 16#980B#),
+ (16#2F9FF#, 16#980B#),
+ (16#2FA00#, 16#9829#),
+ (16#2FA01#, 16#295B6#),
+ (16#2FA02#, 16#98E2#),
+ (16#2FA03#, 16#4B33#),
+ (16#2FA04#, 16#9929#),
+ (16#2FA05#, 16#99A7#),
+ (16#2FA06#, 16#99C2#),
+ (16#2FA07#, 16#99FE#),
+ (16#2FA08#, 16#4BCE#),
+ (16#2FA09#, 16#29B30#),
+ (16#2FA0A#, 16#9B12#),
+ (16#2FA0B#, 16#9C40#),
+ (16#2FA0C#, 16#9CFD#),
+ (16#2FA0D#, 16#4CCE#),
+ (16#2FA0E#, 16#4CED#),
+ (16#2FA0F#, 16#9D67#),
+ (16#2FA10#, 16#2A0CE#),
+ (16#2FA11#, 16#4CF8#),
+ (16#2FA12#, 16#2A105#),
+ (16#2FA13#, 16#2A20E#),
+ (16#2FA14#, 16#2A291#),
+ (16#2FA15#, 16#9EBB#),
+ (16#2FA16#, 16#4D56#),
+ (16#2FA17#, 16#9EF9#),
+ (16#2FA18#, 16#9EFE#),
+ (16#2FA19#, 16#9F05#),
+ (16#2FA1A#, 16#9F0F#),
+ (16#2FA1B#, 16#9F16#),
+ (16#2FA1C#, 16#9F3B#),
+ (16#2FA1D#, 16#2A600#));
+
-----------------------
-- Local Subprograms --
-----------------------
+ function Decomposition_Search
+ (U : UTF_32; R : Unicode_Decomposition_Array) return Natural;
+ -- Searches the given decomposition array and returns the index of the
+ -- matching character U if found, zero otherwise.
+
function Range_Search (U : UTF_32; R : UTF_32_Ranges) return Natural;
-- Searches the given ranges (which must be in ascending order by Lo value)
-- and returns the index of the matching range in R if U matches one of the
@@ -6247,6 +12395,15 @@ package body System.UTF_32 is
return Non_Graphic (C);
end Is_UTF_32_Non_Graphic;
+ --------------------
+ -- Is_UTF_32_NFKC --
+ --------------------
+
+ function Is_UTF_32_NFKC (U : UTF_32) return Boolean is
+ begin
+ return U < 160 or else Range_Search (U, UTF_32_NFKC_QC_No) = 0;
+ end Is_UTF_32_NFKC;
+
---------------------
-- Is_UTF_32_Other --
---------------------
@@ -6289,6 +12446,53 @@ package body System.UTF_32 is
return C = Zs;
end Is_UTF_32_Space;
+ ---------------------
+ -- Is_UTF_32_Basic --
+ ---------------------
+
+ function Is_UTF_32_Basic (U : UTF_32) return Boolean is
+ begin
+ return Decomposition_Search (U, Unicode_Decomposition) = 0;
+ end Is_UTF_32_Basic;
+
+ --------------------------
+ -- Decomposition_Search --
+ --------------------------
+
+ function Decomposition_Search
+ (U : UTF_32; R : Unicode_Decomposition_Array) return Natural
+ is
+ Lo : Integer;
+ Hi : Integer;
+ Mid : Integer;
+
+ begin
+ Lo := R'First;
+ Hi := R'Last;
+
+ loop
+ Mid := (Lo + Hi) / 2;
+
+ if U < R (Mid).Item then
+ Hi := Mid - 1;
+
+ if Hi < Lo then
+ return 0;
+ end if;
+
+ elsif R (Mid).Item < U then
+ Lo := Mid + 1;
+
+ if Hi < Lo then
+ return 0;
+ end if;
+
+ else
+ return Mid;
+ end if;
+ end loop;
+ end Decomposition_Search;
+
------------------
-- Range_Search --
------------------
@@ -6325,6 +12529,21 @@ package body System.UTF_32 is
end loop;
end Range_Search;
+ ---------------------
+ -- UTF_32_To_Basic --
+ ---------------------
+
+ function UTF_32_To_Basic (U : UTF_32) return UTF_32 is
+ Index : constant Integer :=
+ Decomposition_Search (U, Unicode_Decomposition);
+ begin
+ if Index = 0 then
+ return U;
+ else
+ return Unicode_Decomposition (Index).First_Char_Mapping;
+ end if;
+ end UTF_32_To_Basic;
+
--------------------------
-- UTF_32_To_Lower_Case --
--------------------------
diff --git a/gcc/ada/libgnat/s-utf_32.ads b/gcc/ada/libgnat/s-utf_32.ads
index 8e75e48..e3f0e00 100644
--- a/gcc/ada/libgnat/s-utf_32.ads
+++ b/gcc/ada/libgnat/s-utf_32.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2005-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2005-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -189,6 +189,17 @@ package System.UTF_32 is
-- letters to upper case using this routine. A corresponding routine to
-- fold to lower case is also provided.
+ function Is_UTF_32_NFKC (U : UTF_32) return Boolean;
+ pragma Inline (Is_UTF_32_NFKC);
+ -- Return True if U could be present in a string normalized to
+ -- Normalization Form KC (as defined by Clause 21 of ISO/IEC 10646:2017),
+ -- otherwise returns False.
+
+ function Is_UTF_32_Basic (U : UTF_32) return Boolean;
+ pragma Inline (Is_UTF_32_Basic);
+ -- Return True if U has no Decomposition Mapping in the code charts of
+ -- ISO/IEC 10646:2017.
+
function UTF_32_To_Lower_Case (U : UTF_32) return UTF_32;
pragma Inline (UTF_32_To_Lower_Case);
-- If U represents an upper case letter, returns the corresponding lower
@@ -209,4 +220,10 @@ package System.UTF_32 is
-- code is folded to this CAPITAL LETTER code. Otherwise the input code is
-- returned unchanged.
+ function UTF_32_To_Basic (U : UTF_32) return UTF_32;
+ pragma Inline (UTF_32_To_Basic);
+ -- Returns the UTF_32 character whose code point is given by the first
+ -- value of its Decomposition Mapping in the code charts of ISO/IEC
+ -- 10646:2017 if any; returns Item otherwise.
+
end System.UTF_32;
diff --git a/gcc/ada/libgnat/s-valboo.adb b/gcc/ada/libgnat/s-valboo.adb
index 65dd3a3..e31d2bf 100644
--- a/gcc/ada/libgnat/s-valboo.adb
+++ b/gcc/ada/libgnat/s-valboo.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-valboo.ads b/gcc/ada/libgnat/s-valboo.ads
index f900621..94b81f9 100644
--- a/gcc/ada/libgnat/s-valboo.ads
+++ b/gcc/ada/libgnat/s-valboo.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-valcha.adb b/gcc/ada/libgnat/s-valcha.adb
index 5011b4d..70deb33 100644
--- a/gcc/ada/libgnat/s-valcha.adb
+++ b/gcc/ada/libgnat/s-valcha.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-valcha.ads b/gcc/ada/libgnat/s-valcha.ads
index b9d5373..a33c032 100644
--- a/gcc/ada/libgnat/s-valcha.ads
+++ b/gcc/ada/libgnat/s-valcha.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-valdec.adb b/gcc/ada/libgnat/s-valdec.adb
index 22a3333..99fffaf 100644
--- a/gcc/ada/libgnat/s-valdec.adb
+++ b/gcc/ada/libgnat/s-valdec.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-valdec.ads b/gcc/ada/libgnat/s-valdec.ads
index ec10490..05fab98 100644
--- a/gcc/ada/libgnat/s-valdec.ads
+++ b/gcc/ada/libgnat/s-valdec.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-valenu.adb b/gcc/ada/libgnat/s-valenu.adb
index 4693462..daa9b43 100644
--- a/gcc/ada/libgnat/s-valenu.adb
+++ b/gcc/ada/libgnat/s-valenu.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-valenu.ads b/gcc/ada/libgnat/s-valenu.ads
index e2a3a15..97c197f 100644
--- a/gcc/ada/libgnat/s-valenu.ads
+++ b/gcc/ada/libgnat/s-valenu.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-valint.adb b/gcc/ada/libgnat/s-valint.adb
index 9d7d60d..c40d558 100644
--- a/gcc/ada/libgnat/s-valint.adb
+++ b/gcc/ada/libgnat/s-valint.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-valint.ads b/gcc/ada/libgnat/s-valint.ads
index d9f15ed..79571da 100644
--- a/gcc/ada/libgnat/s-valint.ads
+++ b/gcc/ada/libgnat/s-valint.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-vallld.adb b/gcc/ada/libgnat/s-vallld.adb
index 45bb2c9..4efa969 100644
--- a/gcc/ada/libgnat/s-vallld.adb
+++ b/gcc/ada/libgnat/s-vallld.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-vallld.ads b/gcc/ada/libgnat/s-vallld.ads
index 17db078..652362d 100644
--- a/gcc/ada/libgnat/s-vallld.ads
+++ b/gcc/ada/libgnat/s-vallld.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-vallli.adb b/gcc/ada/libgnat/s-vallli.adb
index 37de032..43bb0a7 100644
--- a/gcc/ada/libgnat/s-vallli.adb
+++ b/gcc/ada/libgnat/s-vallli.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-vallli.ads b/gcc/ada/libgnat/s-vallli.ads
index ee75bdc..0a51bbe 100644
--- a/gcc/ada/libgnat/s-vallli.ads
+++ b/gcc/ada/libgnat/s-vallli.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-valllu.adb b/gcc/ada/libgnat/s-valllu.adb
index a01764f..dca0aac 100644
--- a/gcc/ada/libgnat/s-valllu.adb
+++ b/gcc/ada/libgnat/s-valllu.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-valllu.ads b/gcc/ada/libgnat/s-valllu.ads
index ddb8414..51a31dd 100644
--- a/gcc/ada/libgnat/s-valllu.ads
+++ b/gcc/ada/libgnat/s-valllu.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-valrea.adb b/gcc/ada/libgnat/s-valrea.adb
index 424ccd0..1a47dc2 100644
--- a/gcc/ada/libgnat/s-valrea.adb
+++ b/gcc/ada/libgnat/s-valrea.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -92,8 +92,7 @@ package body System.Val_Real is
-- As_Digit --
--------------
- function As_Digit (C : Character) return Char_As_Digit
- is
+ function As_Digit (C : Character) return Char_As_Digit is
begin
case C is
when '0' .. '9' =>
@@ -133,7 +132,9 @@ package body System.Val_Real is
Trailing_Zeros : Natural := 0;
-- Number of trailing zeros at a given point.
+
begin
+ pragma Assert (Base in 2 .. 16);
-- If initial Scale is not 0 then it means that Precision_Limit was
-- reached during integral part scanning.
@@ -217,7 +218,6 @@ package body System.Val_Real is
end if;
end if;
end loop;
-
end Scan_Decimal_Digits;
--------------------------
@@ -268,6 +268,8 @@ package body System.Val_Real is
-- Precision limit has been reached so just update the exponent
Scale := Scale + 1;
else
+ pragma Assert (Base /= 0);
+
if Value > (Precision_Limit - Digit) / Base then
-- Updating Value will overflow so ignore this digit and any
-- following ones. Only update the scale
@@ -369,6 +371,10 @@ package body System.Val_Real is
-- First character can be either a decimal digit or a dot.
if Str (Index) in '0' .. '9' then
+ pragma Annotate
+ (CodePeer, Intentional,
+ "test always true", "defensive code below");
+
-- If this is a digit it can indicates either the float decimal
-- part or the base to use
Scan_Integral_Digits
diff --git a/gcc/ada/libgnat/s-valrea.ads b/gcc/ada/libgnat/s-valrea.ads
index b59f345..cb5374c 100644
--- a/gcc/ada/libgnat/s-valrea.ads
+++ b/gcc/ada/libgnat/s-valrea.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-valuns.adb b/gcc/ada/libgnat/s-valuns.adb
index a9fbd58..9f9e81e 100644
--- a/gcc/ada/libgnat/s-valuns.adb
+++ b/gcc/ada/libgnat/s-valuns.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-valuns.ads b/gcc/ada/libgnat/s-valuns.ads
index 7d261b1..b965ba5 100644
--- a/gcc/ada/libgnat/s-valuns.ads
+++ b/gcc/ada/libgnat/s-valuns.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-valuti.adb b/gcc/ada/libgnat/s-valuti.adb
index 6c63282..29042f7 100644
--- a/gcc/ada/libgnat/s-valuti.adb
+++ b/gcc/ada/libgnat/s-valuti.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-valuti.ads b/gcc/ada/libgnat/s-valuti.ads
index 4035a68..a453272 100644
--- a/gcc/ada/libgnat/s-valuti.ads
+++ b/gcc/ada/libgnat/s-valuti.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-valwch.adb b/gcc/ada/libgnat/s-valwch.adb
index cf61bf9..791171a 100644
--- a/gcc/ada/libgnat/s-valwch.adb
+++ b/gcc/ada/libgnat/s-valwch.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-valwch.ads b/gcc/ada/libgnat/s-valwch.ads
index 5179517..a98d048 100644
--- a/gcc/ada/libgnat/s-valwch.ads
+++ b/gcc/ada/libgnat/s-valwch.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-veboop.adb b/gcc/ada/libgnat/s-veboop.adb
index 1ce61c8..ed43ef2 100644
--- a/gcc/ada/libgnat/s-veboop.adb
+++ b/gcc/ada/libgnat/s-veboop.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2002-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2002-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-veboop.ads b/gcc/ada/libgnat/s-veboop.ads
index 5c1fc0f..3570b65 100644
--- a/gcc/ada/libgnat/s-veboop.ads
+++ b/gcc/ada/libgnat/s-veboop.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2002-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2002-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-vector.ads b/gcc/ada/libgnat/s-vector.ads
index 6942570..2fb1004 100644
--- a/gcc/ada/libgnat/s-vector.ads
+++ b/gcc/ada/libgnat/s-vector.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2002-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2002-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-vercon.adb b/gcc/ada/libgnat/s-vercon.adb
index 6d0289d..ab22726 100644
--- a/gcc/ada/libgnat/s-vercon.adb
+++ b/gcc/ada/libgnat/s-vercon.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-vercon.ads b/gcc/ada/libgnat/s-vercon.ads
index 58976d7..b3ea028 100644
--- a/gcc/ada/libgnat/s-vercon.ads
+++ b/gcc/ada/libgnat/s-vercon.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-wchcnv.adb b/gcc/ada/libgnat/s-wchcnv.adb
index 7afbc20..4cc1ff9 100644
--- a/gcc/ada/libgnat/s-wchcnv.adb
+++ b/gcc/ada/libgnat/s-wchcnv.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-wchcnv.ads b/gcc/ada/libgnat/s-wchcnv.ads
index 385c344..a99eef8 100644
--- a/gcc/ada/libgnat/s-wchcnv.ads
+++ b/gcc/ada/libgnat/s-wchcnv.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-wchcon.adb b/gcc/ada/libgnat/s-wchcon.adb
index a13ee66..228aa45 100644
--- a/gcc/ada/libgnat/s-wchcon.adb
+++ b/gcc/ada/libgnat/s-wchcon.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 2005-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2005-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-wchcon.ads b/gcc/ada/libgnat/s-wchcon.ads
index eb358c3..897ab4e 100644
--- a/gcc/ada/libgnat/s-wchcon.ads
+++ b/gcc/ada/libgnat/s-wchcon.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-wchjis.adb b/gcc/ada/libgnat/s-wchjis.adb
index 0e92c18..977e3042 100644
--- a/gcc/ada/libgnat/s-wchjis.adb
+++ b/gcc/ada/libgnat/s-wchjis.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-wchjis.ads b/gcc/ada/libgnat/s-wchjis.ads
index 90445e4..ba904d8 100644
--- a/gcc/ada/libgnat/s-wchjis.ads
+++ b/gcc/ada/libgnat/s-wchjis.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-wchstw.adb b/gcc/ada/libgnat/s-wchstw.adb
index 85d99c0..9803b35 100644
--- a/gcc/ada/libgnat/s-wchstw.adb
+++ b/gcc/ada/libgnat/s-wchstw.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-wchstw.ads b/gcc/ada/libgnat/s-wchstw.ads
index 8fb37c3..4ec34ce 100644
--- a/gcc/ada/libgnat/s-wchstw.ads
+++ b/gcc/ada/libgnat/s-wchstw.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-wchwts.adb b/gcc/ada/libgnat/s-wchwts.adb
index 21fa657..9bb9979 100644
--- a/gcc/ada/libgnat/s-wchwts.adb
+++ b/gcc/ada/libgnat/s-wchwts.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-wchwts.ads b/gcc/ada/libgnat/s-wchwts.ads
index 083b9ef..2b6b8c1 100644
--- a/gcc/ada/libgnat/s-wchwts.ads
+++ b/gcc/ada/libgnat/s-wchwts.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-widboo.adb b/gcc/ada/libgnat/s-widboo.adb
index bbef0e9..0c549f9 100644
--- a/gcc/ada/libgnat/s-widboo.adb
+++ b/gcc/ada/libgnat/s-widboo.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-widboo.ads b/gcc/ada/libgnat/s-widboo.ads
index 006301b..4bef902 100644
--- a/gcc/ada/libgnat/s-widboo.ads
+++ b/gcc/ada/libgnat/s-widboo.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-widcha.adb b/gcc/ada/libgnat/s-widcha.adb
index f801365..710e60b 100644
--- a/gcc/ada/libgnat/s-widcha.adb
+++ b/gcc/ada/libgnat/s-widcha.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-widcha.ads b/gcc/ada/libgnat/s-widcha.ads
index 2eaa427..eda2451 100644
--- a/gcc/ada/libgnat/s-widcha.ads
+++ b/gcc/ada/libgnat/s-widcha.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-widenu.adb b/gcc/ada/libgnat/s-widenu.adb
index 340affd..20b7596 100644
--- a/gcc/ada/libgnat/s-widenu.adb
+++ b/gcc/ada/libgnat/s-widenu.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-widenu.ads b/gcc/ada/libgnat/s-widenu.ads
index bc0f326..487485c 100644
--- a/gcc/ada/libgnat/s-widenu.ads
+++ b/gcc/ada/libgnat/s-widenu.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-widlli.adb b/gcc/ada/libgnat/s-widlli.adb
index 8b92889..ff62186e 100644
--- a/gcc/ada/libgnat/s-widlli.adb
+++ b/gcc/ada/libgnat/s-widlli.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-widlli.ads b/gcc/ada/libgnat/s-widlli.ads
index b048af6..73e95bc 100644
--- a/gcc/ada/libgnat/s-widlli.ads
+++ b/gcc/ada/libgnat/s-widlli.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-widllu.adb b/gcc/ada/libgnat/s-widllu.adb
index 294f407..49ac43f 100644
--- a/gcc/ada/libgnat/s-widllu.adb
+++ b/gcc/ada/libgnat/s-widllu.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-widllu.ads b/gcc/ada/libgnat/s-widllu.ads
index 29bfb6c..fad814c 100644
--- a/gcc/ada/libgnat/s-widllu.ads
+++ b/gcc/ada/libgnat/s-widllu.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-widwch.adb b/gcc/ada/libgnat/s-widwch.adb
index 56ff4eb..ed633d9 100644
--- a/gcc/ada/libgnat/s-widwch.adb
+++ b/gcc/ada/libgnat/s-widwch.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-widwch.ads b/gcc/ada/libgnat/s-widwch.ads
index 91f8ee5..2ea340f 100644
--- a/gcc/ada/libgnat/s-widwch.ads
+++ b/gcc/ada/libgnat/s-widwch.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-win32.ads b/gcc/ada/libgnat/s-win32.ads
index 853cef0..0fcc6d6 100644
--- a/gcc/ada/libgnat/s-win32.ads
+++ b/gcc/ada/libgnat/s-win32.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2008-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2008-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-winext.ads b/gcc/ada/libgnat/s-winext.ads
index b29e1cd..3eff109 100644
--- a/gcc/ada/libgnat/s-winext.ads
+++ b/gcc/ada/libgnat/s-winext.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2009-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2009-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-wwdcha.adb b/gcc/ada/libgnat/s-wwdcha.adb
index 6b1f1a7..fde2280 100644
--- a/gcc/ada/libgnat/s-wwdcha.adb
+++ b/gcc/ada/libgnat/s-wwdcha.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-wwdcha.ads b/gcc/ada/libgnat/s-wwdcha.ads
index 9bfa43db..4d8668d 100644
--- a/gcc/ada/libgnat/s-wwdcha.ads
+++ b/gcc/ada/libgnat/s-wwdcha.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-wwdenu.adb b/gcc/ada/libgnat/s-wwdenu.adb
index 8a648d1..49c3101 100644
--- a/gcc/ada/libgnat/s-wwdenu.adb
+++ b/gcc/ada/libgnat/s-wwdenu.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-wwdenu.ads b/gcc/ada/libgnat/s-wwdenu.ads
index bd8ce64..ecc6389 100644
--- a/gcc/ada/libgnat/s-wwdenu.ads
+++ b/gcc/ada/libgnat/s-wwdenu.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-wwdwch.adb b/gcc/ada/libgnat/s-wwdwch.adb
index 4ad41d9..34f9133 100644
--- a/gcc/ada/libgnat/s-wwdwch.adb
+++ b/gcc/ada/libgnat/s-wwdwch.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/s-wwdwch.ads b/gcc/ada/libgnat/s-wwdwch.ads
index 83e3ce7..e2af399 100644
--- a/gcc/ada/libgnat/s-wwdwch.ads
+++ b/gcc/ada/libgnat/s-wwdwch.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
diff --git a/gcc/ada/libgnat/system-aix.ads b/gcc/ada/libgnat/system-aix.ads
index ecb9298..6ffa0f5 100644
--- a/gcc/ada/libgnat/system-aix.ads
+++ b/gcc/ada/libgnat/system-aix.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (AIX/PPC Version) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-darwin-arm.ads b/gcc/ada/libgnat/system-darwin-arm.ads
index 3d51980..4206b04 100644
--- a/gcc/ada/libgnat/system-darwin-arm.ads
+++ b/gcc/ada/libgnat/system-darwin-arm.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (Darwin/ARM Version) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-darwin-ppc.ads b/gcc/ada/libgnat/system-darwin-ppc.ads
index 9adc2de..b543f63 100644
--- a/gcc/ada/libgnat/system-darwin-ppc.ads
+++ b/gcc/ada/libgnat/system-darwin-ppc.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (Darwin/PPC Version) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-darwin-x86.ads b/gcc/ada/libgnat/system-darwin-x86.ads
index 4fac373..3ceacff 100644
--- a/gcc/ada/libgnat/system-darwin-x86.ads
+++ b/gcc/ada/libgnat/system-darwin-x86.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (Darwin/x86 Version) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-djgpp.ads b/gcc/ada/libgnat/system-djgpp.ads
index e9ac14e..82b496e 100644
--- a/gcc/ada/libgnat/system-djgpp.ads
+++ b/gcc/ada/libgnat/system-djgpp.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (DJGPP Version) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-dragonfly-x86_64.ads b/gcc/ada/libgnat/system-dragonfly-x86_64.ads
index ae5daf3..a77ebd6 100644
--- a/gcc/ada/libgnat/system-dragonfly-x86_64.ads
+++ b/gcc/ada/libgnat/system-dragonfly-x86_64.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (DragonFly BSD/x86_64 Version) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-freebsd.ads b/gcc/ada/libgnat/system-freebsd.ads
index 1587046..c2afb79 100644
--- a/gcc/ada/libgnat/system-freebsd.ads
+++ b/gcc/ada/libgnat/system-freebsd.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (FreeBSD Version) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-hpux-ia64.ads b/gcc/ada/libgnat/system-hpux-ia64.ads
index 0ea68ea..c0d5515 100644
--- a/gcc/ada/libgnat/system-hpux-ia64.ads
+++ b/gcc/ada/libgnat/system-hpux-ia64.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (HP-UX/ia64 Version) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-hpux.ads b/gcc/ada/libgnat/system-hpux.ads
index 0cfa8bf..7acd350 100644
--- a/gcc/ada/libgnat/system-hpux.ads
+++ b/gcc/ada/libgnat/system-hpux.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (HP-UX Version) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-linux-alpha.ads b/gcc/ada/libgnat/system-linux-alpha.ads
index 073e843..1d1411e 100644
--- a/gcc/ada/libgnat/system-linux-alpha.ads
+++ b/gcc/ada/libgnat/system-linux-alpha.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (GNU-Linux/alpha Version) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-linux-arm.ads b/gcc/ada/libgnat/system-linux-arm.ads
index c41d5d4..e3ee506 100644
--- a/gcc/ada/libgnat/system-linux-arm.ads
+++ b/gcc/ada/libgnat/system-linux-arm.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (GNU-Linux/ARM Version) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-linux-hppa.ads b/gcc/ada/libgnat/system-linux-hppa.ads
index af18b41..59aab83 100644
--- a/gcc/ada/libgnat/system-linux-hppa.ads
+++ b/gcc/ada/libgnat/system-linux-hppa.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (GNU/Linux-HPPA Version) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-linux-ia64.ads b/gcc/ada/libgnat/system-linux-ia64.ads
index 847ea5c..bf36c77 100644
--- a/gcc/ada/libgnat/system-linux-ia64.ads
+++ b/gcc/ada/libgnat/system-linux-ia64.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (GNU-Linux/ia64 Version) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-linux-m68k.ads b/gcc/ada/libgnat/system-linux-m68k.ads
index 12ea636..571c629 100644
--- a/gcc/ada/libgnat/system-linux-m68k.ads
+++ b/gcc/ada/libgnat/system-linux-m68k.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (GNU/Linux/m68k Version) --
-- --
--- Copyright (C) 2014-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2014-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-linux-mips.ads b/gcc/ada/libgnat/system-linux-mips.ads
index aebfac8..c381496 100644
--- a/gcc/ada/libgnat/system-linux-mips.ads
+++ b/gcc/ada/libgnat/system-linux-mips.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (GNU-Linux/MIPS Version) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-linux-ppc.ads b/gcc/ada/libgnat/system-linux-ppc.ads
index 5722f1e..f3d3712 100644
--- a/gcc/ada/libgnat/system-linux-ppc.ads
+++ b/gcc/ada/libgnat/system-linux-ppc.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (GNU-Linux/PPC Version) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-linux-riscv.ads b/gcc/ada/libgnat/system-linux-riscv.ads
index 68de015..676394a 100644
--- a/gcc/ada/libgnat/system-linux-riscv.ads
+++ b/gcc/ada/libgnat/system-linux-riscv.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (GNU-Linux/RISC-V Version) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-linux-s390.ads b/gcc/ada/libgnat/system-linux-s390.ads
index 3a41a1c..916f68d 100644
--- a/gcc/ada/libgnat/system-linux-s390.ads
+++ b/gcc/ada/libgnat/system-linux-s390.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (GNU-Linux/s390 Version) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-linux-sh4.ads b/gcc/ada/libgnat/system-linux-sh4.ads
index dcdc04c..8940ab0 100644
--- a/gcc/ada/libgnat/system-linux-sh4.ads
+++ b/gcc/ada/libgnat/system-linux-sh4.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (GNU-Linux/sh4 Version) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-linux-sparc.ads b/gcc/ada/libgnat/system-linux-sparc.ads
index d76b5db..5d93b76 100644
--- a/gcc/ada/libgnat/system-linux-sparc.ads
+++ b/gcc/ada/libgnat/system-linux-sparc.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (GNU/Linux-SPARC Version) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-linux-x86.ads b/gcc/ada/libgnat/system-linux-x86.ads
index 82cc48f..7e30fee 100644
--- a/gcc/ada/libgnat/system-linux-x86.ads
+++ b/gcc/ada/libgnat/system-linux-x86.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (GNU-Linux/x86 Version) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-lynxos178-ppc.ads b/gcc/ada/libgnat/system-lynxos178-ppc.ads
index b118fb7..8882034 100644
--- a/gcc/ada/libgnat/system-lynxos178-ppc.ads
+++ b/gcc/ada/libgnat/system-lynxos178-ppc.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (LynxOS-178 PPC Version) --
-- --
--- Copyright (C) 2009-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2009-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-lynxos178-x86.ads b/gcc/ada/libgnat/system-lynxos178-x86.ads
index e05746f..3a5f297 100644
--- a/gcc/ada/libgnat/system-lynxos178-x86.ads
+++ b/gcc/ada/libgnat/system-lynxos178-x86.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (LynxOS-178 X86 Version) --
-- --
--- Copyright (C) 2009-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 2009-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-mingw.ads b/gcc/ada/libgnat/system-mingw.ads
index 42719e4..990c5f5 100644
--- a/gcc/ada/libgnat/system-mingw.ads
+++ b/gcc/ada/libgnat/system-mingw.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (Windows Version) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -185,11 +185,6 @@ private
-- model, but maps them using compression onto the 7 priority levels
-- available in NT and on the 16 priority levels available in 2000/XP.
- -- To replace the default values of the Underlying_Priorities mapping,
- -- copy this source file into your build directory, edit the file to
- -- reflect your desired behavior, and recompile using Makefile.adalib
- -- which can be found under the adalib directory of your gnat installation
-
pragma Linker_Options ("-Wl,--stack=0x2000000");
-- This is used to change the default stack (32 MB) size for non tasking
-- programs. We change this value for GNAT on Windows here because the
diff --git a/gcc/ada/libgnat/system-qnx-aarch64.ads b/gcc/ada/libgnat/system-qnx-aarch64.ads
index 291211e..a04f7b2 100644
--- a/gcc/ada/libgnat/system-qnx-aarch64.ads
+++ b/gcc/ada/libgnat/system-qnx-aarch64.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (QNX/Aarch64 Version) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-rtems.ads b/gcc/ada/libgnat/system-rtems.ads
index a884ea9..50a96a3 100644
--- a/gcc/ada/libgnat/system-rtems.ads
+++ b/gcc/ada/libgnat/system-rtems.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (Compiler Version) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-solaris-sparc.ads b/gcc/ada/libgnat/system-solaris-sparc.ads
index 16e3d23d..244042c 100644
--- a/gcc/ada/libgnat/system-solaris-sparc.ads
+++ b/gcc/ada/libgnat/system-solaris-sparc.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (SUN Solaris Version) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-solaris-x86.ads b/gcc/ada/libgnat/system-solaris-x86.ads
index 2200187..c77c916 100644
--- a/gcc/ada/libgnat/system-solaris-x86.ads
+++ b/gcc/ada/libgnat/system-solaris-x86.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (x86 Solaris Version) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-vxworks-arm-rtp-smp.ads b/gcc/ada/libgnat/system-vxworks-arm-rtp-smp.ads
index 5c51a9e..1186d8b 100644
--- a/gcc/ada/libgnat/system-vxworks-arm-rtp-smp.ads
+++ b/gcc/ada/libgnat/system-vxworks-arm-rtp-smp.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (VxWorks 6.x ARM RTP) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-vxworks-arm-rtp.ads b/gcc/ada/libgnat/system-vxworks-arm-rtp.ads
index f5d6da1..ce52c07 100644
--- a/gcc/ada/libgnat/system-vxworks-arm-rtp.ads
+++ b/gcc/ada/libgnat/system-vxworks-arm-rtp.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (VxWorks 6.x ARM RTP) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-vxworks-arm.ads b/gcc/ada/libgnat/system-vxworks-arm.ads
index 34567c8..4dc6be8 100644
--- a/gcc/ada/libgnat/system-vxworks-arm.ads
+++ b/gcc/ada/libgnat/system-vxworks-arm.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (VxWorks Version ARM) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-vxworks-e500-kernel.ads b/gcc/ada/libgnat/system-vxworks-e500-kernel.ads
index c1a997b..44b713a 100644
--- a/gcc/ada/libgnat/system-vxworks-e500-kernel.ads
+++ b/gcc/ada/libgnat/system-vxworks-e500-kernel.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (VxWorks 6 Kernel Version E500) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-vxworks-e500-rtp-smp.ads b/gcc/ada/libgnat/system-vxworks-e500-rtp-smp.ads
index eb9880d..a3e8f41 100644
--- a/gcc/ada/libgnat/system-vxworks-e500-rtp-smp.ads
+++ b/gcc/ada/libgnat/system-vxworks-e500-rtp-smp.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (VxWorks 6.x SMP E500 RTP) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-vxworks-e500-rtp.ads b/gcc/ada/libgnat/system-vxworks-e500-rtp.ads
index 9f53444..5a26eed 100644
--- a/gcc/ada/libgnat/system-vxworks-e500-rtp.ads
+++ b/gcc/ada/libgnat/system-vxworks-e500-rtp.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (VxWorks 6.x E500 RTP) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-vxworks-e500-vthread.ads b/gcc/ada/libgnat/system-vxworks-e500-vthread.ads
index 55e7b97..df96432 100644
--- a/gcc/ada/libgnat/system-vxworks-e500-vthread.ads
+++ b/gcc/ada/libgnat/system-vxworks-e500-vthread.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (VxWorks e500 AE653 vThreads) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-vxworks-ppc-kernel.ads b/gcc/ada/libgnat/system-vxworks-ppc-kernel.ads
index c927fd1..76ec6eb 100644
--- a/gcc/ada/libgnat/system-vxworks-ppc-kernel.ads
+++ b/gcc/ada/libgnat/system-vxworks-ppc-kernel.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (VxWorks 6 Kernel Version PPC) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-vxworks-ppc-ravenscar.ads b/gcc/ada/libgnat/system-vxworks-ppc-ravenscar.ads
index 7a8b8fe..8485e74 100644
--- a/gcc/ada/libgnat/system-vxworks-ppc-ravenscar.ads
+++ b/gcc/ada/libgnat/system-vxworks-ppc-ravenscar.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (VxWorks/HIE Ravenscar Version PPC) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-vxworks-ppc-rtp-smp.ads b/gcc/ada/libgnat/system-vxworks-ppc-rtp-smp.ads
index 8a5cf0e..17b7f2c 100644
--- a/gcc/ada/libgnat/system-vxworks-ppc-rtp-smp.ads
+++ b/gcc/ada/libgnat/system-vxworks-ppc-rtp-smp.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (VxWorks 6.x SMP PPC RTP) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-vxworks-ppc-rtp.ads b/gcc/ada/libgnat/system-vxworks-ppc-rtp.ads
index 6dcbd54..a57563d 100644
--- a/gcc/ada/libgnat/system-vxworks-ppc-rtp.ads
+++ b/gcc/ada/libgnat/system-vxworks-ppc-rtp.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (VxWorks 6.x PPC RTP) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-vxworks-ppc-vthread.ads b/gcc/ada/libgnat/system-vxworks-ppc-vthread.ads
index 6253f7c..9d2c379 100644
--- a/gcc/ada/libgnat/system-vxworks-ppc-vthread.ads
+++ b/gcc/ada/libgnat/system-vxworks-ppc-vthread.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (VxWorks PPC AE653 vThreads) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-vxworks-ppc.ads b/gcc/ada/libgnat/system-vxworks-ppc.ads
index 39f1eda..20b8674 100644
--- a/gcc/ada/libgnat/system-vxworks-ppc.ads
+++ b/gcc/ada/libgnat/system-vxworks-ppc.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (VxWorks 5 Version PPC) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-vxworks-x86-kernel.ads b/gcc/ada/libgnat/system-vxworks-x86-kernel.ads
index 51db6ed..42d8769 100644
--- a/gcc/ada/libgnat/system-vxworks-x86-kernel.ads
+++ b/gcc/ada/libgnat/system-vxworks-x86-kernel.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (VxWorks 6 Kernel Version x86) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-vxworks-x86-rtp-smp.ads b/gcc/ada/libgnat/system-vxworks-x86-rtp-smp.ads
index 3ede658..8bed920 100644
--- a/gcc/ada/libgnat/system-vxworks-x86-rtp-smp.ads
+++ b/gcc/ada/libgnat/system-vxworks-x86-rtp-smp.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (VxWorks Version x86 for SMP RTPs) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-vxworks-x86-rtp.ads b/gcc/ada/libgnat/system-vxworks-x86-rtp.ads
index f07dcfa..fd20986 100644
--- a/gcc/ada/libgnat/system-vxworks-x86-rtp.ads
+++ b/gcc/ada/libgnat/system-vxworks-x86-rtp.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (VxWorks Version x86 for RTPs) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-vxworks-x86-vthread.ads b/gcc/ada/libgnat/system-vxworks-x86-vthread.ads
index 7ef29eb..418e52b 100644
--- a/gcc/ada/libgnat/system-vxworks-x86-vthread.ads
+++ b/gcc/ada/libgnat/system-vxworks-x86-vthread.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (VxWorks 653 x86 vThreads) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-vxworks-x86.ads b/gcc/ada/libgnat/system-vxworks-x86.ads
index 1415752..6059202 100644
--- a/gcc/ada/libgnat/system-vxworks-x86.ads
+++ b/gcc/ada/libgnat/system-vxworks-x86.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (VxWorks 5 Version x86) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-vxworks7-aarch64-rtp-smp.ads b/gcc/ada/libgnat/system-vxworks7-aarch64-rtp-smp.ads
index 35a19e0..524f967 100644
--- a/gcc/ada/libgnat/system-vxworks7-aarch64-rtp-smp.ads
+++ b/gcc/ada/libgnat/system-vxworks7-aarch64-rtp-smp.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (VxWorks 7.x AARCH64 RTP) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-vxworks7-aarch64.ads b/gcc/ada/libgnat/system-vxworks7-aarch64.ads
index 51004ff..f1e11ba 100644
--- a/gcc/ada/libgnat/system-vxworks7-aarch64.ads
+++ b/gcc/ada/libgnat/system-vxworks7-aarch64.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (VxWorks 7.x AARCH64 Kernel) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-vxworks7-arm-rtp-smp.ads b/gcc/ada/libgnat/system-vxworks7-arm-rtp-smp.ads
index 405334f..032620d 100644
--- a/gcc/ada/libgnat/system-vxworks7-arm-rtp-smp.ads
+++ b/gcc/ada/libgnat/system-vxworks7-arm-rtp-smp.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (VxWorks 7 ARM RTP) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-vxworks7-arm.ads b/gcc/ada/libgnat/system-vxworks7-arm.ads
index 34567c8..4dc6be8 100644
--- a/gcc/ada/libgnat/system-vxworks7-arm.ads
+++ b/gcc/ada/libgnat/system-vxworks7-arm.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (VxWorks Version ARM) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-vxworks7-e500-kernel.ads b/gcc/ada/libgnat/system-vxworks7-e500-kernel.ads
index af3243a..495cfed 100644
--- a/gcc/ada/libgnat/system-vxworks7-e500-kernel.ads
+++ b/gcc/ada/libgnat/system-vxworks7-e500-kernel.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (VxWorks 7 Kernel Version E500) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-vxworks7-e500-rtp-smp.ads b/gcc/ada/libgnat/system-vxworks7-e500-rtp-smp.ads
index c21a2f4..2633156 100644
--- a/gcc/ada/libgnat/system-vxworks7-e500-rtp-smp.ads
+++ b/gcc/ada/libgnat/system-vxworks7-e500-rtp-smp.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (VxWorks 7.x E500 RTP) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-vxworks7-e500-rtp.ads b/gcc/ada/libgnat/system-vxworks7-e500-rtp.ads
index e26e3c6..a521d25 100644
--- a/gcc/ada/libgnat/system-vxworks7-e500-rtp.ads
+++ b/gcc/ada/libgnat/system-vxworks7-e500-rtp.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (VxWorks 7.x E500 RTP) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-vxworks7-ppc-kernel.ads b/gcc/ada/libgnat/system-vxworks7-ppc-kernel.ads
index 6a188e0..a054aa2 100644
--- a/gcc/ada/libgnat/system-vxworks7-ppc-kernel.ads
+++ b/gcc/ada/libgnat/system-vxworks7-ppc-kernel.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (VxWorks 7 Kernel Version PPC) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-vxworks7-ppc-rtp-smp.ads b/gcc/ada/libgnat/system-vxworks7-ppc-rtp-smp.ads
index f3646b7..7e3e16db 100644
--- a/gcc/ada/libgnat/system-vxworks7-ppc-rtp-smp.ads
+++ b/gcc/ada/libgnat/system-vxworks7-ppc-rtp-smp.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (VxWorks 7.x PPC RTP) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-vxworks7-ppc-rtp.ads b/gcc/ada/libgnat/system-vxworks7-ppc-rtp.ads
index 95390ef..87ac8f0 100644
--- a/gcc/ada/libgnat/system-vxworks7-ppc-rtp.ads
+++ b/gcc/ada/libgnat/system-vxworks7-ppc-rtp.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (VxWorks 7.x PPC RTP) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-vxworks7-ppc64-kernel.ads b/gcc/ada/libgnat/system-vxworks7-ppc64-kernel.ads
index e1c5311..c631a85 100644
--- a/gcc/ada/libgnat/system-vxworks7-ppc64-kernel.ads
+++ b/gcc/ada/libgnat/system-vxworks7-ppc64-kernel.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (VxWorks 7.x PPC64 Kernel) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-vxworks7-ppc64-rtp-smp.ads b/gcc/ada/libgnat/system-vxworks7-ppc64-rtp-smp.ads
index 5a1670b..9f27913 100644
--- a/gcc/ada/libgnat/system-vxworks7-ppc64-rtp-smp.ads
+++ b/gcc/ada/libgnat/system-vxworks7-ppc64-rtp-smp.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (VxWorks 7.x PPC64 RTP) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-vxworks7-x86-kernel.ads b/gcc/ada/libgnat/system-vxworks7-x86-kernel.ads
index 85c166b..5bfe0b3 100644
--- a/gcc/ada/libgnat/system-vxworks7-x86-kernel.ads
+++ b/gcc/ada/libgnat/system-vxworks7-x86-kernel.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (VxWorks 7 Kernel Version x86) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-vxworks7-x86-rtp-smp.ads b/gcc/ada/libgnat/system-vxworks7-x86-rtp-smp.ads
index f87cf90..5e66142 100644
--- a/gcc/ada/libgnat/system-vxworks7-x86-rtp-smp.ads
+++ b/gcc/ada/libgnat/system-vxworks7-x86-rtp-smp.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (VxWorks 7 Version x86 for RTPs) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-vxworks7-x86-rtp.ads b/gcc/ada/libgnat/system-vxworks7-x86-rtp.ads
index 29031a4..47ca3e8 100644
--- a/gcc/ada/libgnat/system-vxworks7-x86-rtp.ads
+++ b/gcc/ada/libgnat/system-vxworks7-x86-rtp.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (VxWorks 7 Version x86 for RTPs) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-vxworks7-x86_64-kernel.ads b/gcc/ada/libgnat/system-vxworks7-x86_64-kernel.ads
index 8b2da4d..ac90238 100644
--- a/gcc/ada/libgnat/system-vxworks7-x86_64-kernel.ads
+++ b/gcc/ada/libgnat/system-vxworks7-x86_64-kernel.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (VxWorks 7 Kernel Version x86_64) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system-vxworks7-x86_64-rtp-smp.ads b/gcc/ada/libgnat/system-vxworks7-x86_64-rtp-smp.ads
index 0d18c68..c3e4a9c 100644
--- a/gcc/ada/libgnat/system-vxworks7-x86_64-rtp-smp.ads
+++ b/gcc/ada/libgnat/system-vxworks7-x86_64-rtp-smp.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (VxWorks 7 Version x86_64 for RTPs) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
diff --git a/gcc/ada/libgnat/system.ads b/gcc/ada/libgnat/system.ads
index aed4577..f54c43f 100644
--- a/gcc/ada/libgnat/system.ads
+++ b/gcc/ada/libgnat/system.ads
@@ -7,7 +7,7 @@
-- S p e c --
-- (Compiler Version) --
-- --
--- Copyright (C) 1992-2019, Free Software Foundation, Inc. --
+-- Copyright (C) 1992-2020, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --