[Ada] No Storage_Error for an oversized disabled ghost array object
authorSteve Baird <baird@adacore.com>
Wed, 18 Sep 2019 08:32:05 +0000 (08:32 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Wed, 18 Sep 2019 08:32:05 +0000 (08:32 +0000)
commitdcbe49a6c41e586e961664512726799a540757ee
tree07231a2330abb2bdd851673b99409f8f2329cbf7
parente42183e72bf600aff07cdf051c2166d36fb1889d
[Ada] No Storage_Error for an oversized disabled ghost array object

In some cases where the size computation for an object declaration will
unconditionally overflow, the FE generates code to raise Storage_Error
at the point of the object declaration (and may generate an associated
warning). Don't do this if the object declaration is an ignored (i.e.,
disabled) ghost declaration.

2019-09-18  Steve Baird  <baird@adacore.com>

gcc/ada/

* freeze.adb (Freeze_Object_Declaration): Do not call
Check_Large_Modular_Array when the object declaration being
frozen is an ignored ghost entity.

gcc/testsuite/

* gnat.dg/ghost7.adb, gnat.dg/ghost7.ads: New testcase.

From-SVN: r275845
gcc/ada/ChangeLog
gcc/ada/freeze.adb
gcc/testsuite/ChangeLog
gcc/testsuite/gnat.dg/ghost7.adb [new file with mode: 0644]
gcc/testsuite/gnat.dg/ghost7.ads [new file with mode: 0644]