Although GNAT supports UTF-8 characters in identifiers, it looks for the wrong file name by default.
For example, the following code procedure Désolé is begin null; end Désolé; stored in désolé.adb (with a filesystem storing file names in UTF-8) gives, when compiled with a recent development version: % gcc -c -gnatW8 -gnati8 -gnatv désolé.adb GNAT 4.5.0 20090423 (experimental) Copyright 1992-2009, Free Software Foundation, Inc. Compiling: désolé.adb (source file time stamp: 2009-04-28 13:52:35) 1. procedure Désolé is | >>> warning: file name does not match unit name, should be "d£sol£.adb" 4 lines: No errors, 1 warning -- Summary: Incorrect expected file name encoding Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: ada AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: sam at gcc dot gnu dot org GCC host triplet: i386-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39944