diff options
author | Tristan Gingold <gingold@adacore.com> | 2016-10-11 10:11:49 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2016-10-11 10:11:49 +0000 |
commit | abb3ea16fa70565acae570e7410eb6702cf631ed (patch) | |
tree | a433e2ca87289f9ffbd9dc0bd239fe55664fd83b /gcc/ada/gcc-interface/decl.c | |
parent | 87e25aac8e807189725dccbfd7569b0af21f577a (diff) | |
download | gcc-abb3ea16fa70565acae570e7410eb6702cf631ed.zip gcc-abb3ea16fa70565acae570e7410eb6702cf631ed.tar.gz gcc-abb3ea16fa70565acae570e7410eb6702cf631ed.tar.bz2 |
fe.h (Constant_Value): Declare.
* fe.h (Constant_Value): Declare.
* gcc-interface/decl.c (compile_time_known_address_p): Also consider
references to constants.
From-SVN: r240977
Diffstat (limited to 'gcc/ada/gcc-interface/decl.c')
-rw-r--r-- | gcc/ada/gcc-interface/decl.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/gcc/ada/gcc-interface/decl.c b/gcc/ada/gcc-interface/decl.c index 0d45392..58d6625 100644 --- a/gcc/ada/gcc-interface/decl.c +++ b/gcc/ada/gcc-interface/decl.c @@ -6333,6 +6333,15 @@ array_type_has_nonaliased_component (tree gnu_type, Entity_Id gnat_type) static bool compile_time_known_address_p (Node_Id gnat_address) { + /* Handle reference to a constant. */ + if (Is_Entity_Name (gnat_address) + && Ekind (Entity (gnat_address)) == E_Constant) + { + gnat_address = Constant_Value (Entity (gnat_address)); + if (No (gnat_address)) + return false; + } + /* Catch System'To_Address. */ if (Nkind (gnat_address) == N_Unchecked_Type_Conversion) gnat_address = Expression (gnat_address); |