Summary: | [6 Regression] ICE in get_attr_got, at config/mips/mips.md:694 on mips-linux-gnu | ||
---|---|---|---|
Product: | gcc | Reporter: | Matthias Klose <doko> |
Component: | target | Assignee: | Not yet assigned to anyone <unassigned> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | nickc, sje |
Priority: | P3 | Keywords: | ice-on-valid-code |
Version: | 6.0 | ||
Target Milestone: | 6.0 | ||
Host: | Target: | mips-linux-gnu, mipsel-linux-gnu | |
Build: | Known to work: | 5.3.1 | |
Known to fail: | 6.0 | Last reconfirmed: |
Description
Matthias Klose
2016-01-03 22:12:28 UTC
I could not reproduce this with todays (Jan 5, 2016) top-of-tree. I built mips-linux-gnu and mipsel-linux-gnu with Fortran and the library built just fine. I also tried the test case that was included and that also compiled. I got some warnings, but no ICE. I was building a cross compiler running on x86 linux (ubuntu 12.04) and I tried mips-linux-gnu and mipsel-linux-gnu targets. rechecked with today's trunk on Debian unstable, reproduced. The compiler is configured with: configure -v --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-6 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-libitm --disable-libsanitizer --disable-libquadmath --enable-plugin --with-system-zlib --enable-multiarch --enable-multilib --with-arch-32=mips32r2 --with-fp-32=xx --enable-targets=all --with-arch-64=mips64r2 --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=mips-linux-gnu --program-prefix=mips-linux-gnu- --includedir=/usr/mips-linux-gnu/include according to https://buildd.debian.org/status/logs.php?pkg=gcc-snapshot&arch=mipsel the libgfortran failure is first seen with trunk 20150722 in native builds. The bug same as pr69012 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69012 Hi Guys, I was able to reproduce the bug as specified. It turns out that there is a race condition in mips_compute_frame which can result in fields in the frame structure being used before they are initialised. I have submitted a possible patch for review here: https://gcc.gnu.org/ml/gcc-patches/2016-01/msg01407.html Cheers Nick Author: nickc Date: Thu Jan 21 14:07:01 2016 New Revision: 232674 URL: https://gcc.gnu.org/viewcvs?rev=232674&root=gcc&view=rev Log: PR target/69129 PR target/69012 * config/mips/mips.c (mips_compute_frame_info): Initialise args_size and hard_frame_pointer_offset fields of the frame structure before calling mips_global_pointer. PR target/69129 * gcc.target/mips/pr69129.c: New. Added: trunk/gcc/testsuite/gcc.target/mips/pr69129.c Modified: trunk/gcc/ChangeLog trunk/gcc/config/mips/mips.c trunk/gcc/testsuite/ChangeLog |