From 25b5b4657bb687964f54f3ec3f6aece9645b22c2 Mon Sep 17 00:00:00 2001 From: Mark Mitchell Date: Mon, 11 Jun 2001 21:29:39 +0000 Subject: [PATCH] c-tree.texi: Update information about flag_honor_std. * doc/c-tree.texi: Update information about flag_honor_std. * doc/install.texi: Note that binutils is required on HPUX 11. * doc/invoke.texi (-fhonor-std): Note that -fno-honor-std is now the default. * config/mips/abi64.h (RETURN_IN_MEMORY): Fix handling of variable-sized types. * lang-options.h: Emit documentation for -fno-honor-std, not -fhonor-std. From-SVN: r43226 --- gcc/ChangeLog | 10 ++++++++++ gcc/config/mips/abi64.h | 15 ++++++++++----- gcc/cp/ChangeLog | 5 +++++ gcc/cp/lang-options.h | 6 +++--- gcc/doc/c-tree.texi | 11 ++++------- gcc/doc/install.texi | 8 +++----- gcc/doc/invoke.texi | 21 +++++++++++++-------- 7 files changed, 48 insertions(+), 28 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 340322fe4e6..a382d5176d4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +2001-06-11 Mark Mitchell + + * doc/c-tree.texi: Update information about flag_honor_std. + * doc/install.texi: Note that binutils is required on HPUX 11. + * doc/invoke.texi (-fhonor-std): Note that -fno-honor-std is + now the default. + + * config/mips/abi64.h (RETURN_IN_MEMORY): Fix handling of + variable-sized types. + 2001-06-11 Joseph S. Myers * doc/md.texi: Use TeX dashes and quotes. diff --git a/gcc/config/mips/abi64.h b/gcc/config/mips/abi64.h index 835f853411f..5be5f51b109 100644 --- a/gcc/config/mips/abi64.h +++ b/gcc/config/mips/abi64.h @@ -86,12 +86,17 @@ Boston, MA 02111-1307, USA. */ || GET_MODE_CLASS (MODE) == MODE_INT))) \ ? downward : upward)) +/* Under the old (i.e., 32 and O64 ABIs) all BLKmode objects are + returned in memory. Under the new (N32 and 64-bit MIPS ABIs) small + structures are returned in a register. Objects with varying size + must still be returned in memory, of course. */ #undef RETURN_IN_MEMORY -#define RETURN_IN_MEMORY(TYPE) \ - ((mips_abi == ABI_32 || mips_abi == ABI_O64) \ - ? TYPE_MODE (TYPE) == BLKmode \ - : (int_size_in_bytes (TYPE) \ - > (2 * UNITS_PER_WORD))) +#define RETURN_IN_MEMORY(TYPE) \ + ((mips_abi == ABI_32 || mips_abi == ABI_O64) \ + ? TYPE_MODE (TYPE) == BLKmode \ + : ((int_size_in_bytes (TYPE) \ + > (2 * UNITS_PER_WORD)) \ + || (int_size_in_bytes (TYPE) == -1))) #ifdef ANSI_PROTOTYPES union tree_node; diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 02fb550c69a..8d84da69c61 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2001-06-11 Mark Mitchell + + * lang-options.h: Emit documentation for -fno-honor-std, not + -fhonor-std. + 2001-06-10 Alexandre Oliva * typeck.c (get_member_function_from_ptrfunc) [vbit_in_delta]: diff --git a/gcc/cp/lang-options.h b/gcc/cp/lang-options.h index d0232483264..172461a9506 100644 --- a/gcc/cp/lang-options.h +++ b/gcc/cp/lang-options.h @@ -64,9 +64,9 @@ DEFINE_LANG_NAME ("C++") N_("Do not recognise GNU defined keywords") }, { "-fhandle-exceptions", "" }, { "-fno-handle-exceptions", "" }, - { "-fhonor-std", - N_("Treat the namespace `std' as a normal namespace") }, - { "-fno-honor-std", "" }, + { "-fhonor-std", "" }, + { "-fno-honor-std", + N_("Do not treat the namespace `std' as a normal namespace") }, { "-fhuge-objects", N_("Enable support for huge objects") }, { "-fno-huge-objects", "" }, diff --git a/gcc/doc/c-tree.texi b/gcc/doc/c-tree.texi index 7fe7b4c4e88..d5a786bf124 100644 --- a/gcc/doc/c-tree.texi +++ b/gcc/doc/c-tree.texi @@ -619,16 +619,13 @@ representation, the global namespace is no different from any other namespace. Thus, in what follows, we describe namespaces generally, rather than the global namespace in particular. -The @code{::std} namespace, however, @emph{is} special, unless -@code{flag_honor_std} is set. This variable is set by the use -@option{-fhonor-std} (or an option that implies it, like -@option{-fnew-abi}), when invoking G++. When @code{flag_honor_std} is -set, the @code{std} namespace is just like any other namespace. When +The @code{::std} namespace, however, @emph{is} special when +@code{flag_honor_std} is not set. When @code{flag_honor_std} is set, +the @code{std} namespace is just like any other namespace. When @code{flag_honor_std} is not set, however, the @code{::std} namespace is treated as a synonym for the global namespace, thereby allowing users to write code that will work with compilers that put the standard library -in the @code{::std} namespace, even though the library supplied with G++ -does not do so, as of GCC 2.95. The @code{std} namespace is represented +in the @code{::std} namespace. The @code{std} namespace is represented by the variable @code{std_node}. Although @code{std_node} is a @code{NAMESPACE_DECL}, it does not have all the fields required of a real namespace, and the macros and functions described here do not work, diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi index 467085134b3..3c491ccc0b4 100644 --- a/gcc/doc/install.texi +++ b/gcc/doc/install.texi @@ -33,7 +33,7 @@ @settitle Installing GCC: Binaries @end ifset -@comment $Id: install.texi,v 1.17 2001/06/11 01:03:11 aoliva Exp $ +@comment $Id: install.texi,v 1.18 2001/06/11 07:26:33 jsm28 Exp $ @c Copyright (C) 2001 Free Software Foundation, Inc. @c *** Converted to texinfo by Dean Wakerley, dean@wakerley.com @@ -1726,10 +1726,8 @@ bootstrap}. @end html @heading @anchor{hppa*-hp-hpux11}hppa*-hp-hpux11 -GCC 2.95.2 does not support HP-UX 11, and it cannot generate 64-bit -object files. Current (as of late 2000) snapshots and GCC 3.0 do support -HP-UX 11. - +GCC 3.0 supports HP-UX 11. You must use GNU binutils 2.11 or above on +this platform. @html

diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 04e0f329b3e..eeecbee53f7 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -174,7 +174,7 @@ in the following sections. -fno-elide-constructors @gol -fno-enforce-eh-specs -fexternal-templates @gol -falt-external-templates @gol --ffor-scope -fno-for-scope -fno-gnu-keywords -fhonor-std @gol +-ffor-scope -fno-for-scope -fno-gnu-keywords -fno-honor-std @gol -fno-implicit-templates @gol -fno-implicit-inline-templates @gol -fno-implement-inlines -fms-extensions @gol @@ -1355,13 +1355,18 @@ Do not recognize @code{typeof} as a keyword, so that code can use this word as an identifier. You can use the keyword @code{__typeof__} instead. @samp{-ansi} implies @samp{-fno-gnu-keywords}. -@item -fhonor-std -@opindex fhonor-std -Treat the @code{namespace std} as a namespace, instead of ignoring -it. For compatibility with earlier versions of g++, the compiler will, -by default, ignore @code{namespace-declarations}, -@code{using-declarations}, @code{using-directives}, and -@code{namespace-names}, if they involve @code{std}. +@item -fno-honor-std +@opindex fno-honor-std +Ignore @code{namespace std}, instead of treating it as a real namespace. +With this switch, the compiler will ignore +@code{namespace-declarations}, @code{using-declarations}, +@code{using-directives}, and @code{namespace-names}, if they involve +@code{std}. + +This option is only useful if you have manually compiled the C++ +run-time library with the same switch. Otherwise, your programs will +not link. The use of this option is not recommended, and the option may +be removed from a future version of G++. @item -fno-implicit-templates @opindex fno-implicit-templates -- 2.30.2