diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2020-12-07 10:40:23 +0100 |
---|---|---|
committer | Eric Botcazou <ebotcazou@adacore.com> | 2020-12-07 10:40:23 +0100 |
commit | 6a1e04b2f0c28d46e193d30aac00a32ba850bf0a (patch) | |
tree | 8338a2aa740d9909f6dd700738458c64db049672 /gcc/ada/gcc-interface/trans.c | |
parent | 6fb8da750ff53faec52aaa6cda31fbc510219926 (diff) | |
download | gcc-6a1e04b2f0c28d46e193d30aac00a32ba850bf0a.zip gcc-6a1e04b2f0c28d46e193d30aac00a32ba850bf0a.tar.gz gcc-6a1e04b2f0c28d46e193d30aac00a32ba850bf0a.tar.bz2 |
Fix assembler name collision
Gigi uses a dummy global variable to register global types for debug
info purposes and its name can now collide with user variables.
gcc/ada/ChangeLog:
* gcc-interface/trans.c (lvalue_for_aggregate_p): Also return true
for return statements.
* gcc-interface/utils.c (gnat_write_global_declarations): Use the
maximum index for the dummy object to avoid a name collision.
Diffstat (limited to 'gcc/ada/gcc-interface/trans.c')
-rw-r--r-- | gcc/ada/gcc-interface/trans.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/ada/gcc-interface/trans.c b/gcc/ada/gcc-interface/trans.c index 07e5a28..bf8289b 100644 --- a/gcc/ada/gcc-interface/trans.c +++ b/gcc/ada/gcc-interface/trans.c @@ -970,6 +970,10 @@ lvalue_for_aggregate_p (Node_Id gnat_node, tree gnu_type) /* Even if the parameter is by copy, prefer an lvalue. */ return true; + case N_Simple_Return_Statement: + /* Likewise for a return value. */ + return true; + case N_Indexed_Component: case N_Selected_Component: /* If an elementary component is used, take it from the constant. */ |