* c-common.c (disable_builtin_function): Rename variable n to
new_disabled_builtin.
* c-decl.c (duplicate_decls): Rename parameter decl to new_decl.
Rename local variable old to old_decl.
* gensupport.c (shift_output_template): Rename parameter old to src.
* simplify-rtx.c (simplify_replace_rtx): Rename parameter oldx to
old_rtx and newx to new_rtx.
From-SVN: r85175
PR c++/9283
PR c++/15000
* c-common.c (c_common_attribute_table): Allow
handle_visibility_attribute to be called for types.
(handle_visibility_attribute) When given a type, set the visibility
bits on the TYPE_NAME. When given a decl, don't set no_add_attrs
so that we can check later whether the attribute was present. Added
warning if attribute applied to non class type.
* c-decl.c (diagnose_mismatched_decls): Updated rules for merging
decls and checking that they are consistent.
* common.opt: Added -fvisibility.
* c.opt, c-opts.c: Added -fvisibility-inlines-hidden.
* c-pragma.h, c-pragma.c: Added handle_pragma_visibility().
* flags.h, tree.h: Added assorted support defines for overall patch
* opts.c: Added parsing support for -fvisibility.
* tree.c (build_decl): Set visibility for all decls to be whatever
is in force at that time.
* varasm.c (default_binds_local_p_1): Reworked logic determining
when to make a symbol locally bound.
* doc/invoke.texi: Added documentation for -fvisibility and
-fvisibility-inlines-hidden.
PR c++/15000
PR c++/9283
* class.c (check_field_decls): Apply hidden visibility if
-fvisibility-inlines-hidden and inlined unless otherwise specified
(build_vtable): Set vtable visibility to class visibility.
(check_field_decls): Default static member visibility to class
visibility.
(check_methods): Default method visibility to class visibility.
* cp-tree.h: Added CLASSTYPE_VISIBILITY and
CLASSTYPE_VISIBILITY_SPECIFIED macro.
* decl.c (duplicate_decls): New logic for merging definition decls
with declaration decls. Added ignore & warning when non default
applied to global operator new or delete.
* method.c, optimize.c, rtti.c: Added setting of VISIBILITY_SPECIFIED
wherever VISIBILITY was changed
* rtti.c (get_tinfo_decl): Set typeinfo visibility to class
visibility.
(tinfo_base_init): Set typeinfo name visibility to class visibility.
PR c++/9283
PR c++/15000
* gcc.dg/visibility-9.c, gcc.dg/visibility-a.c: New tests.
* g++.dg/ext/visibility/: New directory.
* g++.dg/ext/visibility-1.C, g++.dg/ext/visibility-2.C
g++.dg/ext/visibility-3.C, g++.dg/ext/visibility-4.C,
g++.dg/ext/visibility-5.C, g++.dg/ext/visibility-6.C,
g++.dg/ext/visibility-7.C: Move to g++.dg/ext/visibility/.
* g++.dg/ext/visibility/fvisibility.C,
g++.dg/ext/visibility/fvisibility-inlines-hidden.C,
g++.dg/ext/visibility/fvisibility-override1.C
g++.dg/ext/visibility/fvisibility-override2.C
g++.dg/ext/visibility/memfuncts.C
g++.dg/ext/visibility/noPLT.C
g++.dg/ext/visibility/pragma.C
g++.dg/ext/visibility/pragma-override1.C
g++.dg/ext/visibility/pragma-override2.C
g++.dg/ext/visibility/staticmemfuncts.C
g++.dg/ext/visibility/virtual.C: New tests.
Co-Authored-By: Brian Ryner <bryner@brianryner.com>
From-SVN: r85167
PR c/15360
* c-decl.c (start_decl): Do not set DECL_EXTERNAL for initialized
declarations until after calling pushdecl.
(grokdeclarator): Set DECL_EXTERNAL for variables based on use of
"extern" and not on whether the declaration is initialized.
testsuite:
* gcc.dg/pr15360-1.c: New test.
From-SVN: r85156
* gcc.dg/pragma-align-2.c: New test.
* gcc.dg/pragma-init-fini.c: New test.
* gcc.dg/pragma-align.c: Change from compile to run. Run on Solaris
targets.
From-SVN: r85154
* c-typeck.c (digest_init): Don't allow arrays of signed or
unsigned variants of wchar_t to be initialized by wide string
constants. Do allow arrays of enumerated types compatible with
wchar_t to be initialized by wide string constants. Refine tests
distinguishing wide and narrow strings and arrays. Give specific
error for arrays of other integer types initialized by string
constants.
(output_init_element, process_init_element): Check for
INTEGRAL_TYPE_P rather than just for INTEGER_TYPE when
initializing with string constants.
testsuite:
* gcc.dg/init-string-2.c: New test.
From-SVN: r85146
* c-decl.c (start_function): Set DECL_ARTIFICIAL and DECL_IGNORED_P
on the RESULT_DECL.
* cgraphunit.c (cgraph_build_static_cdtor): Likewise.
* integrate.c (copy_decl_for_inlining): Copy DECL_ARTIFICIAL and
DECL_IGNORED_P to new decl.
ada/
* utils.c (create_subprog_decl): Set DECL_ARTIFICIAL and
DECL_IGNORED_P on RESULT_DECL.
cp/
* decl.c (start_preparsed_function): Set DECL_ARTIFICIAL and
DECL_IGNORED_P on RESULT_DECL.
* semantics.c (finalize_nrv): Copy them too.
fortran/
* trans-decl.c (gfc_build_function_decl): Set DECL_ARTIFICIAL
and DECL_IGNORED_P on RESULT_DECL.
(gfc_generate_constructors): Likewise.
java/
* decl.c (build_result_decl): Set DECL_ARTIFICIAL and DECL_IGNORED_P.
From-SVN: r85145
2004-07-24 Alexander Kabaev <kan@freebsd.org>
Zack Weinberg <zack@codesourcery.com
PR 16684
* c-decl.c (diagnose_mismatched_decls): Don't issue a
redundant-declaration warning the first time a builtin is
declared explicitly.
testsuite:
* gcc.dg/Wredundant-decls-1.c: New test case.
From-SVN: r85140
2004-07-24 Roman Zippel <zippel@linux-m68k.org>
* config/m68k/m68k.c (output_scc_di): Fix coding style.
(symbolic_operand): Fix prototype.
* config/m68k/m68k.h (PREDICATE_CODES): Add symbolic_operand.
* config/m68k/m68k.md: Add constants for registers a0 and sp and
use them, change from the "{...}" syntax to the simpler {...}
syntax.
(*cfv4_extendqisi2): Fix destination predicate.
* config/m68k/m68k-protos.h: Remove various declarations also
generated via PREDICATE_CODES.
From-SVN: r85115
* gimplify.c (gimplify_compound_lval): Check for no handled
operations, rather than checking for explicit list of nodes.
(is_gimple_addr_expr_arg_or_indirect): New function.
(gimplify_addr_expr): Call it and handle INDIRECT_REF; remove
redundant setting of TREE_INVARIANT.
(gimplify_expr, case VIEW_CONVERT_EXPR): Call gimplify_compound_lval.
* tree-gimple.c (is_gimple_addr_expr_arg): Call handled_component_p.
From-SVN: r85110