[Ada] Simplify conversion from Character to Char_Code
commit0e38fbfe1415e29d98bcdadc7307d589f496546b
authorPiotr Trojanek <trojanek@adacore.com>
Wed, 19 Jan 2022 13:05:16 +0000 (19 14:05 +0100)
committerPierre-Marie de Rodat <derodat@adacore.com>
Tue, 10 May 2022 08:19:20 +0000 (10 08:19 +0000)
treef03ff8212273d48c471fbb8a6f3db2a28a057a95
parent60ab3d0f2d9f95045543fea361e976351e76b5a1
[Ada] Simplify conversion from Character to Char_Code

Replace "Char_Code (Character'Pos (...))" with "Get_Char_Code (...)".
The Get_Char_Code routine is inlined, so there is no performance penalty
when it is called with static actual parameters.

The N_Character_Literal has field Char_Literal_Value of type Unat, but
we should really only store there values from Char_Code type (e.g. there
are no characters with negative ASCII codes). It seems cleaner to use
UI_From_CC and not a more general UI_From_Int when setting the character
literal values.

Cleanup related to handling of character values in SPARK
counterexamples, which just like the code for names in task arrays
create N_Character_Literal nodes.

gcc/ada/

* exp_prag.adb (Expand_Pragma_Import_Or_Interface): Use
Get_Char_Code.
* exp_util.adb (Build_Task_Array_Image): Simplify conversion to
Char_Code.
(Build_Task_Image_Prefix): Likewise.
(Build_Task_Record_Image): Likewise.
* cstand.adb (Create_Standard): Use UI_From_Int instead of
UI_From_CC.
* exp_ch11.adb (Expand_N_Exception_Declaration): Likewise.
* sem_res.adb (Patch_Up_Value): Likewise.
* stringt.adb (Write_String_Table_Entry): Use Get_Char_Code.
gcc/ada/cstand.adb
gcc/ada/exp_ch11.adb
gcc/ada/exp_prag.adb
gcc/ada/exp_util.adb
gcc/ada/sem_res.adb
gcc/ada/stringt.adb