I've heard adding the patch usually helps getting it review so here it is. :-)

Best regards,

Thomas

On 07/06/17 16:42, Thomas Preudhomme wrote:
Hi,

The general arm_arch_*_ok procedures check architecture availability by
substituting macros inside a defined preprocessor operator. This limits
them to only check definition of only one macro and force ARMv7VE to be
special cased.

This patch takes advantage of the fact that architecture macros, when
defined, are not null to allow expressing architecture availability by
a boolean operation of possibly several macros. It then takes advantage
of this to deal with ARMv7VE in the general case.  The patch also adds a
comment to make it clear that check_effective_target_arm_arch_FUNC_ok
does not work as intendend for architecture extensions (eg. ARMv8.1-A)
due to lack of extension-specific macro similar to __ARM_ARCH_*__.

ChangeLog entry is as follows:

*** gcc/testsuite/ChangeLog ***

2017-06-06  Thomas Preud'homme  <thomas.preudho...@arm.com>

    * lib/target-supports.exp (check_effective_target_arm_arch_FUNC_ok):
    Test for null definitions instead of them being undefined.  Add entry
    for ARMv7VE.  Reindent entry for ARMv8-M Baseline.  Add comment warning
    about using the effective target for architecture extension.
    (check_effective_target_arm_arch_v7ve_ok): Remove.
    (add_options_for_arm_arch_v7ve): Likewise.

Testing:
- gcc.target/arm/atomic_loaddi_10.c passes with the patch for armv7ve
  but is marked unsupported for armv7-a
- verified in the logs that -march=armv7ve is correctly added when
  running gcc.target/arm/ftest-armv7ve-arm.c

Is this ok for trunk?

Best regards,

Thomas
diff --git a/contrib/dg-cmp-results.sh b/contrib/dg-cmp-results.sh
index d291769547dcd2a02ecf6f80d60d6be7802af4fd..d875b4bd8bca16c1f381355612ef34f6879c5674 100755
--- a/contrib/dg-cmp-results.sh
+++ b/contrib/dg-cmp-results.sh
@@ -91,8 +91,7 @@ sed $E -e '/^[[:space:]]+===/,$d' $NFILE
 
 # Create a temporary file from the old file's interesting section.
 sed $E -e "1,/$header/d" \
-  -e '/^[[:space:]]+===/,$d' \
-  -e '/^[A-Z]+:/!d' \
+  -e '/^Running target /,/^[[:space:]]+===.*Summary ===/!d' \
   -e '/^(WARNING|ERROR):/d' \
   -e 's/\r$//' \
   -e 's/^/O:/' \
@@ -102,8 +101,7 @@ sed $E -e "1,/$header/d" \
 
 # Create a temporary file from the new file's interesting section.
 sed $E -e "1,/$header/d" \
-  -e '/^[[:space:]]+===/,$d' \
-  -e '/^[A-Z]+:/!d' \
+  -e '/^Running target /,/^[[:space:]]+===.*Summary ===/!d' \
   -e '/^(WARNING|ERROR):/d' \
   -e 's/\r$//' \
   -e 's/^/N:/' \

Reply via email to