https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114593

            Bug ID: 114593
           Summary: Failed type conversion on non-tagged derived type
                    inside a generic unit
           Product: gcc
           Version: 13.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: ada
          Assignee: unassigned at gcc dot gnu.org
          Reporter: jhb.chat at gmail dot com
                CC: dkm at gcc dot gnu.org
  Target Milestone: ---

Created attachment 57880
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=57880&action=edit
use gnatchop on file to get all example files separated

When converting from a System.Address type to a new type derived off of
System.Address inside a generic, the compiler fails with:

core-first-third.ads:6:04: error: instantiation error at
core-first-second.ads:15
core-first-third.ads:6:04: error: invalid conversion, not compatible with
private type "System.Address"

Doing the same in a basic example without generics involved compiles fine.

GCC version info:
gcc version 13.2.0 (Rev3, Built by MSYS2 project)

Platform is msys2 on Windows 10 home (up to date on all patches).

I also tested on godbolt and it fails starting with version 11.1 up to trunk as
of today.  Last working version was 10.5

Example shows both a working type conversion in example.adb and a failed
compile example using generics.  Simply commenting out the line 'with
Core.First.Third;` in example.adb will allow the program to compile as it
removes the generics.

Reply via email to