https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115507

--- Comment #3 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Marc Poulhi?s <d...@gcc.gnu.org>:

https://gcc.gnu.org/g:c4d9a73e12b25a9f0ac152df2da5ceac80bd9d6a

commit r15-4163-gc4d9a73e12b25a9f0ac152df2da5ceac80bd9d6a
Author: Eric Botcazou <ebotca...@adacore.com>
Date:   Thu Sep 12 12:45:27 2024 +0200

    ada: Fix bogus Constraint_Error for 'Wide_Wide_Value on wide enumeration
literal

    The problem is that 'Wide_Wide_Value is piggybacked on 'Value and the
latter
    invokes System.Val_Util.Normalize_String, which incorrectly normalizes the
    input string in the presence of enumeration literals with wide characters.

    gcc/ada/ChangeLog:
            PR ada/115507
            * exp_imgv.adb (Expand_Valid_Value_Attribute): Add actual parameter
            for Is_Wide formal in the call to Valid_Value_Enumeration_NN.
            (Expand_Value_Attribute): Likewise.
            * libgnat/s-vaen16.ads (Value_Enumeration_16): Add Is_Wide formal.
            (Valid_Value_Enumeration_16): Likewise.
            * libgnat/s-vaen32.ads (Value_Enumeration_32): Likewise.
            (Valid_Value_Enumeration_32): Likewise.
            * libgnat/s-vaenu8.ads (Value_Enumeration_8): Likewise.
            (Valid_Value_Enumeration_8): Likewise.
            * libgnat/s-valboo.adb (Value_Boolean): Pass True for To_Upper_Case
            formal parameter in call to Normalize_String.
            * libgnat/s-valcha.adb (Value_Character): Likewise.
            * libgnat/s-valuen.ads (Value_Enumeration): Add Is_Wide formal.
            (Valid_Value_Enumeration): Likewise.
            * libgnat/s-valuen.adb (Value_Enumeration_Pos): Likewise and pass
            its negation for To_Upper_Case formal in call to Normalize_String.
            (Valid_Value_Enumeration): Add Is_Wide formal and forward it in
            call to Value_Enumeration_Pos.
            (Value_Enumeration): Likewise.
            * libgnat/s-valuti.ads (Normalize_String): Add To_Upper_Case formal
            parameter and adjust post-condition accordingly.
            * libgnat/s-valuti.adb (Normalize_String): Add To_Upper_Case formal
            parameter and adjust implementation accordingly.
            * libgnat/s-valwch.adb (Value_Wide_Wide_Character): Pass False for
            To_Upper_Case formal parameter in call to Normalize_String.

Reply via email to