1@c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2@c 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. 3@c This is part of the GCC manual. 4@c For copying conditions, see the file gcc.texi. 5 6@ignore 7@c man begin INCLUDE 8@include gcc-vers.texi --- 172 unchanged lines hidden (view full) --- 181-fno-implicit-templates @gol 182-fno-implicit-inline-templates @gol 183-fno-implement-inlines -fms-extensions @gol 184-fno-nonansi-builtins -fno-operator-names @gol 185-fno-optional-diags -fpermissive @gol 186-frepo -fno-rtti -fstats -ftemplate-depth-@var{n} @gol 187-fno-threadsafe-statics -fuse-cxa-atexit -fno-weak -nostdinc++ @gol 188-fno-default-inline -fvisibility-inlines-hidden @gol |
189-fvisibility-ms-compat @gol |
190-Wabi -Wctor-dtor-privacy @gol 191-Wnon-virtual-dtor -Wreorder @gol 192-Weffc++ -Wno-deprecated -Wstrict-null-sentinel @gol 193-Wno-non-template-friend -Wold-style-cast @gol 194-Woverloaded-virtual -Wno-pmf-conversions @gol 195-Wsign-promo} 196 197@item Language Independent Options --- 1424 unchanged lines hidden (view full) --- 1622compare pointers to a particular inline method, you might mark it as 1623having default visibility. Marking the enclosing class with explicit 1624visibility will have no effect. 1625 1626Explicitly instantiated inline methods are unaffected by this option 1627as their linkage might otherwise cross a shared library boundary. 1628@xref{Template Instantiation}. 1629 |
1630@item -fvisibility-ms-compat 1631@opindex fvisibility-ms-compat 1632This flag attempts to use visibility settings to make GCC's C++ 1633linkage model compatible with that of Microsoft Visual Studio. 1634 1635The flag makes these changes to GCC's linkage model: 1636 1637@enumerate 1638@item 1639It sets the default visibility to @code{hidden}, like 1640@option{-fvisibility=hidden}. 1641 1642@item 1643Types, but not their members, are not hidden by default. 1644 1645@item 1646The One Definition Rule is relaxed for types without explicit 1647visibility specifications which are defined in more than one different 1648shared object: those declarations are permitted if they would have 1649been permitted when this option was not used. 1650@end enumerate 1651 1652In new code it is better to use @option{-fvisibility=hidden} and 1653export those classes which are intended to be externally visible. 1654Unfortunately it is possible for code to rely, perhaps accidentally, 1655on the Visual Studio behaviour. 1656 1657Among the consequences of these changes are that static data members 1658of the same type with the same name but defined in different shared 1659objects will be different, so changing one will not change the other; 1660and that pointers to function members defined in different shared 1661objects may not compare equal. When this flag is given, it is a 1662violation of the ODR to define types with the same name differently. 1663 |
1664@item -fno-weak 1665@opindex fno-weak 1666Do not use weak symbol support, even if it is provided by the linker. 1667By default, G++ will use weak symbols if they are available. This 1668option exists only for testing, and should not be used by end-users; 1669it will result in inferior code and has no benefits. This option may 1670be removed in a future release of G++. 1671 --- 12369 unchanged lines hidden --- |