Go to file
Niall Douglas d7afec4b07 re PR c++/9283 (__attribute__((visibility ("hidden"))) not supported for class/struct)
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
2004-07-25 22:52:22 +00:00
boehm-gc os-dep.c (GC_task_self): Declare as static and remove the second declaration. 2004-07-06 20:08:14 -07:00
config Makefile.tpl (touch-stage[+id+]): New. 2004-06-09 08:17:32 +00:00
contrib * analyze_brprob: Fix comments. More consistent output format. 2004-07-16 12:58:00 -06:00
fastjar Makefile.am: Rename jar binary to fastjar. 2004-07-23 23:34:17 +00:00
gcc re PR c++/9283 (__attribute__((visibility ("hidden"))) not supported for class/struct) 2004-07-25 22:52:22 +00:00
include * ansidecl.h (ARG_UNUSED): New Macro. 2004-07-24 19:49:27 +02:00
INSTALL
intl Makefile.in (top_builddir): Define to . 2004-05-25 20:16:56 +00:00
libada * Makefile.in: Add .NOEXPORT. 2004-05-25 19:37:02 +00:00
libbanshee * engine/util.c (vfail): Remove unnecessary sync, fsync, and fflush. 2004-07-07 18:08:49 -07:00
libcpp internal.h (xnew, [...]): Remove. 2004-07-24 20:04:42 +02:00
libffi ffi.c (ffi_prep_args): Fix C aliasing violation. 2004-07-11 11:45:39 +00:00
libgfortran configure.ac: Add check for LFS support. 2004-07-18 12:46:39 +00:00
libiberty * lrealpath.c (lrealpath): Add _WIN32 support. 2004-06-29 11:37:20 +00:00
libjava Makefile.am: Add gnu/java/security/action/GetPropertyAction.java and... 2004-07-24 17:43:45 +01:00
libmudflap * whitespace tweak 2004-07-21 19:14:28 +00:00
libobjc thr.c (__objc_thread_detach_function): Do not mark as volatile but instead use the attribute noreturn. 2004-07-22 15:20:08 -07:00
libstdc++-v3 Daily bump. 2004-07-25 00:16:15 +00:00
maintainer-scripts gcc_release: Revert yesterday's change. 2004-07-16 18:37:05 +00:00
zlib configure.ac: New name of configure.in. 2004-06-15 14:47:55 +00:00
.cvsignore
ABOUT-NLS
ChangeLog gcc_release: Revert yesterday's change. 2004-07-16 18:37:05 +00:00
ChangeLog.tree-ssa Merge tree-ssa-20020619-branch into mainline. 2004-05-13 02:41:07 -04:00
compile compile: New file imported from automake. 2004-03-21 18:38:56 +00:00
config-ml.in config-ml.in: Pass FFLAGS and ADAFLAGS for multilibs, handle F77 like CC. 2004-05-30 23:54:22 +02:00
config.guess Index: ChangeLog 2004-02-20 16:15:55 +00:00
config.if
config.rpath
config.sub Index: ChangeLog 2004-02-20 16:15:55 +00:00
configure configure.in: Build libmudflap by default on FreeBSD. 2004-07-09 22:57:08 +00:00
configure.in configure.in: Build libmudflap by default on FreeBSD. 2004-07-09 22:57:08 +00:00
COPYING
COPYING.LIB
depcomp Merge tree-ssa-20020619-branch into mainline. 2004-05-13 02:41:07 -04:00
install-sh
libtool.m4 re PR bootstrap/15120 ([3.3 only] [libtool bug] hidden symbol `__sdivsi3_i4' is referenced by DSO) 2004-05-18 10:11:38 +00:00
ltcf-c.sh Patch from Robert Millan. 2004-04-26 23:14:30 -07:00
ltcf-cxx.sh Patch from Robert Millan. 2004-04-26 23:14:30 -07:00
ltcf-gcj.sh Patch from Robert Millan. 2004-04-26 23:14:30 -07:00
ltconfig Patch from Robert Millan. 2004-04-26 23:14:30 -07:00
ltmain.sh
MAINTAINERS * MAINTAINERS: Add myself to write-after-approval. 2004-07-16 16:56:10 +02:00
Makefile.def Makefile.def (host_modules): Set bootstrap=true for flex. 2004-07-08 19:45:01 +00:00
Makefile.in re PR target/16344 (libstdc++'s PCH built by profiledbootstrap does not work with the built compiler) 2004-07-08 21:49:44 +00:00
Makefile.tpl re PR target/16344 (libstdc++'s PCH built by profiledbootstrap does not work with the built compiler) 2004-07-08 21:49:44 +00:00
missing
mkdep
mkinstalldirs
move-if-change
README
README.SCO
symlink-tree
ylwrap

This directory contains the GNU Compiler Collection (GCC).

The GNU Compiler Collection is free software.  See the file COPYING
for copying permission.  The manuals, and some of the runtime
libraries, are under different terms; see the individual source files
for details.

The directory INSTALL contains copies of the installation information
as HTML and plain text.  The source of this information is
gcc/doc/install.texi.  The installation information includes details
of what is included in the GCC sources and what files GCC installs.

See the file gcc/doc/gcc.texi (together with other files that it
includes) for usage and porting information.  An online readable
version of the manual is in the files gcc/doc/gcc.info*.

See http://gcc.gnu.org/bugs.html for how to report bugs usefully.