re PR c++/5998 (regression, all builtins disabled)
authorRoger Sayle <roger@eyesopen.com>
Fri, 29 Mar 2002 20:41:53 +0000 (20:41 +0000)
committerMark Mitchell <mmitchel@gcc.gnu.org>
Fri, 29 Mar 2002 20:41:53 +0000 (20:41 +0000)
commitd52e4867caba3a5833cc2c90ac8df8fe7ccd7b76
tree187fa816b67c22e5eb8cf4e72e061f67f62adfcc
parent5843e8704e27a84b1b2b4536bed073eee6361800
re PR c++/5998 (regression, all builtins disabled)

* include/c_std/std_cmath.h:  To prevent problems overloading
g++ builtins, use the double variants from the global namespace
before defining float and long double variants in std::.

PR c++/5998:
* decl.c (cxx_init_decl_processing): Re-enable built-in functions
in the g++ front-end.
(duplicate_decl): Allow redefinition of anticipated built-ins.
Fix inlining problem by over-writing the old DECL_RTL.
(lookup_namespace_name): Fail to find an identifier in the
specified namespace if its still anticipated.
(builtin_function_1): New function split out from builtin_function
to create a builtin in the current namespace with given context.
(builtin_function): Call builtin_function_1 to define the
appropriate builtins in both the std and global namespaces.
(select_decl): Don't test for anticipated decls here.
(unqualified_namespace_lookup): Instead ignore them whilst
searching through scopes and namespaces.
* decl2.c (do_nonmember_using_decl): If a using declaration
specifies an anticipated built-in function, mark it as no longer
anticipated in that scope.
(ambiguous_decl):  Avoid resolving to an anticipated decl.
* lex.c (do_scoped_id): Fail to find an identifier in the global
namespace if its still anticipated.

* g++.old-deja/g++.other/builtins5.C: New test.
* g++.old-deja/g++.other/builtins6.C: New test.
* g++.old-deja/g++.other/builtins7.C: New test.
* g++.old-deja/g++.other/builtins8.C: New test.
* g++.old-deja/g++.other/builtins9.C: New test.

From-SVN: r51568
12 files changed:
gcc/cp/ChangeLog
gcc/cp/decl.c
gcc/cp/decl2.c
gcc/cp/lex.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.old-deja/g++.other/builtins5.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.other/builtins6.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.other/builtins7.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.other/builtins8.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.other/builtins9.C [new file with mode: 0644]
libstdc++-v3/ChangeLog
libstdc++-v3/include/c_std/std_cmath.h