From: Eric Botcazou Date: Tue, 29 Nov 2022 11:29:30 +0000 (+0100) Subject: ada: Strip conversions for the implementation of storage models X-Git-Tag: basepoints/gcc-14~2762 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=798c08ca4bf3681444426093263e9e6746d1c32b;p=thirdparty%2Fgcc.git ada: Strip conversions for the implementation of storage models This is necessary for unconstrained allocators with qualified expression. gcc/ada/ * gcc-interface/trans.cc (get_storage_model_access): Strip any type conversion around the node before looking into it. --- diff --git a/gcc/ada/gcc-interface/trans.cc b/gcc/ada/gcc-interface/trans.cc index b9d7c015a73d..a012271abf37 100644 --- a/gcc/ada/gcc-interface/trans.cc +++ b/gcc/ada/gcc-interface/trans.cc @@ -4400,6 +4400,11 @@ get_storage_model_access (Node_Id gnat_node, Entity_Id *gnat_smo) return; } + /* Now strip any type conversion from GNAT_NODE. */ + if (Nkind (gnat_node) == N_Type_Conversion + || Nkind (gnat_node) == N_Unchecked_Type_Conversion) + gnat_node = Expression (gnat_node); + while (node_is_component (gnat_node)) gnat_node = Prefix (gnat_node);