From: Javier Miranda <mira...@adacore.com> The frontend rejects the use of user defined string literals using interpolated strings.
gcc/ada/ * sem_res.adb (Has_Applicable_User_Defined_Literal): Add missing support for interpolated strings. Tested on x86_64-pc-linux-gnu, committed on master. --- gcc/ada/sem_res.adb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/gcc/ada/sem_res.adb b/gcc/ada/sem_res.adb index a0dd1f7962b..72bba1f97af 100644 --- a/gcc/ada/sem_res.adb +++ b/gcc/ada/sem_res.adb @@ -467,7 +467,7 @@ package body Sem_Res is Literal_Aspect_Map : constant array (N_Numeric_Or_String_Literal) of Aspect_Id := (N_Integer_Literal => Aspect_Integer_Literal, - N_Interpolated_String_Literal => No_Aspect, + N_Interpolated_String_Literal => Aspect_String_Literal, N_Real_Literal => Aspect_Real_Literal, N_String_Literal => Aspect_String_Literal); @@ -487,6 +487,7 @@ package body Sem_Res is begin if (Nkind (N) in N_Numeric_Or_String_Literal + | N_Interpolated_String_Literal and then Present (Find_Aspect (Typ, Literal_Aspect_Map (Nkind (N))))) or else @@ -563,6 +564,10 @@ package body Sem_Res is Param1 := Make_String_Literal (Loc, Strval (N)); Params := New_List (Param1); + elsif Nkind (N) = N_Interpolated_String_Literal then + Param1 := New_Copy_Tree (N); + Params := New_List (Param1); + else Param1 := Make_String_Literal -- 2.45.2