aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBob Duff <duff@adacore.com>2020-05-15 11:40:50 -0400
committerPierre-Marie de Rodat <derodat@adacore.com>2020-07-07 05:27:00 -0400
commite997d94b298c5ea753b613c38518a2c72bdf44af (patch)
tree714dca955c9704e011351160826bc37f5ca66fa3
parenta21df0b6a46a7807534c2096bba1642e74e1fbd3 (diff)
downloadgcc-e997d94b298c5ea753b613c38518a2c72bdf44af.zip
gcc-e997d94b298c5ea753b613c38518a2c72bdf44af.tar.gz
gcc-e997d94b298c5ea753b613c38518a2c72bdf44af.tar.bz2
[Ada] Avoid crash on node extension
gcc/ada/ * treepr.adb (Print_Node): Add code to test Is_Extension.
-rw-r--r--gcc/ada/treepr.adb9
1 files changed, 9 insertions, 0 deletions
diff --git a/gcc/ada/treepr.adb b/gcc/ada/treepr.adb
index b84af01..b4fd545 100644
--- a/gcc/ada/treepr.adb
+++ b/gcc/ada/treepr.adb
@@ -1006,6 +1006,15 @@ package body Treepr is
return;
end if;
+ -- Similarly, if N points to an extension, avoid crashing
+
+ if Atree_Private_Part.Nodes.Table (N).Is_Extension then
+ Print_Int (Int (N));
+ Print_Str (" is an extension, not a node");
+ Print_Eol;
+ return;
+ end if;
+
Prefix_Str_Char (Prefix_Str'Range) := Prefix_Str;
Prefix_Str_Char (Prefix_Str'Last + 1) := Prefix_Char;