http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59671
Bug ID: 59671 Summary: Improper Ada behavior under -gnat2012 Product: gcc Version: 4.8.2 Status: UNCONFIRMED Severity: blocker Priority: P3 Component: ada Assignee: unassigned at gcc dot gnu.org Reporter: p-kell at live dot com Compilation under -gnat2012 fails with this error: "conflict of writable function parameter in construct with arbitrary order of evaluation" Fallback to -gnat2005, and it reports that functions can only have an "in" parameter, which is correct for -gnat2005; however, they can be used in -gnat2012. Removing the "out" parameter and compiling with -gnat2005 resulted in a correct build. Immediately compiling with -gnat2012 resulted in a correct build. I was lucky in that I didn't actually need the "out" on those parameters. (note: an unused "out" doesn't cause problems in an of itself) The current behavior is not following the ARM2012, which is why I've labeled this as a "blocker". "in out" parameters on functions is one of the major enhancements to Ada 2012. Other compilation flags: "-O2 -gnato -gnatE -fstack-check" Error still occurs without "-O2"