I noticed that rs6000.c rs6000_assemble_visibility has two of the
visibility keywords swapped. This only is used for ELF with dot
symbols, which are deprecated, so any problems were not apparent, but
it should be fixed.
The function defines the keywords as:
static const char * const visibility_types[] = {
NULL, "internal", "hidden", "protected"
};
It was added in that order by rth in 2002
https://gcc.gnu.org/viewcvs/gcc/trunk/gcc/config/rs6000/rs6000.c?r1=59559&r2=59558&pathrev=59559
While coretypes.h defines
enum symbol_visibility
{
VISIBILITY_DEFAULT,
VISIBILITY_PROTECTED,
VISIBILITY_HIDDEN,
VISIBILITY_INTERNAL
};
and
varasm.c default_assemble_visibility similarly defines
static const char * const visibility_types[] = {
NULL, "protected", "hidden", "internal"
};
Also another set of lines are too long by GCC formatting standards.
Bootstrapped on powerpc-ibm-aix7.1.0.0.
Thanks, David
* config/rs6000/rs6000.c (rs6000_assemble_visibility): Swap "internal"
and "protected" in visibility types.
(rs6000_xcoff_declare_function_name): Fix formatting.
(rs6000_xcoff_declare_object_name): Fix formatting.
Index: rs6000.c
===================================================================
--- rs6000.c (revision 241359)
+++ rs6000.c (working copy)
@@ -22676,7 +22676,7 @@ rs6000_assemble_visibility (tree decl, int vis)
&& TREE_CODE (decl) == FUNCTION_DECL)
{
static const char * const visibility_types[] = {
- NULL, "internal", "hidden", "protected"
+ NULL, "protected", "hidden", "internal"
};
const char *name, *type;
@@ -35248,7 +35248,8 @@ rs6000_xcoff_declare_function_name (FILE *file, co
fputs (TARGET_32BIT ? "[DS]\n" : "[DS],3\n", file);
RS6000_OUTPUT_BASENAME (file, buffer);
fputs (":\n", file);
- symtab_node::get (decl)->call_for_symbol_and_aliases
(rs6000_declare_alias, &data, true);
+ symtab_node::get (decl)->call_for_symbol_and_aliases (rs6000_declare_alias,
+ &data, true);
fputs (TARGET_32BIT ? "\t.long ." : "\t.llong .", file);
RS6000_OUTPUT_BASENAME (file, buffer);
fputs (", TOC[tc0], 0\n", file);
@@ -35258,7 +35259,8 @@ rs6000_xcoff_declare_function_name (FILE *file, co
RS6000_OUTPUT_BASENAME (file, buffer);
fputs (":\n", file);
data.function_descriptor = true;
- symtab_node::get (decl)->call_for_symbol_and_aliases
(rs6000_declare_alias, &data, true);
+ symtab_node::get (decl)->call_for_symbol_and_aliases (rs6000_declare_alias,
+ &data, true);
if (!DECL_IGNORED_P (decl))
{
if (write_symbols == DBX_DEBUG || write_symbols == XCOFF_DEBUG)
@@ -35282,7 +35284,8 @@ rs6000_xcoff_declare_object_name (FILE *file, cons
struct declare_alias_data data = {file, false};
RS6000_OUTPUT_BASENAME (file, name);
fputs (":\n", file);
- symtab_node::get (decl)->call_for_symbol_and_aliases
(rs6000_declare_alias, &data, true);
+ symtab_node::get (decl)->call_for_symbol_and_aliases (rs6000_declare_alias,
+ &data, true);
}
/* Overide the default 'SYMBOL-.' syntax with AIX compatible 'SYMBOL-$'. */