[COMMITTED] MAINTAINERS: Add myself to write after approval
ChangeLog: * MAINTAINERS: Add myself to write after approval. --- Hello, I just noticed that I wasn't yet in the write after approval section, so I just committed this patch. MAINTAINERS | 1 + 1 file changed, 1 insertion(+) diff --git a/MAINTAINERS b/MAINTAINERS index ded5b3d4f643..9257b33ff089 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -344,6 +344,7 @@ Richard Ballricbal02 Scott Bambrough - Wolfgang Bangerth - Gergö Barany- +Thiago Jung Bauermann - Charles Baylis cbaylis Tejas Belagod belagod Andrey Belevantsev abel base-commit: 385a232229a5b4ee3f4d2a2472bcda28cd8d17b2
Re: [PATCH] testsuite: Fix fallout of turning warnings into errors on 32-bit Arm
Hello Christophe, Christophe Lyon writes: > On Fri, 1 Mar 2024 at 15:29, Richard Earnshaw (lists) > wrote: >> >> On 01/03/2024 14:23, Andre Vieira (lists) wrote: >> > Hi Thiago, >> > >> > Thanks for this, LGTM but I can't approve this, CC'ing Richard. >> > >> > Do have a nitpick, in the gcc/testsuite/ChangeLog: remove 'gcc/testsuite' >> > from bullet >> > points 2-4. >> > >> >> Yes, this is OK with the change Andre mentioned (your push will fail if you >> don't fix >> that). >> >> PS, if you've set up GCC git customizations (see >> contrib/gcc-git-customization.sh), you >> can verify things like this with 'git gcc-verify HEAD^..HEAD' >> > > ISTM you have forgotten to commit this patch. > If you don't have commit rights, I can do it for you. That is true, sorry about that. I just pushed the patch as commit 115857bf1e32. It incorporates Andre's ChangeLog fix and git gcc-verify says the commit is OK. Thank you for reminding me. -- Thiago
Re: [PATCH] Fix test errors introduced with fix for PR115157
Hello Martin, Martin Uecker writes: > BTW: Did you try the other testsuite patch as well? > > [PATCH] Fix test errors after r15-1394 for sizeof(int)==sizeof(long) > [PR115545] I hadn't, but I did today and the patch is good from our CI's perspective. I replied directly to its email thread. -- Thiago
Re: [PATCH] Fix test errors after r15-1394 for sizeof(int)==sizeof(long) [PR115545]
Hello, Martin Uecker writes: > This fixes the test failures introduced by the fix for PR115109. > > Tested on x86_64 and also tested with -m32. > > > > Fix test errors after r15-1394 for sizeof(int)==sizeof(long) [PR115545] > > Some tests added to test the type of redeclarations of enumerators > in r15-1394 fail on architectures where sizeof(long) == sizeof(int). > Adapt tests to use long long and/or accept that long long is selected > as type for the enumerator. > > gcc/testsuite/Changelog: > PR testsuite/115545 > * gcc.dg/pr115109.c: Adapt test. > * gcc.dg/c23-tag-enum-6.c: Adapt test. > * gcc.dg/c23-tag-enum-7.c: Adapt test. I manually triggered a couple of our CI loops testing bare-metal arm-eabi, and this patch doesn't introduce any regressions and fixes the following failures: Running gcc:gcc.dg/dg.exp ... FAIL: gcc.dg/c23-tag-enum-6.c (test for errors, line 10) FAIL: gcc.dg/c23-tag-enum-6.c (test for errors, line 13) FAIL: gcc.dg/c23-tag-enum-7.c (test for excess errors) FAIL: gcc.dg/pr115109.c (test for excess errors) Thanks! -- Thiago
Re: [PATCH] testsuite: Fix pr115278.cc test when uint32_t isn't unsigned int
Thiago Jung Bauermann writes: > --- a/gcc/testsuite/g++.dg/vect/pr115278.cc > +++ b/gcc/testsuite/g++.dg/vect/pr115278.cc > @@ -2,6 +2,7 @@ > // { dg-require-effective-target c++11 } > // { dg-additional-options "-fdump-tree-optimized" } > > +#include > #include > > const int runs = 92; Sorry, the new include isn't necessary. It's a leftover from a previous version of the patch. I removed it locally and if the patch is approved, I'll commit it without this hunk. -- Thiago
[PATCH] testsuite: Fix pr115278.cc test when uint32_t isn't unsigned int
On arm-none-eabi, g++.dg/vect/pr115278.cc fails with: FAIL: g++.dg/vect/pr115278.cc -std=c++14 (test for excess errors) Excess errors: /path/to/gcc.git/gcc/testsuite/g++.dg/vect/pr115278.cc:24:28: error: invalid conversion from 'volatile unsigned int*' to 'volatile uint32_t*' {aka 'volatile long unsigned int*'} [-fpermissive] g++.dg/vect/pr115278.cc -std=c++14 : dump file does not exist UNRESOLVED: g++.dg/vect/pr115278.cc -std=c++14 scan-tree-dump-times optimized "\\*WRITE[^\r\n]* ={v} " 2 The problem is that the cast used to initialize the WRITE variable doesn't match the underlying type of uint32_t. Fix by using __UINT32_TYPE__ instead. Verified that after this change, the test still fails when reverting the fix for PR115278. Tested on: - Host x86_64-linux-gnu, target arm-unknown-eabi - Native armv8l-linux-gnueabihf - Native aarch64-linux-gnu - Native x86_64-linux-gnu gcc/testsuite/ * g++.dg/vect/pr115278.cc: Use __UINT32_TYPE__ in cast used to initialize WRITE. --- gcc/testsuite/g++.dg/vect/pr115278.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gcc/testsuite/g++.dg/vect/pr115278.cc b/gcc/testsuite/g++.dg/vect/pr115278.cc index 331075fb2781..39a7537a3e6a 100644 --- a/gcc/testsuite/g++.dg/vect/pr115278.cc +++ b/gcc/testsuite/g++.dg/vect/pr115278.cc @@ -2,6 +2,7 @@ // { dg-require-effective-target c++11 } // { dg-additional-options "-fdump-tree-optimized" } +#include #include const int runs = 92; @@ -21,7 +22,7 @@ union BitfieldStructUnion { BitfieldStructUnion(uint32_t value_low, uint32_t value_high) : value_low(value_low), value_high(value_high) {} }; -volatile uint32_t *WRITE = (volatile unsigned*)0x42; +volatile uint32_t *WRITE = (volatile __UINT32_TYPE__*)0x42; void buggy() { for (int i = 0; i < runs; i++) {
Re: [PATCH] Fix test errors introduced with fix for PR115157
Hello Martin, Martin Uecker writes: > This should fix the test failures introduced by the fix for PR115157. > > Tested on x86_64 and also tested with -m32. > > > Fix test errors introduced with fix for PR115157. > > Fix tests introduced when fixing PR115157 that assume > sizeof(enum)==sizeof(int) > by adding the flag -fno-short-enums. > > gcc/testsuite/Changelog: > * gcc.dg/enum-alias-1.c: Add flag. > * gcc.dg/enum-alias-2.c: Add flag. > * gcc.dg/enum-alias-3.c: Add flag. > * gcc.dg/enum-alias-4.c: Add flag. Thank you for the patch! It fixes the execution test failures but unfortunately they still have excess errors failures due to an unexpected linker warning: spawn -ignore SIGHUP /home/tcwg-build/workspace/tcwg_gnu_0/abe/builds/destdir/x86_64-pc-linux-gnu/bin/arm-eabi-gcc /home/tcwg-build/workspace/tcwg_gnu_0/abe/snapshots/gcc.git~master/gcc/testsuite/gcc.dg/enum-alias-1.c -fdiagnostics-plain-output -O2 -fno-short-enums -specs=rdimon.specs -lm -o ./enum-alias-1.exe /home/tcwg-build/workspace/tcwg_gnu_0/abe/builds/destdir/x86_64-pc-linux-gnu/lib/gcc/arm-eabi/15.0.0/../../../../arm-eabi/bin/ld: warning: /tmp/ccP9AJZd.o uses 32-bit enums yet the output is to use variable-size enums; use of enum values across objects may fail ⋮ FAIL: gcc.dg/enum-alias-1.c (test for excess errors) Excess errors: /home/tcwg-build/workspace/tcwg_gnu_0/abe/builds/destdir/x86_64-pc-linux-gnu/lib/gcc/arm-eabi/15.0.0/../../../../arm-eabi/bin/ld: warning: /tmp/ccP9AJZd.o uses 32-bit enums yet the output is to use variable-size enums; use of enum values across objects may fail The same happens with gcc.dg/enum-alias-[234].c. -- Thiago
[PATCH] libstdc++: testsuite: Skip atomics test if there's no -latomic
On arm-none-eabi, 29_atomics/atomic_float/compare_exchange_padding.cc fails to build: FAIL: 29_atomics/atomic_float/compare_exchange_padding.cc -std=gnu++20 (test for excess errors) Excess errors: /home/bauermann/.cache/builds/combined-tree-thumb-m55-hard-eabi/ld/.libs/ld-new: cannot find -latomic: No such file or directory collect2: error: ld returned 1 exit status UNRESOLVED: 29_atomics/atomic_float/compare_exchange_padding.cc -std=gnu++20 compilation failed to produce executable This test should be skipped if libatomic is not available for the target. To that end, add dg-require-libatomic-available and use it in 29_atomics/atomic_float/compare_exchange_padding.cc. Also, check_effective_target_libatomic_available is fixed to use atomic_link_flags to properly compile the test executable. Tested on: - Host x86_64-linux-gnu, target arm-unknown-eabi - Native aarch64-linux-gnu - Native x86_64-linux-gnu gcc/testsuite/ * lib/target-supports-dg.exp (dg-require-libatomic-available): New procedure. * lib/target-supports.exp (check_effective_target_libatomic_available): Use atomic_link_flags. libstdc++-v3/ * testsuite/29_atomics/atomic_float/compare_exchange_padding.cc: Use dg-require-libatomic-available. --- gcc/testsuite/lib/target-supports-dg.exp | 9 + gcc/testsuite/lib/target-supports.exp| 2 +- .../29_atomics/atomic_float/compare_exchange_padding.cc | 1 + 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/gcc/testsuite/lib/target-supports-dg.exp b/gcc/testsuite/lib/target-supports-dg.exp index 6dce9fdc1ce2..502e4e22b368 100644 --- a/gcc/testsuite/lib/target-supports-dg.exp +++ b/gcc/testsuite/lib/target-supports-dg.exp @@ -698,3 +698,12 @@ proc dg-require-prog-name-available { args } { } } +# If the atomic library is supported on this target, skip this test. + +proc dg-require-libatomic-available { args } { +set libatomic_available [check_effective_target_libatomic_available] +if { $libatomic_available == 0 } { + upvar dg-do-what dg-do-what + set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"] +} +} diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index e307f4e69efb..de27297c1787 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -1662,7 +1662,7 @@ proc check_iconv_available { test_what } { proc check_effective_target_libatomic_available { } { return [check_no_compiler_messages libatomic_available executable { int main (void) { return 0; } -} "-latomic"] +} "[atomic_link_flags [get_multilibs]] -latomic"] } # Return 1 if an ASCII locale is supported on this host, 0 otherwise. diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_float/compare_exchange_padding.cc b/libstdc++-v3/testsuite/29_atomics/atomic_float/compare_exchange_padding.cc index 49626ac66511..351244b25279 100644 --- a/libstdc++-v3/testsuite/29_atomics/atomic_float/compare_exchange_padding.cc +++ b/libstdc++-v3/testsuite/29_atomics/atomic_float/compare_exchange_padding.cc @@ -1,4 +1,5 @@ // { dg-do run { target c++20 } } +// { dg-require-libatomic-available "" } // { dg-options "-O0" } // { dg-additional-options "[atomic_link_flags [get_multilibs]] -latomic" }
Re: [PATCH] testsuite: Turn errors back into warnings in arm/acle/cde-mve-error-2.c
Hello, "Richard Earnshaw (lists)" writes: > On 13/01/2024 20:46, Thiago Jung Bauermann wrote: >> diff --git a/gcc/testsuite/gcc.target/arm/acle/cde-mve-error-2.c >> b/gcc/testsuite/gcc.target/arm/acle/cde-mve-error-2.c >> index 5b7774825442..da283a06a54d 100644 >> --- a/gcc/testsuite/gcc.target/arm/acle/cde-mve-error-2.c >> +++ b/gcc/testsuite/gcc.target/arm/acle/cde-mve-error-2.c >> @@ -2,6 +2,7 @@ >> >> /* { dg-do assemble } */ >> /* { dg-require-effective-target arm_v8_1m_main_cde_mve_fp_ok } */ >> +/* { dg-options "-fpermissive" } */ >> /* { dg-add-options arm_v8_1m_main_cde_mve_fp } */ >> >> /* The error checking files are split since there are three kinds of >> @@ -115,73 +116,73 @@ uint8x16_t test_bad_immediates (uint8x16_t n, >> uint8x16_t m, int someval, >> >>/* `imm' is of wrong type. */ >>accum += __arm_vcx1q_u8 (0, "");/* { dg-error >> {argument 2 to '__builtin_arm_vcx1qv16qi' must be a constant immediate in >> range \[0-4095\]} } */ >> - /* { dg-warning {passing argument 2 of '__builtin_arm_vcx1qv16qi' makes >> integer from pointer without a cast \[-Wint-conversion\]} "" { target *-*-* >> } 117 } */ >> + /* { dg-warning {passing argument 2 of '__builtin_arm_vcx1qv16qi' makes >> integer from pointer without a cast \[-Wint-conversion\]} "" { target *-*-* >> } 118 } */ > > Absolute line numbers are a pain, but I think we can use '.-1' (without the > quotes) in > these cases to minimize the churn. That worked, thank you for the tip. > If that works, ok with that change. I took the opportunity to request commit access to the GCC repo so that I can commit the patch myself. Sorry for the delay. I'll commit it as soon as I get it. Thank you for the patch review! I'm including below the updated version. -- Thiago >From 78e70788da5ed849d7828b0219d3aa8955ad0fea Mon Sep 17 00:00:00 2001 From: Thiago Jung Bauermann Date: Sat, 13 Jan 2024 14:28:07 -0300 Subject: [PATCH v2] testsuite: Turn errors back into warnings in arm/acle/cde-mve-error-2.c MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Since commit 2c3db94d9fd ("c: Turn int-conversion warnings into permerrors") the test fails with errors such as: FAIL: gcc.target/arm/acle/cde-mve-error-2.c -O0 (test for errors, line 32) FAIL: gcc.target/arm/acle/cde-mve-error-2.c -O0 (test for errors, line 33) FAIL: gcc.target/arm/acle/cde-mve-error-2.c -O0 (test for errors, line 34) FAIL: gcc.target/arm/acle/cde-mve-error-2.c -O0 (test for errors, line 35) ⋮ FAIL: gcc.target/arm/acle/cde-mve-error-2.c -O0 at line 118 (test for warnings, line 117) FAIL: gcc.target/arm/acle/cde-mve-error-2.c -O0 (test for errors, line 119) FAIL: gcc.target/arm/acle/cde-mve-error-2.c -O0 at line 120 (test for warnings, line 119) FAIL: gcc.target/arm/acle/cde-mve-error-2.c -O0 (test for errors, line 121) FAIL: gcc.target/arm/acle/cde-mve-error-2.c -O0 at line 122 (test for warnings, line 121) FAIL: gcc.target/arm/acle/cde-mve-error-2.c -O0 (test for errors, line 123) FAIL: gcc.target/arm/acle/cde-mve-error-2.c -O0 at line 124 (test for warnings, line 123) FAIL: gcc.target/arm/acle/cde-mve-error-2.c -O0 (test for errors, line 125) ⋮ FAIL: gcc.target/arm/acle/cde-mve-error-2.c -O0 (test for excess errors) There's a total of 1016 errors. Here's a sample of the excess errors: Excess errors: /path/gcc.git/gcc/testsuite/gcc.target/arm/acle/cde-mve-error-2.c:117:31: error: passing argument 2 of '__builtin_arm_vcx1qv16qi' makes integer from pointer without a cast [-Wint-conversion] /path/gcc.git/gcc/testsuite/gcc.target/arm/acle/cde-mve-error-2.c:119:3: error: passing argument 3 of '__builtin_arm_vcx1qav16qi' makes integer from pointer without a cast [-Wint-conversion] /path/gcc.git/gcc/testsuite/gcc.target/arm/acle/cde-mve-error-2.c:121:3: error: passing argument 3 of '__builtin_arm_vcx2qv16qi' makes integer from pointer without a cast [-Wint-conversion] /path/gcc.git/gcc/testsuite/gcc.target/arm/acle/cde-mve-error-2.c:123:3: error: passing argument 3 of '__builtin_arm_vcx2qv16qi' makes integer from pointer without a cast [-Wint-conversion] The test expects these messages to be warnings, not errors. My first try was to change it to expect them as errors instead. This didn't work, IIUC because the error prevents the compiler from continuing processing the file and thus other errors which are expected by the test don't get emitted. Therefore, add -fpermissive so that the test behaves as it did previously. Because of the additional li
Re: [PATCH] Fix disabling of year 2038 support on 32-bit hosts by default
Hello Andrew, Andrew Pinski writes: > On Mon, Feb 5, 2024 at 10:40 AM Thiago Jung Bauermann > wrote: >> >> >> Thiago Jung Bauermann writes: >> >> > Hello Luis, >> > >> > Luis Machado writes: >> >> >> >> Approved-By: Luis Machado >> > >> > Thanks! Since this is a patch for the repository top-level, is your >> > approval sufficient to commit the patch, or should I have approval from >> > a binutils maintainer as well? >> >> Answering my own question: binutils/MAINTAINERS says: >> >> GDB global maintainers also have permission to commit and approve >> patches to the top level files and to those parts of bfd files >> primarily used by GDB. >> >> So pushed as commit 9c0aa4c53104. > > Please also submit/commit to the gcc trunk too since the toplevel > configure should be insync between the 2 repos. I don't have commit access to the gcc repo so I sent a patch to the gcc-patches mailing list. -- Thiago
[PATCH] Fix disabling of year 2038 support on 32-bit hosts by default
Commit e5f2f7d901ee ("Disable year 2038 support on 32-bit hosts by default") fixed a mismatch between 64-bit time_t in GDB and system headers and 32-bit time_t in BFD. However, since commit 862776f26a59 ("Finalized intl-update patches") gnulib's year 2038 support has been accidentally re-enabled — causing problems for 32-bit hosts again. The commit split baseargs into {h,b}baseargs, but this hasn't been done for the code that handles --disable-year2038. This patch restores the intended behaviour. With this change, the number of unexpected core files goes from 18 to 4. Tested on armv8l-linux-gnueabihf. Approved-By: Luis Machado --- Hello, Yesterday I committed this patch to the binutils-gdb repo. Since the toplevel configure should be in sync between the 2 repos, could someone please commit it to the gcc one? I don't have commit access. configure| 3 ++- configure.ac | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/configure b/configure index 874966fb9f09..1da0e67c28fa 100755 --- a/configure +++ b/configure @@ -10301,7 +10301,8 @@ hbaseargs="$hbaseargs --disable-option-checking" tbaseargs="$tbaseargs --disable-option-checking" if test "$enable_year2038" = no; then - baseargs="$baseargs --disable-year2038" + bbaseargs="$bbaseargs --disable-year2038" + hbaseargs="$hbaseargs --disable-year2038" tbaseargs="$tbaseargs --disable-year2038" fi diff --git a/configure.ac b/configure.ac index 4f34004a0726..fa508a0612a3 100644 --- a/configure.ac +++ b/configure.ac @@ -3420,7 +3420,8 @@ hbaseargs="$hbaseargs --disable-option-checking" tbaseargs="$tbaseargs --disable-option-checking" if test "$enable_year2038" = no; then - baseargs="$baseargs --disable-year2038" + bbaseargs="$bbaseargs --disable-year2038" + hbaseargs="$hbaseargs --disable-year2038" tbaseargs="$tbaseargs --disable-year2038" fi
[PATCH] testsuite: Turn errors back into warnings in arm/acle/cde-mve-error-2.c
Since commit 2c3db94d9fd ("c: Turn int-conversion warnings into permerrors") the test fails with errors such as: FAIL: gcc.target/arm/acle/cde-mve-error-2.c -O0 (test for errors, line 32) FAIL: gcc.target/arm/acle/cde-mve-error-2.c -O0 (test for errors, line 33) FAIL: gcc.target/arm/acle/cde-mve-error-2.c -O0 (test for errors, line 34) FAIL: gcc.target/arm/acle/cde-mve-error-2.c -O0 (test for errors, line 35) ⋮ FAIL: gcc.target/arm/acle/cde-mve-error-2.c -O0 at line 118 (test for warnings, line 117) FAIL: gcc.target/arm/acle/cde-mve-error-2.c -O0 (test for errors, line 119) FAIL: gcc.target/arm/acle/cde-mve-error-2.c -O0 at line 120 (test for warnings, line 119) FAIL: gcc.target/arm/acle/cde-mve-error-2.c -O0 (test for errors, line 121) FAIL: gcc.target/arm/acle/cde-mve-error-2.c -O0 at line 122 (test for warnings, line 121) FAIL: gcc.target/arm/acle/cde-mve-error-2.c -O0 (test for errors, line 123) FAIL: gcc.target/arm/acle/cde-mve-error-2.c -O0 at line 124 (test for warnings, line 123) FAIL: gcc.target/arm/acle/cde-mve-error-2.c -O0 (test for errors, line 125) ⋮ FAIL: gcc.target/arm/acle/cde-mve-error-2.c -O0 (test for excess errors) There's a total of 1016 errors. Here's a sample of the excess errors: Excess errors: /path/gcc.git/gcc/testsuite/gcc.target/arm/acle/cde-mve-error-2.c:117:31: error: passing argument 2 of '__builtin_arm_vcx1qv16qi' makes integer from pointer without a cast [-Wint-conversion] /path/gcc.git/gcc/testsuite/gcc.target/arm/acle/cde-mve-error-2.c:119:3: error: passing argument 3 of '__builtin_arm_vcx1qav16qi' makes integer from pointer without a cast [-Wint-conversion] /path/gcc.git/gcc/testsuite/gcc.target/arm/acle/cde-mve-error-2.c:121:3: error: passing argument 3 of '__builtin_arm_vcx2qv16qi' makes integer from pointer without a cast [-Wint-conversion] /path/gcc.git/gcc/testsuite/gcc.target/arm/acle/cde-mve-error-2.c:123:3: error: passing argument 3 of '__builtin_arm_vcx2qv16qi' makes integer from pointer without a cast [-Wint-conversion] The test expects these messages to be warnings, not errors. My first try was to change it to expect them as errors instead. This didn't work, IIUC because the error prevents the compiler from continuing processing the file and thus other errors which are expected by the test don't get emitted. Therefore, add -fpermissive so that the test behaves as it did previously. Because of the additional line in the header, I had to adjust the line numbers of the expected warnings. Tested on armv8l-linux-gnueabihf. gcc/testsuite/ChangeLog: * gcc.target/arm/acle/cde-mve-error-2.c: Add -fpermissive. --- .../gcc.target/arm/acle/cde-mve-error-2.c | 63 ++- 1 file changed, 32 insertions(+), 31 deletions(-) diff --git a/gcc/testsuite/gcc.target/arm/acle/cde-mve-error-2.c b/gcc/testsuite/gcc.target/arm/acle/cde-mve-error-2.c index 5b7774825442..da283a06a54d 100644 --- a/gcc/testsuite/gcc.target/arm/acle/cde-mve-error-2.c +++ b/gcc/testsuite/gcc.target/arm/acle/cde-mve-error-2.c @@ -2,6 +2,7 @@ /* { dg-do assemble } */ /* { dg-require-effective-target arm_v8_1m_main_cde_mve_fp_ok } */ +/* { dg-options "-fpermissive" } */ /* { dg-add-options arm_v8_1m_main_cde_mve_fp } */ /* The error checking files are split since there are three kinds of @@ -115,73 +116,73 @@ uint8x16_t test_bad_immediates (uint8x16_t n, uint8x16_t m, int someval, /* `imm' is of wrong type. */ accum += __arm_vcx1q_u8 (0, "");/* { dg-error {argument 2 to '__builtin_arm_vcx1qv16qi' must be a constant immediate in range \[0-4095\]} } */ - /* { dg-warning {passing argument 2 of '__builtin_arm_vcx1qv16qi' makes integer from pointer without a cast \[-Wint-conversion\]} "" { target *-*-* } 117 } */ + /* { dg-warning {passing argument 2 of '__builtin_arm_vcx1qv16qi' makes integer from pointer without a cast \[-Wint-conversion\]} "" { target *-*-* } 118 } */ accum += __arm_vcx1qa (0, accum, ""); /* { dg-error {argument 3 to '__builtin_arm_vcx1qav16qi' must be a constant immediate in range \[0-4095\]} } */ - /* { dg-warning {passing argument 3 of '__builtin_arm_vcx1qav16qi' makes integer from pointer without a cast \[-Wint-conversion\]} "" { target *-*-* } 119 } */ + /* { dg-warning {passing argument 3 of '__builtin_arm_vcx1qav16qi' makes integer from pointer without a cast \[-Wint-conversion\]} "" { target *-*-* } 120 } */ accum += __arm_vcx2q (0, n, "");/* { dg-error {argument 3 to '__builtin_arm_vcx2qv16qi' must be a constant immediate in range \[0-127\]} } */ - /* { dg-warning {passing argument 3 of '__builtin_arm_vcx2qv16qi' makes integer from pointer without a cast \[-Wint-conversion\]} "" { target *-*-* } 121 } */ + /* { dg-warning {passing argument 3 of '__builtin_arm_vcx2qv16qi' makes integer from pointer without a cast \[-Wint-conversion\]} "" { ta
[PATCH] testsuite: Fix fallout of turning warnings into errors on 32-bit Arm
Since commits 2c3db94d9fd ("c: Turn int-conversion warnings into permerrors") and 55e94561e97e ("c: Turn -Wimplicit-function-declaration into a permerror") these tests fail with errors such as: FAIL: gcc.target/arm/pr59858.c (test for excess errors) FAIL: gcc.target/arm/pr65647.c (test for excess errors) FAIL: gcc.target/arm/pr65710.c (test for excess errors) FAIL: gcc.target/arm/pr97969.c (test for excess errors) Here's one example of the excess errors: FAIL: gcc.target/arm/pr65647.c (test for excess errors) Excess errors: /path/gcc.git/gcc/testsuite/gcc.target/arm/pr65647.c:6:17: error: initialization of 'int' from 'int *' makes integer from pointer without a cast [-Wint-conversion] /path/gcc.git/gcc/testsuite/gcc.target/arm/pr65647.c:6:51: error: initialization of 'int' from 'int *' makes integer from pointer without a cast [-Wint-conversion] /path/gcc.git/gcc/testsuite/gcc.target/arm/pr65647.c:6:62: error: initialization of 'int' from 'int *' makes integer from pointer without a cast [-Wint-conversion] /path/gcc.git/gcc/testsuite/gcc.target/arm/pr65647.c:7:48: error: initialization of 'int' from 'int *' makes integer from pointer without a cast [-Wint-conversion] /path/gcc.git/gcc/testsuite/gcc.target/arm/pr65647.c:8:9: error: initialization of 'int' from 'int *' makes integer from pointer without a cast [-Wint-conversion] /path/gcc.git/gcc/testsuite/gcc.target/arm/pr65647.c:24:5: error: initialization of 'int' from 'int *' makes integer from pointer without a cast [-Wint-conversion] /path/gcc.git/gcc/testsuite/gcc.target/arm/pr65647.c:25:5: error: initialization of 'int' from 'struct S1 *' makes integer from pointer without a cast [-Wint-conversion] /path/gcc.git/gcc/testsuite/gcc.target/arm/pr65647.c:41:3: error: implicit declaration of function 'fn3'; did you mean 'fn2'? [-Wimplicit-function-declaration] /path/gcc.git/gcc/testsuite/gcc.target/arm/pr65647.c:46:3: error: implicit declaration of function 'fn5'; did you mean 'fn4'? [-Wimplicit-function-declaration] /path/gcc.git/gcc/testsuite/gcc.target/arm/pr65647.c:57:16: error: implicit declaration of function 'fn6'; did you mean 'fn4'? [-Wimplicit-function-declaration] PR rtl-optimization/59858 and PR target/65710 test the fix of an ICE. PR target/65647 and PR target/97969 test for a compilation infinite loop. Therefore, add -fpermissive so that the tests behave as they did previously. Tested on armv8l-linux-gnueabihf. gcc/testsuite/ChangeLog: * gcc.target/arm/pr59858.c: Add -fpermissive. * gcc/testsuite/gcc.target/arm/pr65647.c: Likewise. * gcc/testsuite/gcc.target/arm/pr65710.c: Likewise. * gcc/testsuite/gcc.target/arm/pr97969.c: Likewise. --- gcc/testsuite/gcc.target/arm/pr59858.c | 2 +- gcc/testsuite/gcc.target/arm/pr65647.c | 2 +- gcc/testsuite/gcc.target/arm/pr65710.c | 2 +- gcc/testsuite/gcc.target/arm/pr97969.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/gcc/testsuite/gcc.target/arm/pr59858.c b/gcc/testsuite/gcc.target/arm/pr59858.c index 3360b48e8586..9336edfce277 100644 --- a/gcc/testsuite/gcc.target/arm/pr59858.c +++ b/gcc/testsuite/gcc.target/arm/pr59858.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-march=armv5te -fno-builtin -mfloat-abi=soft -mthumb -fno-stack-protector -Os -fno-tree-loop-optimize -fno-tree-dominator-opts -fPIC -w" } */ +/* { dg-options "-march=armv5te -fno-builtin -mfloat-abi=soft -mthumb -fno-stack-protector -Os -fno-tree-loop-optimize -fno-tree-dominator-opts -fPIC -w -fpermissive" } */ /* { dg-require-effective-target fpic } */ /* { dg-skip-if "Incompatible command line options: -mfloat-abi=soft -mfloat-abi=hard" { *-*-* } { "-mfloat-abi=hard" } { "" } } */ /* { dg-require-effective-target arm_arch_v5te_thumb_ok } */ diff --git a/gcc/testsuite/gcc.target/arm/pr65647.c b/gcc/testsuite/gcc.target/arm/pr65647.c index 26b4e399f6be..3cbf6b804ec0 100644 --- a/gcc/testsuite/gcc.target/arm/pr65647.c +++ b/gcc/testsuite/gcc.target/arm/pr65647.c @@ -1,7 +1,7 @@ /* { dg-do compile } */ /* { dg-require-effective-target arm_arch_v6m_ok } */ /* { dg-skip-if "do not override -mfloat-abi" { *-*-* } { "-mfloat-abi=*" } {"-mfloat-abi=soft" } } */ -/* { dg-options "-march=armv6-m -mthumb -O3 -w -mfloat-abi=soft" } */ +/* { dg-options "-march=armv6-m -mthumb -O3 -w -mfloat-abi=soft -fpermissive" } */ a, b, c, e, g = &e, h, i = 7, l = 1, m, n, o, q = &m, r, s = &r, u, w = 9, x, y = 6, z, t6 = 7, t8, t9 = 1, t11 = 5, t12 = &t8, t13 = 3, t15, diff --git a/gcc/testsuite/gcc.target/arm/pr65710.c b/gcc/testsuite/gcc.target/arm/pr65710.c index 103ce1d45f77..4cbf7817af7e 100644 --- a/gcc/testsuite/gcc.target/arm/pr65710.c +++ b/gcc/testsuite/gcc.target/arm/pr65710.c @@ -1,6 +1,6 @@ /* { dg-do compile } */ /* { dg-skip-if "do not override -mfloat-abi" { *-*-* } { "-mfloat-abi=*" } {"-mfloat-abi=soft" } } */ -/* { dg-options "-mthumb -O2 -mfloat-abi=soft -w" } */ +/* { dg-options "-mthu
Re: [PATCH] testsuite: aarch64: Adjust SVE ACLE tests to new generated code
Hello Richard, Richard Sandiford writes: > Thiago Jung Bauermann via Gcc-patches writes: >> Since commit e7a36e4715c7 "[PATCH] RISC-V: Support simplify (-1-x) for >> vector." these tests fail on aarch64-linux: >> >> === g++ tests === >> >> Running g++:g++.target/aarch64/sve/acle/aarch64-sve-acle-asm.exp ... >> FAIL: gcc.target/aarch64/sve/acle/asm/subr_s8.c -std=gnu++98 -O2 >> -fno-schedule-insns -DCHECK_ASM --save-temps -DTEST_FULL >> check-function-bodies subr_m1_s8_m >> FAIL: gcc.target/aarch64/sve/acle/asm/subr_s8.c -std=gnu++98 -O2 >> -fno-schedule-insns -DCHECK_ASM --save-temps -DTEST_OVERLOADS >> check-function-bodies subr_m1_s8_m >> FAIL: gcc.target/aarch64/sve/acle/asm/subr_u8.c -std=gnu++98 -O2 >> -fno-schedule-insns -DCHECK_ASM --save-temps -DTEST_FULL >> check-function-bodies subr_m1_u8_m >> FAIL: gcc.target/aarch64/sve/acle/asm/subr_u8.c -std=gnu++98 -O2 >> -fno-schedule-insns -DCHECK_ASM --save-temps -DTEST_OVERLOADS >> check-function-bodies subr_m1_u8_m >> >> === gcc tests === >> >> Running gcc:gcc.target/aarch64/sve/acle/aarch64-sve-acle-asm.exp ... >> FAIL: gcc.target/aarch64/sve/acle/asm/subr_s8.c -std=gnu90 -O2 >> -fno-schedule-insns -DCHECK_ASM --save-temps -DTEST_FULL >> check-function-bodies subr_m1_s8_m >> FAIL: gcc.target/aarch64/sve/acle/asm/subr_s8.c -std=gnu90 -O2 >> -fno-schedule-insns -DCHECK_ASM --save-temps -DTEST_OVERLOADS >> check-function-bodies subr_m1_s8_m >> FAIL: gcc.target/aarch64/sve/acle/asm/subr_u8.c -std=gnu90 -O2 >> -fno-schedule-insns -DCHECK_ASM --save-temps -DTEST_FULL >> check-function-bodies subr_m1_u8_m >> FAIL: gcc.target/aarch64/sve/acle/asm/subr_u8.c -std=gnu90 -O2 >> -fno-schedule-insns -DCHECK_ASM --save-temps -DTEST_OVERLOADS >> check-function-bodies subr_m1_u8_m >> >> Andrew Pinski's analysis in PR testsuite/111071 is that the new code is >> better and the testcase should be updated. I also asked Prathamesh Kulkarni >> in private and he agreed. >> >> Here is the update. With this change, all tests in >> gcc.target/aarch64/sve/acle/aarch64-sve-acle-asm.exp pass on aarch64-linux. >> >> gcc/testsuite/ >> PR testsuite/111071 >> * gcc/testsuite/gcc.target/aarch64/sve/acle/asm/subr_s8.c: Adjust to >> new code. >> * gcc/testsuite/gcc.target/aarch64/sve/acle/asm/subr_u8.c: Likewise. > > Thanks, pushed to trunk. And sorry for the delay. I somehow > missed this earlier. :( No problem. Thank you for pushing it! -- Thiago
[PATCH] testsuite: aarch64: Adjust SVE ACLE tests to new generated code
Since commit e7a36e4715c7 "[PATCH] RISC-V: Support simplify (-1-x) for vector." these tests fail on aarch64-linux: === g++ tests === Running g++:g++.target/aarch64/sve/acle/aarch64-sve-acle-asm.exp ... FAIL: gcc.target/aarch64/sve/acle/asm/subr_s8.c -std=gnu++98 -O2 -fno-schedule-insns -DCHECK_ASM --save-temps -DTEST_FULL check-function-bodies subr_m1_s8_m FAIL: gcc.target/aarch64/sve/acle/asm/subr_s8.c -std=gnu++98 -O2 -fno-schedule-insns -DCHECK_ASM --save-temps -DTEST_OVERLOADS check-function-bodies subr_m1_s8_m FAIL: gcc.target/aarch64/sve/acle/asm/subr_u8.c -std=gnu++98 -O2 -fno-schedule-insns -DCHECK_ASM --save-temps -DTEST_FULL check-function-bodies subr_m1_u8_m FAIL: gcc.target/aarch64/sve/acle/asm/subr_u8.c -std=gnu++98 -O2 -fno-schedule-insns -DCHECK_ASM --save-temps -DTEST_OVERLOADS check-function-bodies subr_m1_u8_m === gcc tests === Running gcc:gcc.target/aarch64/sve/acle/aarch64-sve-acle-asm.exp ... FAIL: gcc.target/aarch64/sve/acle/asm/subr_s8.c -std=gnu90 -O2 -fno-schedule-insns -DCHECK_ASM --save-temps -DTEST_FULL check-function-bodies subr_m1_s8_m FAIL: gcc.target/aarch64/sve/acle/asm/subr_s8.c -std=gnu90 -O2 -fno-schedule-insns -DCHECK_ASM --save-temps -DTEST_OVERLOADS check-function-bodies subr_m1_s8_m FAIL: gcc.target/aarch64/sve/acle/asm/subr_u8.c -std=gnu90 -O2 -fno-schedule-insns -DCHECK_ASM --save-temps -DTEST_FULL check-function-bodies subr_m1_u8_m FAIL: gcc.target/aarch64/sve/acle/asm/subr_u8.c -std=gnu90 -O2 -fno-schedule-insns -DCHECK_ASM --save-temps -DTEST_OVERLOADS check-function-bodies subr_m1_u8_m Andrew Pinski's analysis in PR testsuite/111071 is that the new code is better and the testcase should be updated. I also asked Prathamesh Kulkarni in private and he agreed. Here is the update. With this change, all tests in gcc.target/aarch64/sve/acle/aarch64-sve-acle-asm.exp pass on aarch64-linux. gcc/testsuite/ PR testsuite/111071 * gcc/testsuite/gcc.target/aarch64/sve/acle/asm/subr_s8.c: Adjust to new code. * gcc/testsuite/gcc.target/aarch64/sve/acle/asm/subr_u8.c: Likewise. Suggested-by: Andrew Pinski --- gcc/testsuite/gcc.target/aarch64/sve/acle/asm/subr_s8.c | 3 +-- gcc/testsuite/gcc.target/aarch64/sve/acle/asm/subr_u8.c | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/subr_s8.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/subr_s8.c index b9615de6655f..3e521bc9ae32 100644 --- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/subr_s8.c +++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/subr_s8.c @@ -76,8 +76,7 @@ TEST_UNIFORM_Z (subr_1_s8_m_untied, svint8_t, /* ** subr_m1_s8_m: -** mov (z[0-9]+\.b), #-1 -** subrz0\.b, p0/m, z0\.b, \1 +** not z0\.b, p0/m, z0\.b ** ret */ TEST_UNIFORM_Z (subr_m1_s8_m, svint8_t, diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/subr_u8.c b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/subr_u8.c index 65606b6dda03..4922bdbacc47 100644 --- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/subr_u8.c +++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/subr_u8.c @@ -76,8 +76,7 @@ TEST_UNIFORM_Z (subr_1_u8_m_untied, svuint8_t, /* ** subr_m1_u8_m: -** mov (z[0-9]+\.b), #-1 -** subrz0\.b, p0/m, z0\.b, \1 +** not z0\.b, p0/m, z0\.b ** ret */ TEST_UNIFORM_Z (subr_m1_u8_m, svuint8_t,
Re: [PATCH] Remove XFAIL from gcc/testsuite/gcc.dg/unroll-7.c
Richard Sandiford writes: > Thiago Jung Bauermann via Gcc-patches writes: >> This test passes since commit e41103081bfa "Fix undefined behaviour in >> profile_count::differs_from_p", so remove the xfail annotation. >> >> Tested on aarch64-linux-gnu, armv8l-linux-gnueabihf and x86_64-linux-gnu. >> >> gcc/testsuite/ChangeLog: >> * gcc.dg/unroll-7.c: Remove xfail. > > Thanks, pushed to trunk. Sorry for the slow response. Thank you! No problem. -- Thiago
Re: [PATCH] testsuite: Adjust g++.dg/gomp/pr58567.C to new compiler message
Hello Tobias, Tobias Burnus writes: > On 18.08.23 23:24, Thiago Jung Bauermann wrote: >> Tobias Burnus writes: >>> the patch looks good to me. Thanks! Can you commit the patch yourself or >>> do you need someone to do this for you? >> Thank you! I don't have commit access, so I would need someone to do >> this for me. > > Done now in commit r14-3344-g40a6803c6d8ca2. Thank you! -- Thiago
Re: [PATCH] testsuite: Adjust g++.dg/gomp/pr58567.C to new compiler message
Hello Tobias, Tobias Burnus writes: > Hello Thiago, > > the patch looks good to me. Thanks! Can you commit the patch yourself or > do you need someone to do this for you? Thank you! I don't have commit access, so I would need someone to do this for me. > On 15.08.23 18:17, Thiago Jung Bauermann via Gcc-patches wrote: >> Thiago Jung Bauermann writes: >> >>> Commit 92d1425ca780 "c++: redundant targ coercion for var/alias tmpls" >>> changed the compiler error message in this testcase from >>> >>> : In instantiation of 'void foo() [with T = int]': >>> :14:11: required from here >>> :8:22: error: 'int' is not a class, struct, or union type >>> :8:22: error: 'int' is not a class, struct, or union type >>> :8:22: error: 'int' is not a class, struct, or union type >>> :8:3: error: expected iteration declaration or initialization >>> compiler exited with status 1 >>> >>> to: >>> >>> : In instantiation of 'void foo() [with T = int]': >>> :14:11: required from here >>> :8:22: error: 'int' is not a class, struct, or union type >>> :8:3: error: invalid type for iteration variable 'i' >>> compiler exited with status 1 >>> Excess errors: >>> :8:3: error: invalid type for iteration variable 'i' >>> >>> Andrew Pinski analysed the issue in PR 110756 and considered that it was a >>> testsuite issue in that the error message changed slightly. Also, it's a >>> better error message. >>> >>> Therefore, we only need to adjust the testcase to expect the new message. >>> >>> gcc/testsuite/ChangeLog: >>> PR testsuite/110756 >>> g++.dg/gomp/pr58567.C: Adjust to new compiler error message. >>> --- >>> gcc/testsuite/g++.dg/gomp/pr58567.C | 2 +- >>> 1 file changed, 1 insertion(+), 1 deletion(-) >>> >>> diff --git a/gcc/testsuite/g++.dg/gomp/pr58567.C >>> b/gcc/testsuite/g++.dg/gomp/pr58567.C >>> index 35a5bb027ffe..866d831c65e4 100644 >>> --- a/gcc/testsuite/g++.dg/gomp/pr58567.C >>> +++ b/gcc/testsuite/g++.dg/gomp/pr58567.C >>> @@ -5,7 +5,7 @@ >>> template void foo() >>> { >>> #pragma omp parallel for >>> - for (typename T::X i = 0; i < 100; ++i) /* { dg-error "'int' is not a >>> class, struct, or union type|expected iteration declaration or >>> initialization" } */ >>> + for (typename T::X i = 0; i < 100; ++i) /* { dg-error "'int' is not a >>> class, struct, or union type|invalid type for iteration variable 'i'" } */ >>> ; >>> } >>> >> Ping? I just tested trunk. It still fails this test, and this patch >> still fixes the failures. > Tobias > - > Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 > München; > Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank > Thürauf; > Sitz der Gesellschaft: München; Registergericht München, HRB 106955 -- Thiago
Re: [PATCH] testsuite: Improve test in dg-require-python-h
Eric Feng writes: > Thanks for the patch, Thiago. I've pushed it to trunk: > https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=6785917c9103e18bba0d718ac3b65a386d9a14f7. Thank you, Eric and Dave. > On Fri, Aug 18, 2023 at 2:11 PM David Malcolm wrote: >> >> On Thu, 2023-08-17 at 23:30 -0300, Thiago Jung Bauermann wrote: >> > If GCC is tested with a sysroot which doesn't contain a Python >> > installation (e.g., with a command such as >> > "make check-gcc-c FLAGS_UNDER_TEST="--sysroot=/some/path"), but >> > there's >> > a python3-config in $PATH, then the testsuite will pick up the host's >> > Python.h which can't actually be used: >> > >> > Executing on host: python3-config --includes(timeout = 300) >> > spawn -ignore SIGHUP python3-config --includes >> > -I/usr/include/python3.10 -I/usr/include/python3.10 >> > Executing on host: /some/sysroot/bin/aarch64-unknown-linux-gnu-gcc -- >> > sysroot=/some/sysroot/libc -Wl,-dynamic- >> > linker=/some/sysroot/libc/lib/ld-linux-aarch64.so.1 -Wl,- >> > rpath=/some/sysroot/libc/lib >> > /some/src/gcc.git/gcc/testsuite/gcc.dg/plugin/cpython-plugin-test- >> > 2.c-fdiagnostics-plain-output - >> > fplugin=./analyzer_cpython_plugin.so -fanalyzer - >> > I/usr/include/python3.10 -I/usr/include/python3.10 -S -o cpython- >> > plugin-test-2.s(timeout = 600) >> > spawn -ignore SIGHUP /some/sysroot/bin/aarch64-unknown-linux-gnu-gcc >> > --sysroot=/some/sysroot/libc -Wl,-dynamic- >> > linker=/some/sysroot/libc/lib/ld-linux-aarch64.so.1 -Wl,- >> > rpath=/some/sysroot/libc/lib >> > /some/src/gcc.git/gcc/testsuite/gcc.dg/plugin/cpython-plugin-test-2.c >> > -fdiagnostics-plain-output -fplugin=./analyzer_cpython_plugin.so - >> > fanalyzer -I/usr/include/python3.10 -I/usr/include/python3.10 -S -o >> > cpython-plugin-test-2.s >> > In file included from /usr/include/python3.10/Python.h:8, >> > from >> > /some/src/gcc.git/gcc/testsuite/gcc.dg/plugin/cpython-plugin-test- >> > 2.c:8: >> > /usr/include/python3.10/pyconfig.h:9:12: fatal error: aarch64-linux- >> > gnu/python3.10/pyconfig.h: No such file or directory >> > compilation terminated. >> > compiler exited with status 1 >> > >> > This problem causes these testsuite failures: >> > >> > FAIL: gcc.dg/plugin/cpython-plugin-test-2.c - >> > fplugin=./analyzer_cpython_plugin.so (test for warnings, line 17) >> > FAIL: gcc.dg/plugin/cpython-plugin-test-2.c - >> > fplugin=./analyzer_cpython_plugin.so (test for warnings, line 18) >> > FAIL: gcc.dg/plugin/cpython-plugin-test-2.c - >> > fplugin=./analyzer_cpython_plugin.so (test for warnings, line 21) >> > FAIL: gcc.dg/plugin/cpython-plugin-test-2.c - >> > fplugin=./analyzer_cpython_plugin.so (test for warnings, line 31) >> > FAIL: gcc.dg/plugin/cpython-plugin-test-2.c - >> > fplugin=./analyzer_cpython_plugin.so (test for warnings, line 32) >> > FAIL: gcc.dg/plugin/cpython-plugin-test-2.c - >> > fplugin=./analyzer_cpython_plugin.so (test for warnings, line 35) >> > FAIL: gcc.dg/plugin/cpython-plugin-test-2.c - >> > fplugin=./analyzer_cpython_plugin.so (test for warnings, line 45) >> > FAIL: gcc.dg/plugin/cpython-plugin-test-2.c - >> > fplugin=./analyzer_cpython_plugin.so (test for warnings, line 55) >> > FAIL: gcc.dg/plugin/cpython-plugin-test-2.c - >> > fplugin=./analyzer_cpython_plugin.so (test for warnings, line 63) >> > FAIL: gcc.dg/plugin/cpython-plugin-test-2.c - >> > fplugin=./analyzer_cpython_plugin.so (test for warnings, line 66) >> > FAIL: gcc.dg/plugin/cpython-plugin-test-2.c - >> > fplugin=./analyzer_cpython_plugin.so (test for warnings, line 68) >> > FAIL: gcc.dg/plugin/cpython-plugin-test-2.c - >> > fplugin=./analyzer_cpython_plugin.so (test for warnings, line 69) >> > FAIL: gcc.dg/plugin/cpython-plugin-test-2.c - >> > fplugin=./analyzer_cpython_plugin.so (test for excess errors) >> > Excess errors: >> > /usr/include/python3.10/pyconfig.h:9:12: fatal error: aarch64-linux- >> > gnu/python3.10/pyconfig.h: No such file or directory >> > compilation terminated. >> > >> > So try to compile a test file so that the testcase can be marked as >> > unsupported instead. >> > >> > gcc/testsuite/ChangeLog: >> > * gcc/testsuite/lib/target-supports.exp (dg-require-python- >> > h): Test >> > whether
[PATCH] testsuite: Improve test in dg-require-python-h
If GCC is tested with a sysroot which doesn't contain a Python installation (e.g., with a command such as "make check-gcc-c FLAGS_UNDER_TEST="--sysroot=/some/path"), but there's a python3-config in $PATH, then the testsuite will pick up the host's Python.h which can't actually be used: Executing on host: python3-config --includes(timeout = 300) spawn -ignore SIGHUP python3-config --includes -I/usr/include/python3.10 -I/usr/include/python3.10 Executing on host: /some/sysroot/bin/aarch64-unknown-linux-gnu-gcc --sysroot=/some/sysroot/libc -Wl,-dynamic-linker=/some/sysroot/libc/lib/ld-linux-aarch64.so.1 -Wl,-rpath=/some/sysroot/libc/lib /some/src/gcc.git/gcc/testsuite/gcc.dg/plugin/cpython-plugin-test-2.c -fdiagnostics-plain-output -fplugin=./analyzer_cpython_plugin.so -fanalyzer -I/usr/include/python3.10 -I/usr/include/python3.10 -S -o cpython-plugin-test-2.s(timeout = 600) spawn -ignore SIGHUP /some/sysroot/bin/aarch64-unknown-linux-gnu-gcc --sysroot=/some/sysroot/libc -Wl,-dynamic-linker=/some/sysroot/libc/lib/ld-linux-aarch64.so.1 -Wl,-rpath=/some/sysroot/libc/lib /some/src/gcc.git/gcc/testsuite/gcc.dg/plugin/cpython-plugin-test-2.c -fdiagnostics-plain-output -fplugin=./analyzer_cpython_plugin.so -fanalyzer -I/usr/include/python3.10 -I/usr/include/python3.10 -S -o cpython-plugin-test-2.s In file included from /usr/include/python3.10/Python.h:8, from /some/src/gcc.git/gcc/testsuite/gcc.dg/plugin/cpython-plugin-test-2.c:8: /usr/include/python3.10/pyconfig.h:9:12: fatal error: aarch64-linux-gnu/python3.10/pyconfig.h: No such file or directory compilation terminated. compiler exited with status 1 This problem causes these testsuite failures: FAIL: gcc.dg/plugin/cpython-plugin-test-2.c -fplugin=./analyzer_cpython_plugin.so (test for warnings, line 17) FAIL: gcc.dg/plugin/cpython-plugin-test-2.c -fplugin=./analyzer_cpython_plugin.so (test for warnings, line 18) FAIL: gcc.dg/plugin/cpython-plugin-test-2.c -fplugin=./analyzer_cpython_plugin.so (test for warnings, line 21) FAIL: gcc.dg/plugin/cpython-plugin-test-2.c -fplugin=./analyzer_cpython_plugin.so (test for warnings, line 31) FAIL: gcc.dg/plugin/cpython-plugin-test-2.c -fplugin=./analyzer_cpython_plugin.so (test for warnings, line 32) FAIL: gcc.dg/plugin/cpython-plugin-test-2.c -fplugin=./analyzer_cpython_plugin.so (test for warnings, line 35) FAIL: gcc.dg/plugin/cpython-plugin-test-2.c -fplugin=./analyzer_cpython_plugin.so (test for warnings, line 45) FAIL: gcc.dg/plugin/cpython-plugin-test-2.c -fplugin=./analyzer_cpython_plugin.so (test for warnings, line 55) FAIL: gcc.dg/plugin/cpython-plugin-test-2.c -fplugin=./analyzer_cpython_plugin.so (test for warnings, line 63) FAIL: gcc.dg/plugin/cpython-plugin-test-2.c -fplugin=./analyzer_cpython_plugin.so (test for warnings, line 66) FAIL: gcc.dg/plugin/cpython-plugin-test-2.c -fplugin=./analyzer_cpython_plugin.so (test for warnings, line 68) FAIL: gcc.dg/plugin/cpython-plugin-test-2.c -fplugin=./analyzer_cpython_plugin.so (test for warnings, line 69) FAIL: gcc.dg/plugin/cpython-plugin-test-2.c -fplugin=./analyzer_cpython_plugin.so (test for excess errors) Excess errors: /usr/include/python3.10/pyconfig.h:9:12: fatal error: aarch64-linux-gnu/python3.10/pyconfig.h: No such file or directory compilation terminated. So try to compile a test file so that the testcase can be marked as unsupported instead. gcc/testsuite/ChangeLog: * gcc/testsuite/lib/target-supports.exp (dg-require-python-h): Test whether Python.h can really be used. --- gcc/testsuite/lib/target-supports.exp | 14 -- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index 92b6f69730e9..5b5f86551844 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -12570,11 +12570,21 @@ proc dg-require-python-h { args } { verbose "ENTER dg-require-python-h" 2 +set supported 0 set result [remote_exec host "python3-config --includes"] set status [lindex $result 0] if { $status == 0 } { -set python_flags [lindex $result 1] -} else { + # Remove trailing newline from python3-config output. + set python_flags [string trim [lindex $result 1]] + if [check_no_compiler_messages python_h assembly { + #include + int main (void) { return 0; } + } $python_flags] { + set supported 1 + } +} + +if { $supported == 0 } { verbose "Python.h not supported" 2 upvar dg-do-what dg-do-what set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"] base-commit: 1eb2433ff9e85008a289db03ff7eb802d51c42a8
[PATCH] Remove XFAIL from gcc/testsuite/gcc.dg/unroll-7.c
This test passes since commit e41103081bfa "Fix undefined behaviour in profile_count::differs_from_p", so remove the xfail annotation. Tested on aarch64-linux-gnu, armv8l-linux-gnueabihf and x86_64-linux-gnu. gcc/testsuite/ChangeLog: * gcc.dg/unroll-7.c: Remove xfail. --- gcc/testsuite/gcc.dg/unroll-7.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/testsuite/gcc.dg/unroll-7.c b/gcc/testsuite/gcc.dg/unroll-7.c index 650448df5db1..17c5e533c2cb 100644 --- a/gcc/testsuite/gcc.dg/unroll-7.c +++ b/gcc/testsuite/gcc.dg/unroll-7.c @@ -15,4 +15,4 @@ int t(void) /* { dg-final { scan-rtl-dump "upper bound: 99" "loop2_unroll" } } */ /* { dg-final { scan-rtl-dump "realistic bound: 99" "loop2_unroll" } } */ /* { dg-final { scan-rtl-dump "considering unrolling loop with constant number of iterations" "loop2_unroll" } } */ -/* { dg-final { scan-rtl-dump-not "Invalid sum" "loop2_unroll" {xfail *-*-* } } } */ +/* { dg-final { scan-rtl-dump-not "Invalid sum" "loop2_unroll" } } */ base-commit: 5da4c0b85a97727e6802eaf3a0d47bcdb8da5f51
Re: [PATCH] testsuite: Adjust g++.dg/gomp/pr58567.C to new compiler message
Hello, Thiago Jung Bauermann writes: > Commit 92d1425ca780 "c++: redundant targ coercion for var/alias tmpls" > changed the compiler error message in this testcase from > > : In instantiation of 'void foo() [with T = int]': > :14:11: required from here > :8:22: error: 'int' is not a class, struct, or union type > :8:22: error: 'int' is not a class, struct, or union type > :8:22: error: 'int' is not a class, struct, or union type > :8:3: error: expected iteration declaration or initialization > compiler exited with status 1 > > to: > > : In instantiation of 'void foo() [with T = int]': > :14:11: required from here > :8:22: error: 'int' is not a class, struct, or union type > :8:3: error: invalid type for iteration variable 'i' > compiler exited with status 1 > Excess errors: > :8:3: error: invalid type for iteration variable 'i' > > Andrew Pinski analysed the issue in PR 110756 and considered that it was a > testsuite issue in that the error message changed slightly. Also, it's a > better error message. > > Therefore, we only need to adjust the testcase to expect the new message. > > gcc/testsuite/ChangeLog: > PR testsuite/110756 > g++.dg/gomp/pr58567.C: Adjust to new compiler error message. > --- > gcc/testsuite/g++.dg/gomp/pr58567.C | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/gcc/testsuite/g++.dg/gomp/pr58567.C > b/gcc/testsuite/g++.dg/gomp/pr58567.C > index 35a5bb027ffe..866d831c65e4 100644 > --- a/gcc/testsuite/g++.dg/gomp/pr58567.C > +++ b/gcc/testsuite/g++.dg/gomp/pr58567.C > @@ -5,7 +5,7 @@ > template void foo() > { >#pragma omp parallel for > - for (typename T::X i = 0; i < 100; ++i) /* { dg-error "'int' is not a > class, struct, or union type|expected iteration declaration or > initialization" } */ > + for (typename T::X i = 0; i < 100; ++i) /* { dg-error "'int' is not a > class, struct, or union type|invalid type for iteration variable 'i'" } */ > ; > } > Ping? I just tested trunk. It still fails this test, and this patch still fixes the failures. -- Thiago
[PATCH] testsuite: Adjust g++.dg/gomp/pr58567.C to new compiler message
Commit 92d1425ca780 "c++: redundant targ coercion for var/alias tmpls" changed the compiler error message in this testcase from : In instantiation of 'void foo() [with T = int]': :14:11: required from here :8:22: error: 'int' is not a class, struct, or union type :8:22: error: 'int' is not a class, struct, or union type :8:22: error: 'int' is not a class, struct, or union type :8:3: error: expected iteration declaration or initialization compiler exited with status 1 to: : In instantiation of 'void foo() [with T = int]': :14:11: required from here :8:22: error: 'int' is not a class, struct, or union type :8:3: error: invalid type for iteration variable 'i' compiler exited with status 1 Excess errors: :8:3: error: invalid type for iteration variable 'i' Andrew Pinski analysed the issue in PR 110756 and considered that it was a testsuite issue in that the error message changed slightly. Also, it's a better error message. Therefore, we only need to adjust the testcase to expect the new message. gcc/testsuite/ChangeLog: PR testsuite/110756 g++.dg/gomp/pr58567.C: Adjust to new compiler error message. --- gcc/testsuite/g++.dg/gomp/pr58567.C | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/testsuite/g++.dg/gomp/pr58567.C b/gcc/testsuite/g++.dg/gomp/pr58567.C index 35a5bb027ffe..866d831c65e4 100644 --- a/gcc/testsuite/g++.dg/gomp/pr58567.C +++ b/gcc/testsuite/g++.dg/gomp/pr58567.C @@ -5,7 +5,7 @@ template void foo() { #pragma omp parallel for - for (typename T::X i = 0; i < 100; ++i) /* { dg-error "'int' is not a class, struct, or union type|expected iteration declaration or initialization" } */ + for (typename T::X i = 0; i < 100; ++i) /* { dg-error "'int' is not a class, struct, or union type|invalid type for iteration variable 'i'" } */ ; }
Re: Fix profile update in scale_profile_for_vect_loop
Hello, Jan Hubicka via Gcc-patches writes: > Hi, > when vectorizing 4 times, we sometimes do > for > <4x vectorized body> > for > <2x vectorized body> > for > <1x vectorized body> > > Here the second two fors handling epilogue never iterates. > Currently vecotrizer thinks that the middle for itrates twice. > This turns out to be scale_profile_for_vect_loop that uses > niter_for_unrolled_loop. > > At that time we know epilogue will iterate at most 2 times > but niter_for_unrolled_loop does not know that the last iteration > will be taken by the epilogue-of-epilogue and thus it think > that the loop may iterate once and exit in middle of second > iteration. > > We already do correct job updating niter bounds and this is > just ordering issue. This patch makes us to first update > the bounds and then do updating of the loop. I re-implemented > the function more correctly and precisely. > > The loop reducing iteration factor for overly flat profiles is bit funny, but > only other method I can think of is to compute sreal scale that would have > similar overhead I think. > > Bootstrapped/regtested x86_64-linux, comitted. > > gcc/ChangeLog: > > PR middle-end/110649 > * tree-vect-loop.cc (scale_profile_for_vect_loop): > (vect_transform_loop): > (optimize_mask_stores): Our CI detected regressions on aarch64-linux-gnu with this commit in gcc.target/aarch64/sve/aarch64-sve.exp. I checked today's trunk and it still fails. I filed the following bug report with the details: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110727 Could you please check? -- Thiago
Re: [PATCH] [vect]Use intermiediate integer type for float_expr/fix_trunc_expr when direct optab is not existed.
Hello, liuhongt via Gcc-patches writes: > I notice there's some refactor in vectorizable_conversion > for code_helper,so I've adjusted my patch to that. > Here's the patch I'm going to commit. > > We have already use intermidate type in case WIDEN, but not for NONE, > this patch extended that. > > gcc/ChangeLog: > > PR target/110018 > * tree-vect-stmts.cc (vectorizable_conversion): Use > intermiediate integer type for float_expr/fix_trunc_expr when > direct optab is not existed. > > gcc/testsuite/ChangeLog: > > * gcc.target/i386/pr110018-1.c: New test. > --- > gcc/testsuite/gcc.target/i386/pr110018-1.c | 94 ++ > gcc/tree-vect-stmts.cc | 66 ++- > 2 files changed, 158 insertions(+), 2 deletions(-) > create mode 100644 gcc/testsuite/gcc.target/i386/pr110018-1.c Our CI detected regressions on aarch64-linux-gnu with this commit, in some aarch64-sve and gfortran tests. I filed the following bug report with the details: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110371 Could you please check? -- Thiago
Re: [PATCH 2/2] cprop_hardreg: Enable propagation of the stack pointer if possible.
Hello, Jeff Law writes: > On 6/19/23 22:52, Tamar Christina wrote: > >>> It's a bit hackish, but could we reject the stack pointer for operand1 in >>> the >>> stack-tie? And if we do so, does it help? >> Yeah this one I had to defer until later this week to look at closer because >> what I'm >> wondering about is whether the optimization should apply to frame related >> RTX as well. >> Looking at the description of RTX_FRAME_RELATED_P that this optimization may >> end up de-optimizing RISC targets by creating an offset that is larger than >> offset >> which can be used from a SP making reload having to spill. i.e. sometimes >> the >> move was explicitly done. So perhaps it should not apply it to >> RTX_FRAME_RELATED_P in find_oldest_value_reg and copyprop_hardreg_forward_1? >> Other parts of this pass already seems to bail out in similar situations. So >> I needed >> to >> write some testcases to check what would happen in these cases hence the >> deferral. >> to later in the week. > Rejecting for RTX_FRAME_RELATED_P would seem reasonable and probably better > in general to > me. The cases where we're looking to clean things up aren't really in the > prologue/epilogue, but instead in the main body after register elimination > has turned fp > into sp + offset, thus making all kinds of things no longer valid. The problems I reported were fixed by commits: 580b74a79146 "aarch64: Robustify stack tie handling" 079f31c55318 "aarch64: Fix gcc.target/aarch64/sve/pcs failures" Thanks! But unfortunately I'm still seeing bootstrap failures (ICE segmentation fault) in today's trunk with build config bootstrap-lto in both armv8l-linux-gnueabihf and aarch64-linux-gnu. If I revert commit 6a2e8dcbbd4b "cprop_hardreg: Enable propagation of the stack pointer if possible" from trunk then both bootstraps succeed. Here's the command I'm using to build on armv8l: ~/src/configure \ SHELL=/bin/bash \ --with-gnu-as \ --with-gnu-ld \ --disable-libmudflap \ --enable-lto \ --enable-shared \ --without-included-gettext \ --enable-nls \ --with-system-zlib \ --disable-sjlj-exceptions \ --enable-gnu-unique-object \ --enable-linker-build-id \ --disable-libstdcxx-pch \ --enable-c99 \ --enable-clocale=gnu \ --enable-libstdcxx-debug \ --enable-long-long \ --with-cloog=no \ --with-ppl=no \ --with-isl=no \ --disable-multilib \ --with-float=hard \ --with-fpu=neon-fp-armv8 \ --with-mode=thumb \ --with-arch=armv8-a \ --enable-threads=posix \ --enable-multiarch \ --enable-libstdcxx-time=yes \ --enable-gnu-indirect-function \ --disable-werror \ --enable-checking=yes \ --enable-bootstrap \ --with-build-config=bootstrap-lto \ --enable-languages=c,c++,fortran,lto \ && make \ profiledbootstrap \ SHELL=/bin/bash \ -w \ -j 40 \ CFLAGS_FOR_BUILD="-pipe -g -O2" \ CXXFLAGS_FOR_BUILD="-pipe -g -O2" \ LDFLAGS_FOR_BUILD="-static-libgcc" \ MAKEINFOFLAGS=--force \ BUILD_INFO="" \ MAKEINFO=echo And here's the slightly different one for aarch64-linux: ~/src/configure \ SHELL=/bin/bash \ --with-gnu-as \ --with-gnu-ld \ --disable-libmudflap \ --enable-lto \ --enable-shared \ --without-included-gettext \ --enable-nls \ --with-system-zlib \ --disable-sjlj-exceptions \ --enable-gnu-unique-object \ --enable-linker-build-id \ --disable-libstdcxx-pch \ --enable-c99 \ --enable-clocale=gnu \ --enable-libstdcxx-debug \ --enable-long-long \ --with-cloog=no \ --with-ppl=no \ --with-isl=no \ --disable-multilib \ --enable-fix-cortex-a53-835769 \ --enable-fix-cortex-a53-843419 \ --with-arch=armv8-a \ --enable-threads=posix \ --enable-multiarch \ --enable-libstdcxx-time=yes \ --enable-gnu-indirect-function \ --disable-werror \ --enable-checking=yes \ --enable-bootstrap \ --with-build-config=bootstrap-lto \ --enable-languages=c,c++,fortran,lto \ && make \ profiledbootstrap \ SHELL=/bin/bash \ -w \ -j 40 \ LDFLAGS_FOR_TARGET="-Wl,-fix-cortex-a53-843419" \ CFLAGS_FOR_BUILD="-pipe -g -O2" \ CXXFLAGS_FOR_BUILD="-pipe -g -O2" \ LDFLAGS_FOR_BUILD="-static-libgcc" \ MAKEINFOFLAGS=--force \ BUILD_INFO="" \ MAKEINFO=echo -- Thiago
Re: [PATCH 2/2] cprop_hardreg: Enable propagation of the stack pointer if possible.
Hello Manolis, Philipp Tomsich writes: > On Thu, 8 Jun 2023 at 00:18, Jeff Law wrote: >> >> On 5/25/23 06:35, Manolis Tsamis wrote: >> > Propagation of the stack pointer in cprop_hardreg is currenty forbidden >> > in all cases, due to maybe_mode_change returning NULL. Relax this >> > restriction and allow propagation when no mode change is requested. >> > >> > gcc/ChangeLog: >> > >> > * regcprop.cc (maybe_mode_change): Enable stack pointer >> > propagation. >> Thanks for the clarification. This is OK for the trunk. It looks >> generic enough to have value going forward now rather than waiting. > > Rebased, retested, and applied to trunk. Thanks! Our CI found a couple of tests that started failing on aarch64-linux after this commit. I was able to confirm manually that they don't happen in the commit immediately before this one, and also that these failures are still present in today's trunk. I have testsuite logs for last good commit, first bad commit and current trunk here: https://people.linaro.org/~thiago.bauermann/gcc-regression-6a2e8dcbbd4b/ Could you please check? These are the new failures: Running gcc:gcc.target/aarch64/aarch64.exp ... FAIL: gcc.target/aarch64/stack-check-cfa-3.c scan-assembler-times mov\\tx11, sp 1 Running gcc:gcc.target/aarch64/sve/pcs/aarch64-sve-pcs.exp ... FAIL: gcc.target/aarch64/sve/pcs/args_1.c -march=armv8.2-a+sve -fno-stack-protector check-function-bodies caller_pred FAIL: gcc.target/aarch64/sve/pcs/args_2.c -march=armv8.2-a+sve -fno-stack-protector scan-assembler \\tmov\\t(z[0-9]+\\.b), #8\\n.*\\tst1b\\t\\1, p[0-7], \\[x4\\]\\n FAIL: gcc.target/aarch64/sve/pcs/args_3.c -march=armv8.2-a+sve -fno-stack-protector scan-assembler \\tmov\\t(z[0-9]+\\.b), #8\\n.*\\tst1b\\t\\1, p[0-7], \\[x4\\]\\n FAIL: gcc.target/aarch64/sve/pcs/args_4.c -march=armv8.2-a+sve -fno-stack-protector scan-assembler \\tfmov\\t(z[0-9]+\\.h), #8\\.0.*\\tst1h\\t\\1, p[0-7], \\[x4\\]\\n FAIL: gcc.target/aarch64/sve/pcs/args_5_be_bf16.c -march=armv8.2-a+sve -fno-stack-protector scan-assembler \\tld2h\\t{(z[0-9]+\\.h) - z[0-9]+\\.h}.*\\tst1h\\t\\1, p[0-7], \\[x1\\]\\n FAIL: gcc.target/aarch64/sve/pcs/args_5_be_f16.c -march=armv8.2-a+sve -fno-stack-protector scan-assembler \\tld2h\\t{(z[0-9]+\\.h) - z[0-9]+\\.h}.*\\tst1h\\t\\1, p[0-7], \\[x1\\]\\n FAIL: gcc.target/aarch64/sve/pcs/args_5_be_f32.c -march=armv8.2-a+sve -fno-stack-protector scan-assembler \\tld2w\\t{(z[0-9]+\\.s) - z[0-9]+\\.s}.*\\tst1w\\t\\1, p[0-7], \\[x1\\]\\n FAIL: gcc.target/aarch64/sve/pcs/args_5_be_f64.c -march=armv8.2-a+sve -fno-stack-protector scan-assembler \\tld2d\\t{(z[0-9]+\\.d) - z[0-9]+\\.d}.*\\tst1d\\t\\1, p[0-7], \\[x1\\]\\n FAIL: gcc.target/aarch64/sve/pcs/args_5_be_s16.c -march=armv8.2-a+sve -fno-stack-protector scan-assembler \\tld2h\\t{(z[0-9]+\\.h) - z[0-9]+\\.h}.*\\tst1h\\t\\1, p[0-7], \\[x1\\]\\n FAIL: gcc.target/aarch64/sve/pcs/args_5_be_s32.c -march=armv8.2-a+sve -fno-stack-protector scan-assembler \\tld2w\\t{(z[0-9]+\\.s) - z[0-9]+\\.s}.*\\tst1w\\t\\1, p[0-7], \\[x1\\]\\n FAIL: gcc.target/aarch64/sve/pcs/args_5_be_s64.c -march=armv8.2-a+sve -fno-stack-protector scan-assembler \\tld2d\\t{(z[0-9]+\\.d) - z[0-9]+\\.d}.*\\tst1d\\t\\1, p[0-7], \\[x1\\]\\n FAIL: gcc.target/aarch64/sve/pcs/args_5_be_s8.c -march=armv8.2-a+sve -fno-stack-protector scan-assembler \\tld2b\\t{(z[0-9]+\\.b) - z[0-9]+\\.b}.*\\tst1b\\t\\1, p[0-7], \\[x1\\]\\n FAIL: gcc.target/aarch64/sve/pcs/args_5_be_u16.c -march=armv8.2-a+sve -fno-stack-protector scan-assembler \\tld2h\\t{(z[0-9]+\\.h) - z[0-9]+\\.h}.*\\tst1h\\t\\1, p[0-7], \\[x1\\]\\n FAIL: gcc.target/aarch64/sve/pcs/args_5_be_u32.c -march=armv8.2-a+sve -fno-stack-protector scan-assembler \\tld2w\\t{(z[0-9]+\\.s) - z[0-9]+\\.s}.*\\tst1w\\t\\1, p[0-7], \\[x1\\]\\n FAIL: gcc.target/aarch64/sve/pcs/args_5_be_u64.c -march=armv8.2-a+sve -fno-stack-protector scan-assembler \\tld2d\\t{(z[0-9]+\\.d) - z[0-9]+\\.d}.*\\tst1d\\t\\1, p[0-7], \\[x1\\]\\n FAIL: gcc.target/aarch64/sve/pcs/args_5_be_u8.c -march=armv8.2-a+sve -fno-stack-protector scan-assembler \\tld2b\\t{(z[0-9]+\\.b) - z[0-9]+\\.b}.*\\tst1b\\t\\1, p[0-7], \\[x1\\]\\n FAIL: gcc.target/aarch64/sve/pcs/args_5_le_bf16.c -march=armv8.2-a+sve -fno-stack-protector scan-assembler \\tld2h\\t{(z[0-9]+)\\.h - z[0-9]+\\.h}.*\\tstr\\t\\1, \\[x1\\]\\n FAIL: gcc.target/aarch64/sve/pcs/args_5_le_f16.c -march=armv8.2-a+sve -fno-stack-protector scan-assembler \\tld2h\\t{(z[0-9]+)\\.h - z[0-9]+\\.h}.*\\tstr\\t\\1, \\[x1\\]\\n FAIL: gcc.target/aarch64/sve/pcs/args_5_le_f32.c -march=armv8.2-a+sve -fno-stack-protector scan-assembler \\tld2w\\t{(z[0-9]+)\\.s - z[0-9]+\\.s}.*\\tstr\\t\\1, \\[x1\\]\\n FAIL: gcc.target/aarch64/sve/pcs/args_5_le_f64.c -march=armv8.2-a+sve -fno-stack-protector scan-assembler \\tld2d\\t{(z[0-9]+)\\.d - z[0-9]+\\.d}.*\\tstr\\t\\1, \\[x1\\]\\n FAIL: gcc.target/aarch64/sve/pcs/args_5_le_s16.c -march=armv8.2-a+sve -fno-stack-protector scan-assembler \\tld2h\
Re: [PATCH] [contrib] validate_failures.py: Don't consider summary line in wrong place
Jeff Law writes: > On 6/16/23 06:02, Thiago Jung Bauermann via Gcc-patches wrote: >> contrib/ChangeLog: >> * testsuite-management/validate_failures.py (IsInterestingResult): >> Add result_set argument and use it. Adjust callers. > Thanks. I pushed this to the trunk. Thank you! -- Thiago
[PATCH] [contrib] validate_failures.py: Don't consider summary line in wrong place
When parsing a summary or manifest file, if we're not either after a tool line (e.g. "=== gdb tests ===") or before a summary line (e.g., "=== gdb Summary ===") then the current line can't be a valid result line so ignore it. This addresses a problem we're seeing when running the GDB testsuite in our CI environment where it produces a valid summary file, but then after the "=== gdb Summary ===" section it outputs a series of Tcl errors that match _VALID_TEST_RESULTS_REX and thus confuse the parsing logic: 05: 14:32 .sum file seems to be broken: tool="None", exp="None", summary_line="ERROR: ---" 05: 14:32 Traceback (most recent call last): 05: 14:32 File "/path/to/gcc/contrib/testsuite-management/validate_failures.py", line 706, in 05: 14:32 retval = Main(sys.argv) 05: 14:32 File "/path/to/gcc/contrib/testsuite-management/validate_failures.py", line 697, in Main 05: 14:32 retval = CheckExpectedResults() 05: 14:32 File "/path/to/gcc/contrib/testsuite-management/validate_failures.py", line 572, in CheckExpectedResults 05: 14:32 actual = GetResults(sum_files) 05: 14:32 File "/path/to/gcc/contrib/testsuite-management/validate_failures.py", line 447, in GetResults 05: 14:32 build_results.update(ParseSummary(sum_fname)) 05: 14:32 File "/path/to/gcc/contrib/testsuite-management/validate_failures.py", line 389, in ParseSummary 05: 14:32 result = result_set.MakeTestResult(line, ordinal) 05: 14:32 File "/path/to/gcc/contrib/testsuite-management/validate_failures.py", line 236, in MakeTestResult 05: 14:32 return TestResult(summary_line, ordinal, 05: 14:32 File "/path/to/gcc/contrib/testsuite-management/validate_failures.py", line 148, in __init__ 05: 14:32 raise contrib/ChangeLog: * testsuite-management/validate_failures.py (IsInterestingResult): Add result_set argument and use it. Adjust callers. --- .../testsuite-management/validate_failures.py | 18 ++ 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/contrib/testsuite-management/validate_failures.py b/contrib/testsuite-management/validate_failures.py index 4dfd9cda4e24..11bb6f7e9c7c 100755 --- a/contrib/testsuite-management/validate_failures.py +++ b/contrib/testsuite-management/validate_failures.py @@ -295,10 +295,20 @@ def SplitAttributesFromSummaryLine(line): return (attrs, line) -def IsInterestingResult(line): +def IsInterestingResult(result_set, line): """Return True if line is one of the summary lines we care about.""" (_, line) = SplitAttributesFromSummaryLine(line) - return bool(_VALID_TEST_RESULTS_REX.match(line)) + valid_result = bool(_VALID_TEST_RESULTS_REX.match(line)) + + # If there's no tool defined it means that either the results section hasn't + # started yet, or it is already over. + if valid_result and result_set.current_tool is None: +if _OPTIONS.verbosity >= 3: + print(f'WARNING: Result "{line}" found outside sum file boundaries.', +file=sys.stderr) +return False + + return valid_result def IsToolLine(line): @@ -354,7 +364,7 @@ def ParseManifestWorker(result_set, manifest_path): result_set.remove(result_set.MakeTestResult(GetNegativeResult(line))) elif IsInclude(line): ParseManifestWorker(result_set, GetIncludeFile(line, manifest_path)) -elif IsInterestingResult(line): +elif IsInterestingResult(result_set, line): result = result_set.MakeTestResult(line) if result.HasExpired(): # Ignore expired manifest entries. @@ -391,7 +401,7 @@ def ParseSummary(sum_fname): ordinal=0 sum_file = open(sum_fname, encoding='latin-1', mode='r') for line in sum_file: -if IsInterestingResult(line): +if IsInterestingResult(result_set, line): result = result_set.MakeTestResult(line, ordinal) ordinal += 1 if result.HasExpired():