From 6146c0d97eb492bcd65b7099a2c3a4f80c68fd0e Mon Sep 17 00:00:00 2001 From: mmitchel Date: Fri, 25 May 2001 01:27:08 +0000 Subject: [PATCH] * invoke.texi (-fno-builtin): Document that this is always on in C++. * decl.c (duplicate_decls): Tidy. (init_decl_processing): Always set flag_no_builtin. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@42553 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 5 +++++ gcc/cp/ChangeLog | 5 +++++ gcc/cp/decl.c | 13 ++++++++----- gcc/invoke.texi | 7 +++++++ 4 files changed, 25 insertions(+), 5 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 450007aa998..f464a4a05f4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2001-05-24 Mark Mitchell + + * invoke.texi (-fno-builtin): Document that this is always on + in C++. + 2001-05-24 Philip Blundell * doc/install.texi (arm*-*-linux-gnu): Say that binutils 2.10 is diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 577cf532fa9..df72dfe3d0a 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2001-05-24 Mark Mitchell + + * decl.c (duplicate_decls): Tidy. + (init_decl_processing): Always set flag_no_builtin. + 2001-05-24 Nathan Sidwell PR c++/2184 diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c index 8376282bcfc..c91ba6082ee 100644 --- a/gcc/cp/decl.c +++ b/gcc/cp/decl.c @@ -3717,11 +3717,8 @@ duplicate_decls (newdecl, olddecl) DECL_ARGUMENTS (newdecl) = DECL_ARGUMENTS (olddecl); } } - - if (TREE_CODE (newdecl) == NAMESPACE_DECL) - { - NAMESPACE_LEVEL (newdecl) = NAMESPACE_LEVEL (olddecl); - } + else if (TREE_CODE (newdecl) == NAMESPACE_DECL) + NAMESPACE_LEVEL (newdecl) = NAMESPACE_LEVEL (olddecl); /* Now preserve various other info from the definition. */ TREE_ADDRESSABLE (newdecl) = TREE_ADDRESSABLE (olddecl); @@ -6372,6 +6369,12 @@ init_decl_processing () flag_inline_functions = 0; } + /* In C++, we never create builtin functions whose name does not + begin with `__'. Users should be using headers to get prototypes + in C++. It would be nice if we could warn when `-fbuiltin' is + used explicitly, but we do not have that information. */ + flag_no_builtin = 1; + /* Initially, C. */ current_lang_name = lang_name_c; diff --git a/gcc/invoke.texi b/gcc/invoke.texi index 537060eb55b..80cd33e31ee 100644 --- a/gcc/invoke.texi +++ b/gcc/invoke.texi @@ -972,6 +972,13 @@ and faster, but since the function calls no longer appear as such, you cannot set a breakpoint on those calls, nor can you change the behavior of the functions by linking with a different library. +In C++, @samp{-fno-builtin} is always in effect. The @samp{-fbuiltin} +option has no effect. Therefore, in C++, the only way to get the +optimization benefits of builtin functions is to call the function +using the @samp{__builtin_} prefix. The GNU C++ Standard Library uses +builtin functions to implement many functions (like +@code{std::strchr}), so that you automatically get efficient code. + @item -fhosted @cindex hosted environment -- 2.11.4.GIT