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

--- Comment #2 from simon at pushface dot org ---
Not sure when this was fixed, but OK in 11.2.0:

$ /opt/gcc-11.2.0/bin/gnatmake -c -u -f union.ads 
gcc -c union.ads
union.ads:15:06: warning: discriminated record has no direct equivalent in C
union.ads:15:06: warning: use of convention for type "Derived_1" is dubious
union.ads:15:06: warning: discriminated record has no direct equivalent in C
union.ads:15:06: warning: use of convention for type "Derived_2" is dubious
union.ads:15:06: warning: discriminated record has no direct equivalent in C
union.ads:15:06: warning: use of convention for type "Derived_3" is dubious
union.ads:24:55: derived type "Derived_2" inherits aspect "Unchecked_Union",
cannot cancel
union.ads:29:36: representation item not permitted before Ada 202x
union.ads:29:36: parent type "Base" has primitive operations
gnatmake: "union.ads" compilation error

$ /opt/gcc-11.2.0/bin/gnatmake -c -u -f union.ads -gnat2020
gcc -c -gnat2020 union.ads
union.ads:15:06: warning: discriminated record has no direct equivalent in C
union.ads:15:06: warning: use of convention for type "Derived_1" is dubious
union.ads:15:06: warning: discriminated record has no direct equivalent in C
union.ads:15:06: warning: use of convention for type "Derived_2" is dubious
union.ads:24:55: derived type "Derived_2" inherits aspect "Unchecked_Union",
cannot cancel
gnatmake: "union.ads" compilation error

Reply via email to