[Ada] Crash on universal case expression in fixed-point division
authorEd Schonberg <schonberg@adacore.com>
Wed, 18 Sep 2019 08:33:40 +0000 (08:33 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Wed, 18 Sep 2019 08:33:40 +0000 (08:33 +0000)
commit1784b1eb1f22a802cf7e2f3529fa83a40bce1b20
tree5ea4a99b687ba7abbe9f1ac73d3a74b65a87a919
parent0cff31f0f67a88fd1bf76bab430eaa0adac94ffa
[Ada] Crash on universal case expression in fixed-point division

This patch fixes a compiler abort on a case expression whose
alternatives are universal_real constants, when the case expression is
an operand in a multiplication or division whose other operand is of a
fixed-point type.

2019-09-18  Ed Schonberg  <schonberg@adacore.com>

gcc/ada/

* sem_res.adb (Set_Mixed_Node_Expression): If a conditional
expression has universal_real alternaitves and the context is
Universal_Fixed, as when it is an operand in a fixed-point
multiplication or division, resolve the expression with a
visible fixed-point type, which must be unique.

gcc/testsuite/

* gnat.dg/fixedpnt8.adb: New testcase.

From-SVN: r275864
gcc/ada/ChangeLog
gcc/ada/sem_res.adb
gcc/testsuite/ChangeLog
gcc/testsuite/gnat.dg/fixedpnt8.adb [new file with mode: 0644]