https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113526
Bug ID: 113526 Summary: [14 Regression ARM] gcc.target/arm/asm-flag-1.c fails since gcc-14-7248-g76bc70387d9 Product: gcc Version: 14.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: thiago.bauermann at linaro dot org CC: vmakarov at redhat dot com Target Milestone: --- Target: arm-none-eabi Created attachment 57180 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=57180&action=edit gcc.log showing failures in gcc.target/arm/asm-flag-1.c After commit 76bc70387d93 ("[PR113354][LRA]: Fixing LRA failure on building MIPS GCC"), the following failures started appearing on --target=arm-none-eabi: === gcc tests === Running gcc:gcc.target/arm/arm.exp ... FAIL: gcc.target/arm/asm-flag-1.c (test for excess errors) UNRESOLVED: gcc.target/arm/asm-flag-1.c scan-assembler movcc UNRESOLVED: gcc.target/arm/asm-flag-1.c scan-assembler movcs UNRESOLVED: gcc.target/arm/asm-flag-1.c scan-assembler moveq UNRESOLVED: gcc.target/arm/asm-flag-1.c scan-assembler movge UNRESOLVED: gcc.target/arm/asm-flag-1.c scan-assembler movgt UNRESOLVED: gcc.target/arm/asm-flag-1.c scan-assembler movhi UNRESOLVED: gcc.target/arm/asm-flag-1.c scan-assembler movle UNRESOLVED: gcc.target/arm/asm-flag-1.c scan-assembler movls UNRESOLVED: gcc.target/arm/asm-flag-1.c scan-assembler movmi UNRESOLVED: gcc.target/arm/asm-flag-1.c scan-assembler movne UNRESOLVED: gcc.target/arm/asm-flag-1.c scan-assembler movpl UNRESOLVED: gcc.target/arm/asm-flag-1.c scan-assembler movvc UNRESOLVED: gcc.target/arm/asm-flag-1.c scan-assembler movvs The test fails because GCC can't compile asm-flag-1.c anymore: spawn -ignore SIGHUP /tmp/arm-none-eabi/bin/arm-none-eabi-gcc /tmp/combined-tree-src/gcc/testsuite/gcc.target/arm/asm-flag-1.c -fdiagnostics-plain-output -O -ffat-lto-objects -fno-ident -S -o asm-flag-1.s /tmp/combined-tree-src/gcc/testsuite/gcc.target/arm/asm-flag-1.c: In function 'f': /tmp/combined-tree-src/gcc/testsuite/gcc.target/arm/asm-flag-1.c:12:3: error: 'asm' operand has impossible constraints or there are not enough registers compiler exited with status 1 FAIL: gcc.target/arm/asm-flag-1.c (test for excess errors) Excess errors: /tmp/combined-tree-src/gcc/testsuite/gcc.target/arm/asm-flag-1.c:12:3: error: 'asm' operand has impossible constraints or there are not enough registers gcc.target/arm/asm-flag-1.c: output file does not exist UNRESOLVED: gcc.target/arm/asm-flag-1.c scan-assembler movne gcc.target/arm/asm-flag-1.c: output file does not exist UNRESOLVED: gcc.target/arm/asm-flag-1.c scan-assembler moveq gcc.target/arm/asm-flag-1.c: output file does not exist UNRESOLVED: gcc.target/arm/asm-flag-1.c scan-assembler movcs gcc.target/arm/asm-flag-1.c: output file does not exist UNRESOLVED: gcc.target/arm/asm-flag-1.c scan-assembler movcc gcc.target/arm/asm-flag-1.c: output file does not exist UNRESOLVED: gcc.target/arm/asm-flag-1.c scan-assembler movmi gcc.target/arm/asm-flag-1.c: output file does not exist UNRESOLVED: gcc.target/arm/asm-flag-1.c scan-assembler movpl gcc.target/arm/asm-flag-1.c: output file does not exist UNRESOLVED: gcc.target/arm/asm-flag-1.c scan-assembler movvs gcc.target/arm/asm-flag-1.c: output file does not exist UNRESOLVED: gcc.target/arm/asm-flag-1.c scan-assembler movvc gcc.target/arm/asm-flag-1.c: output file does not exist UNRESOLVED: gcc.target/arm/asm-flag-1.c scan-assembler movhi gcc.target/arm/asm-flag-1.c: output file does not exist UNRESOLVED: gcc.target/arm/asm-flag-1.c scan-assembler movls gcc.target/arm/asm-flag-1.c: output file does not exist UNRESOLVED: gcc.target/arm/asm-flag-1.c scan-assembler movge gcc.target/arm/asm-flag-1.c: output file does not exist UNRESOLVED: gcc.target/arm/asm-flag-1.c scan-assembler movls gcc.target/arm/asm-flag-1.c: output file does not exist UNRESOLVED: gcc.target/arm/asm-flag-1.c scan-assembler movgt gcc.target/arm/asm-flag-1.c: output file does not exist UNRESOLVED: gcc.target/arm/asm-flag-1.c scan-assembler movle I tested on today's trunk (commit 036623196777) and the failures are still present. I'm attaching the gcc.log file. Here's how to reproduce on an x86_64-linux machine: 1. First, create a combined tree: $ mkdir /tmp/combined-tree-src /tmp/combined-tree-build $ cd ~/src/newlib-cygwin && find . -print | cpio -pdlm /tmp/combined-tree-src $ cd ~/src/binutils-gdb && find . -print | cpio -pdlmu /tmp/combined-tree-src $ cd ~/src/gcc && find . -print | cpio -pdlmu /tmp/combined-tree-src 2. Then build and install the cross GCC: $ cd /tmp/combined-tree-build $ /tmp/combined-tree-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 \ --enable-multilib \ --with-multilib-list=aprofile \ --enable-threads=no \ --disable-multiarch \ --with-newlib \ --with-headers=yes \ --with-native-system-header-dir=/include \ --enable-checking=yes \ --disable-bootstrap \ --disable-source-highlight \ --enable-languages=c,c++,lto \ --prefix=/tmp/arm-none-eabi \ --build=x86_64-pc-linux-gnu \ --host=x86_64-pc-linux-gnu \ --target=arm-none-eabi \ && exec make \ SHELL=/bin/bash \ -w \ "${make_jobs[@]}" \ LDFLAGS_FOR_TARGET="--specs=rdimon.specs" \ CFLAGS_FOR_BUILD="-pipe -g -O2" \ CXXFLAGS_FOR_BUILD="-pipe -g -O2" \ LDFLAGS_FOR_BUILD="-static-libgcc" \ MAKEINFOFLAGS=--force \ BUILD_INFO="" \ MAKEINFO=echo \ && make install 3. Finally, use it to compile the problematic .c file: $ /tmp/arm-none-eabi/bin/arm-none-eabi-gcc /tmp/combined-tree-src/gcc/testsuite/gcc.target/arm/asm-flag-1.c -fdiagnostics-plain-output -O -ffat-lto-objects -fno-ident -S -o asm-flag-1.s /tmp/combined-tree-src/gcc/testsuite/gcc.target/arm/asm-flag-1.c: In function ‘f’: /tmp/combined-tree-src/gcc/testsuite/gcc.target/arm/asm-flag-1.c:12:3: error: ‘asm’ operand has impossible constraints or there are not enough registers