[Bug ada/90325] New: GCC Error in gnat_to_gnu_entity using Unchecked_Conversion to a discriminated type in a Lock_Free protected type body
matsilvabustos at abc dot gob.ar
gcc-bugzilla@gcc.gnu.org
Fri May 3 02:44:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90325
Bug ID: 90325
Summary: GCC Error in gnat_to_gnu_entity using
Unchecked_Conversion to a discriminated type in a
Lock_Free protected type body
Product: gcc
Version: 9.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: ada
Assignee: unassigned at gcc dot gnu.org
Reporter: matsilvabustos at abc dot gob.ar
Target Milestone: ---
Created attachment 46277
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=46277&action=edit
Example scenario.
A bugbox shows up with this particular scenario.
It also happens in version 7.3
Full example in attachment.
type T
-- Any discriminant yields a gcc error in protected body PT
-- No discriminant: everything ok.
(i : Integer := 1)
is ...;
type R is record
a : T;
end record;
function To_Access_R is
new Ada.Unchecked_Conversion(...);
-- GCC Error would happen if Lock_Free => True.
-- Otherwise it compiles successfully.
protected type PT
with Lock_Free => True
is
...
end PT;
protected body PT is
function h return T is
begin
-- Maybe this operation is incompatible with a Lock_Free
-- protected type. Anyway, GCC should show a message instead of
-- bugboxing.
return To_Access_R (x) . a;
end h;
end PT;
+===========================GNAT BUG DETECTED==============================+
| 9.0.1 20190501 (prerelease) (x86_64-pc-linux-gnu) GCC error: |
| in gnat_to_gnu_entity, at ada/gcc-interface/decl.c:438 |
| Error detected at main.adb:30:36 |
+===========================GNAT BUG DETECTED==============================+
| 7.3.1 20180712 (Red Hat 7.3.1-6) (x86_64-redhat-linux) GCC error: |
| en gnat_to_gnu_entity, en ada/gcc-interface/decl.c:422 |
| Error detected at main.adb:30:36 |
More information about the Gcc-bugs
mailing list