https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70867
--- Comment #13 from yuta tomino <demoonlit at panathenaia dot halfmoon.jp> --- Sorry, perhaps my example is illegal in Ada 2012. "aliased" is required to return a reference of a part of the parameter. Randy explained the change in https://groups.google.com/g/comp.lang.ada/c/7dw7Oqi8lIk/m/5NUBhFN8DQAJ . (I wonder if it was legal before Ada 2005?? Because aliased parameter is added in Ada 2012 and the relevant text has been changed by AI05-0234-1.) I think Nicolas's example is always legal. Thanks.