Commit 1dbb6023 by Nathan Sidwell Committed by Nathan Sidwell

Kill -fhonor-std.

.:	Kill -fhonor-std.
	* doc/c-tree.texi (Namespaces): Remove std & -fhonor-std
	interaction.
	* doc/invoke.texi (C++ Dialect Options): Remove -fno-honor-std.
cp:
	Kill -fhonor-std.
	* NEWS: Document.
	* cp-tree.h (flag_honor_std): Remove.
	(CPTI_FAKE_STD): Remove.
	(std_node): Remove comment about it being NULL.
	(fake_std_node): Remove.
	* decl.c (in_fake_std): Remove.
	(walk_namespaces_r): Remove fake_std_node check.
	(push_namespace): Remove in_fake_std code.
	(pop_namespace): Likewise.
	(lookup_name_real): Remove fake_std_node check.
	(init_decl_processing): Always create std_node. Always add
	std:: things there.
	(builtin_function): Always put non '_' fns in std.
	* decl2.c (flag_honor_std): Remove.
	(lang_f_options): Remove honor-std.
	(unsupported_options): Add honor-std.
	(set_decl_namespace): Remove fake_std_node check.
	(validate_nonmember_using_decl): Likewise.
	(do_using_directive): Likewise.
	(handle_class_head): Likewise.
	* dump.c (cp_dump_tree): Likewise.
	* except.c (init_exception_processing): Adjust.
	* init.c (build_member_call): Remove fake_std_node check.
	(build_offset_ref): Likewise.
	* lang-options.h: Remove -fhonor-std, -fno-honor-std.
	* rtti.c (init_rtti_processing): Adjust.
testsuite:
	Kill -fhonor-std.
	* g++.old-deja/g++.ns/ns14.C: Remove special options.
	* g++.old-deja/g++.other/std1.C: Likewise.
	* g++.old-deja/g++.robertl/eb133.C: Likewise. Add using directive.

