aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGhjuvan Lacambre <lacambre@adacore.com>2020-10-09 16:36:45 +0200
committerPierre-Marie de Rodat <derodat@adacore.com>2020-11-25 08:22:24 -0500
commit193040a071b1170e5e22b7371d81b880f69aeae1 (patch)
treec7fb76f77980cf6bbb3a1df0c52335037c08e6c5
parent868268a8ecd1961870513ad2c49df7e1fecd92b8 (diff)
downloadgcc-193040a071b1170e5e22b7371d81b880f69aeae1.zip
gcc-193040a071b1170e5e22b7371d81b880f69aeae1.tar.gz
gcc-193040a071b1170e5e22b7371d81b880f69aeae1.tar.bz2
[Ada] Fix crash on invalid `pragma Profile`
gcc/ada/ * sem_prag.adb (Analyze_Pragma): Emit error on wrong argument nkind.
-rw-r--r--gcc/ada/sem_prag.adb6
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/ada/sem_prag.adb b/gcc/ada/sem_prag.adb
index 5a2dfff..eda8898 100644
--- a/gcc/ada/sem_prag.adb
+++ b/gcc/ada/sem_prag.adb
@@ -21494,7 +21494,11 @@ package body Sem_Prag is
Argx : constant Node_Id := Get_Pragma_Arg (Arg1);
begin
- if Chars (Argx) = Name_Ravenscar then
+ if Nkind (Argx) /= N_Identifier then
+ Error_Msg_N
+ ("argument of pragma Profile must be an identifier", N);
+
+ elsif Chars (Argx) = Name_Ravenscar then
Set_Ravenscar_Profile (Ravenscar, N);
elsif Chars (Argx) = Name_Jorvik then