aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRafael Avila de Espindola <espindola@google.com>2009-10-28 20:44:47 +0000
committerRafael Espindola <espindola@gcc.gnu.org>2009-10-28 20:44:47 +0000
commit4d62b56ae81b7c0b86b35aeef05110bbbe4186cf (patch)
treeb9befde460bd5590ca8a9f5998d9ff8a8ad555b4 /gcc
parentda18ea94d9c98c5a7d429e3615309fe80f8edbaf (diff)
downloadgcc-4d62b56ae81b7c0b86b35aeef05110bbbe4186cf.zip
gcc-4d62b56ae81b7c0b86b35aeef05110bbbe4186cf.tar.gz
gcc-4d62b56ae81b7c0b86b35aeef05110bbbe4186cf.tar.bz2
trans-common.c (create_common): Set TREE_PUBLIC to false on fake variables.
2009-10-28 Rafael Avila de Espindola <espindola@google.com> * trans-common.c (create_common): Set TREE_PUBLIC to false on fake variables. 2009-10-28 Rafael Avila de Espindola <espindola@google.com> * dbxout.c (dbxout_common_check): Accept non public trees. * dwarf2out.c (fortran_common): Accept non public trees. From-SVN: r153685
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/dbxout.c3
-rw-r--r--gcc/dwarf2out.c3
-rw-r--r--gcc/fortran/ChangeLog5
-rw-r--r--gcc/fortran/trans-common.c5
5 files changed, 15 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5e75fff..83efb79 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2009-10-28 Rafael Avila de Espindola <espindola@google.com>
+ * dbxout.c (dbxout_common_check): Accept non public trees.
+ * dwarf2out.c (fortran_common): Accept non public trees.
+
+2009-10-28 Rafael Avila de Espindola <espindola@google.com>
+
* common.opt (fuse-linker-plugin): New option.
* gcc.c (LINK_COMMAND_SPEC, main): Rename use-linker-plugin to
fuse-linker-plugin.
diff --git a/gcc/dbxout.c b/gcc/dbxout.c
index b5688d9..0bf5e3c 100644
--- a/gcc/dbxout.c
+++ b/gcc/dbxout.c
@@ -3189,7 +3189,7 @@ dbxout_common_check (tree decl, int *value)
rtx sym_addr;
const char *name = NULL;
- /* If the decl isn't a VAR_DECL, or if it isn't public or static, or if
+ /* If the decl isn't a VAR_DECL, or if it isn't static, or if
it does not have a value (the offset into the common area), or if it
is thread local (as opposed to global) then it isn't common, and shouldn't
be handled as such.
@@ -3198,7 +3198,6 @@ dbxout_common_check (tree decl, int *value)
for thread-local symbols. Can be handled via same mechanism as used
in dwarf2out.c. */
if (TREE_CODE (decl) != VAR_DECL
- || !TREE_PUBLIC(decl)
|| !TREE_STATIC(decl)
|| !DECL_HAS_VALUE_EXPR_P(decl)
|| DECL_THREAD_LOCAL_P (decl)
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index 129ba7d..732b6a6 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -15621,12 +15621,11 @@ fortran_common (tree decl, HOST_WIDE_INT *value)
tree offset;
int volatilep = 0, unsignedp = 0;
- /* If the decl isn't a VAR_DECL, or if it isn't public or static, or if
+ /* If the decl isn't a VAR_DECL, or if it isn't static, or if
it does not have a value (the offset into the common area), or if it
is thread local (as opposed to global) then it isn't common, and shouldn't
be handled as such. */
if (TREE_CODE (decl) != VAR_DECL
- || !TREE_PUBLIC (decl)
|| !TREE_STATIC (decl)
|| !DECL_HAS_VALUE_EXPR_P (decl)
|| !is_fortran ())
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 8c333d8..712c5a0 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,8 @@
+2009-10-28 Rafael Avila de Espindola <espindola@google.com>
+
+ * trans-common.c (create_common): Set TREE_PUBLIC to false on
+ fake variables.
+
2009-10-26 Janus Weil <janus@gcc.gnu.org>
PR fortran/41714
diff --git a/gcc/fortran/trans-common.c b/gcc/fortran/trans-common.c
index 5b1952a..1fb3c40 100644
--- a/gcc/fortran/trans-common.c
+++ b/gcc/fortran/trans-common.c
@@ -680,7 +680,6 @@ create_common (gfc_common_head *com, segment_info *head, bool saw_equiv)
var_decl = build_decl (s->sym->declared_at.lb->location,
VAR_DECL, DECL_NAME (s->field),
TREE_TYPE (s->field));
- TREE_PUBLIC (var_decl) = TREE_PUBLIC (decl);
TREE_STATIC (var_decl) = TREE_STATIC (decl);
TREE_USED (var_decl) = TREE_USED (decl);
if (s->sym->attr.use_assoc)
@@ -689,7 +688,9 @@ create_common (gfc_common_head *com, segment_info *head, bool saw_equiv)
TREE_ADDRESSABLE (var_decl) = 1;
/* This is a fake variable just for debugging purposes. */
TREE_ASM_WRITTEN (var_decl) = 1;
-
+ /* Fake variables are not visible from other translation units. */
+ TREE_PUBLIC (var_decl) = 0;
+
/* To preserve identifier names in COMMON, chain to procedure
scope unless at top level in a module definition. */
if (com