From-SVN: r44569
parent d6b6ba29
2001-08-02 Nathan Sidwell <nathan@codesourcery.com>
Kill -fhonor-std.
* doc/c-tree.texi (Namespaces): Remove std & -fhonor-std
interaction.
* doc/invoke.texi (C++ Dialect Options): Remove -fno-honor-std.
2001-08-02 Richard Sandiford <rsandifo@redhat.com> 2001-08-02 Richard Sandiford <rsandifo@redhat.com>
* mips.md (movdicc): Make conditional on TARGET_64BIT. Likewise * mips.md (movdicc): Make conditional on TARGET_64BIT. Likewise
......
2001-08-02 Nathan Sidwell <nathan@codesourcery.com>
Kill -fhonor-std.
* NEWS: Document.
* cp-tree.h (flag_honor_std): Remove.
(CPTI_FAKE_STD): Remove.
(std_node): Remove comment about it being NULL.
(fake_std_node): Remove.
* decl.c (in_fake_std): Remove.
(walk_namespaces_r): Remove fake_std_node check.
(push_namespace): Remove in_fake_std code.
(pop_namespace): Likewise.
(lookup_name_real): Remove fake_std_node check.
(init_decl_processing): Always create std_node. Always add
std:: things there.
(builtin_function): Always put non '_' fns in std.
* decl2.c (flag_honor_std): Remove.
(lang_f_options): Remove honor-std.
(unsupported_options): Add honor-std.
(set_decl_namespace): Remove fake_std_node check.
(validate_nonmember_using_decl): Likewise.
(do_using_directive): Likewise.
(handle_class_head): Likewise.
* dump.c (cp_dump_tree): Likewise.
* except.c (init_exception_processing): Adjust.
* init.c (build_member_call): Remove fake_std_node check.
(build_offset_ref): Likewise.
* lang-options.h: Remove -fhonor-std, -fno-honor-std.
* rtti.c (init_rtti_processing): Adjust.
2001-07-31 Alexandre Petit-Bianco <apbianco@redhat.com> 2001-07-31 Alexandre Petit-Bianco <apbianco@redhat.com>
* tree.c (cp_tree_equal): WITH_CLEANUP_EXPR node to use its second * tree.c (cp_tree_equal): WITH_CLEANUP_EXPR node to use its second
......
*** Changes in GCC 3.1: *** Changes in GCC 3.1:
* -fhonor-std and -fno-honor-std have been removed. -fno-honor-std was
a workaround to allow std compliant code to work with the non-std
compliant libstdc++-v2. libstdc++-v3 is std compliant.
* The C++ ABI has been changed to correctly handle this code: * The C++ ABI has been changed to correctly handle this code:
struct A { struct A {
......
...@@ -209,10 +209,6 @@ Boston, MA 02111-1307, USA. */ ...@@ -209,10 +209,6 @@ Boston, MA 02111-1307, USA. */
extern int flag_use_cxa_atexit; extern int flag_use_cxa_atexit;
/* Nonzero to not ignore namespace std. */
extern int flag_honor_std;
/* Nonzero means generate 'rtti' that give run-time type information. */ /* Nonzero means generate 'rtti' that give run-time type information. */
extern int flag_rtti; extern int flag_rtti;
...@@ -526,7 +522,6 @@ enum cp_tree_index ...@@ -526,7 +522,6 @@ enum cp_tree_index
CPTI_VTBL_TYPE, CPTI_VTBL_TYPE,
CPTI_VTBL_PTR_TYPE, CPTI_VTBL_PTR_TYPE,
CPTI_STD, CPTI_STD,
CPTI_FAKE_STD,
CPTI_ABI, CPTI_ABI,
CPTI_TYPE_INFO_TYPE, CPTI_TYPE_INFO_TYPE,
CPTI_TINFO_DECL_TYPE, CPTI_TINFO_DECL_TYPE,
...@@ -613,14 +608,7 @@ extern tree cp_global_trees[CPTI_MAX]; ...@@ -613,14 +608,7 @@ extern tree cp_global_trees[CPTI_MAX];
#define unknown_type_node cp_global_trees[CPTI_UNKNOWN_TYPE] #define unknown_type_node cp_global_trees[CPTI_UNKNOWN_TYPE]
#define vtbl_type_node cp_global_trees[CPTI_VTBL_TYPE] #define vtbl_type_node cp_global_trees[CPTI_VTBL_TYPE]
#define vtbl_ptr_type_node cp_global_trees[CPTI_VTBL_PTR_TYPE] #define vtbl_ptr_type_node cp_global_trees[CPTI_VTBL_PTR_TYPE]
/* When the `std' namespace is a real namespace, this is the
corresponding NAMESPACE_DECL. When the `std' namespace is an alias
for the global namespace, this is NULL_TREE. */
#define std_node cp_global_trees[CPTI_STD] #define std_node cp_global_trees[CPTI_STD]
/* When the `std' namespace is a real namespace, this is the
ERROR_MARK_NODE. Otherwise, this is a dummy NAMESPACE_DECL that
should be treated like the global namespace. */
#define fake_std_node cp_global_trees[CPTI_FAKE_STD]
#define abi_node cp_global_trees[CPTI_ABI] #define abi_node cp_global_trees[CPTI_ABI]
#define type_info_type_node cp_global_trees[CPTI_TYPE_INFO_TYPE] #define type_info_type_node cp_global_trees[CPTI_TYPE_INFO_TYPE]
#define tinfo_decl_type cp_global_trees[CPTI_TINFO_DECL_TYPE] #define tinfo_decl_type cp_global_trees[CPTI_TINFO_DECL_TYPE]
......
...@@ -206,11 +206,6 @@ tree cp_global_trees[CPTI_MAX]; ...@@ -206,11 +206,6 @@ tree cp_global_trees[CPTI_MAX];
static tree global_type_node; static tree global_type_node;
/* If non-zero, this is the number of times we have entered the `std'
namespace when we are treating that namespace as an alias for the
global namespace. */
static int in_fake_std;
/* Expect only namespace names now. */ /* Expect only namespace names now. */
static int only_namespace_names; static int only_namespace_names;
...@@ -1794,12 +1789,6 @@ walk_namespaces_r (namespace, f, data) ...@@ -1794,12 +1789,6 @@ walk_namespaces_r (namespace, f, data)
if (TREE_CODE (current) != NAMESPACE_DECL if (TREE_CODE (current) != NAMESPACE_DECL
|| DECL_NAMESPACE_ALIAS (current)) || DECL_NAMESPACE_ALIAS (current))
continue; continue;
if (!DECL_LANG_SPECIFIC (current))
{
/* Hmm. std. */
my_friendly_assert (current == fake_std_node, 393);
continue;
}
/* We found a namespace. */ /* We found a namespace. */
result |= walk_namespaces_r (current, f, data); result |= walk_namespaces_r (current, f, data);
...@@ -2279,13 +2268,6 @@ push_namespace (name) ...@@ -2279,13 +2268,6 @@ push_namespace (name)
need_new = 0; need_new = 0;
implicit_use = 1; implicit_use = 1;
} }
else if (current_namespace == global_namespace
&& !flag_honor_std
&& name == std_identifier)
{
in_fake_std++;
return;
}
else else
{ {
/* Check whether this is an extended namespace definition. */ /* Check whether this is an extended namespace definition. */
...@@ -2331,12 +2313,7 @@ push_namespace (name) ...@@ -2331,12 +2313,7 @@ push_namespace (name)
void void
pop_namespace () pop_namespace ()
{ {
if (current_namespace == global_namespace) my_friendly_assert (current_namespace != global_namespace, 20010801);
{
my_friendly_assert (in_fake_std > 0, 980421);
in_fake_std--;
return;
}
current_namespace = CP_DECL_CONTEXT (current_namespace); current_namespace = CP_DECL_CONTEXT (current_namespace);
/* The binding level is not popped, as it might be re-opened later. */ /* The binding level is not popped, as it might be re-opened later. */
suspend_binding_level (); suspend_binding_level ();
...@@ -5892,10 +5869,6 @@ lookup_name_real (name, prefer_type, nonclass, namespaces_only) ...@@ -5892,10 +5869,6 @@ lookup_name_real (name, prefer_type, nonclass, namespaces_only)
if (looking_for_template) if (looking_for_template)
flags |= LOOKUP_TEMPLATES_EXPECTED; flags |= LOOKUP_TEMPLATES_EXPECTED;
/* std:: becomes :: for now. */
if (got_scope && got_scope == fake_std_node)
got_scope = void_type_node;
if (got_scope) if (got_scope)
type = got_scope; type = got_scope;
else if (got_object != error_mark_node) else if (got_object != error_mark_node)
...@@ -6377,20 +6350,9 @@ init_decl_processing () ...@@ -6377,20 +6350,9 @@ init_decl_processing ()
declare_namespace_level (); declare_namespace_level ();
/* Create the `std' namespace. */ /* Create the `std' namespace. */
if (flag_honor_std) push_namespace (std_identifier);
{ std_node = current_namespace;
push_namespace (std_identifier); pop_namespace ();
std_node = current_namespace;
pop_namespace ();
fake_std_node = error_mark_node;
}
else
{
fake_std_node = build_decl (NAMESPACE_DECL,
std_identifier,
void_type_node);
pushdecl (fake_std_node);
}
c_common_nodes_and_builtins (); c_common_nodes_and_builtins ();
...@@ -6492,12 +6454,10 @@ init_decl_processing () ...@@ -6492,12 +6454,10 @@ init_decl_processing ()
tree bad_alloc_type_node, newtype, deltype; tree bad_alloc_type_node, newtype, deltype;
tree ptr_ftype_sizetype; tree ptr_ftype_sizetype;
if (flag_honor_std) push_namespace (std_identifier);
push_namespace (std_identifier);
bad_alloc_type_node = xref_tag bad_alloc_type_node = xref_tag
(class_type_node, get_identifier ("bad_alloc"), 1); (class_type_node, get_identifier ("bad_alloc"), 1);
if (flag_honor_std) pop_namespace ();
pop_namespace ();
ptr_ftype_sizetype ptr_ftype_sizetype
= build_function_type (ptr_type_node, = build_function_type (ptr_type_node,
tree_cons (NULL_TREE, tree_cons (NULL_TREE,
...@@ -6666,13 +6626,13 @@ builtin_function (name, type, code, class, libname) ...@@ -6666,13 +6626,13 @@ builtin_function (name, type, code, class, libname)
/* All builtins that don't begin with an `_' should go in the `std' /* All builtins that don't begin with an `_' should go in the `std'
namespace. */ namespace. */
if (flag_honor_std && name[0] != '_') if (name[0] != '_')
{ {
push_namespace (std_identifier); push_namespace (std_identifier);
DECL_CONTEXT (decl) = std_node; DECL_CONTEXT (decl) = std_node;
} }
pushdecl (decl); pushdecl (decl);
if (flag_honor_std && name[0] != '_') if (name[0] != '_')
pop_namespace (); pop_namespace ();
/* Since `pushdecl' relies on DECL_ASSEMBLER_NAME instead of DECL_NAME, /* Since `pushdecl' relies on DECL_ASSEMBLER_NAME instead of DECL_NAME,
......
...@@ -378,10 +378,6 @@ int flag_weak = 1; ...@@ -378,10 +378,6 @@ int flag_weak = 1;
int flag_use_cxa_atexit; int flag_use_cxa_atexit;
/* Nonzero to not ignore namespace std. */
int flag_honor_std = 1;
/* 0 if we should not perform inlining. /* 0 if we should not perform inlining.
1 if we should expand functions calls inline at the tree level. 1 if we should expand functions calls inline at the tree level.
2 if we should consider *all* functions to be inline 2 if we should consider *all* functions to be inline
...@@ -448,7 +444,6 @@ lang_f_options[] = ...@@ -448,7 +444,6 @@ lang_f_options[] =
{"for-scope", &flag_new_for_scope, 2}, {"for-scope", &flag_new_for_scope, 2},
{"gnu-keywords", &flag_no_gnu_keywords, 0}, {"gnu-keywords", &flag_no_gnu_keywords, 0},
{"handle-exceptions", &flag_exceptions, 1}, {"handle-exceptions", &flag_exceptions, 1},
{"honor-std", &flag_honor_std, 1},
{"implement-inlines", &flag_implement_inlines, 1}, {"implement-inlines", &flag_implement_inlines, 1},
{"implicit-inline-templates", &flag_implicit_inline_templates, 1}, {"implicit-inline-templates", &flag_implicit_inline_templates, 1},
{"implicit-templates", &flag_implicit_templates, 1}, {"implicit-templates", &flag_implicit_templates, 1},
...@@ -473,6 +468,7 @@ static const char * const unsupported_options[] = { ...@@ -473,6 +468,7 @@ static const char * const unsupported_options[] = {
"cond-mismatch", "cond-mismatch",
"enum-int-equiv", "enum-int-equiv",
"guiding-decls", "guiding-decls",
"honor-std",
"huge-objects", "huge-objects",
"labels-ok", "labels-ok",
"new-abi", "new-abi",
...@@ -4403,8 +4399,7 @@ set_decl_namespace (decl, scope, friendp) ...@@ -4403,8 +4399,7 @@ set_decl_namespace (decl, scope, friendp)
int friendp; int friendp;
{ {
tree old; tree old;
if (scope == fake_std_node)
scope = global_namespace;
/* Get rid of namespace aliases. */ /* Get rid of namespace aliases. */
scope = ORIGINAL_NAMESPACE (scope); scope = ORIGINAL_NAMESPACE (scope);
...@@ -4913,13 +4908,7 @@ validate_nonmember_using_decl (decl, scope, name) ...@@ -4913,13 +4908,7 @@ validate_nonmember_using_decl (decl, scope, name)
tree *scope; tree *scope;
tree *name; tree *name;
{ {
if (TREE_CODE (decl) == SCOPE_REF if (TREE_CODE (decl) == SCOPE_REF)
&& TREE_OPERAND (decl, 0) == fake_std_node)
{
*scope = global_namespace;
*name = TREE_OPERAND (decl, 1);
}
else if (TREE_CODE (decl) == SCOPE_REF)
{ {
*scope = TREE_OPERAND (decl, 0); *scope = TREE_OPERAND (decl, 0);
*name = TREE_OPERAND (decl, 1); *name = TREE_OPERAND (decl, 1);
...@@ -5156,8 +5145,6 @@ void ...@@ -5156,8 +5145,6 @@ void
do_using_directive (namespace) do_using_directive (namespace)
tree namespace; tree namespace;
{ {
if (namespace == fake_std_node)
return;
if (building_stmt_tree ()) if (building_stmt_tree ())
add_stmt (build_stmt (USING_STMT, namespace)); add_stmt (build_stmt (USING_STMT, namespace));
...@@ -5260,8 +5247,6 @@ handle_class_head (aggr, scope, id) ...@@ -5260,8 +5247,6 @@ handle_class_head (aggr, scope, id)
if (current == NULL_TREE) if (current == NULL_TREE)
current = current_namespace; current = current_namespace;
if (scope == fake_std_node)
scope = global_namespace;
if (scope == NULL_TREE) if (scope == NULL_TREE)
scope = global_namespace; scope = global_namespace;
......
...@@ -158,10 +158,6 @@ cp_dump_tree (di, t) ...@@ -158,10 +158,6 @@ cp_dump_tree (di, t)
break; break;
case NAMESPACE_DECL: case NAMESPACE_DECL:
/* The fake `::std' namespace does not have DECL_LANG_SPECIFIC,
and therefore many other macros do not work on it. */
if (t == fake_std_node)
break;
if (DECL_NAMESPACE_ALIAS (t)) if (DECL_NAMESPACE_ALIAS (t))
dump_child ("alis", DECL_NAMESPACE_ALIAS (t)); dump_child ("alis", DECL_NAMESPACE_ALIAS (t));
else if (!dump_flag (di, TDF_SLIM, t)) else if (!dump_flag (di, TDF_SLIM, t))
......
...@@ -62,16 +62,13 @@ init_exception_processing () ...@@ -62,16 +62,13 @@ init_exception_processing ()
{ {
tree tmp; tree tmp;
if (flag_honor_std)
push_namespace (std_identifier);
/* void std::terminate (); */ /* void std::terminate (); */
push_namespace (std_identifier);
tmp = build_function_type (void_type_node, void_list_node); tmp = build_function_type (void_type_node, void_list_node);
terminate_node = build_cp_library_fn_ptr ("terminate", tmp); terminate_node = build_cp_library_fn_ptr ("terminate", tmp);
TREE_THIS_VOLATILE (terminate_node) = 1; TREE_THIS_VOLATILE (terminate_node) = 1;
TREE_NOTHROW (terminate_node) = 1; TREE_NOTHROW (terminate_node) = 1;
if (flag_honor_std) pop_namespace ();
pop_namespace ();
/* void __cxa_call_unexpected(void *); */ /* void __cxa_call_unexpected(void *); */
tmp = tree_cons (NULL_TREE, ptr_type_node, void_list_node); tmp = tree_cons (NULL_TREE, ptr_type_node, void_list_node);
......
...@@ -1503,9 +1503,6 @@ build_member_call (type, name, parmlist) ...@@ -1503,9 +1503,6 @@ build_member_call (type, name, parmlist)
if (DECL_P (name)) if (DECL_P (name))
name = DECL_NAME (name); name = DECL_NAME (name);
if (type == fake_std_node)
return build_x_function_call (do_scoped_id (name, 0), parmlist,
current_class_ref);
if (TREE_CODE (type) == NAMESPACE_DECL) if (TREE_CODE (type) == NAMESPACE_DECL)
return build_x_function_call (lookup_namespace_name (type, name), return build_x_function_call (lookup_namespace_name (type, name),
parmlist, current_class_ref); parmlist, current_class_ref);
...@@ -1638,9 +1635,6 @@ build_offset_ref (type, name) ...@@ -1638,9 +1635,6 @@ build_offset_ref (type, name)
if (TREE_CODE (name) == TEMPLATE_DECL) if (TREE_CODE (name) == TEMPLATE_DECL)
return name; return name;
if (type == fake_std_node)
return do_scoped_id (name, 0);
if (processing_template_decl || uses_template_parms (type)) if (processing_template_decl || uses_template_parms (type))
return build_min_nt (SCOPE_REF, type, name); return build_min_nt (SCOPE_REF, type, name);
......
...@@ -64,9 +64,6 @@ DEFINE_LANG_NAME ("C++") ...@@ -64,9 +64,6 @@ DEFINE_LANG_NAME ("C++")
N_("Do not recognise GNU defined keywords") }, N_("Do not recognise GNU defined keywords") },
{ "-fhandle-exceptions", "" }, { "-fhandle-exceptions", "" },
{ "-fno-handle-exceptions", "" }, { "-fno-handle-exceptions", "" },
{ "-fhonor-std", "" },
{ "-fno-honor-std",
N_("Do not treat the namespace `std' as a normal namespace") },
{ "-fhuge-objects", { "-fhuge-objects",
N_("Enable support for huge objects") }, N_("Enable support for huge objects") },
{ "-fno-huge-objects", "" }, { "-fno-huge-objects", "" },
......
...@@ -71,12 +71,10 @@ static int doing_runtime = 0; ...@@ -71,12 +71,10 @@ static int doing_runtime = 0;
void void
init_rtti_processing () init_rtti_processing ()
{ {
if (flag_honor_std) push_namespace (std_identifier);
push_namespace (std_identifier);
type_info_type_node = xref_tag type_info_type_node = xref_tag
(class_type_node, get_identifier ("type_info"), 1); (class_type_node, get_identifier ("type_info"), 1);
if (flag_honor_std) pop_namespace ();
pop_namespace ();
tinfo_decl_type = tinfo_decl_type =
build_qualified_type (type_info_type_node, TYPE_QUAL_CONST); build_qualified_type (type_info_type_node, TYPE_QUAL_CONST);
} }
......
...@@ -620,22 +620,6 @@ representation, the global namespace is no different from any other ...@@ -620,22 +620,6 @@ representation, the global namespace is no different from any other
namespace. Thus, in what follows, we describe namespaces generally, namespace. Thus, in what follows, we describe namespaces generally,
rather than the global namespace in particular. rather than the global namespace in particular.
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. 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,
in general. It is safest simply to ignore @code{std_node} should you
encounter it while examining the internal representation. In
particular, you will encounter @code{std_node} while looking at the
members of the global namespace. Just skip it without attempting to
examine its members.
The following macros and functions can be used on a @code{NAMESPACE_DECL}: The following macros and functions can be used on a @code{NAMESPACE_DECL}:
@ftable @code @ftable @code
......
...@@ -174,7 +174,7 @@ in the following sections. ...@@ -174,7 +174,7 @@ in the following sections.
-fno-elide-constructors @gol -fno-elide-constructors @gol
-fno-enforce-eh-specs -fexternal-templates @gol -fno-enforce-eh-specs -fexternal-templates @gol
-falt-external-templates @gol -falt-external-templates @gol
-ffor-scope -fno-for-scope -fno-gnu-keywords -fno-honor-std @gol -ffor-scope -fno-for-scope -fno-gnu-keywords @gol
-fno-implicit-templates @gol -fno-implicit-templates @gol
-fno-implicit-inline-templates @gol -fno-implicit-inline-templates @gol
-fno-implement-inlines -fms-extensions @gol -fno-implement-inlines -fms-extensions @gol
...@@ -1356,19 +1356,6 @@ Do not recognize @code{typeof} as a keyword, so that code can use this ...@@ -1356,19 +1356,6 @@ 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. word as an identifier. You can use the keyword @code{__typeof__} instead.
@option{-ansi} implies @option{-fno-gnu-keywords}. @option{-ansi} implies @option{-fno-gnu-keywords}.
@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 @item -fno-implicit-templates
@opindex fno-implicit-templates @opindex fno-implicit-templates
Never emit code for non-inline templates which are instantiated Never emit code for non-inline templates which are instantiated
......
2001-08-02 Nathan Sidwell <nathan@codesourcery.com>
Kill -fhonor-std.
* g++.old-deja/g++.ns/ns14.C: Remove special options.
* g++.old-deja/g++.other/std1.C: Likewise.
* g++.old-deja/g++.robertl/eb133.C: Likewise. Add using directive.
2001-08-01 David Billinghurst <David.Billinghurst@riotinto.com> 2001-08-01 David Billinghurst <David.Billinghurst@riotinto.com>
* lib/g77.exp: Load gcc-defs.exp for common procedures * lib/g77.exp: Load gcc-defs.exp for common procedures
......
//Special g++ Options: -fhonor-std
namespace std{ namespace std{
int f(){ int f(){
return 0; return 0;
......
// Build don't link: // Build don't link:
// Special g++ Options: -fhonor-std
// Origin: Mark Mitchell <mark@codesourcery.com> // Origin: Mark Mitchell <mark@codesourcery.com>
extern "C" int memcmp (const void * __s1, extern "C" int memcmp (const void * __s1,
......
// Build don't link: // Build don't link:
// Special g++ Options: -fno-honor-std
// Gives ICE 109 // Gives ICE 109
// From: Klaus-Georg Adams <Klaus-Georg.Adams@chemie.uni-karlsruhe.de> // From: Klaus-Georg Adams <Klaus-Georg.Adams@chemie.uni-karlsruhe.de>
// Reported against EGCS snaps 98/06/28. // Reported against EGCS snaps 98/06/28.
using namespace std;
int main() int main()
{ {
try { try {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment