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