[gcc/devel/c++-coroutines] [Ada] Avoid crash on node extension

Iain D Sandoe iains@gcc.gnu.org
Tue Jul 7 20:49:33 GMT 2020


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

commit e997d94b298c5ea753b613c38518a2c72bdf44af
Author: Bob Duff <duff@adacore.com>
Date:   Fri May 15 11:40:50 2020 -0400

    [Ada] Avoid crash on node extension
    
    gcc/ada/
    
            * treepr.adb (Print_Node): Add code to test Is_Extension.

Diff:
---
 gcc/ada/treepr.adb | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/gcc/ada/treepr.adb b/gcc/ada/treepr.adb
index b84af01d40f..b4fd5456165 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;


More information about the Gcc-cvs mailing list