aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathan Froyd <froydnj@codesourcery.com>2010-11-24 23:29:41 +0000
committerNathan Froyd <froydnj@gcc.gnu.org>2010-11-24 23:29:41 +0000
commita3abe41c30c8f779e203452a0b31a33b825565c7 (patch)
treef82e67116455c990ac9fdc580e1af29b8e486995
parentfb9041eab317593ef2d1b38b2258d17e5e17bb6c (diff)
downloadgcc-a3abe41c30c8f779e203452a0b31a33b825565c7.zip
gcc-a3abe41c30c8f779e203452a0b31a33b825565c7.tar.gz
gcc-a3abe41c30c8f779e203452a0b31a33b825565c7.tar.bz2
cppbuiltin.c (define_builtin_macros_for_type_sizes): Define __FLOAT_WORD_ORDER__ according to FLOAT_WORDS_BIG_ENDIAN.
gcc/ * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define __FLOAT_WORD_ORDER__ according to FLOAT_WORDS_BIG_ENDIAN. * config/dfp-bit.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Delete. * doc/cpp.texi (__FLOAT_WORD_ORDER__): Document. * system.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Poison. libgcc/ * config/libbid/bid_conf.h (BID_BIG_ENDIAN): Define in terms of __FLOAT_WORD_ORDER__. * config/libbid/bid_gcc_intrinsics.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Delete. libdecnumber/ * dconfig.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Delete. (WORDS_BIG_ENDIAN): Define based on value of __FLOAT_WORD_ORDER__. From-SVN: r167129
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/config/dfp-bit.h5
-rw-r--r--gcc/cp/cp-tree.h3
-rw-r--r--gcc/cp/error.c1
-rw-r--r--gcc/cp/lex.c5
-rw-r--r--gcc/cp/name-lookup.c69
-rw-r--r--gcc/cppbuiltin.c5
-rw-r--r--gcc/doc/cpp.texi5
-rw-r--r--gcc/lto/lto.c1
-rw-r--r--gcc/params.def9
-rw-r--r--gcc/reload1.c11
-rw-r--r--gcc/system.h3
-rw-r--r--gcc/testsuite/g++.dg/ext/builtin3.C1
-rw-r--r--gcc/testsuite/g++.dg/lookup/error1.C1
-rw-r--r--gcc/testsuite/g++.dg/lookup/koenig5.C3
-rw-r--r--gcc/testsuite/g++.dg/overload/koenig1.C1
-rw-r--r--gcc/testsuite/g++.dg/parse/decl-specifier-1.C1
-rw-r--r--gcc/testsuite/g++.dg/template/static10.C1
-rw-r--r--gcc/testsuite/g++.old-deja/g++.mike/ns5.C1
-rw-r--r--gcc/testsuite/g++.old-deja/g++.mike/ns7.C1
-rw-r--r--gcc/testsuite/g++.old-deja/g++.ns/koenig5.C1
-rw-r--r--gcc/testsuite/g++.old-deja/g++.ns/koenig9.C1
-rw-r--r--gcc/testsuite/g++.old-deja/g++.other/lineno5.C1
-rw-r--r--libdecnumber/ChangeLog5
-rw-r--r--libdecnumber/dconfig.h7
-rw-r--r--libgcc/ChangeLog7
-rw-r--r--libgcc/config/libbid/bid_conf.h2
-rw-r--r--libgcc/config/libbid/bid_gcc_intrinsics.h5
28 files changed, 133 insertions, 31 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ec3b96f..85ff5a9 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,11 @@
+2010-11-24 Nathan Froyd <froydnj@codesourcery.com>
+
+ * cppbuiltin.c (define_builtin_macros_for_type_sizes): Define
+ __FLOAT_WORD_ORDER__ according to FLOAT_WORDS_BIG_ENDIAN.
+ * config/dfp-bit.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Delete.
+ * doc/cpp.texi (__FLOAT_WORD_ORDER__): Document.
+ * system.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Poison.
+
2010-11-24 H.J. Lu <hongjiu.lu@intel.com>
PR target/46519
diff --git a/gcc/config/dfp-bit.h b/gcc/config/dfp-bit.h
index 20688b1..c1ee377 100644
--- a/gcc/config/dfp-bit.h
+++ b/gcc/config/dfp-bit.h
@@ -33,11 +33,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "coretypes.h"
#include "tm.h"
-#ifndef LIBGCC2_FLOAT_WORDS_BIG_ENDIAN
-#define LIBGCC2_FLOAT_WORDS_BIG_ENDIAN \
- (__BYTE_ORDER__ != __ORDER_LITTLE_ENDIAN__)
-#endif
-
#ifndef LIBGCC2_LONG_DOUBLE_TYPE_SIZE
#define LIBGCC2_LONG_DOUBLE_TYPE_SIZE LONG_DOUBLE_TYPE_SIZE
#endif
diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h
index 67f4f93..a323501 100644
--- a/gcc/cp/cp-tree.h
+++ b/gcc/cp/cp-tree.h
@@ -5639,6 +5639,9 @@ extern tree cxx_omp_clause_dtor (tree, tree);
extern void cxx_omp_finish_clause (tree);
extern bool cxx_omp_privatize_by_reference (const_tree);
+/* in name-lookup.c */
+extern void suggest_alternatives_for (tree);
+
/* -- end of C++ */
#endif /* ! GCC_CP_TREE_H */
diff --git a/gcc/cp/error.c b/gcc/cp/error.c
index 1560fc6..de45efe 100644
--- a/gcc/cp/error.c
+++ b/gcc/cp/error.c
@@ -1700,6 +1700,7 @@ dump_expr (tree t, int flags)
case NAMESPACE_DECL:
case LABEL_DECL:
case OVERLOAD:
+ case TYPE_DECL:
case IDENTIFIER_NODE:
dump_decl (t, (flags & ~TFF_DECL_SPECIFIERS) | TFF_NO_FUNCTION_ARGUMENTS);
break;
diff --git a/gcc/cp/lex.c b/gcc/cp/lex.c
index c583d7d..9c6be41 100644
--- a/gcc/cp/lex.c
+++ b/gcc/cp/lex.c
@@ -450,7 +450,10 @@ unqualified_name_lookup_error (tree name)
else
{
if (!objc_diagnose_private_ivar (name))
- error ("%qD was not declared in this scope", name);
+ {
+ error ("%qD was not declared in this scope", name);
+ suggest_alternatives_for (name);
+ }
/* Prevent repeated error messages by creating a VAR_DECL with
this NAME in the innermost block scope. */
if (current_function_decl)
diff --git a/gcc/cp/name-lookup.c b/gcc/cp/name-lookup.c
index dc73544..0ee80e4 100644
--- a/gcc/cp/name-lookup.c
+++ b/gcc/cp/name-lookup.c
@@ -30,8 +30,10 @@ along with GCC; see the file COPYING3. If not see
#include "timevar.h"
#include "toplev.h"
#include "diagnostic-core.h"
+#include "intl.h"
#include "debug.h"
#include "c-family/c-pragma.h"
+#include "params.h"
/* The bindings for a particular name in a particular scope. */
@@ -3917,6 +3919,73 @@ remove_hidden_names (tree fns)
return fns;
}
+/* Suggest alternatives for NAME, an IDENTIFIER_NODE for which name
+ lookup failed. Search through all available namespaces and print out
+ possible candidates. */
+
+void
+suggest_alternatives_for (tree name)
+{
+ VEC(tree,heap) *candidates = NULL;
+ VEC(tree,heap) *namespaces_to_search = NULL;
+ int max_to_search = PARAM_VALUE (CXX_MAX_NAMESPACES_FOR_DIAGNOSTIC_HELP);
+ int n_searched = 0;
+ char *spaces;
+ const char *str;
+ tree t;
+ unsigned ix;
+
+ VEC_safe_push (tree, heap, namespaces_to_search, global_namespace);
+
+ while (!VEC_empty (tree, namespaces_to_search)
+ && n_searched < max_to_search)
+ {
+ tree scope = VEC_pop (tree, namespaces_to_search);
+ struct scope_binding binding = EMPTY_SCOPE_BINDING;
+ struct cp_binding_level *level = NAMESPACE_LEVEL (scope);
+
+ /* Look in this namespace. */
+ qualified_lookup_using_namespace (name, scope, &binding, 0);
+
+ n_searched++;
+
+ if (binding.value)
+ VEC_safe_push (tree, heap, candidates, binding.value);
+
+ /* Add child namespaces. */
+ for (t = level->namespaces; t; t = DECL_CHAIN (t))
+ VEC_safe_push (tree, heap, namespaces_to_search, t);
+ }
+
+ /* If we stopped before we could examine all namespaces, inform the
+ user. Do this even if we don't have any candidates, since there
+ might be more candidates further down that we weren't able to
+ find. */
+ if (n_searched >= max_to_search)
+ inform (input_location,
+ "maximum limit of %d namespaces searched for %qE",
+ max_to_search, name);
+
+ /* Nothing useful to report. */
+ if (VEC_empty (tree, candidates))
+ return;
+
+ str = (VEC_length(tree, candidates) > 1
+ ? _("suggested alternatives:")
+ : _("suggested alternative:"));
+ spaces = NULL;
+
+ FOR_EACH_VEC_ELT (tree, candidates, ix, t)
+ {
+ inform (input_location, "%s %qE", (spaces ? spaces : str), t);
+ spaces = spaces ? spaces : get_spaces (str);
+ }
+
+ VEC_free (tree, heap, candidates);
+ VEC_free (tree, heap, namespaces_to_search);
+ free (spaces);
+}
+
/* Unscoped lookup of a global: iterate over current namespaces,
considering using-directives. */
diff --git a/gcc/cppbuiltin.c b/gcc/cppbuiltin.c
index ffee4c0..ee00de5 100644
--- a/gcc/cppbuiltin.c
+++ b/gcc/cppbuiltin.c
@@ -157,6 +157,11 @@ define_builtin_macros_for_type_sizes (cpp_reader *pfile)
cpp_define (pfile, "__BYTE_ORDER__=__ORDER_PDP_ENDIAN__");
}
+ cpp_define_formatted (pfile, "__FLOAT_WORD_ORDER__=%s",
+ (FLOAT_WORDS_BIG_ENDIAN
+ ? "__ORDER_BIG_ENDIAN__"
+ : "__ORDER_LITTLE_ENDIAN__"));
+
/* ptr_type_node can't be used here since ptr_mode is only set when
toplev calls backend_init which is not done with -E switch. */
cpp_define_formatted (pfile, "__SIZEOF_POINTER__=%d",
diff --git a/gcc/doc/cpp.texi b/gcc/doc/cpp.texi
index ddcf814..7d78d12 100644
--- a/gcc/doc/cpp.texi
+++ b/gcc/doc/cpp.texi
@@ -2289,6 +2289,11 @@ You should use these macros for testing like this:
#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
@end smallexample
+@item __FLOAT_WORD_ORDER__
+@code{__FLOAT_WORD_ORDER__} is defined to one of the values
+@code{__ORDER_LITTLE_ENDIAN__} or @code{__ORDER_BIG_ENDIAN__} to reflect
+the layout of the words of multi-word floating-point quantities.
+
@item __DEPRECATED
This macro is defined, with value 1, when compiling a C++ source file
with warnings about deprecated constructs enabled. These warnings are
diff --git a/gcc/lto/lto.c b/gcc/lto/lto.c
index 3db5ac1..fcb66ce 100644
--- a/gcc/lto/lto.c
+++ b/gcc/lto/lto.c
@@ -1932,7 +1932,6 @@ lto_fixup_tree (tree *tp, int *walk_subtrees, void *data)
{
/* walk_tree only handles TREE_OPERANDs. Do the rest here. */
lto_fixup_common (t, data);
- LTO_FIXUP_SUBTREE (t->exp.block);
*walk_subtrees = 1;
}
else
diff --git a/gcc/params.def b/gcc/params.def
index 6b6e0550..2ea0013 100644
--- a/gcc/params.def
+++ b/gcc/params.def
@@ -855,6 +855,15 @@ DEFPARAM (MIN_PARTITION_SIZE,
"lto-min-partition",
"Size of minimal paritition for WHOPR (in estimated instructions)",
1000, 0, 0)
+
+/* Diagnostic parameters. */
+
+DEFPARAM (CXX_MAX_NAMESPACES_FOR_DIAGNOSTIC_HELP,
+ "cxx-max-namespaces-for-diagnostic-help",
+ "Maximum number of namespaces to search for alternatives when "
+ "name lookup fails",
+ 1000, 0, 0)
+
/*
Local variables:
mode:c
diff --git a/gcc/reload1.c b/gcc/reload1.c
index da354a7..2f02ae3 100644
--- a/gcc/reload1.c
+++ b/gcc/reload1.c
@@ -6600,17 +6600,6 @@ choose_reload_regs (struct insn_chain *chain)
&& (rld[r].nregs == max_group_size
|| ! reg_classes_intersect_p (rld[r].rclass, group_class)))
search_equiv = rld[r].in;
- /* If this is an output reload from a simple move insn, look
- if an equivalence for the input is available. */
- else if (inheritance && rld[r].in == 0 && rld[r].out != 0)
- {
- rtx set = single_set (insn);
-
- if (set
- && rtx_equal_p (rld[r].out, SET_DEST (set))
- && CONSTANT_P (SET_SRC (set)))
- search_equiv = SET_SRC (set);
- }
if (search_equiv)
{
diff --git a/gcc/system.h b/gcc/system.h
index 4de117e..fbeab0f 100644
--- a/gcc/system.h
+++ b/gcc/system.h
@@ -800,7 +800,8 @@ extern void fancy_abort (const char *, int, const char *) ATTRIBUTE_NORETURN;
TARGET_HANDLE_OFAST TARGET_OPTION_OPTIMIZATION
/* Hooks into libgcc2. */
- #pragma GCC poison LIBGCC2_DOUBLE_TYPE_SIZE LIBGCC2_WORDS_BIG_ENDIAN
+ #pragma GCC poison LIBGCC2_DOUBLE_TYPE_SIZE LIBGCC2_WORDS_BIG_ENDIAN \
+ LIBGCC2_FLOAT_WORDS_BIG_ENDIAN
/* Miscellaneous macros that are no longer used. */
#pragma GCC poison USE_MAPPED_LOCATION
diff --git a/gcc/testsuite/g++.dg/ext/builtin3.C b/gcc/testsuite/g++.dg/ext/builtin3.C
index 3d06dd7..a9ebce0 100644
--- a/gcc/testsuite/g++.dg/ext/builtin3.C
+++ b/gcc/testsuite/g++.dg/ext/builtin3.C
@@ -10,4 +10,5 @@ extern "C" int printf(char*, ...);
void foo() {
printf("abc"); // { dg-error "not declared" }
+ // { dg-message "note" "suggested alternative" { target *-*-* } 12 }
}
diff --git a/gcc/testsuite/g++.dg/lookup/error1.C b/gcc/testsuite/g++.dg/lookup/error1.C
index 2264b23..3b34ee3 100644
--- a/gcc/testsuite/g++.dg/lookup/error1.C
+++ b/gcc/testsuite/g++.dg/lookup/error1.C
@@ -4,6 +4,7 @@
namespace N { int i; }
void foo() { i; } // { dg-error "not declared" }
+ // { dg-message "note" "suggested alternative" { target *-*-* } 6 }
using namespace N;
void bar() { i; }
diff --git a/gcc/testsuite/g++.dg/lookup/koenig5.C b/gcc/testsuite/g++.dg/lookup/koenig5.C
index 6ecc25d..bc1dc8c 100644
--- a/gcc/testsuite/g++.dg/lookup/koenig5.C
+++ b/gcc/testsuite/g++.dg/lookup/koenig5.C
@@ -32,10 +32,12 @@ void g (N::A *a, M::B *b, O::C *c)
One (a); // ok
One (a, b); // ok
One (b); // { dg-error "not declared" }
+ // { dg-message "note" "suggested alternative" { target *-*-* } 34 }
Two (c); // ok
Two (a, c); // ok
Two (a); // { dg-error "not declared" }
+ // { dg-message "note" "suggested alternative" { target *-*-* } 39 }
Two (a, a); // error masked by earlier error
Two (b); // error masked by earlier error
Two (a, b); // error masked by earlier error
@@ -43,4 +45,5 @@ void g (N::A *a, M::B *b, O::C *c)
Three (b); // ok
Three (a, b); // ok
Three (a); // { dg-error "not declared" }
+ // { dg-message "note" "suggested alternative" { target *-*-* } 47 }
}
diff --git a/gcc/testsuite/g++.dg/overload/koenig1.C b/gcc/testsuite/g++.dg/overload/koenig1.C
index 1ed7bce..be0be69 100644
--- a/gcc/testsuite/g++.dg/overload/koenig1.C
+++ b/gcc/testsuite/g++.dg/overload/koenig1.C
@@ -14,5 +14,6 @@ void g ()
B *bp;
N::A *ap;
f (bp); // { dg-error "not declared" }
+ // { dg-message "note" "suggested alternative" { target *-*-* } 16 }
f (ap);
}
diff --git a/gcc/testsuite/g++.dg/parse/decl-specifier-1.C b/gcc/testsuite/g++.dg/parse/decl-specifier-1.C
index e81fbab..48fc7fa 100644
--- a/gcc/testsuite/g++.dg/parse/decl-specifier-1.C
+++ b/gcc/testsuite/g++.dg/parse/decl-specifier-1.C
@@ -13,4 +13,5 @@ N::X X; // { dg-error "" "" }
int main()
{
return sizeof(X); // { dg-error "" "" }
+ // { dg-message "note" "suggested alternative" { target *-*-* } 15 }
}
diff --git a/gcc/testsuite/g++.dg/template/static10.C b/gcc/testsuite/g++.dg/template/static10.C
index ab857bd..2f60f0c 100644
--- a/gcc/testsuite/g++.dg/template/static10.C
+++ b/gcc/testsuite/g++.dg/template/static10.C
@@ -20,4 +20,5 @@ namespace std
{
template<> void
vector<int, allocator<int> >::swap(vector<int, allocator<int> >&) { } // { dg-error "" }
+ // { dg-message "note" "suggested alternative" { target *-*-* } 22 }
}
diff --git a/gcc/testsuite/g++.old-deja/g++.mike/ns5.C b/gcc/testsuite/g++.old-deja/g++.mike/ns5.C
index 9d806ca..f13da04 100644
--- a/gcc/testsuite/g++.old-deja/g++.mike/ns5.C
+++ b/gcc/testsuite/g++.old-deja/g++.mike/ns5.C
@@ -4,3 +4,4 @@ namespace A {
}
int j = i; // { dg-error "" }
+ // { dg-message "note" "suggested alternative" { target *-*-* } 6 }
diff --git a/gcc/testsuite/g++.old-deja/g++.mike/ns7.C b/gcc/testsuite/g++.old-deja/g++.mike/ns7.C
index 57008db..31a71dd 100644
--- a/gcc/testsuite/g++.old-deja/g++.mike/ns7.C
+++ b/gcc/testsuite/g++.old-deja/g++.mike/ns7.C
@@ -6,4 +6,5 @@ namespace A {
namespace B {
int j = i; // { dg-error "" }
+ // { dg-message "note" "suggested alternative" { target *-*-* } 8 }
}
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/koenig5.C b/gcc/testsuite/g++.old-deja/g++.ns/koenig5.C
index 33061ad..67b781d 100644
--- a/gcc/testsuite/g++.old-deja/g++.ns/koenig5.C
+++ b/gcc/testsuite/g++.old-deja/g++.ns/koenig5.C
@@ -15,4 +15,5 @@ void g()
// foo variable first, and therefore do not
// perform argument-dependent lookup.
bar(new X); // { dg-error "not declared" }
+ // { dg-message "note" "suggested alternative" { target *-*-* } 17 }
}
diff --git a/gcc/testsuite/g++.old-deja/g++.ns/koenig9.C b/gcc/testsuite/g++.old-deja/g++.ns/koenig9.C
index 78b0e8b..f246639 100644
--- a/gcc/testsuite/g++.old-deja/g++.ns/koenig9.C
+++ b/gcc/testsuite/g++.old-deja/g++.ns/koenig9.C
@@ -10,4 +10,5 @@ void foo(const char*,...);
inline void
bar() {
foo("",count); // { dg-error "" } multiple overloaded count functions
+ // { dg-message "note" "suggested alternative" { target *-*-* } 12 }
}
diff --git a/gcc/testsuite/g++.old-deja/g++.other/lineno5.C b/gcc/testsuite/g++.old-deja/g++.other/lineno5.C
index d14bd90..20e49bc 100644
--- a/gcc/testsuite/g++.old-deja/g++.other/lineno5.C
+++ b/gcc/testsuite/g++.old-deja/g++.other/lineno5.C
@@ -16,4 +16,5 @@ namespace tmp {
class A {
public:
int kaka(tmp::B = b); // { dg-error "" } no b in scope
+ // { dg-message "note" "suggested alternative" { target *-*-* } 18 }
};
diff --git a/libdecnumber/ChangeLog b/libdecnumber/ChangeLog
index d2d6d59..101cda9 100644
--- a/libdecnumber/ChangeLog
+++ b/libdecnumber/ChangeLog
@@ -1,3 +1,8 @@
+2010-11-24 Nathan Froyd <froydnj@codesourcery.com>
+
+ * dconfig.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN): Delete.
+ (WORDS_BIG_ENDIAN): Define based on value of __FLOAT_WORD_ORDER__.
+
2010-10-23 Nathan Froyd <froydnj@codesourcery.com>
* dconfig.h (LIBGCC2_WORDS_BIG_ENDIAN): Delete.
diff --git a/libdecnumber/dconfig.h b/libdecnumber/dconfig.h
index 26b963c..503cb61 100644
--- a/libdecnumber/dconfig.h
+++ b/libdecnumber/dconfig.h
@@ -28,12 +28,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "coretypes.h"
#include "tm.h"
-#ifndef LIBGCC2_FLOAT_WORDS_BIG_ENDIAN
-#define LIBGCC2_FLOAT_WORDS_BIG_ENDIAN \
- (__BYTE_ORDER__ != __ORDER_LITTLE_ENDIAN__)
-#endif
-
-#if LIBGCC2_FLOAT_WORDS_BIG_ENDIAN
+#if __FLOAT_WORD_ORDER__ == __ORDER_BIG_ENDIAN__
#define WORDS_BIGENDIAN 1
#endif
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog
index 0f18b56..0e31d98 100644
--- a/libgcc/ChangeLog
+++ b/libgcc/ChangeLog
@@ -1,3 +1,10 @@
+2010-11-24 Nathan Froyd <froydnj@codesourcery.com>
+
+ * config/libbid/bid_conf.h (BID_BIG_ENDIAN): Define in terms of
+ __FLOAT_WORD_ORDER__.
+ * config/libbid/bid_gcc_intrinsics.h (LIBGCC2_FLOAT_WORDS_BIG_ENDIAN):
+ Delete.
+
2010-11-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
PR other/46202
diff --git a/libgcc/config/libbid/bid_conf.h b/libgcc/config/libbid/bid_conf.h
index d22980d..93e60ed 100644
--- a/libgcc/config/libbid/bid_conf.h
+++ b/libgcc/config/libbid/bid_conf.h
@@ -516,7 +516,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#endif
#ifndef BID_BIG_ENDIAN
-#define BID_BIG_ENDIAN LIBGCC2_FLOAT_WORDS_BIG_ENDIAN
+#define BID_BIG_ENDIAN __FLOAT_WORD_ORDER__ == __ORDER_BIG_ENDIAN__
#endif
#ifndef BID_THREAD
diff --git a/libgcc/config/libbid/bid_gcc_intrinsics.h b/libgcc/config/libbid/bid_gcc_intrinsics.h
index f536e3b..7d65705 100644
--- a/libgcc/config/libbid/bid_gcc_intrinsics.h
+++ b/libgcc/config/libbid/bid_gcc_intrinsics.h
@@ -30,11 +30,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#include "coretypes.h"
#include "tm.h"
-#ifndef LIBGCC2_FLOAT_WORDS_BIG_ENDIAN
-#define LIBGCC2_FLOAT_WORDS_BIG_ENDIAN \
- (__BYTE_ORDER__ != __ORDER_LITTLE_ENDIAN__)
-#endif
-
#ifndef LIBGCC2_LONG_DOUBLE_TYPE_SIZE
#define LIBGCC2_LONG_DOUBLE_TYPE_SIZE LONG_DOUBLE_TYPE_SIZE
#endif