[Ada] Don't fail a front-end assertion if errors have already been detected
authorSteve Baird <baird@adacore.com>
Wed, 18 Sep 2019 08:32:37 +0000 (08:32 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Wed, 18 Sep 2019 08:32:37 +0000 (08:32 +0000)
commit50a7395372ba8a082fc0514a16a3f381ec1e49e7
tree6200def24fd5a0a9263fc111b9f44a465539f6bb
parent432a3b3644f52822cb61da7f529edf35b4390dd8
[Ada] Don't fail a front-end assertion if errors have already been detected

In sem_eval.adb, we have an assertion that the type of a "null" literal
is an access type. It turns out that this assertion can fail when
processing an illegal program, e.g. one that contains something like
"Integer'(null)".  This leads to differences in the compiler's generated
output for such tests depending on whether assertions are/aren't
enabled; in particular, the "compilation abandoned due to previous
error" message generated in Comperr.Compiler_Abort. In order to avoid
these differences, we change the assertion so that it does not fail if
errors have already been posted on the given node.

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

gcc/ada/

* sem_eval.adb (Expr_Value): Do not fail "the type of a null
literal must be an access type" assertion if errors have already
been posted on the given node.

From-SVN: r275852
gcc/ada/ChangeLog
gcc/ada/sem_eval.adb