[Bug ada/107391] New: decimal_literal with long exponent: Constraint_Error uintp.adb:2287

2022-10-25 Thread johannes.waldmann--- via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107391

Bug ID: 107391
   Summary: decimal_literal with long exponent: Constraint_Error
uintp.adb:2287
   Product: gcc
   Version: 12.2.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: ada
  Assignee: unassigned at gcc dot gnu.org
  Reporter: johannes.waldm...@htwk-leipzig.de
  Target Milestone: ---

$ echo "procedure main is x : float := 1.1e; begin null;
end main;" > main.adb

$ gcc -c main.adb 
+===GNAT BUG DETECTED==+
| 12.2.1 20220819 (Red Hat 12.2.1-2) (x86_64-redhat-linux) Constraint_Error
uintp.adb:2287 explicit raise|
| Error detected at main.adb:1:32  |
| Compiling main.adb   |
| Please submit a bug report; see https://gcc.gnu.org/bugs/ .  |

$ gcc --version
gcc (GCC) 12.2.1 20220819 (Red Hat 12.2.1-2)


with up to ten digits in the exponent, I get the expected

$ echo "procedure main is x : float := 1.1e1_1; begin null; end main;"
> main.adb

$ gcc -c main.adb 
main.adb:1:32: error: value not in range of type "Standard.Float"
main.adb:1:32: error: static expression fails Constraint_Check

[Bug ada/107392] New: excessive compilation time for decimal_literal - that should be rejected as type-error

2022-10-25 Thread johannes.waldmann--- via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107392

Bug ID: 107392
   Summary: excessive compilation time for decimal_literal - that
should be rejected as type-error
   Product: gcc
   Version: 12.2.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: ada
  Assignee: unassigned at gcc dot gnu.org
  Reporter: johannes.waldm...@htwk-leipzig.de
  Target Milestone: ---

this compilation does not seem to finish:

$ echo "procedure main is x : integer := 1.1e1_11; begin null; end main;" >
main.adb
$ gcc -c main.adb

$ gcc --version
gcc (GCC) 12.2.1 20220819 (Red Hat 12.2.1-2)


while the program should just be rejected - as does indeed happen for

$ echo "procedure main is x : integer := 1.1e1_1; begin null; end main;" >
main.adb
$ gcc -c main.adb
main.adb:1:34: error: expected type "Standard.Integer"
main.adb:1:34: error: found type universal real