diff options
author | Rafael Avila de Espindola <espindola@google.com> | 2009-10-28 20:44:47 +0000 |
---|---|---|
committer | Rafael Espindola <espindola@gcc.gnu.org> | 2009-10-28 20:44:47 +0000 |
commit | 4d62b56ae81b7c0b86b35aeef05110bbbe4186cf (patch) | |
tree | b9befde460bd5590ca8a9f5998d9ff8a8ad555b4 /gcc | |
parent | da18ea94d9c98c5a7d429e3615309fe80f8edbaf (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/dbxout.c | 3 | ||||
-rw-r--r-- | gcc/dwarf2out.c | 3 | ||||
-rw-r--r-- | gcc/fortran/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/fortran/trans-common.c | 5 |
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 |