This patch fixes a bug in which if mixed-case file names are used, and a
file name contains any of the capital letters 'U', 'W', 'Q', or 'O',
then in rare cases the compiler can crash. No small test is available.

Tested on x86_64-pc-linux-gnu, committed on trunk

2017-09-08  Bob Duff  <d...@adacore.com>

        * exp_intr.adb (Add_Source_Info): Do not decode
        file names; they were not encoded in the first place.

Index: exp_intr.adb
===================================================================
--- exp_intr.adb        (revision 251883)
+++ exp_intr.adb        (working copy)
@@ -125,7 +125,7 @@
             Append (Buf, Nat (Get_Logical_Line_Number (Loc)));
 
          when Name_File =>
-            Append_Decoded (Buf, Reference_Name (Get_Source_File_Index (Loc)));
+            Append (Buf, Reference_Name (Get_Source_File_Index (Loc)));
 
          when Name_Source_Location =>
             Build_Location_String (Buf, Loc);

Reply via email to