From 89453706e0032f9a9c2107631873d9dad38dc14c Mon Sep 17 00:00:00 2001 From: Segher Boessenkool Date: Wed, 23 May 2018 19:31:05 +0200 Subject: [PATCH] testsuite: Introduce be/le selectors This patch creates "be" and "le" selectors, which can be used by all architectures, similar to ilp32 and lp64. * doc/sourcebuild.texi (Endianness): New subsubsection. gcc/testsuite/ * lib/target-supports.exp (check_effective_target_be): New. (check_effective_target_le): New. From-SVN: r260623 --- gcc/ChangeLog | 4 ++++ gcc/doc/sourcebuild.texi | 10 ++++++++++ gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/lib/target-supports.exp | 16 ++++++++++++++++ 4 files changed, 35 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 38b26b1ad01..555a0f7ac00 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2017-05-23 Segher Boessenkool + + * doc/sourcebuild.texi (Endianness): New subsubsection. + 2018-05-23 Luis Machado * config/aarch64/aarch64-protos.h (cpu_prefetch_tune) diff --git a/gcc/doc/sourcebuild.texi b/gcc/doc/sourcebuild.texi index dfb057805a6..596007d630d 100644 --- a/gcc/doc/sourcebuild.texi +++ b/gcc/doc/sourcebuild.texi @@ -1313,6 +1313,16 @@ By convention, keywords ending in @code{_nocache} can also include options specified for the particular test in an earlier @code{dg-options} or @code{dg-add-options} directive. +@subsubsection Endianness + +@table @code +@item be +Target uses big-endian memory order for multi-byte and multi-word data. + +@item le +Target uses little-endian memory order for multi-byte and multi-word data. +@end table + @subsubsection Data type sizes @table @code diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index db9ae1d7931..e9b35d5f4d3 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2017-05-23 Segher Boessenkool + + * lib/target-supports.exp (check_effective_target_be): New. + (check_effective_target_le): New. + 2018-05-23 Marek Polacek * g++.dg/cpp2a/range-for1.C: New test. diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index aa1296e6e61..0a53d7b1aad 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -2523,6 +2523,22 @@ proc check_effective_target_next_runtime { } { }] } +# Return 1 if we're generating code for big-endian memory order. + +proc check_effective_target_be { } { + return [check_no_compiler_messages be object { + int dummy[__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ ? 1 : -1]; + }] +} + +# Return 1 if we're generating code for little-endian memory order. + +proc check_effective_target_le { } { + return [check_no_compiler_messages le object { + int dummy[__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ ? 1 : -1]; + }] +} + # Return 1 if we're generating 32-bit code using default options, 0 # otherwise. -- 2.30.2