===================================================================
@@ -182,7 +182,7 @@ in the following sections.
@item C++ Language Options
@xref{C++ Dialect Options,,Options Controlling C++ Dialect}.
@gccoptlist{-fabi-version=@var{n} -fno-access-control -fcheck-new @gol
--fconserve-space -fconstexpr-depth=@var{n} -ffriend-injection @gol
+-fconstexpr-depth=@var{n} -ffriend-injection @gol
-fno-elide-constructors @gol
-fno-enforce-eh-specs @gol
-ffor-scope -fno-for-scope -fno-gnu-keywords @gol
@@ -1947,18 +1947,6 @@ return value even without this option. In all oth
exhaustion is signalled by throwing @code{std::bad_alloc}. See also
@samp{new (nothrow)}.
-@item -fconserve-space
-@opindex fconserve-space
-Put uninitialized or run-time-initialized global variables into the
-common segment, as C does. This saves space in the executable at the
-cost of not diagnosing duplicate definitions. If you compile with this
-flag and your program mysteriously crashes after @code{main()} has
-completed, you may have an object that is being destroyed twice because
-two definitions are merged.
-
-This option is no longer useful on most targets, now that support has
-been added for putting variables into BSS without making them common.
-
@item -fconstexpr-depth=@var{n}
@opindex fconstexpr-depth
Set the maximum nested evaluation depth for C++11 constexpr functions
===================================================================
@@ -762,7 +762,7 @@ Allow the arguments of the '?' operator to have di
fconserve-space
C++ ObjC++ Var(flag_conserve_space)
-Reduce the size of object files
+Does nothing. Preserved for backward compatibility.
fconstant-string-class=
ObjC ObjC++ Joined MissingArgError(no class name specified with %qs)
===================================================================
@@ -39,7 +39,6 @@ along with GCC; see the file COPYING3. If not see
#include "tree-inline.h"
#include "decl.h"
#include "intl.h"
-#include "output.h" /* for have_global_bss_p */
#include "toplev.h"
#include "hashtab.h"
#include "tm_p.h"
@@ -4528,18 +4527,6 @@ start_decl (const cp_declarator *declarator,
if (decl == error_mark_node)
return error_mark_node;
- /* Tell the back end to use or not use .common as appropriate. If we say
- -fconserve-space, we want this to save .data space, at the expense of
- wrong semantics. If we say -fno-conserve-space, we want this to
- produce errors about redefs; to do this we force variables into the
- data segment. */
- if (flag_conserve_space
- && TREE_CODE (decl) == VAR_DECL
- && TREE_PUBLIC (decl)
- && !DECL_THREAD_LOCAL_P (decl)
- && !have_global_bss_p ())
- DECL_COMMON (decl) = 1;
-
if (TREE_CODE (decl) == VAR_DECL
&& DECL_NAMESPACE_SCOPE_P (decl) && !TREE_PUBLIC (decl) && !was_public
&& !DECL_THIS_STATIC (decl) && !DECL_ARTIFICIAL (decl))
===================================================================
@@ -1,5 +1,5 @@
// { dg-do assemble }
-// { dg-options "-fconserve-space -fcommon" }
+// { dg-options "-fcommon" }
// GROUPS passed array-bindings
extern "C" int printf (const char *, ...);