aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/gcc-interface/trans.c
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2020-12-07 10:40:23 +0100
committerEric Botcazou <ebotcazou@adacore.com>2020-12-07 10:40:23 +0100
commit6a1e04b2f0c28d46e193d30aac00a32ba850bf0a (patch)
tree8338a2aa740d9909f6dd700738458c64db049672 /gcc/ada/gcc-interface/trans.c
parent6fb8da750ff53faec52aaa6cda31fbc510219926 (diff)
downloadgcc-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.c4
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. */